Lines Matching refs:T

6 pub(crate) struct BitMapCore<T: BitOps> {
7 phantom: PhantomData<T>,
10 impl<T: BitOps> BitMapCore<T> {
18 pub(crate) fn get(&self, n: usize, data: &[T], index: usize) -> Option<bool> { in get() argument
23 let element_index = index / T::bit_size(); in get()
24 let bit_index = index % T::bit_size(); in get()
27 let bit = <T as BitOps>::get(element, bit_index); in get()
33 pub(crate) fn set(&self, n: usize, data: &mut [T], index: usize, value: bool) -> Option<bool> { in set() argument
37 let element_index = index / T::bit_size(); in set()
38 let bit_index = index % T::bit_size(); in set()
41 let bit = <T as BitOps>::set(element, bit_index, value); in set()
46 pub(crate) fn set_all(&self, n: usize, data: &mut [T], value: bool) { in set_all() argument
47 let val = if value { T::max() } else { T::zero() }; in set_all()
54 let mask = T::make_mask(n % T::bit_size()); in set_all()
55 if mask != T::zero() { in set_all()
61 pub(crate) fn first_index(&self, data: &[T]) -> Option<usize> { in first_index()
63 let bit = <T as BitOps>::first_index(element); in first_index()
65 return Some(i * T::bit_size() + b); in first_index()
73 pub(crate) fn first_false_index(&self, n: usize, data: &[T]) -> Option<usize> { in first_false_index()
75 if let Some(bit) = <T as BitOps>::first_false_index(element) { in first_false_index()
76 return self.make_index(n, i * T::bit_size() + bit); in first_false_index()
84 pub(crate) fn last_index(&self, n: usize, data: &[T]) -> Option<usize> { in last_index()
86 if let Some(bit) = <T as BitOps>::last_index(element) { in last_index()
87 return self.make_index(n, i * T::bit_size() + bit); in last_index()
100 pub(crate) fn last_false_index(&self, n: usize, data: &[T]) -> Option<usize> { in last_false_index()
105 let mut mask = T::make_mask(n % T::bit_size()); in last_false_index()
106 if mask != T::zero() { in last_false_index()
107 <T as BitOps>::invert(&mut mask); in last_false_index()
112 if let Some(bit) = <T as BitOps>::last_false_index(&last_element) { in last_false_index()
113 return self.make_index(n, (data.len() - 1) * T::bit_size() + bit); in last_false_index()
117 if let Some(bit) = <T as BitOps>::last_false_index(element) { in last_false_index()
118 return self.make_index(n, (data.len() - 1) * T::bit_size() + bit); in last_false_index()
126 pub(crate) fn next_index(&self, n: usize, data: &[T], index: usize) -> Option<usize> { in next_index() argument
131 let element_index = index / T::bit_size(); in next_index()
132 let bit_index = index % T::bit_size(); in next_index()
135 if let Some(bit) = <T as BitOps>::next_index(element, bit_index) { in next_index()
136 return self.make_index(n, element_index * T::bit_size() + bit); in next_index()
140 if let Some(bit) = <T as BitOps>::first_index(element) { in next_index()
141 return self.make_index(n, i * T::bit_size() + bit); in next_index()
149 pub(crate) fn next_false_index(&self, n: usize, data: &[T], index: usize) -> Option<usize> { in next_false_index() argument
154 let element_index = index / T::bit_size(); in next_false_index()
155 let bit_index = index % T::bit_size(); in next_false_index()
158 if let Some(bit) = <T as BitOps>::next_false_index(element, bit_index) { in next_false_index()
159 return self.make_index(n, element_index * T::bit_size() + bit); in next_false_index()
163 if let Some(bit) = <T as BitOps>::first_false_index(element) { in next_false_index()
164 return self.make_index(n, i * T::bit_size() + bit); in next_false_index()
172 pub(crate) fn prev_index(&self, n: usize, data: &[T], index: usize) -> Option<usize> { in prev_index() argument
176 let element_index = index / T::bit_size(); in prev_index()
177 let bit_index = index % T::bit_size(); in prev_index()
180 if let Some(bit) = <T as BitOps>::prev_index(element, bit_index) { in prev_index()
181 return self.make_index(n, element_index * T::bit_size() + bit); in prev_index()
185 if let Some(bit) = <T as BitOps>::last_index(element) { in prev_index()
186 return self.make_index(n, i * T::bit_size() + bit); in prev_index()
193 pub(crate) fn prev_false_index(&self, n: usize, data: &[T], index: usize) -> Option<usize> { in prev_false_index() argument
194 let element_index = index / T::bit_size(); in prev_false_index()
195 let bit_index = index % T::bit_size(); in prev_false_index()
198 if let Some(bit) = <T as BitOps>::prev_false_index(element, bit_index) { in prev_false_index()
199 return self.make_index(n, element_index * T::bit_size() + bit); in prev_false_index()
203 if let Some(bit) = <T as BitOps>::last_false_index(element) { in prev_false_index()
204 return self.make_index(n, i * T::bit_size() + bit); in prev_false_index()
211 pub(crate) fn invert(&self, n: usize, data: &mut [T]) { in invert() argument
213 <T as BitOps>::invert(element); in invert()
219 let mask = T::make_mask(n % T::bit_size()); in invert()
220 if mask != T::zero() { in invert()
225 pub(crate) fn is_full(&self, n: usize, data: &[T]) -> bool { in is_full()
231 let mut mask = T::make_mask(n % T::bit_size()); in is_full()
232 if mask == T::zero() { in is_full()
233 mask = T::max(); in is_full()
236 T::bit_and(&mut element, &mask); in is_full()
240 } else if element != &T::make_mask(T::bit_size()) { in is_full()
248 pub(crate) fn is_empty(&self, data: &[T]) -> bool { in is_empty()
250 if element != &T::zero() { in is_empty()