(a container)
| 550 | } |
| 551 | |
| 552 | func (ac *arrayContainer) and(a container) container { |
| 553 | switch x := a.(type) { |
| 554 | case *arrayContainer: |
| 555 | return ac.andArray(x) |
| 556 | case *bitmapContainer: |
| 557 | return x.and(ac) |
| 558 | case *runContainer16: |
| 559 | if x.isFull() { |
| 560 | return ac.clone() |
| 561 | } |
| 562 | return x.andArray(ac) |
| 563 | } |
| 564 | panic("unsupported container type") |
| 565 | } |
| 566 | |
| 567 | func (ac *arrayContainer) andCardinality(a container) int { |
| 568 | switch x := a.(type) { |