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
type Output: PrefixedWith<Self> + Lookup<T, Self::Navigator>
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
fn append(self, t: T) -> (Self::Output, Handle<T, Self::Navigator>)
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]
V: Append<T>,