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 IRaz