Trait borrow_bag::Append
source · pub trait Append<T> {
type Output: PrefixedWith<Self> + Lookup<T, Self::Navigator>;
type Navigator;
// Required method
fn append(self, t: T) -> (Self::Output, Handle<T, Self::Navigator>);
}
Expand description
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)
}
Required Associated Types§
sourcetype Output: PrefixedWith<Self> + Lookup<T, Self::Navigator>
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))