Trait discrimination::discriminator::Discriminator
[−]
[src]
pub trait Discriminator<'a, K: 'a> { fn discriminate_sorted<V: 'a, I>(
&'a self,
pairs: I
) -> DiscriminateSorted<'a, K, V>
where
I: IntoIterator,
I::Item: Into<(K, V)>,
I::IntoIter: DoubleEndedIterator + 'a; fn by_ref(&'a self) -> &'a Self { ... } fn invert(self) -> Invert<Self>
where
Self: Sized, { ... } fn map_key<J: 'a, F>(self, f: F) -> Map<F, Self>
where
Self: Sized,
F: Fn(J) -> K, { ... } fn sum_left<J: 'a, D>(self, other: D) -> Sum<Self, D>
where
Self: Sized,
D: Discriminator<'a, J>, { ... } fn sum_right<J: 'a, D>(self, other: D) -> Sum<Self, D>
where
Self: Sized,
D: Discriminator<'a, J>, { ... } fn product_left<J: 'a, D>(self, other: D) -> Product<Self, D>
where
Self: Sized,
D: Discriminator<'a, J>, { ... } fn product_right<J: 'a, D>(self, other: D) -> Product<Self, D>
where
Self: Sized,
D: Discriminator<'a, J>, { ... } }
Required Methods
fn discriminate_sorted<V: 'a, I>(
&'a self,
pairs: I
) -> DiscriminateSorted<'a, K, V> where
I: IntoIterator,
I::Item: Into<(K, V)>,
I::IntoIter: DoubleEndedIterator + 'a,
&'a self,
pairs: I
) -> DiscriminateSorted<'a, K, V> where
I: IntoIterator,
I::Item: Into<(K, V)>,
I::IntoIter: DoubleEndedIterator + 'a,
Provided Methods
fn by_ref(&'a self) -> &'a Self
fn invert(self) -> Invert<Self> where
Self: Sized,
Self: Sized,
fn map_key<J: 'a, F>(self, f: F) -> Map<F, Self> where
Self: Sized,
F: Fn(J) -> K,
Self: Sized,
F: Fn(J) -> K,
fn sum_left<J: 'a, D>(self, other: D) -> Sum<Self, D> where
Self: Sized,
D: Discriminator<'a, J>,
Self: Sized,
D: Discriminator<'a, J>,
fn sum_right<J: 'a, D>(self, other: D) -> Sum<Self, D> where
Self: Sized,
D: Discriminator<'a, J>,
Self: Sized,
D: Discriminator<'a, J>,
fn product_left<J: 'a, D>(self, other: D) -> Product<Self, D> where
Self: Sized,
D: Discriminator<'a, J>,
Self: Sized,
D: Discriminator<'a, J>,
fn product_right<J: 'a, D>(self, other: D) -> Product<Self, D> where
Self: Sized,
D: Discriminator<'a, J>,
Self: Sized,
D: Discriminator<'a, J>,
Implementors
impl<'a, K: 'a, D: ?Sized> Discriminator<'a, K> for &'a D where
D: Discriminator<'a, K>,impl<'a, K: 'a, D: ?Sized> Discriminator<'a, K> for &'a mut D where
D: Discriminator<'a, K>,impl<'a, K: 'a, D: ?Sized> Discriminator<'a, K> for Box<D> where
D: Discriminator<'a, K>,impl<'a, K: 'a> Discriminator<'a, K> for Trivial
impl<'a> Discriminator<'a, usize> for Natural
impl<'a> Discriminator<'a, u8> for U8
impl<'a> Discriminator<'a, u16> for U16
impl<'a, K: 'a, D: ?Sized> Discriminator<'a, K> for Invert<D> where
D: Discriminator<'a, K>,impl<'a, K: 'a, J: 'a, F, D: ?Sized> Discriminator<'a, K> for Map<F, D> where
D: Discriminator<'a, J>,
F: Fn(K) -> J,impl<'a, J: 'a, K: 'a, L, R: ?Sized> Discriminator<'a, Either<J, K>> for Sum<L, R> where
L: Discriminator<'a, J>,
R: Discriminator<'a, K>,impl<'a, J: 'a, K: 'a, L, R: ?Sized> Discriminator<'a, (J, K)> for Product<L, R> where
L: Discriminator<'a, J>,
R: Discriminator<'a, K>,