pub trait Radixable<K: RadixKey>: Copy + PartialOrd {
type Key: RadixKey + Dispatcher<Self, K>;
Show 22 methods
// Required method
fn key(&self) -> Self::Key;
// Provided methods
fn extract(
&self,
mask: <<Self as Radixable<K>>::Key as RadixKey>::Key,
shift: usize
) -> usize { ... }
fn into_key_type(&self) -> <<Self as Radixable<K>>::Key as RadixKey>::Key { ... }
fn type_size(&self) -> usize { ... }
fn usize_to_keytype(
&self,
item: usize
) -> <<Self as Radixable<K>>::Key as RadixKey>::Key { ... }
fn keytype_to_usize(
&self,
item: <<Self as Radixable<K>>::Key as RadixKey>::Key
) -> usize { ... }
fn default_mask(
&self,
radix: usize
) -> <<Self as Radixable<K>>::Key as RadixKey>::Key { ... }
fn get_mask_and_shift(
&self,
p: &Params
) -> (<<Self as Radixable<K>>::Key as RadixKey>::Key, usize) { ... }
fn get_mask_and_shift_from_left(
&self,
p: &Params
) -> (<<Self as Radixable<K>>::Key as RadixKey>::Key, usize) { ... }
fn to_generic(&self, _value: usize) -> Self { ... }
fn compute_offset(&self, arr: &mut [Self], radix: usize) -> (usize, usize) { ... }
fn get_max_key(
&self,
arr: &mut [Self]
) -> <<Self as Radixable<K>>::Key as RadixKey>::Key { ... }
fn compute_max_level(&self, offset: usize, radix: usize) -> usize { ... }
fn default_key(&self) -> <<Self as Radixable<K>>::Key as RadixKey>::Key { ... }
fn one(&self) -> <<Self as Radixable<K>>::Key as RadixKey>::Key { ... }
fn is_i32(&self) -> bool { ... }
fn is_i64(&self) -> bool { ... }
fn is_i128(&self) -> bool { ... }
fn mask_for_high_bits(
&self,
radix: usize,
offset: usize,
max_level: usize
) -> <<Self as Radixable<K>>::Key as RadixKey>::Key { ... }
fn get_full_histograms(
&self,
arr: &mut [Self],
p: &Params
) -> Vec<Vec<usize>> { ... }
fn voracious_sort(&self, arr: &mut [Self]) { ... }
fn voracious_stable_sort(&self, arr: &mut [Self]) { ... }
}