canic_core/domain/policy/
mod.rs

1pub mod cycles;
2pub mod directory;
3pub mod env;
4pub mod log;
5pub mod placement;
6pub mod pool;
7pub mod randomness;
8pub mod registry;
9pub mod topology;
10pub mod upgrade;
11
12use crate::{Error, ThisError, domain::DomainError};
13
14///
15/// PolicyError
16///
17
18#[derive(Debug, ThisError)]
19pub enum PolicyError {
20    #[error(transparent)]
21    EnvPolicy(#[from] env::EnvPolicyError),
22
23    #[error(transparent)]
24    PoolPolicy(#[from] pool::PoolPolicyError),
25
26    #[error(transparent)]
27    RegistryPolicy(#[from] registry::RegistryPolicyError),
28
29    #[error(transparent)]
30    TopologyPolicy(#[from] topology::TopologyPolicyError),
31
32    #[error(transparent)]
33    ScalingPolicy(#[from] placement::scaling::ScalingPolicyError),
34
35    #[error(transparent)]
36    ShardingPolicy(#[from] placement::sharding::ShardingPolicyError),
37}
38
39impl From<PolicyError> for Error {
40    fn from(err: PolicyError) -> Self {
41        DomainError::from(err).into()
42    }
43}