Trait borrow_bag::Append [] [src]

pub trait Append<T> {
    type Output: PrefixedWith<Self> + Lookup<T, Self::Navigator>;
    type Navigator;
    fn append(self, t: T) -> (Self::Output, Handle<T, Self::Navigator>);
}

Describes the result of appending T to the borrow-bag. This is useful in specifying the return type when creating/modifying a BorrowBag in a function.

Examples

type SingleItemBag<T> = BorrowBag<(T, ())>;
type SingleItemHandle<T> = Handle<T, <() as Append<T>>::Navigator>;

fn single_item_bag<T>(t: T) -> (SingleItemBag<T>, SingleItemHandle<T>) {
    BorrowBag::new().add(t)
}

Associated Types

The resulting BorrowBag type parameter after adding an element of type T.

A type describing how to borrow the T which is added.

If the output type is (X, (Y, (Z, ()))), we're adding the Z and so our Navigator will be (Skip, (Skip, Take))

Required Methods

Append the element, returning a new collection and a handle to borrow the element back.

Implementations on Foreign Types

impl<T, U, V> Append<T> for (U, V) where
    V: Append<T>, 
[src]

[src]

impl<T> Append<T> for ()
[src]

[src]

Implementors