Skip to main content

canic_backup/restore/plan/
error.rs

1use crate::manifest::ManifestValidationError;
2use thiserror::Error as ThisError;
3
4///
5/// RestorePlanError
6///
7
8#[derive(Debug, ThisError)]
9pub enum RestorePlanError {
10    #[error(transparent)]
11    InvalidManifest(#[from] ManifestValidationError),
12
13    #[error("field {field} must be a valid principal: {value}")]
14    InvalidPrincipal { field: &'static str, value: String },
15
16    #[error("mapping contains duplicate source canister {0}")]
17    DuplicateMappingSource(String),
18
19    #[error("mapping contains duplicate target canister {0}")]
20    DuplicateMappingTarget(String),
21
22    #[error("mapping references unknown source canister {0}")]
23    UnknownMappingSource(String),
24
25    #[error("mapping is missing source canister {0}")]
26    MissingMappingSource(String),
27
28    #[error("fixed-identity member {source_canister} cannot be mapped to {target_canister}")]
29    FixedIdentityRemap {
30        source_canister: String,
31        target_canister: String,
32    },
33
34    #[error("restore plan contains duplicate target canister {0}")]
35    DuplicatePlanTarget(String),
36
37    #[error("restore plan contains a parent cycle or unresolved dependency")]
38    RestoreOrderCycle,
39}