haematite 0.6.1

Content-addressed, branchable, actor-native storage engine
Documentation
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod checkout;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod commit;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
mod commit_error;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod conflict;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
mod durable_record;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod fork;
pub mod handle;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod lifecycle;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod merge;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
mod native_record_store;
mod operation_error;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod persist;
pub mod policy;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod prune;
mod refrecord;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod refstore;
pub mod registry;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod snapshot;
mod time;

#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use checkout::{CheckoutError, ReadOnlyView, checkout};
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use commit::{
    BranchCommitError, CommitDurability, CommitOutcome, CommitRequest, commit_branch, merge,
};
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use conflict::{ConflictError, ConflictInput, ConflictPolicy, CustomMergeFn};
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use fork::{
    create_branch_with_kind, fork, fork_from_with_kind, fork_registered, fork_shards,
    fork_shards_registered,
};
pub use handle::{BranchError, BranchHandle, ShardId};
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use lifecycle::{create_branch, fork_at, fork_from, open_branch, remove_branch};
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use merge::{MergeConflict, MergeError, MergeReport};
#[cfg(all(target_arch = "wasm32", target_os = "unknown"))]
pub(crate) use operation_error::{
    BranchGetError, FenceOperationError, preserve_node_publication_fence,
    preserve_record_entry_fence,
};
pub use policy::{BranchKind, BranchPolicyError};
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use prune::{PruneError, PruneReport, prune};
#[cfg(all(target_arch = "wasm32", target_os = "unknown"))]
pub(crate) use refrecord::{BranchRefRecord, BranchShardRef};
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use refstore::{BranchRefError, BranchRefRecord, BranchRefStore, BranchShardRef};
pub use registry::BranchRegistry;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use snapshot::{
    CommitLog, CommitLogEntry, SnapshotEntry, SnapshotError, SnapshotRegistry, Timestamp,
    current_timestamp,
};
#[cfg(all(target_arch = "wasm32", target_os = "unknown"))]
pub(crate) use time::current_timestamp;

#[cfg(test)]
mod durable_record_tests;
#[cfg(test)]
mod source_preservation_tests;

// LEDGER A1 stage 4: the adversarial test battery (brief §10, §13, §14.3).
// These span several source modules at once — commit ordering vs the ref
// store, prune vs commit, restart recovery — so they live as sibling test
// modules here rather than inside any one source file's `#[path]` include.
#[cfg(test)]
mod barrier_order_tests;
#[cfg(test)]
mod crash_recovery_tests;
#[cfg(test)]
mod crash_support;
#[cfg(test)]
mod crash_window_tests;
#[cfg(test)]
mod hi_proptest;
#[cfg(test)]
mod kind_marker_matrix_tests;
#[cfg(test)]
mod lease_aba_tests;
#[cfg(test)]
mod prune_interleave_tests;
#[cfg(test)]
mod registry_spy_tests;
#[cfg(test)]
mod restart_e2e_tests;