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