canic_core/ops/storage/
mod.rs

1pub mod cycles;
2pub mod directory;
3pub mod env;
4pub mod memory;
5pub mod reserve;
6pub mod scaling;
7pub mod sharding;
8pub mod state;
9pub mod topology;
10
11pub use crate::model::memory::{CanisterEntry, CanisterSummary};
12
13use crate::{
14    Error, ThisError,
15    ops::{
16        OpsError,
17        storage::{
18            directory::{AppDirectoryOpsError, DirectoryView, SubnetDirectoryOpsError},
19            env::{EnvData, EnvOpsError},
20            memory::MemoryRegistryOpsError,
21            sharding::ShardingRegistryOpsError,
22            state::AppStateOpsError,
23            topology::TopologyOpsError,
24        },
25    },
26};
27use candid::CandidType;
28use serde::Deserialize;
29
30///
31/// StorageOpsError
32///
33
34#[derive(Debug, ThisError)]
35pub enum StorageOpsError {
36    #[error(transparent)]
37    AppDirectoryOpsError(#[from] AppDirectoryOpsError),
38
39    #[error(transparent)]
40    AppStateOpsError(#[from] AppStateOpsError),
41
42    #[error(transparent)]
43    EnvOpsError(#[from] EnvOpsError),
44
45    #[error(transparent)]
46    MemoryRegistryOpsError(#[from] MemoryRegistryOpsError),
47
48    #[error(transparent)]
49    ShardingRegistryOpsError(#[from] ShardingRegistryOpsError),
50
51    #[error(transparent)]
52    SubnetDirectoryOpsError(#[from] SubnetDirectoryOpsError),
53
54    #[error(transparent)]
55    TopologyOpsError(#[from] TopologyOpsError),
56}
57
58impl From<StorageOpsError> for Error {
59    fn from(err: StorageOpsError) -> Self {
60        OpsError::StorageOpsError(err).into()
61    }
62}
63
64///
65/// CanisterInitPayload
66///
67
68#[derive(CandidType, Debug, Default, Deserialize)]
69pub struct CanisterInitPayload {
70    pub env: EnvData,
71    pub app_directory: DirectoryView,
72    pub subnet_directory: DirectoryView,
73}
74
75impl CanisterInitPayload {
76    #[must_use]
77    pub fn empty() -> Self {
78        Self::default()
79    }
80}