pub struct QuadConstraintStream<S, A, K, E, KE, F, Sc>where
Sc: Score,{ /* private fields */ }Implementations§
Source§impl<S, A, K, E, KE, Sc> QuadConstraintStream<S, A, K, E, KE, TrueFilter, Sc>
impl<S, A, K, E, KE, Sc> QuadConstraintStream<S, A, K, E, KE, TrueFilter, Sc>
pub fn new_self_join(extractor: E, key_extractor: KE) -> Self
Source§impl<S, A, K, E, KE, F, Sc> QuadConstraintStream<S, A, K, E, KE, F, Sc>
impl<S, A, K, E, KE, F, Sc> QuadConstraintStream<S, A, K, E, KE, F, Sc>
pub fn new_self_join_with_filter( extractor: E, key_extractor: KE, filter: F, ) -> Self
pub fn filter<P>( self, predicate: P, ) -> QuadConstraintStream<S, A, K, E, KE, AndQuadFilter<F, FnQuadFilter<impl Fn(&S, &A, &A, &A, &A, usize, usize, usize, usize) -> bool + Send + Sync>>, Sc>
Sourcepub fn group_by<GK, GF, Co, V, R, Acc>(
self,
key: GF,
collector: Co,
) -> JoinedGroupedStream<S, FilterNode<SelfJoinNode<S, A, CollectionNode<S, E>, K, KE, 4>, impl Fn(&S, &[Leaf<'_, A>; 4]) -> bool + Send + Sync>, impl Fn(&[Leaf<'_, A>; 4]) -> GK + Send + Sync, TupleCollector<Co, V, R, Acc>, GK, V, R, Acc, Sc>where
E: 'static,
KE: 'static,
F: 'static,
K: 'static,
GK: Eq + Hash + Clone + Send + Sync + 'static,
GF: Fn(&A, &A, &A, &A) -> GK + Send + Sync + 'static,
Co: for<'i> Collector<(&'i A, &'i A, &'i A, &'i A), Value = V, Result = R, Accumulator = Acc> + 'static,
V: Send + Sync + 'static,
R: Send + Sync + 'static,
Acc: Accumulator<V, R> + 'static,
for<'i> TupleCollector<Co, V, R, Acc>: Collector<[Leaf<'i, A>; 4], Value = V, Result = R, Accumulator = Acc>,
pub fn group_by<GK, GF, Co, V, R, Acc>(
self,
key: GF,
collector: Co,
) -> JoinedGroupedStream<S, FilterNode<SelfJoinNode<S, A, CollectionNode<S, E>, K, KE, 4>, impl Fn(&S, &[Leaf<'_, A>; 4]) -> bool + Send + Sync>, impl Fn(&[Leaf<'_, A>; 4]) -> GK + Send + Sync, TupleCollector<Co, V, R, Acc>, GK, V, R, Acc, Sc>where
E: 'static,
KE: 'static,
F: 'static,
K: 'static,
GK: Eq + Hash + Clone + Send + Sync + 'static,
GF: Fn(&A, &A, &A, &A) -> GK + Send + Sync + 'static,
Co: for<'i> Collector<(&'i A, &'i A, &'i A, &'i A), Value = V, Result = R, Accumulator = Acc> + 'static,
V: Send + Sync + 'static,
R: Send + Sync + 'static,
Acc: Accumulator<V, R> + 'static,
for<'i> TupleCollector<Co, V, R, Acc>: Collector<[Leaf<'i, A>; 4], Value = V, Result = R, Accumulator = Acc>,
Groups each matching tuple, preserving upstream filters.
pub fn penalize<W>( self, weight: W, ) -> QuadConstraintBuilder<S, A, K, E, KE, F, impl Fn(&A, &A, &A, &A) -> Sc + Send + Sync, Sc>
pub fn reward<W>( self, weight: W, ) -> QuadConstraintBuilder<S, A, K, E, KE, F, impl Fn(&A, &A, &A, &A) -> Sc + Send + Sync, Sc>
Source§impl<S, A, K, E, KE, F, Sc> QuadConstraintStream<S, A, K, E, KE, F, Sc>
impl<S, A, K, E, KE, F, Sc> QuadConstraintStream<S, A, K, E, KE, F, Sc>
pub fn join<J>(
self,
joiner: J,
) -> PentaConstraintStream<S, A, K, E, KE, impl PentaFilter<S, A, A, A, A, A>, Sc>where
J: Joiner<A, A> + 'static,
F: 'static,
Trait Implementations§
Auto Trait Implementations§
impl<S, A, K, E, KE, F, Sc> Freeze for QuadConstraintStream<S, A, K, E, KE, F, Sc>
impl<S, A, K, E, KE, F, Sc> RefUnwindSafe for QuadConstraintStream<S, A, K, E, KE, F, Sc>where
E: RefUnwindSafe,
KE: RefUnwindSafe,
F: RefUnwindSafe,
PhantomData<(fn() -> S, fn() -> A, fn() -> K, fn() -> Sc)>: RefUnwindSafe,
impl<S, A, K, E, KE, F, Sc> Send for QuadConstraintStream<S, A, K, E, KE, F, Sc>
impl<S, A, K, E, KE, F, Sc> Sync for QuadConstraintStream<S, A, K, E, KE, F, Sc>
impl<S, A, K, E, KE, F, Sc> Unpin for QuadConstraintStream<S, A, K, E, KE, F, Sc>
impl<S, A, K, E, KE, F, Sc> UnsafeUnpin for QuadConstraintStream<S, A, K, E, KE, F, Sc>where
E: UnsafeUnpin,
KE: UnsafeUnpin,
F: UnsafeUnpin,
PhantomData<(fn() -> S, fn() -> A, fn() -> K, fn() -> Sc)>: UnsafeUnpin,
impl<S, A, K, E, KE, F, Sc> UnwindSafe for QuadConstraintStream<S, A, K, E, KE, F, Sc>where
E: UnwindSafe,
KE: UnwindSafe,
F: UnwindSafe,
PhantomData<(fn() -> S, fn() -> A, fn() -> K, fn() -> Sc)>: UnwindSafe,
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