pub trait OrderingOrBool<L, R> {
    type MergeResult;

    // Required methods
    fn left(left: L) -> Self::MergeResult;
    fn right(right: R) -> Self::MergeResult;
    fn merge(
        &mut self,
        left: L,
        right: R
    ) -> (Option<L>, Option<R>, Self::MergeResult);
    fn size_hint(
        left: (usize, Option<usize>),
        right: (usize, Option<usize>)
    ) -> (usize, Option<usize>);
}

Required Associated Types§

Required Methods§

source

fn left(left: L) -> Self::MergeResult

source

fn right(right: R) -> Self::MergeResult

source

fn merge( &mut self, left: L, right: R ) -> (Option<L>, Option<R>, Self::MergeResult)

source

fn size_hint( left: (usize, Option<usize>), right: (usize, Option<usize>) ) -> (usize, Option<usize>)

Implementors§

source§

impl<L, R, F: FnMut(&L, &R) -> Ordering> OrderingOrBool<L, R> for MergeFuncLR<F, Ordering>

source§

impl<L, R, F: FnMut(&L, &R) -> bool> OrderingOrBool<L, R> for MergeFuncLR<F, bool>

§

type MergeResult = Either<L, R>

source§

impl<T, F: FnMut(&T, &T) -> bool> OrderingOrBool<T, T> for F

§

type MergeResult = T

source§

impl<T: PartialOrd> OrderingOrBool<T, T> for MergeLte

§

type MergeResult = T