1 #![feature(generic_associated_types)]
9 pub trait HasChildrenOf {
14 fn ref_children<'a>(&'a self) -> Vec<Self::TRef<'a>>;
15 fn take_children(self) -> Vec<Self::T>;
18 impl<Left, Right> HasChildrenOf for Either<Left, Right>
23 type T = Either<Left::T, Right::T>;
24 type TRef<'a> = Either<&'a Left::T, &'a Right::T>
26 <Left as HasChildrenOf>::T: 'a,
27 <Right as HasChildrenOf>::T: 'a;
29 fn ref_children<'a>(&'a self) -> Vec<Self::TRef<'a>> {
33 fn take_children(self) -> Vec<Self::T> {