Struct dfir_rs::compiled::pull::HalfSetJoinState
source · pub struct HalfSetJoinState<Key, ValBuild, ValProbe> { /* private fields */ }
Trait Implementations§
source§impl<Key, ValBuild, ValProbe> Clear for HalfSetJoinState<Key, ValBuild, ValProbe>
impl<Key, ValBuild, ValProbe> Clear for HalfSetJoinState<Key, ValBuild, ValProbe>
source§impl<Key: Debug, ValBuild: Debug, ValProbe: Debug> Debug for HalfSetJoinState<Key, ValBuild, ValProbe>
impl<Key: Debug, ValBuild: Debug, ValProbe: Debug> Debug for HalfSetJoinState<Key, ValBuild, ValProbe>
source§impl<Key, ValBuild, ValProbe> Default for HalfSetJoinState<Key, ValBuild, ValProbe>
impl<Key, ValBuild, ValProbe> Default for HalfSetJoinState<Key, ValBuild, ValProbe>
source§impl<Key, ValBuild, ValProbe> HalfJoinState<Key, ValBuild, ValProbe> for HalfSetJoinState<Key, ValBuild, ValProbe>
impl<Key, ValBuild, ValProbe> HalfJoinState<Key, ValBuild, ValProbe> for HalfSetJoinState<Key, ValBuild, ValProbe>
source§fn build(&mut self, k: Key, v: &ValBuild) -> bool
fn build(&mut self, k: Key, v: &ValBuild) -> bool
Insert a key value pair into the join state, currently this is always inserting into a hash table
If the key-value pair exists then it is implementation defined what happens, usually either two copies are stored or only one copy is stored.
source§fn probe(&mut self, k: &Key, v: &ValProbe) -> Option<(Key, ValProbe, ValBuild)>
fn probe(&mut self, k: &Key, v: &ValProbe) -> Option<(Key, ValProbe, ValBuild)>
This function does the actual joining part of the join. It looks up a key in the local join state and creates matches
The first match is return directly to the caller, and any additional matches are stored internally to be retrieved later with
pop_match
fn full_probe(&self, k: &Key) -> Iter<'_, ValBuild>
source§fn pop_match(&mut self) -> Option<(Key, ValProbe, ValBuild)>
fn pop_match(&mut self) -> Option<(Key, ValProbe, ValBuild)>
If there are any stored matches from previous calls to probe then this function will remove them one at a time and return it.
fn len(&self) -> usize
fn iter(&self) -> Iter<'_, Key, SmallVec<[ValBuild; 1]>>
fn is_empty(&self) -> bool
Auto Trait Implementations§
impl<Key, ValBuild, ValProbe> Freeze for HalfSetJoinState<Key, ValBuild, ValProbe>
impl<Key, ValBuild, ValProbe> RefUnwindSafe for HalfSetJoinState<Key, ValBuild, ValProbe>
impl<Key, ValBuild, ValProbe> Send for HalfSetJoinState<Key, ValBuild, ValProbe>
impl<Key, ValBuild, ValProbe> Sync for HalfSetJoinState<Key, ValBuild, ValProbe>
impl<Key, ValBuild, ValProbe> Unpin for HalfSetJoinState<Key, ValBuild, ValProbe>
impl<Key, ValBuild, ValProbe> UnwindSafe for HalfSetJoinState<Key, ValBuild, ValProbe>
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more