1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
//! @todo: update diagram and types
//! # Persisted State building blocks
//!
//! This crate provides a few types for working with databases. The types build upon those found in holochain_sqlite::buffer.
//! - RecordBuf the union of two CasBuffers, one for Entries, one for Actions
//! - ChainSequenceBuf: database representing the chain sequence DB, which provides a special method for accessing the chain head
//! - SourceChainBuf: the union of a RecordBuf and a ChainSequenceBuf, which fully represents a source chain
//! - MetadataBuf: (*unimplemented*) Uses a KvvBuffer to represent EAV-like relationships between CAS entries
//! - Cascade: (*unimplemented*) Unifies two RecordBuf and two MetadataBuf references (one of each is a cache)
//! in order to perform the complex metadata-aware queries for getting entries and links, including CRUD resolution
//!
//! The follow diagram shows the composition hierarchy.
//! The arrows mean "contains at least one of".
//!
//! ```none
//! Cascade SourceChain
//! | |
//! | V
//! | SourceChainBuf
//! | |
//! | |
//! +----------+ +-----+------+
//! | | | |
//! | V V |
//! V RecordBuf V
//! MetadataBuf | ChainSequenceBuf
//! | V |
//! | CasBuf |
//! | | |
//! V V V
//! KvvBuf KvBuf IntKvBuf
//!
//! source: https://textik.com/#d7907793784e17e9
//! ```
#![allow(deprecated)]
pub mod chain_lock;
#[allow(missing_docs)]
pub mod dna_def;
pub mod entry_def;
pub mod host_fn_workspace;
pub mod integrate;
pub mod mutations;
#[allow(missing_docs)]
pub mod prelude;
pub mod query;
pub mod schedule;
pub mod scratch;
#[allow(missing_docs)]
pub mod source_chain;
pub mod validation_db;
pub mod validation_receipts;
#[allow(missing_docs)]
pub mod wasm;
pub mod workspace;
#[allow(missing_docs)]
#[cfg(any(test, feature = "test_utils"))]
pub mod test_utils;