Implement function to convert IceResult into a BreadcrumbTreeElement.

This commit is contained in:
Tom Alexander
2020-06-06 18:37:35 -04:00
parent 18c1687064
commit 7253c7d99e
2 changed files with 34 additions and 3 deletions

View File

@@ -1,3 +1,4 @@
use crate::renderer::context_element::IceResult;
use crate::renderer::context_element::IntoContextElement;
use std::borrow::Borrow;
use std::rc::Rc;
@@ -17,6 +18,17 @@ pub enum BreadcrumbTreeElement<'a> {
Borrowed(&'a dyn IntoContextElement),
}
impl<'a> From<&'a IceResult<'a>> for BreadcrumbTreeElement<'a> {
fn from(inp: &'a IceResult<'a>) -> Self {
match inp {
IceResult::Owned(rc_ce) => {
BreadcrumbTreeElement::Borrowed(rc_ce.from_context_element())
}
IceResult::Borrowed(ce) => BreadcrumbTreeElement::Borrowed(ce.from_context_element()),
}
}
}
impl<'a> BreadcrumbTree<'a> {
pub fn new(parent: Option<&'a BreadcrumbTree>, element: BreadcrumbTreeElement<'a>) -> Self {
BreadcrumbTree {