I think I have solved the lifetime issue.
OwnedBreadcrumbTreeElement's needed a lifetime associated with them because IntoContextElement had lifetimes associated with it.
This commit is contained in:
parent
adbc236836
commit
e725728a65
@ -13,7 +13,7 @@ pub enum BreadcrumbTreeElement<'a> {
|
|||||||
// the same BreadcrumbTreeElement but a different parent (for
|
// the same BreadcrumbTreeElement but a different parent (for
|
||||||
// example, when inserting behind the tail), we don't need to the
|
// example, when inserting behind the tail), we don't need to the
|
||||||
// copy the already owned/malloc'd data.
|
// copy the already owned/malloc'd data.
|
||||||
Owned(Rc<dyn IntoContextElement>),
|
Owned(Rc<dyn IntoContextElement + 'a>),
|
||||||
Borrowed(&'a dyn IntoContextElement),
|
Borrowed(&'a dyn IntoContextElement),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,14 +220,7 @@ impl<'a> DustRenderer<'a> {
|
|||||||
};
|
};
|
||||||
let mut new_nodes: Vec<BreadcrumbTreeElement> = Vec::new();
|
let mut new_nodes: Vec<BreadcrumbTreeElement> = Vec::new();
|
||||||
|
|
||||||
let p = explicit_context.as_ref().unwrap();
|
explicit_context.as_ref().map(|path| {
|
||||||
let x = walk_path(maybe_breadcrumbs, &p.keys);
|
|
||||||
let ice = x.unwrap();
|
|
||||||
let ce = ice.into_context_element(self, maybe_breadcrumbs);
|
|
||||||
let val = ce.unwrap();
|
|
||||||
let to_insert = BreadcrumbTreeElement::Owned(Rc::new(val));
|
|
||||||
//new_nodes.push(BreadcrumbTreeElement::Owned(Rc::new(val)));
|
|
||||||
/*explicit_context.as_ref().map(|path| {
|
|
||||||
walk_path(maybe_breadcrumbs, &path.keys)
|
walk_path(maybe_breadcrumbs, &path.keys)
|
||||||
.map(|ice| ice.into_context_element(self, maybe_breadcrumbs))
|
.map(|ice| ice.into_context_element(self, maybe_breadcrumbs))
|
||||||
.ok()
|
.ok()
|
||||||
@ -237,7 +230,7 @@ impl<'a> DustRenderer<'a> {
|
|||||||
new_nodes.push(BreadcrumbTreeElement::Owned(Rc::new(val)))
|
new_nodes.push(BreadcrumbTreeElement::Owned(Rc::new(val)))
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});*/
|
});
|
||||||
injected_context.map(|ctx| new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx)));
|
injected_context.map(|ctx| new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx)));
|
||||||
new_context_element
|
new_context_element
|
||||||
.map(|ctx| new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx.from_context_element())));
|
.map(|ctx| new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx.from_context_element())));
|
||||||
@ -294,7 +287,7 @@ impl<'a> DustRenderer<'a> {
|
|||||||
_ => new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx)),
|
_ => new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx)),
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
/*explicit_context.as_ref().map(|path| {
|
explicit_context.as_ref().map(|path| {
|
||||||
// TODO: should resolving the value here use
|
// TODO: should resolving the value here use
|
||||||
// explicit_context_maybe_breadcrumbs or
|
// explicit_context_maybe_breadcrumbs or
|
||||||
// maybe_breadcrumbs?
|
// maybe_breadcrumbs?
|
||||||
@ -307,7 +300,7 @@ impl<'a> DustRenderer<'a> {
|
|||||||
new_nodes.push(BreadcrumbTreeElement::Owned(Rc::new(val)));
|
new_nodes.push(BreadcrumbTreeElement::Owned(Rc::new(val)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});*/
|
});
|
||||||
|
|
||||||
Some((parent, new_nodes))
|
Some((parent, new_nodes))
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user