Struct JoinEngine

Source
pub struct JoinEngine<'a, TIndex: Serialize + Hash + Clone + Eq + Ord> {
    pub idx_this: &'a HashableIndex<TIndex>,
    pub idx_other: &'a HashableIndex<TIndex>,
}
Expand description

JoinEngine is responsible for join logic, it consists of two indicies. idx_this is the LHS and idx_other is the RHS. Indicies are passed by reference

Fields§

§idx_this: &'a HashableIndex<TIndex>§idx_other: &'a HashableIndex<TIndex>

Implementations§

Source§

impl<'a, TIndex: Serialize + Hash + Clone + Eq + Ord> JoinEngine<'a, TIndex>

Source

pub fn get_inner_hash_joined_indicies(&self) -> Vec<IndexJoinPair>

Hash inner join

Source

pub fn get_left_hash_joined_indicies( &self, ) -> Vec<IndexJoinPotentiallyUnmatchedPair>

Hash join left. All left values are joined so no Option on the base index

Source

pub fn get_left_merge_joined_indicies( &self, ) -> Vec<IndexJoinPotentiallyUnmatchedPair>

Left Merge Join

Source

pub fn get_inner_merge_joined_indicies(&self) -> Vec<IndexJoinPair>

merge sort join join a and b.

Source

pub fn get_asof_merge_joined_indicies( &self, compare_func: Option<Box<dyn Fn(&TIndex, &TIndex, &TIndex) -> (Ordering, i64)>>, other_idx_func: Option<Box<dyn Fn(usize) -> usize>>, ) -> Vec<IndexJoinPotentiallyUnmatchedPair>

as of join. this is a variation of merge join that allows for indicies to be equal based on a custom comperator func

Auto Trait Implementations§

§

impl<'a, TIndex> Freeze for JoinEngine<'a, TIndex>

§

impl<'a, TIndex> RefUnwindSafe for JoinEngine<'a, TIndex>
where TIndex: RefUnwindSafe,

§

impl<'a, TIndex> Send for JoinEngine<'a, TIndex>
where TIndex: Sync,

§

impl<'a, TIndex> Sync for JoinEngine<'a, TIndex>
where TIndex: Sync,

§

impl<'a, TIndex> Unpin for JoinEngine<'a, TIndex>

§

impl<'a, TIndex> UnwindSafe for JoinEngine<'a, TIndex>
where TIndex: RefUnwindSafe,

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.