16 fn content(&self) -> impl Iterator<Item = &It> {
21 struct Container<'a> {
23 resolver: Box<dyn Resolver + 'a>,
26 impl<'a> Container<'a> {
27 fn new<R: Resolver + 'a>(name: &str, resolver: R) -> Self {
29 name: name.to_owned(),
30 resolver: Box::new(resolver),
37 impl<R: Resolver> Resolver for &R {}
39 impl Resolver for It {}
41 fn get<'a>(mut items: impl Iterator<Item = &'a It>) -> impl Resolver + 'a {
45 fn get2<'a, 'b: 'b>(mut items: impl Iterator<Item = &'a It>) -> impl Resolver + 'a {
50 let data = Data::new();
51 let resolver = get(data.content());
55 .map(|&n| Container::new(n, &resolver))
59 let resolver = get2(data.content());
63 .map(|&n| Container::new(n, &resolver))