pub struct Encoder<const K: usize>{ /* private fields */ }Expand description
Encoder for building SPSS from DNA sequences
Accumulates sequences, encodes them to 2-bit format, tracks offsets, and builds the final SPSS structure.
IMPORTANT: Bases are packed contiguously across sequences without
byte-boundary padding. This means base_idx / 4 always gives the correct
byte and (base_idx % 4) * 2 gives the correct bit offset within that byte.
Implementations§
Source§impl<const K: usize> Encoder<K>
impl<const K: usize> Encoder<K>
Sourcepub fn add_sequence(&mut self, sequence: &[u8]) -> Result<()>
pub fn add_sequence(&mut self, sequence: &[u8]) -> Result<()>
Add a DNA sequence to the encoder
Bases are packed contiguously into the byte buffer without padding between sequences, so decode_kmer can use simple base_idx/4 arithmetic.
§Arguments
sequence- DNA sequence (A, C, G, T only)
§Errors
Returns error if sequence contains invalid characters or is too short
Sourcepub fn num_strings(&self) -> u64
pub fn num_strings(&self) -> u64
Get the current number of strings
Sourcepub fn build(self, m: usize) -> SpectrumPreservingStringSet
pub fn build(self, m: usize) -> SpectrumPreservingStringSet
Build the final SpectrumPreservingStringSet
Consumes the encoder and returns the SPSS.
Trait Implementations§
Auto Trait Implementations§
impl<const K: usize> Freeze for Encoder<K>
impl<const K: usize> RefUnwindSafe for Encoder<K>
impl<const K: usize> Send for Encoder<K>
impl<const K: usize> Sync for Encoder<K>
impl<const K: usize> Unpin for Encoder<K>
impl<const K: usize> UnsafeUnpin for Encoder<K>
impl<const K: usize> UnwindSafe for Encoder<K>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
Source§impl<T> DowncastableFrom<T> for T
impl<T> DowncastableFrom<T> for T
Source§fn downcast_from(value: T) -> T
fn downcast_from(value: T) -> T
Truncate the current UnsignedInt to a possibly smaller size
Source§impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> UpcastableFrom<T> for T
impl<T> UpcastableFrom<T> for T
Source§fn upcast_from(value: T) -> T
fn upcast_from(value: T) -> T
Extend the current UnsignedInt to a possibly bigger size.