Implement an iterator over the tree.

This commit is contained in:
Tom Alexander 2020-05-31 14:17:21 -04:00
parent 645b251f13
commit 1be60511ed
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE

View File

@ -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<Self::Item> {
let ret = self.0;
self.0 = self.0.map(|node| node.get_parent()).flatten();
ret.map(|node| node.get_ice())
}
}