use crate::{cdk::types::Principal, domain::policy::pool::PoolPolicyError};
pub fn policy_can_enter_pool(
pid: Principal,
registered_in_subnet: bool,
importable_on_local: Result<(), String>,
) -> Result<(), PoolPolicyError> {
if registered_in_subnet {
return Err(PoolPolicyError::RegisteredInSubnet(pid));
}
policy_is_importable_on_local(pid, importable_on_local)
}
pub fn policy_is_importable_on_local(
pid: Principal,
importable_on_local: Result<(), String>,
) -> Result<(), PoolPolicyError> {
importable_on_local.map_err(|details| PoolPolicyError::NonImportableOnLocal { pid, details })
}