Skip to main content

canic_core/domain/
memory.rs

1//! Module: domain::memory
2//!
3//! Responsibility: define pure memory diagnostic value enums shared by memory
4//! ops and memory DTOs.
5//! Does not own: memory response DTO structs, stable memory records, or memory
6//! runtime mutation.
7//! Boundary: DTOs re-export these values to preserve the public API path while
8//! internal code imports them from the domain owner.
9
10use candid::CandidType;
11use serde::Deserialize;
12
13///
14/// MemoryCommitRecoveryErrorResponse
15///
16
17#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq)]
18pub enum MemoryCommitRecoveryErrorResponse {
19    NoValidGeneration,
20    InvalidCommitSlots,
21    AmbiguousGeneration,
22    GenerationOverflow,
23    UnexpectedGeneration,
24    Unknown,
25}
26
27///
28/// MemoryRangeAuthorityMode
29///
30
31#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq)]
32pub enum MemoryRangeAuthorityMode {
33    Reserved,
34    Allowed,
35}
36
37///
38/// MemoryAllocationState
39///
40
41#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq)]
42pub enum MemoryAllocationState {
43    Reserved,
44    Active,
45    Retired,
46}