canic_core/domain/policy/pool/
mod.rs1pub mod admissibility;
2pub mod authority;
3
4use crate::{InternalError, cdk::candid::Principal, domain::policy::PolicyError};
5use thiserror::Error as ThisError;
6
7#[derive(Clone, Debug, Eq, PartialEq, ThisError)]
18pub enum PoolPolicyError {
19 #[error("pool entry blocked for {0}: canister is still registered in subnet registry")]
21 RegisteredInSubnet(Principal),
22
23 #[error("pool entry blocked for {pid}: local non-importable: {details}")]
24 NonImportableOnLocal { pid: Principal, details: String },
25
26 #[error("pool entry blocked for {0}: canister not registered in subnet registry")]
28 NotRegisteredInSubnet(Principal),
29
30 #[error("caller is not authorized to perform pool operation")]
32 NotAuthorized,
33}
34
35impl From<PoolPolicyError> for InternalError {
36 fn from(err: PoolPolicyError) -> Self {
37 PolicyError::from(err).into()
38 }
39}