Skip to main content

Module objects

Module objects 

Source
Expand description

Canonical object types: Node, Edge, Tree, Commit, Operation, View.

Each type serializes and deserializes as canonical DAG-CBOR (SPEC §3, §4). Every Rust struct in this module has the _kind discriminator baked in via a custom (de)serialize pair, so a Node encoded on the wire cannot round-trip into an Edge by accident.

Forward-compat per SPEC §3.2: every object type carries an extra: BTreeMap<String, Ipld> extension map that catches fields this version doesn’t know about. The extras are preserved on re-encode so that signed objects remain verifiable across version upgrades.

Re-exports§

pub use commit::Commit;
pub use commit::Signature;
pub use edge::Edge;
pub use embedding_set::EmbeddingBucket;
pub use embedding_set::EmbeddingEntry;
pub use index_set::AdjacencyBucket;
pub use index_set::AdjacencyEntry;
pub use index_set::IncomingAdjacencyBucket;
pub use index_set::IncomingAdjacencyEntry;
pub use index_set::IndexSet;
pub use node::Dtype;
pub use node::Embedding;
pub use node::Node;
pub use operation::Operation;
pub use tombstone::Tombstone;
pub use view::RefTarget;
pub use view::View;

Modules§

commit
Commit object (SPEC §4.4).
edge
The Edge object.
embedding_set
EmbeddingBucket - per-node leaf object inside the Prolly sidecar that lifts the embedding vector out of the Node canonical bytes.
index_set
Index objects (Phase 2 secondary indexes).
node
The Node object and its embedding substructure.
operation
Operation object (SPEC §4.5) - the unit of the op-log.
tombstone
Tombstone - logical “forget this node” marker (SPEC §4, mnem/0.2+).
view
View object (SPEC §4.6) - a snapshot of the mutable state of a repo.