(mask vector.Any)
| 72 | } |
| 73 | |
| 74 | func BoolMask(mask vector.Any) (*roaring.Bitmap, *roaring.Bitmap) { |
| 75 | bools := roaring.New() |
| 76 | other := roaring.New() |
| 77 | if dynamic, ok := mask.(*vector.Dynamic); ok { |
| 78 | reverse := dynamic.ReverseTagMap() |
| 79 | for i, val := range dynamic.Values { |
| 80 | boolMaskRidx(reverse[i], bools, other, val) |
| 81 | } |
| 82 | } else { |
| 83 | boolMaskRidx(nil, bools, other, mask) |
| 84 | } |
| 85 | return bools, other |
| 86 | } |
| 87 | |
| 88 | func boolMaskRidx(ridx []uint32, bools, other *roaring.Bitmap, vec vector.Any) { |
| 89 | switch vec := vec.(type) { |