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