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::{InternalError, domain::DomainError};
11use thiserror::Error as ThisError;
12
13///
14/// PolicyError
15///
16
17#[derive(Debug, ThisError)]
18pub enum PolicyError {
19    #[error(transparent)]
20    EnvPolicy(#[from] env::EnvPolicyError),
21
22    #[error(transparent)]
23    PoolPolicy(#[from] pool::PoolPolicyError),
24
25    #[error(transparent)]
26    TopologyPolicy(#[from] topology::TopologyPolicyError),
27
28    #[error(transparent)]
29    ScalingPolicy(#[from] placement::scaling::ScalingPolicyError),
30
31    #[error(transparent)]
32    ShardingPolicy(#[from] placement::sharding::ShardingPolicyError),
33}
34
35impl From<PolicyError> for InternalError {
36    fn from(err: PolicyError) -> Self {
37        DomainError::from(err).into()
38    }
39}