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    AmbiguousGeneration,
21    GenerationOverflow,
22    UnexpectedGeneration,
23    Unknown,
24}
25
26///
27/// MemoryRangeAuthorityMode
28///
29
30#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq)]
31pub enum MemoryRangeAuthorityMode {
32    Reserved,
33    Allowed,
34}
35
36///
37/// MemoryAllocationState
38///
39
40#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq)]
41pub enum MemoryAllocationState {
42    Reserved,
43    Active,
44    Retired,
45}