pub(crate) trait Key:
Copy
+ Zero
+ One
+ PartialEq<Self>
+ TryFrom<usize>
+ TryInto<usize>
+ Shl<usize, Output = Self>
+ Shr<usize, Output = Self>
+ Div<Self, Output = Self>
+ Rem<Self, Output = Self>
+ Mul<Self, Output = Self>
+ Not
+ Sub<Self, Output = Self>
+ BitAnd<Self, Output = Self>
+ WrappingAdd
+ WrappingNeg {
// Provided methods
fn from_bucket_index(i: usize) -> Self { ... }
fn into_bucket_index(self) -> usize { ... }
fn low_bits_are_zero(self, num_bits: usize) -> bool { ... }
}
Expand description
Types we can use as full width keys
Provided Methods§
Sourcefn from_bucket_index(i: usize) -> Self
fn from_bucket_index(i: usize) -> Self
Build a Key from a bucket index.
Panics if the index is out of range.
Sourcefn into_bucket_index(self) -> usize
fn into_bucket_index(self) -> usize
Convert this Key back into a bucket index.
Panics if the value would not fit in a usize
. No other range
checking on the bucket index is enforced here.
Sourcefn low_bits_are_zero(self, num_bits: usize) -> bool
fn low_bits_are_zero(self, num_bits: usize) -> bool
Check if the N low bits of the key are zero.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.