@@ -10,8 +10,6 @@ mod intersect_by_rank;
1010mod iter_bools;
1111mod mask_mut;
1212
13- #[ cfg( feature = "serde" ) ]
14- mod serde;
1513#[ cfg( test) ]
1614mod tests;
1715
@@ -112,12 +110,15 @@ pub enum Mask {
112110
113111/// Represents the values of a [`Mask`] that contains some true and some false elements.
114112#[ derive( Debug ) ]
113+ #[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
115114pub struct MaskValues {
116115 buffer : BitBuffer ,
117116
118117 // We cached the indices and slices representations, since it can be faster than iterating
119118 // the bit-mask over and over again.
119+ #[ cfg_attr( feature = "serde" , serde( skip) ) ]
120120 indices : OnceLock < Vec < usize > > ,
121+ #[ cfg_attr( feature = "serde" , serde( skip) ) ]
121122 slices : OnceLock < Vec < ( usize , usize ) > > ,
122123
123124 // Pre-computed values.
@@ -126,27 +127,6 @@ pub struct MaskValues {
126127 density : f64 ,
127128}
128129
129- impl MaskValues {
130- #[ cfg( feature = "serde" ) ]
131- pub ( crate ) fn from_buffer ( buffer : BitBuffer ) -> Self {
132- let count = buffer. true_count ( ) ;
133- Self :: from_buffer_with_counts ( buffer, count)
134- }
135-
136- #[ cfg( feature = "serde" ) ]
137- fn from_buffer_with_counts ( buffer : BitBuffer , true_count : usize ) -> Self {
138- let len = buffer. len ( ) ;
139-
140- Self {
141- buffer,
142- indices : Default :: default ( ) ,
143- slices : Default :: default ( ) ,
144- true_count,
145- density : true_count as f64 / len as f64 ,
146- }
147- }
148- }
149-
150130impl Mask {
151131 /// Create a new Mask where all values are set.
152132 #[ inline]
0 commit comments