Crate holochain_state[][src]

Expand description

Persisted State building blocks

This crate provides a few types for working with databases. The types build upon those found in [holochain_sqlite::buffer].

  • [ElementBuf]: the union of two CasBuffers, one for Entries, one for Headers
  • [ChainSequenceBuf]: database representing the chain sequence DB, which provides a special method for accessing the chain head
  • [SourceChainBuf]: the union of a [ElementBuf] 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 [ElementBuf] 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”.

              Cascade         SourceChain
                 |                 |
                 |                 V
                 |           SourceChainBuf
                 |                 |
                 |                 |
           +----------+      +-----+------+
           |          |      |            |
           |          V      V            |
           V         ElementBuf          V
      MetadataBuf         |        ChainSequenceBuf
           |              V               |
           |           CasBuf             |
           |              |               |
           V              V               V
        KvvBuf          KvBuf          IntKvBuf

source: https://textik.com/#d7907793784e17e9

Modules

Helpers for unit tests

Validation Database Types

Module for items related to aggregating validation_receipts

Workspaces are a simple abstraction used to stage changes during Workflow execution to be persisted later

Macros

Produce file and line number info at compile-time