canic-core 0.110.33

Canic — a canister orchestration and management toolkit for the Internet Computer
Documentation
//! Module: api::memory
//!
//! Responsibility: public memory-query facade for endpoint callers.
//! Does not own: memory accounting, stable-memory layout, or ledger updates.
//! Boundary: maps memory workflow errors into public API errors.

use crate::{
    dto::{
        error::Error,
        memory::{MemoryAllocationsResponse, MemoryLedgerResponse},
    },
    workflow::memory::query::MemoryQuery as MemoryQueryWorkflow,
};

///
/// MemoryQuery
///
/// Thin endpoint-facing facade for memory ledger queries.
///

pub struct MemoryQuery;

impl MemoryQuery {
    /// Return bounded current allocation extents without opening stable stores.
    pub fn allocations() -> Result<MemoryAllocationsResponse, Error> {
        MemoryQueryWorkflow::allocations().map_err(Error::from)
    }

    /// Return the current memory ledger snapshot.
    pub fn ledger() -> Result<MemoryLedgerResponse, Error> {
        MemoryQueryWorkflow::ledger().map_err(Error::from)
    }
}