diff --git a/roaring/roaring.go b/roaring/roaring.go index 95fcaed15..d4a89b5dd 100644 --- a/roaring/roaring.go +++ b/roaring/roaring.go @@ -1920,12 +1920,24 @@ func difference(a, b *container) *container { if a.isArray() { if b.isArray() { return differenceArrayArray(a, b) + } else if b.isRun() { + return differenceArrayRun(a, b) } else { return differenceArrayBitmap(a, b) } + } else if a.isRun() { + if b.isArray() { + return differenceRunArray(a, b) + } else if b.isRun() { + return differenceRunRun(a, b) + } else { + return differenceRunBitmap(a, b) + } } else { if b.isArray() { return differenceBitmapArray(a, b) + } else if b.isRun() { + return differenceBitmapRun(a, b) } else { return differenceBitmapBitmap(a, b) } @@ -1956,6 +1968,27 @@ func differenceArrayArray(a, b *container) *container { return output } +func differenceArrayRun(a, b *container) *container { + // TODO + return nil +} +func differenceRunArray(a, b *container) *container { + // TODO + return nil +} +func differenceRunBitmap(a, b *container) *container { + // TODO + return nil +} +func differenceBitmapRun(a, b *container) *container { + // TODO + return nil +} +func differenceRunRun(a, b *container) *container { + // TODO + return nil +} + func differenceArrayBitmap(a, b *container) *container { output := &container{} itr := newBufIterator(newBitmapIterator(b.bitmap))