Trait ph::fmph::goindexing::SeedSize

source ·
pub trait SeedSize: Copy + Into<u8> + Sync + TryFrom<u8, Error = &'static str> {
    type VecElement: Copy + Send + Sync + Sized + GetSize;

    // Required methods
    fn new_seed_vec(
        &self,
        seed: u16,
        number_of_seeds: usize
    ) -> Box<[Self::VecElement]>;
    fn get_seed(&self, vec: &[Self::VecElement], index: usize) -> u16;
    fn set_seed(&self, vec: &mut [Self::VecElement], index: usize, seed: u16);
    fn write_seed_vec(
        &self,
        output: &mut dyn Write,
        seeds: &[Self::VecElement]
    ) -> Result<()>;
    fn read_seed_vec(
        input: &mut dyn Read,
        number_of_seeds: usize
    ) -> Result<(Self, Box<[Self::VecElement]>)>;

    // Provided methods
    fn validate(&self) -> Result<Self, &'static str> { ... }
    fn new_zeroed_seed_vec(
        &self,
        number_of_seeds: usize
    ) -> Box<[Self::VecElement]> { ... }
    fn init_seed(&self, vec: &mut [Self::VecElement], index: usize, seed: u16) { ... }
    fn concatenate_seed_vecs(
        &self,
        level_sizes: &[u64],
        group_seeds: Vec<Box<[Self::VecElement]>>
    ) -> Box<[Self::VecElement]> { ... }
    fn write(&self, output: &mut dyn Write) -> Result<()> { ... }
    fn read(input: &mut dyn Read) -> Result<Self> { ... }
}
Expand description

Implementations of SeedSize represent seed size in fingerprinting-based minimal perfect hashing with group optimization.

Required Associated Types§

Required Methods§

source

fn new_seed_vec( &self, seed: u16, number_of_seeds: usize ) -> Box<[Self::VecElement]>

source

fn get_seed(&self, vec: &[Self::VecElement], index: usize) -> u16

source

fn set_seed(&self, vec: &mut [Self::VecElement], index: usize, seed: u16)

source

fn write_seed_vec( &self, output: &mut dyn Write, seeds: &[Self::VecElement] ) -> Result<()>

source

fn read_seed_vec( input: &mut dyn Read, number_of_seeds: usize ) -> Result<(Self, Box<[Self::VecElement]>)>

Provided Methods§

source

fn validate(&self) -> Result<Self, &'static str>

source

fn new_zeroed_seed_vec(&self, number_of_seeds: usize) -> Box<[Self::VecElement]>

source

fn init_seed(&self, vec: &mut [Self::VecElement], index: usize, seed: u16)

source

fn concatenate_seed_vecs( &self, level_sizes: &[u64], group_seeds: Vec<Box<[Self::VecElement]>> ) -> Box<[Self::VecElement]>

source

fn write(&self, output: &mut dyn Write) -> Result<()>

Writes self to output.

source

fn read(input: &mut dyn Read) -> Result<Self>

Reads Self from input.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl SeedSize for Bits8

source§

impl SeedSize for Bits

source§

impl<const LOG2_BITS: u8> SeedSize for TwoToPowerBitsStatic<LOG2_BITS>