convert to run or array *if needed*
()
| 1280 | |
| 1281 | // convert to run or array *if needed* |
| 1282 | func (ac *arrayContainer) toEfficientContainer() container { |
| 1283 | numRuns := ac.numberOfRuns() |
| 1284 | sizeAsRunContainer := runContainer16SerializedSizeInBytes(numRuns) |
| 1285 | sizeAsBitmapContainer := bitmapContainerSizeInBytes() |
| 1286 | card := ac.getCardinality() |
| 1287 | sizeAsArrayContainer := arrayContainerSizeInBytes(card) |
| 1288 | if sizeAsRunContainer < minOfInt(sizeAsBitmapContainer, sizeAsArrayContainer) { |
| 1289 | return newRunContainer16FromArray(ac) |
| 1290 | } |
| 1291 | if card <= arrayDefaultMaxSize { |
| 1292 | return ac |
| 1293 | } |
| 1294 | return ac.toBitmapContainer() |
| 1295 | } |
| 1296 | |
| 1297 | func (ac *arrayContainer) containerType() contype { |
| 1298 | return arrayContype |
nothing calls this directly
no test coverage detected