3 use std::marker::PhantomData;
5 pub trait GenAssoc<T> {
7 fn iter(&self) -> Self::Iter<'_>;
8 fn reborrow<'longt: 'shortt, 'shortt>(iter: Self::Iter<'longt>) -> Self::Iter<'shortt>;
11 pub struct Wrapper<'a, T: 'a, A: GenAssoc<T>> {
16 impl<'ai, T: 'ai, A: GenAssoc<T>> GenAssoc<T> for Wrapper<'ai, T, A>
21 fn iter<'s>(&'s self) -> Self::Iter<'s> {
22 let a = A::reborrow::<'ai, 's>(self.a.clone());
25 fn reborrow<'long: 'short, 'short>(iter: Self::Iter<'long>) -> Self::Iter<'short> {