Trait parry::Expression [] [src]

pub trait Expression: Send {
    type Element: Send;
    type Values: Iterator<Item=Self::Element> + DoubleEndedIterator;
    type Rev: Expression<Element=Self::Element>;
    fn length(&self) -> Length;
    fn values(self) -> Self::Values;
    fn split(self, round_up: bool) -> (Self, Self);
    fn rev(self) -> Self::Rev;

    fn sum<T>(self) -> Self::Element where Self: Sized + Expression<Element=T>, T: Zero + Add<T, Output=T> { ... }
    fn max(self) -> Max::Output where Self: Sized, Max: Reduce<Self::Element> { ... }
    fn min(self) -> Min::Output where Self: Sized, Min: Reduce<Self::Element> { ... }
    fn zip<E2: Expression>(self, e: E2) -> Zip<Self, E2> where Self: Sized { ... }
    fn map<O, F: FnMut(Self::Element) -> O>(self, f: F) -> Map<Self, F> where Self: Sized { ... }
    fn switch<T, E>(self, then: T, else_: E) -> Switch<Self, T, E> where Self: Sized + Expression<Element=bool>, T: Expression, E: Expression<Element=T::Element> { ... }
    fn eq<E>(self, other: E) -> Eq<Self, E> where Self: Sized, E: Expression, Self::Element: PartialEq<E::Element> { ... }
    fn ne<E>(self, other: E) -> Ne<Self, E> where Self: Sized, E: Expression, Self::Element: PartialEq<E::Element> { ... }
    fn lt<E>(self, other: E) -> Lt<Self, E> where Self: Sized, E: Expression, Self::Element: PartialOrd<E::Element> { ... }
    fn le<E>(self, other: E) -> Le<Self, E> where Self: Sized, E: Expression, Self::Element: PartialOrd<E::Element> { ... }
    fn gt<E>(self, other: E) -> Gt<Self, E> where Self: Sized, E: Expression, Self::Element: PartialOrd<E::Element> { ... }
    fn ge<E>(self, other: E) -> Ge<Self, E> where Self: Sized, E: Expression, Self::Element: PartialOrd<E::Element> { ... }
}

Associated Types

type Element: Send

type Values: Iterator<Item=Self::Element> + DoubleEndedIterator

type Rev: Expression<Element=Self::Element>

Required Methods

fn length(&self) -> Length

fn values(self) -> Self::Values

fn split(self, round_up: bool) -> (Self, Self)

fn rev(self) -> Self::Rev

Provided Methods

fn sum<T>(self) -> Self::Element where Self: Sized + Expression<Element=T>, T: Zero + Add<T, Output=T>

fn max(self) -> Max::Output where Self: Sized, Max: Reduce<Self::Element>

fn min(self) -> Min::Output where Self: Sized, Min: Reduce<Self::Element>

fn zip<E2: Expression>(self, e: E2) -> Zip<Self, E2> where Self: Sized

fn map<O, F: FnMut(Self::Element) -> O>(self, f: F) -> Map<Self, F> where Self: Sized

fn switch<T, E>(self, then: T, else_: E) -> Switch<Self, T, E> where Self: Sized + Expression<Element=bool>, T: Expression, E: Expression<Element=T::Element>

fn eq<E>(self, other: E) -> Eq<Self, E> where Self: Sized, E: Expression, Self::Element: PartialEq<E::Element>

fn ne<E>(self, other: E) -> Ne<Self, E> where Self: Sized, E: Expression, Self::Element: PartialEq<E::Element>

fn lt<E>(self, other: E) -> Lt<Self, E> where Self: Sized, E: Expression, Self::Element: PartialOrd<E::Element>

fn le<E>(self, other: E) -> Le<Self, E> where Self: Sized, E: Expression, Self::Element: PartialOrd<E::Element>

fn gt<E>(self, other: E) -> Gt<Self, E> where Self: Sized, E: Expression, Self::Element: PartialOrd<E::Element>

fn ge<E>(self, other: E) -> Ge<Self, E> where Self: Sized, E: Expression, Self::Element: PartialOrd<E::Element>

Implementors