19 Commits

Author SHA1 Message Date
Tom Alexander
d06fbea288
Remove unused code and clean up warnings. 2020-06-07 13:27:57 -04:00
Tom Alexander
71592a9a32
Switching back to a Vec because inserting multiple elements into the linked list structure while maintaining ownership of each node proved to be difficult. 2020-06-06 22:24:27 -04:00
Tom Alexander
02259b9bd6
Create from_borrowed and from_owned constructors for IceResult and BreadcrumbTreeElement.
In an effort to keep track of how often memory is getting heap allocated, I am implementing constructors for IceResult and BreadcrumbTreeElement. This should limit the places that I call Rc::new and allow me to place tracing code into it later to ensure all code paths doing heap allocation make sense.
2020-06-06 20:24:01 -04:00
Tom Alexander
f9dea70d23
Implement conversion from IceResult into BreadcrumbTreeNode.
I believe this change will remove an extra heap allocation I was doing in the new_breadcrumbs_* functions for the explicit context by adding support for converting from Rc<dyn ContextElement> to Rc<dyn IntoContextElement> without copying the underlying data. This should allow conversion of the IceResult::Owned variant to the BreadcrumbTreeElement::Owned variant without extra copying.
2020-06-06 19:39:44 -04:00
Tom Alexander
7253c7d99e
Implement function to convert IceResult into a BreadcrumbTreeElement. 2020-06-06 18:37:35 -04:00
Tom Alexander
e725728a65
I think I have solved the lifetime issue.
OwnedBreadcrumbTreeElement's needed a lifetime associated with them because IntoContextElement had lifetimes associated with it.
2020-06-06 17:52:46 -04:00
Tom Alexander
2b8894f9c2
Most of new_breadcrumbs_partial, just need to get the return working. 2020-05-31 20:41:27 -04:00
Tom Alexander
283430a45b
Merge the breadcrumb tree trait and struct into just a struct. 2020-05-31 18:14:26 -04:00
Tom Alexander
b381789422
Slight progress on new_breadcrumbs_section. 2020-05-31 17:32:06 -04:00
Tom Alexander
2b532e7eb4
Going to try switching to boxed owned values to remove the template. 2020-05-31 17:25:41 -04:00
Tom Alexander
92dca74505
Running into issue where I need to know the type to create new tree node elements. 2020-05-31 16:40:39 -04:00
Tom Alexander
863744c42d
Got rid of the IceTreeIterator by using map(). 2020-05-31 16:02:30 -04:00
Tom Alexander
781b8f645a
Switch IntoIter over to the breadcrumb iterator. 2020-05-31 15:58:29 -04:00
Tom Alexander
ff13d22ab6
Renamed BreadcrumbTreeIterator to IceTreeIterator. 2020-05-31 15:52:46 -04:00
Tom Alexander
3f49519bea
Initial structure for new implementation of walking functions using the heterogeneous tree. 2020-05-31 15:44:09 -04:00
Tom Alexander
456da98bed
Added an iter function which I think will let me automatically make iterators without having to explicitly take a reference to the tree. 2020-05-31 14:29:59 -04:00
Tom Alexander
bebedf56e4
Implement IntoIterator for references to a BreadcrumbTreeNode. 2020-05-31 14:27:31 -04:00
Tom Alexander
1be60511ed
Implement an iterator over the tree. 2020-05-31 14:17:21 -04:00
Tom Alexander
645b251f13
Initial setup for a heterogenous tree of IntoContextElement. 2020-05-31 13:52:20 -04:00