Skip to main content

content_addressable/
lib.rs

1#![doc = include_str!("lib.md")]
2#![warn(missing_docs)]
3
4// -------------------------------------------------------------------------
5// This file is a MANIFEST, not a member. It contains only composition: crate
6// attributes, the crate doc (in `lib.md`, included above), module declarations,
7// and the public re-export facade — no item definitions, no logic, no tests.
8// Growth delegates DOWN: catalog structures register in `src/structures.rs`,
9// never here, so the root stays a fixed-size manifest as the catalog grows.
10// See WORKSPACE_RULES.md -> "Composition roots are manifests, not members".
11// -------------------------------------------------------------------------
12
13// --- Spine: the minimal, stable, always-on surface. ---
14pub mod canonical;
15pub mod classified;
16pub mod content_id;
17pub mod error;
18pub mod raw_id;
19pub mod trait_def;
20
21// --- Seams the catalog builds on (feature-gated infrastructure). ---
22#[cfg(feature = "unstable-legacy")]
23pub mod legacy;
24#[cfg(feature = "unstable-merkle")]
25pub mod merkle;
26#[cfg(feature = "unstable-migration")]
27pub mod migration;
28#[cfg(feature = "unstable-store")]
29pub mod store;
30
31// --- The catalog: ONE line. The sub-manifest owns the members. ---
32pub mod structures;
33
34// FROZEN crate-root re-export surface (gate item #9) — see the "Public API
35// surface (FROZEN at 0.1.0)" section in `lib.md`. Keep this set minimal and
36// explicit: it is the stable SPINE only. Catalog structures are reached at their
37// `structures::…` path and are deliberately NOT flattened here (freeze-minimally
38// applied to the public surface), so this list does not grow with the catalog.
39// Removing or narrowing an entry is a major version bump.
40pub use classified::{ClassifiedCid, ForeignCid};
41pub use content_id::ContentId;
42pub use error::ContentError;
43#[cfg(feature = "unstable-merkle")]
44pub use merkle::MerkleNode;
45#[cfg(feature = "unstable-migration")]
46pub use migration::{IdentityMigration, MigrationKind};
47pub use raw_id::RawContentId;
48#[cfg(feature = "unstable-store")]
49pub use store::{
50    AddressedBytes, MemoryStore, NodeStore, NodeStoreExt, StoreError, StoreOperation, VerifiedStore,
51};
52pub use trait_def::ContentAddressable;