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§
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]>
Object Safety§
This trait is not object safe.