pub mod admissibility;
pub mod authority;
use crate::{InternalError, cdk::candid::Principal, domain::policy::PolicyError};
use thiserror::Error as ThisError;
#[derive(Clone, Debug, Eq, PartialEq, ThisError)]
pub enum PoolPolicyError {
#[error("pool entry blocked for {0}: canister is still registered in subnet registry")]
RegisteredInSubnet(Principal),
#[error("pool entry blocked for {pid}: local non-importable: {details}")]
NonImportableOnLocal { pid: Principal, details: String },
#[error("pool entry blocked for {0}: canister not registered in subnet registry")]
NotRegisteredInSubnet(Principal),
#[error("caller is not authorized to perform pool operation")]
NotAuthorized,
}
impl From<PoolPolicyError> for InternalError {
fn from(err: PoolPolicyError) -> Self {
PolicyError::from(err).into()
}
}