pub struct StreamingQuery<const K: usize>{ /* private fields */ }Expand description
Streaming query engine for efficient consecutive k-mer lookups
This struct maintains state across multiple lookups to optimize queries for sliding windows over sequences.
§Example
use sshash_lib::streaming_query::StreamingQuery;
// Assuming we have a dictionary...
// let mut query = StreamingQuery::new(&dict, true); // canonical=true
//
// Process consecutive k-mers efficiently
// let result1 = query.lookup("ACGTACGTACGTACGTACGTACGTACGTACG");
// let result2 = query.lookup("CGTACGTACGTACGTACGTACGTACGTACGT"); // Sliding by 1Implementations§
Source§impl<const K: usize> StreamingQuery<K>
impl<const K: usize> StreamingQuery<K>
Sourcepub fn new(k: usize, m: usize, canonical: bool) -> Self
pub fn new(k: usize, m: usize, canonical: bool) -> Self
Create a new streaming query engine
§Arguments
k- K-mer sizem- Minimizer sizecanonical- Whether to use canonical k-mers (min of forward/RC)
Sourcepub fn lookup(&mut self, kmer_bytes: &[u8]) -> LookupResult
pub fn lookup(&mut self, kmer_bytes: &[u8]) -> LookupResult
Sourcepub fn lookup_with_dict(
&mut self,
kmer_bytes: &[u8],
dict: &Dictionary,
) -> LookupResult
pub fn lookup_with_dict( &mut self, kmer_bytes: &[u8], dict: &Dictionary, ) -> LookupResult
Perform a streaming lookup with dictionary integration.
Accepts a &Dictionary at call time rather than storing a reference,
so callers can manage the dictionary’s lifetime independently (e.g. via Arc).
Sourcepub fn num_searches(&self) -> u64
pub fn num_searches(&self) -> u64
Get the number of full searches performed
Sourcepub fn num_extensions(&self) -> u64
pub fn num_extensions(&self) -> u64
Get the number of extensions (no search needed)
Sourcepub fn num_positive_lookups(&self) -> u64
pub fn num_positive_lookups(&self) -> u64
Get the number of positive lookups (found)
Sourcepub fn num_negative_lookups(&self) -> u64
pub fn num_negative_lookups(&self) -> u64
Get the number of negative lookups (not found)
Sourcepub fn num_invalid_lookups(&self) -> u64
pub fn num_invalid_lookups(&self) -> u64
Get the number of invalid lookups (malformed input)
Auto Trait Implementations§
impl<const K: usize> !Freeze for StreamingQuery<K>
impl<const K: usize> !RefUnwindSafe for StreamingQuery<K>
impl<const K: usize> Send for StreamingQuery<K>
impl<const K: usize> Sync for StreamingQuery<K>
impl<const K: usize> !Unpin for StreamingQuery<K>
impl<const K: usize> !UnsafeUnpin for StreamingQuery<K>
impl<const K: usize> !UnwindSafe for StreamingQuery<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.