cuplv / iodyn.rust

Collections Library for Adapton, in Rust
13 stars 0 forks source link

Rewrite unfocus for single allocation stack-to-tree conversion #17

Closed kyleheadley closed 7 years ago

kyleheadley commented 7 years ago

I'm not assigning reviewers to see how github handles that, but @matthewhammer may want to take a look this anticipated change.

I changed the implementation of unfocus to use a version of our tree_of_list algorithm rather than the cursor_join algorithm. The latter would both create and update data as more elements were joined together. Updates are not allowed within archivist code. The new algorithm updates data as well, but does so in three well-defined circumstances and uses additional namespaces in those cases.

The tree::memo_from(list) algorithm was refactored for convenience and the memorization made optional. The unfocus method now has an optional memoized version.

I started writing a queue based on the raz, but we need to clarify the use case before more work is done on that.