diff --git a/src/renderer/breadcrumb_tree.rs b/src/renderer/breadcrumb_tree.rs index 2402c2f..9b00fea 100644 --- a/src/renderer/breadcrumb_tree.rs +++ b/src/renderer/breadcrumb_tree.rs @@ -37,3 +37,15 @@ impl<'a, C: IntoContextElement> BreadcrumbTree for BreadcrumbTreeNode<'a, C> { self.parent } } + +struct BreadcrumbTreeIterator<'a>(Option<&'a dyn BreadcrumbTree>); + +impl<'a> Iterator for BreadcrumbTreeIterator<'a> { + type Item = &'a dyn IntoContextElement; + + fn next(&mut self) -> Option { + let ret = self.0; + self.0 = self.0.map(|node| node.get_parent()).flatten(); + ret.map(|node| node.get_ice()) + } +}