Crate iodyn [−] [src]
A collection of incremental data structures with dynamic input and output.
Many of the structures have an exposed mutable head for fast
updates, and an archive
function to move the current head
past a pointer, defining subsequences. This pointer is
mutable, so that the changes can propagate to later
computations.
Fold and Map type computations over a level tree or a raz tree will be memoized, such that rerunning the computation after a change will be much faster than running from scratch.
These collections are partially mutable and partially
persistent (shared data). However, the authors have
concentrated on incremental features, so partial sharing is not
well implemented. Data archived without names will be fully
persistent so that changes to cloned data will not affect the
original. Data archived with names should be treated as a mutable
structure, with changes to cloned data affecting the original. These
affects will probably not be consistent. Editing a mutable structure
within a namespace (adapton::engine::ns
) should produce a version
whose edits do not affect the original, but this has not been
thoroughly tested.
Modules
archive_stack |
Incremental High-gauge Archive Stack |
level_tree |
Incremental Level Tree |
memo |
Conversions by Memoization |
raz |
Gauged Incremental Random Access Zipper |
raz_meta |
Available meta data for the inc_gauged_raz |
stack |
Incremental Linked List (Cons-list) |
tree_cursor |
Incremental Tree Cursor |
Functions
inc_level |
level generator for incremental structures |
Type Definitions
ArchiveStack |
Cross between vector and persistent stack |
Giraz | |
GirazTree | |
IRaz |
Gauged Incremental Raz with element counts |
IRazTree |
Unfocused |