[][src]Trait voracious_radix_sort::traits::radixable::Radixable

pub trait Radixable<K: RadixKey>: Sized + Copy + PartialOrd + Send + Sync {
    type Key: RadixKey + Dispatcher<Self, K>;
    fn key(&self) -> Self::Key;

    fn extract(&self, mask: <Self::Key as RadixKey>::Key, shift: usize) -> usize { ... }
fn into_key_type(&self) -> <Self::Key as RadixKey>::Key { ... }
fn type_size(&self) -> usize { ... }
fn usize_to_keytype(&self, item: usize) -> <Self::Key as RadixKey>::Key { ... }
fn keytype_to_usize(&self, item: <Self::Key as RadixKey>::Key) -> usize { ... }
fn default_mask(&self, radix: usize) -> <Self::Key as RadixKey>::Key { ... }
fn get_mask_and_shift(
        &self,
        p: &Params
    ) -> (<Self::Key as RadixKey>::Key, usize) { ... }
fn get_mask_and_shift_from_left(
        &self,
        p: &Params
    ) -> (<Self::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::Key as RadixKey>::Key { ... }
fn compute_max_level(&self, offset: usize, radix: usize) -> usize { ... }
fn default_key(&self) -> <Self::Key as RadixKey>::Key { ... }
fn one(&self) -> <Self::Key as RadixKey>::Key { ... }
fn mask_for_high_bits(
        &self,
        radix: usize,
        offset: usize,
        max_level: usize
    ) -> <Self::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]) { ... } }

Associated Types

type Key: RadixKey + Dispatcher<Self, K>

Loading content...

Required methods

fn key(&self) -> Self::Key

Loading content...

Provided methods

fn extract(&self, mask: <Self::Key as RadixKey>::Key, shift: usize) -> usize

fn into_key_type(&self) -> <Self::Key as RadixKey>::Key

fn type_size(&self) -> usize

fn usize_to_keytype(&self, item: usize) -> <Self::Key as RadixKey>::Key

fn keytype_to_usize(&self, item: <Self::Key as RadixKey>::Key) -> usize

fn default_mask(&self, radix: usize) -> <Self::Key as RadixKey>::Key

fn get_mask_and_shift(
    &self,
    p: &Params
) -> (<Self::Key as RadixKey>::Key, usize)

fn get_mask_and_shift_from_left(
    &self,
    p: &Params
) -> (<Self::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::Key as RadixKey>::Key

fn compute_max_level(&self, offset: usize, radix: usize) -> usize

fn default_key(&self) -> <Self::Key as RadixKey>::Key

fn one(&self) -> <Self::Key as RadixKey>::Key

fn mask_for_high_bits(
    &self,
    radix: usize,
    offset: usize,
    max_level: usize
) -> <Self::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])

Loading content...

Implementations on Foreign Types

impl Radixable<bool> for bool[src]

impl Radixable<char> for char[src]

type Key = char

impl Radixable<f32> for f32[src]

type Key = f32

impl Radixable<f64> for f64[src]

type Key = f64

impl Radixable<i8> for i8[src]

type Key = i8

impl Radixable<i16> for i16[src]

type Key = i16

impl Radixable<i32> for i32[src]

type Key = i32

impl Radixable<i64> for i64[src]

type Key = i64

impl Radixable<i128> for i128[src]

type Key = i128

impl Radixable<u8> for u8[src]

type Key = u8

impl Radixable<u16> for u16[src]

type Key = u16

impl Radixable<u32> for u32[src]

type Key = u32

impl Radixable<u64> for u64[src]

type Key = u64

impl Radixable<u128> for u128[src]

type Key = u128

Loading content...

Implementors

Loading content...