canic_core/ops/storage/
mod.rs1pub 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#[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#[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}