Skip to main content

StreamingQueryEngine

Struct StreamingQueryEngine 

Source
pub struct StreamingQueryEngine<'a, const K: usize>
where Kmer<K>: KmerBits,
{ /* private fields */ }
Expand description

Streaming query engine integrated with Dictionary

This provides the full streaming query functionality by connecting to a Dictionary instance for actual k-mer lookups.

Implementations§

Source§

impl<'a, const K: usize> StreamingQueryEngine<'a, K>
where Kmer<K>: KmerBits,

Source

pub fn new(dict: &'a Dictionary) -> Self

Create a new streaming query engine for a dictionary

Source

pub fn reset(&mut self)

Reset the query state

Source

pub fn lookup(&mut self, kmer_bytes: &[u8]) -> LookupResult

Perform a streaming lookup

Source

pub fn num_searches(&self) -> u64

Get the number of full searches performed

Source

pub fn num_extensions(&self) -> u64

Get the number of extensions (no search needed)

Source

pub fn stats(&self) -> StreamingQueryStats

Get statistics

Trait Implementations§

Source§

impl<'a, const K: usize> KmerStreamingQuery for StreamingQueryEngine<'a, K>
where Kmer<K>: KmerBits,

Source§

const PREFERS_BITS: bool = false

Hint to hot-loop callers: does this engine benefit from receiving pre-computed canonical k-mer bits? Byte-oriented engines (e.g. sshash) set this to false so callers skip the canonicalization/bit conversion work; bit-oriented engines (e.g. tiny-dict) set it to true.
Source§

fn reset(&mut self)

Drop any streaming state so the next lookup parses its k-mer from scratch.
Source§

fn lookup(&mut self, kmer_bytes: &[u8]) -> LookupResult

Look up a single k-mer (ASCII bytes, length = k).
Source§

fn lookup_bits( &mut self, _canonical_bits: u64, _fw_is_canonical: bool, fw_bytes: &[u8], ) -> LookupResult

Look up by pre-parsed canonical k-mer bits plus the original FW bytes. Read more
Source§

fn num_searches(&self) -> u64

Number of lookups that required a full dictionary search (slow path).
Source§

fn num_extensions(&self) -> u64

Number of lookups resolved by extending along the current unitig (fast path).
Source§

fn skip_anchor_along_string(&mut self, _read_offset: i32) -> bool

Offset the current anchor along its SPSS string by read_offset read-positions, without performing a full lookup. Returns true when the anchor was successfully shifted (the caller must have independently verified the sequence agreement, e.g. via a direct SPSS compare), and subsequent consecutive lookups may use the fast path. Returns false if the engine has no anchor concept, no current anchor, or the shifted position would leave the string. Read more

Auto Trait Implementations§

§

impl<'a, const K: usize> !Freeze for StreamingQueryEngine<'a, K>

§

impl<'a, const K: usize> !RefUnwindSafe for StreamingQueryEngine<'a, K>

§

impl<'a, const K: usize> Send for StreamingQueryEngine<'a, K>
where Kmer<K>: Sized,

§

impl<'a, const K: usize> Sync for StreamingQueryEngine<'a, K>
where Kmer<K>: Sized,

§

impl<'a, const K: usize> !Unpin for StreamingQueryEngine<'a, K>

§

impl<'a, const K: usize> !UnsafeUnpin for StreamingQueryEngine<'a, K>

§

impl<'a, const K: usize> !UnwindSafe for StreamingQueryEngine<'a, K>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CastableFrom<T> for T

Source§

fn cast_from(value: T) -> T

Call Self as W
Source§

impl<T, U> CastableInto<U> for T
where U: CastableFrom<T>,

Source§

fn cast(self) -> U

Call W::cast_from(self)
Source§

impl<T> DowncastableFrom<T> for T

Source§

fn downcast_from(value: T) -> T

Truncate the current UnsignedInt to a possibly smaller size
Source§

impl<T, U> DowncastableInto<U> for T
where U: DowncastableFrom<T>,

Source§

fn downcast(self) -> U

Call W::downcast_from(self)
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Splat<T> for T

Source§

fn splat(value: T) -> T

Source§

impl<T> To<T> for T

Source§

fn to(self) -> T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UpcastableFrom<T> for T

Source§

fn upcast_from(value: T) -> T

Extend the current UnsignedInt to a possibly bigger size.
Source§

impl<T, U> UpcastableInto<U> for T
where U: UpcastableFrom<T>,

Source§

fn upcast(self) -> U

Call W::upcast_from(self)
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more