Skip to main content

Crate ic_memory

Crate ic_memory 

Source
Expand description

Persistent allocation-governance primitives for Internet Computer stable memory.

The crate models durable ownership as stable_key -> allocation_slot forever. It intentionally does not own framework namespaces, controller authorization, endpoint lifecycle, schema migrations, or Canic-specific memory ID policy.

Re-exports§

pub use bootstrap::AllocationBootstrap;
pub use bootstrap::BootstrapCommit;
pub use bootstrap::BootstrapError;
pub use bootstrap::BootstrapReservationError;
pub use bootstrap::BootstrapRetirementError;
pub use declaration::AllocationDeclaration;
pub use declaration::DeclarationCollector;
pub use declaration::DeclarationSnapshot;
pub use declaration::DeclarationSnapshotError;
pub use diagnostics::DiagnosticExport;
pub use diagnostics::DiagnosticGeneration;
pub use diagnostics::DiagnosticRecord;
pub use generation::GenerationCommit;
pub use generation::GenerationMutation;
pub use generation::StagedGeneration;
pub use key::StableKey;
pub use key::StableKeyError;
pub use ledger::AllocationHistory;
pub use ledger::AllocationLedger;
pub use ledger::AllocationRecord;
pub use ledger::AllocationReservationError;
pub use ledger::AllocationRetirement;
pub use ledger::AllocationRetirementError;
pub use ledger::AllocationState;
pub use ledger::CURRENT_LEDGER_SCHEMA_VERSION;
pub use ledger::CURRENT_PHYSICAL_FORMAT_ID;
pub use ledger::GenerationRecord;
pub use ledger::LedgerCodec;
pub use ledger::LedgerCommitError;
pub use ledger::LedgerCommitStore;
pub use ledger::LedgerCompatibility;
pub use ledger::LedgerCompatibilityError;
pub use ledger::LedgerIntegrityError;
pub use ledger::SchemaMetadataRecord;
pub use physical::AuthoritativeSlot;
pub use physical::CommitRecoveryError;
pub use physical::CommitSlotDiagnostic;
pub use physical::CommitSlotIndex;
pub use physical::CommitStoreDiagnostic;
pub use physical::CommittedGenerationBytes;
pub use physical::DualCommitStore;
pub use physical::ProtectedGenerationSlot;
pub use physical::select_authoritative_slot;
pub use policy::AllocationPolicy;
pub use policy::NamespaceAuthority;
pub use policy::RangeAuthority;
pub use schema::SchemaMetadata;
pub use schema::SchemaMetadataError;
pub use session::AllocationSession;
pub use session::AllocationSessionError;
pub use session::ValidatedAllocations;
pub use slot::AllocationSlot;
pub use slot::AllocationSlotDescriptor;
pub use slot::MEMORY_MANAGER_DESCRIPTOR_VERSION;
pub use slot::MEMORY_MANAGER_INVALID_ID;
pub use slot::MEMORY_MANAGER_MAX_ID;
pub use slot::MEMORY_MANAGER_MIN_ID;
pub use slot::MEMORY_MANAGER_SUBSTRATE;
pub use slot::MemoryManagerIdRange;
pub use slot::MemoryManagerRangeError;
pub use slot::MemoryManagerSlotError;
pub use slot::validate_memory_manager_id;
pub use substrate::LedgerAnchor;
pub use substrate::StorageSubstrate;
pub use validation::AllocationValidationError;
pub use validation::validate_allocations;

Modules§

bootstrap
declaration
diagnostics
generation
key
ledger
physical
policy
schema
session
slot
substrate
validation