@@ -7,8 +7,7 @@ use vortex_buffer::BitBufferMut;
77use vortex_error:: { VortexExpect , VortexResult , vortex_ensure} ;
88use vortex_mask:: MaskMut ;
99
10- use super :: BoolVector ;
11- use crate :: { VectorMutOps , VectorOps } ;
10+ use crate :: { BoolVector , VectorMutOps , VectorOps } ;
1211
1312/// A mutable vector of boolean values.
1413///
@@ -128,76 +127,6 @@ impl BoolVectorMut {
128127 }
129128}
130129
131- impl FromIterator < Option < bool > > for BoolVectorMut {
132- /// Creates a new [`BoolVectorMut`] from an iterator of `Option<bool>` values.
133- ///
134- /// `None` values will be marked as invalid in the validity mask.
135- ///
136- /// # Examples
137- ///
138- /// ```
139- /// use vortex_vector::{BoolVectorMut, VectorMutOps};
140- ///
141- /// let mut vec = BoolVectorMut::from_iter([Some(true), None, Some(false)]);
142- /// assert_eq!(vec.len(), 3);
143- /// ```
144- fn from_iter < I > ( iter : I ) -> Self
145- where
146- I : IntoIterator < Item = Option < bool > > ,
147- {
148- let iter = iter. into_iter ( ) ;
149- let ( lower_bound, _) = iter. size_hint ( ) ;
150-
151- let mut bits = Vec :: with_capacity ( lower_bound) ;
152- let mut validity = MaskMut :: with_capacity ( lower_bound) ;
153-
154- for opt_val in iter {
155- match opt_val {
156- Some ( val) => {
157- bits. push ( val) ;
158- validity. append_n ( true , 1 ) ;
159- }
160- None => {
161- bits. push ( false ) ; // Value doesn't matter for invalid entries.
162- validity. append_n ( false , 1 ) ;
163- }
164- }
165- }
166-
167- BoolVectorMut {
168- bits : BitBufferMut :: from_iter ( bits) ,
169- validity,
170- }
171- }
172- }
173-
174- impl FromIterator < bool > for BoolVectorMut {
175- /// Creates a new [`BoolVectorMut`] from an iterator of `bool` values.
176- ///
177- /// All values will be treated as non-null.
178- ///
179- /// # Examples
180- ///
181- /// ```
182- /// use vortex_vector::{BoolVectorMut, VectorMutOps};
183- ///
184- /// let mut vec = BoolVectorMut::from_iter([true, false, false, true]);
185- /// assert_eq!(vec.len(), 4);
186- /// ```
187- fn from_iter < I > ( iter : I ) -> Self
188- where
189- I : IntoIterator < Item = bool > ,
190- {
191- let buffer = BitBufferMut :: from_iter ( iter) ;
192- let validity = MaskMut :: new_true ( buffer. len ( ) ) ;
193-
194- BoolVectorMut {
195- bits : buffer,
196- validity,
197- }
198- }
199- }
200-
201130impl VectorMutOps for BoolVectorMut {
202131 type Immutable = BoolVector ;
203132
0 commit comments