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
13use crate::ops::storage::env::EnvOpsError;
14use crate::{
15 Error, ThisError,
16 ops::{
17 OpsError,
18 storage::{
19 directory::{AppDirectoryOpsError, DirectoryView, SubnetDirectoryOpsError},
20 env::EnvData,
21 memory::MemoryRegistryOpsError,
22 sharding::ShardingRegistryOpsError,
23 state::AppStateOpsError,
24 topology::TopologyOpsError,
25 },
26 },
27};
28use candid::CandidType;
29use serde::Deserialize;
30
31#[derive(Debug, ThisError)]
36pub enum StorageOpsError {
37 #[error(transparent)]
38 AppDirectoryOpsError(#[from] AppDirectoryOpsError),
39
40 #[error(transparent)]
41 AppStateOpsError(#[from] AppStateOpsError),
42
43 #[error(transparent)]
44 EnvOpsError(#[from] EnvOpsError),
45
46 #[error(transparent)]
47 MemoryRegistryOpsError(#[from] MemoryRegistryOpsError),
48
49 #[error(transparent)]
50 ShardingRegistryOpsError(#[from] ShardingRegistryOpsError),
51
52 #[error(transparent)]
53 SubnetDirectoryOpsError(#[from] SubnetDirectoryOpsError),
54
55 #[error(transparent)]
56 TopologyOpsError(#[from] TopologyOpsError),
57}
58
59impl From<StorageOpsError> for Error {
60 fn from(err: StorageOpsError) -> Self {
61 OpsError::StorageOpsError(err).into()
62 }
63}
64
65#[derive(CandidType, Debug, Deserialize)]
70pub struct CanisterInitPayload {
71 pub env: EnvData,
72 pub app_directory: DirectoryView,
73 pub subnet_directory: DirectoryView,
74}
75
76impl CanisterInitPayload {
77 #[must_use]
78 pub const fn new(
79 env: EnvData,
80 app_directory: DirectoryView,
81 subnet_directory: DirectoryView,
82 ) -> Self {
83 Self {
84 env,
85 app_directory,
86 subnet_directory,
87 }
88 }
89}