1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
use super::{BitSet, BitSetMut}; #[cfg(feature = "alloc")] use alloc::boxed::Box; impl<T> BitSet for &'_ T where T: BitSet, { const UPPER_BOUND: u32 = T::UPPER_BOUND; fn get(&self, index: u32) -> bool { T::get(*self, index) } fn find_set(&self, lower_bound: u32) -> Option<u32> { T::find_set(*self, lower_bound) } } impl<T> BitSet for &'_ mut T where T: BitSet, { const UPPER_BOUND: u32 = T::UPPER_BOUND; fn get(&self, index: u32) -> bool { T::get(*self, index) } fn find_set(&self, lower_bound: u32) -> Option<u32> { T::find_set(*self, lower_bound) } } impl<T> BitSetMut for &'_ mut T where T: BitSetMut, { fn set(&mut self, index: u32, bit: bool) { T::set(*self, index, bit) } } #[cfg(feature = "alloc")] impl<T> BitSet for Box<T> where T: BitSet, { const UPPER_BOUND: u32 = T::UPPER_BOUND; fn get(&self, index: u32) -> bool { T::get(&**self, index) } fn find_set(&self, lower_bound: u32) -> Option<u32> { T::find_set(&**self, lower_bound) } } #[cfg(feature = "alloc")] impl<T> BitSetMut for Box<T> where T: BitSetMut, { fn set(&mut self, index: u32, bit: bool) { T::set(&mut **self, index, bit) } }