use pinocchio::program_error::{ProgramError, ToStr};
#[derive(thiserror::Error, Clone, Debug, Eq, PartialEq)]
pub enum ProgramWhitelistError {
#[error("No pending authority")]
NoPendingAuthority = 60456,
}
impl From<ProgramWhitelistError> for ProgramError {
fn from(e: ProgramWhitelistError) -> Self {
ProgramError::Custom(e as u32)
}
}
impl ToStr for ProgramWhitelistError {
fn to_str<E>(&self) -> &'static str
where
E: 'static + ToStr + TryFrom<u32>,
{
match self {
ProgramWhitelistError::NoPendingAuthority => "Error: No pending authority",
}
}
}
impl TryFrom<u32> for ProgramWhitelistError {
type Error = ProgramError;
fn try_from(value: u32) -> Result<Self, Self::Error> {
match value {
0 => Ok(ProgramWhitelistError::NoPendingAuthority),
_ => Err(ProgramError::InvalidArgument),
}
}
}