pub struct WangRefIndex { /* private fields */ }Expand description
Prebuilt single-reference index for WangMatcher.
WangMatcher::match_one rebuilds the reference’s inverted index on
every call (SortedPostings::build is O(R log R) per match —
audit C1). When the same reference is matched repeatedly (batch 1:1,
query loops against a fixed catalog, streaming identification), build
the WangRefIndex once and call
WangMatcher::match_one_prebuilt; the per-query cost then drops to
the pure O(Q log U + range) voting pass, and the index applies the
same stop-hash filter the 1:1 path would.
The two entry points are guaranteed to agree: match_one is defined
as build-then-match_one_prebuilt, so results are identical by
construction.
Implementations§
Source§impl WangRefIndex
impl WangRefIndex
Sourcepub fn build(reference: &WangFingerprint, cfg: &WangMatchConfig) -> Option<Self>
pub fn build(reference: &WangFingerprint, cfg: &WangMatchConfig) -> Option<Self>
Build the index for reference using the stop-hash policy from
cfg (max_postings_per_hash). Returns None when the reference
has no hashes or every hash is filtered out — the same conditions
under which match_one returns MatchResult::NONE.
Auto Trait Implementations§
impl Freeze for WangRefIndex
impl RefUnwindSafe for WangRefIndex
impl Send for WangRefIndex
impl Sync for WangRefIndex
impl Unpin for WangRefIndex
impl UnsafeUnpin for WangRefIndex
impl UnwindSafe for WangRefIndex
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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> ⓘ
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> ⓘ
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