@@ -62,56 +62,8 @@ func (ac *arrayContainer) getManyIterator() manyIterable {
6262 return & shortIterator {ac .content , 0 }
6363}
6464
65- type arrayContainerUnsetIterator struct {
66- content []uint16
67- pos int
68- nextVal int
69- }
70-
71- func (acui * arrayContainerUnsetIterator ) next () uint16 {
72- val := acui .nextVal
73- acui .nextVal ++
74- for acui .pos < len (acui .content ) && uint16 (acui .nextVal ) == acui .content [acui .pos ] {
75- acui .nextVal ++
76- acui .pos ++
77- }
78- return uint16 (val )
79- }
80-
81- func (acui * arrayContainerUnsetIterator ) hasNext () bool {
82- return acui .nextVal < 65536
83- }
84-
85- func (acui * arrayContainerUnsetIterator ) peekNext () uint16 {
86- return uint16 (acui .nextVal )
87- }
88-
89- func (acui * arrayContainerUnsetIterator ) advanceIfNeeded (minval uint16 ) {
90- if ! acui .hasNext () || acui .peekNext () >= minval {
91- return
92- }
93- acui .nextVal = int (minval )
94- acui .pos = binarySearch (acui .content , minval )
95- if acui .pos < 0 {
96- acui .pos = - acui .pos - 1
97- }
98- for acui .pos < len (acui .content ) && uint16 (acui .nextVal ) == acui .content [acui .pos ] {
99- acui .nextVal ++
100- acui .pos ++
101- }
102- }
103-
104- func newArrayContainerUnsetIterator (a * arrayContainer ) * arrayContainerUnsetIterator {
105- acui := & arrayContainerUnsetIterator {content : a .content , pos : 0 , nextVal : 0 }
106- for acui .pos < len (acui .content ) && uint16 (acui .nextVal ) == acui .content [acui .pos ] {
107- acui .nextVal ++
108- acui .pos ++
109- }
110- return acui
111- }
112-
11365func (ac * arrayContainer ) getUnsetIterator () shortPeekable {
114- return newArrayContainerUnsetIterator (ac )
66+ return newArrayContainerUnsetIterator (ac . content )
11567}
11668
11769func (ac * arrayContainer ) minimum () uint16 {
0 commit comments