Running into lifetime issues again.

This commit is contained in:
Tom Alexander
2020-05-31 23:47:20 -04:00
parent da15439946
commit 303f092c30
3 changed files with 34 additions and 28 deletions

View File

@@ -106,7 +106,7 @@ pub trait IntoContextElement: Debug + Walkable /* + CloneIntoBoxedContextElement
&'a self,
renderer: &DustRenderer,
breadcrumbs: Option<&'a BreadcrumbTree<'a>>,
) -> Option<&'a dyn ContextElement>;
) -> Option<IceResult<'a>>;
}
impl<C: ContextElement> IntoContextElement for C {
@@ -114,8 +114,8 @@ impl<C: ContextElement> IntoContextElement for C {
&'a self,
renderer: &DustRenderer,
breadcrumbs: Option<&'a BreadcrumbTree<'a>>,
) -> Option<&'a dyn ContextElement> {
Some(self)
) -> Option<IceResult<'a>> {
Some(IceResult::Borrowed(self))
}
}
@@ -143,10 +143,11 @@ impl<'a> IntoContextElement for IceResult<'a> {
&'b self,
renderer: &DustRenderer,
breadcrumbs: Option<&'b BreadcrumbTree<'b>>,
) -> Option<&'b dyn ContextElement> {
) -> Option<IceResult<'b>> {
// Some(*self)
match self {
IceResult::Owned(rc_ce) => Some(rc_ce.as_ref()),
IceResult::Borrowed(ce) => Some(*ce),
IceResult::Owned(rc_ce) => Some(IceResult::Borrowed(rc_ce.as_ref())),
IceResult::Borrowed(ce) => Some(IceResult::Borrowed(*ce)),
}
}
}