Skip to main content

AllocationPolicy

Trait AllocationPolicy 

Source
pub trait AllocationPolicy {
    type Error;

    // Required methods
    fn validate_key(&self, key: &StableKey) -> Result<(), Self::Error>;
    fn validate_slot(
        &self,
        key: &StableKey,
        slot: &MemoryManagerSlot,
    ) -> Result<(), Self::Error>;
}
Expand description

AllocationPolicy

Framework-supplied rules for whether a key may claim a slot.

Policy is intentionally separate from the durable ledger invariant. The ledger remembers stable_key -> allocation_slot; this trait lets an integration reject declarations that do not belong to its namespace or substrate-specific range before staging a generation.

crate::MemoryRuntime admits host namespace grants and physical pool eligibility during resolution, before this policy’s validation callbacks. These callbacks receive external declarations only; the internal allocation-ledger declaration remains exclusively governed by ic-memory. Framework policies may add restrictions within the host’s grants and pool; they cannot expand the pool or replace host ownership admission.

Required Associated Types§

Source

type Error

Policy error type.

Required Methods§

Source

fn validate_key(&self, key: &StableKey) -> Result<(), Self::Error>

Validate a stable key against framework naming rules.

Source

fn validate_slot( &self, key: &StableKey, slot: &MemoryManagerSlot, ) -> Result<(), Self::Error>

Validate a stable-key to allocation-slot claim. The slot already contains a usable ID; policy checks ownership and scope.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§