Trait exprz::Group[][src]

pub trait Group<E> where
    E: Expression
{ type Ref: GroupReference<E>; fn reference(&self) -> Self::Ref; fn size_hint(&self) -> (usize, Option<usize>) { ... }
fn len(&self) -> Option<usize> { ... }
fn is_empty(&self) -> bool { ... }
fn empty() -> E::Group
    where
        E::Group: FromIterator<E>
, { ... }
fn clone(&self) -> E::Group
    where
        E::Atom: Clone,
        E::Group: FromIterator<E>
, { ... }
fn substitute<F>(self, f: F) -> E::Group
    where
        Self: Sized + IntoIterator<Item = E>,
        E::Group: FromIterator<E> + IntoIterator<Item = E>,
        F: FnMut(E::Atom) -> E
, { ... }
fn substitute_ref<F>(&self, f: F) -> E::Group
    where
        E::Group: FromIterator<E>,
        F: FnMut(&E::Atom) -> E
, { ... } }

Associated Types

type Ref: GroupReference<E>[src]

Group Reference Type

Loading content...

Required methods

fn reference(&self) -> Self::Ref[src]

Returns an inner reference to the group.

Loading content...

Provided methods

fn size_hint(&self) -> (usize, Option<usize>)[src]

Returns a size hint for the underlying iterator.

fn len(&self) -> Option<usize>[src]

Returns the length of the group if it is known exactly.

fn is_empty(&self) -> bool[src]

Returns true if the length of the group is known to be exactly zero.

fn empty() -> E::Group where
    E::Group: FromIterator<E>, 
[src]

Builds an empty group.

fn clone(&self) -> E::Group where
    E::Atom: Clone,
    E::Group: FromIterator<E>, 
[src]

Returns a cloned expression group.

fn substitute<F>(self, f: F) -> E::Group where
    Self: Sized + IntoIterator<Item = E>,
    E::Group: FromIterator<E> + IntoIterator<Item = E>,
    F: FnMut(E::Atom) -> E, 
[src]

Performs substitution over the Group.

fn substitute_ref<F>(&self, f: F) -> E::Group where
    E::Group: FromIterator<E>,
    F: FnMut(&E::Atom) -> E, 
[src]

Performs substitution over the Group by reference.

Loading content...

Implementations on Foreign Types

impl<E> Group<E> for [E] where
    E: Expression
[src]

type Ref = &'e Self

impl<E> Group<E> for Vec<E> where
    E: Expression
[src]

This is supported on crate feature alloc only.

type Ref = &'e Self

impl<A, G> Group<MultiExpr<A, G>> for (Vec<MultiExpr<A, G>>, G)[src]

This is supported on crate features multi and alloc only.

type Ref = (&'e Vec<MultiExpr<A, G>>, &'e G)

Loading content...

Implementors

impl<T> Group<Expr<T, usize, usize>> for ExprGroup<T>[src]

This is supported on crate feature buffered only.

type Ref = ExprGroupReference<'e, T>

Loading content...