canic_core/domain/policy/
mod.rs

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