Crate holochain_types[][src]

Expand description

Common types used by other Holochain crates.

This crate is a complement to the holochain_zome_types crate, which contains only the essential types which are used in Holochain DNA code. This crate expands on those types to include all types which Holochain itself depends on.

Re-exports

pub use entry::EntryHashed;
pub use timestamp::TimestampKey;

Modules

Defines HostFnAccess and Permission

Types for agents chain activity

Everything to do with App (hApp) installation and uninstallation

Holochain autonomic type helpers.

Types related to an agents for chain activity

Utility items related to data persistence.

Data structures representing the operations that can be performed within a Holochain DHT.

dna is a library for working with holochain dna files/entries.

Defines a Element, the basic unit of Holochain data.

An Entry is a unit of data in a Holochain Source Chain.

An “Env” Combines a database reference with a KeystoreSender

Fixture definitions for crate structs

Holochain’s Header and its variations.

Links interrelate entries in a source chain.

Types for getting and storing metadata

reexport some common things

Implements YamlProperties, and potentially any other data types that can represent “properties” of a DNA

Signals which can be emitted from within Holochain, out across an interface. There are two main kinds of Signal: system-defined, and app-defined:

Some common testing helpers.

A UTC timestamp for use in Holochain’s headers.

the host types used to track the status/result of validating entries c.f. guest types for validation callbacks and packages across the wasm boudary in zome_types

Macros

Utility for removing boilerplate from From impls

Structs

A UTC timestamp for use in Holochain’s headers. It is assumed to be untrustworthy: it may contain times offset from the UNIX epoch with the full +/- i64 range. Most of these times are not representable by a chrono::DateTime (which limits itself to a +/- i32 offset in days from Jan 1, 0AD and from 1970AD). Also, most differences between two Timestamps are not representable by either a chrono::Duration (which limits itself to +/- i64 milliseconds), nor by core::time::Duration (which limits itself to +’ve u64 seconds). Many constructions of these chrono and core::time types will panic!, so painful measures must be taken to avoid this outcome – it is not acceptable for our core Holochain algorithms to panic when accessing DHT Header information committed by other random Holochain nodes!