Crate iodyn

Crate iodyn 

Source
Expand description

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 Aliases§

ArchiveStack
Cross between vector and persistent stack
Giraz
GirazTree
IRaz
Gauged Incremental Raz with element counts
IRazTree
Unfocused IRaz