1use num_enum::IntoPrimitive;
2use solana_program::program_error::ProgramError;
3use thiserror::Error;
4
5#[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)]
6#[repr(u32)]
7pub enum ForgeError {
8 #[error("Auth failed")]
9 AuthFailed = 7,
10 #[error("Invalid resource")]
11 InvalidResource = 8,
12 #[error("Slot too early")]
13 SlotTooEarly = 9,
14 #[error("Item has degraded to 0 durability")]
15 ItemDegraded = 10,
16}
17
18impl From<ForgeError> for ProgramError {
19 fn from(e: ForgeError) -> Self {
20 ProgramError::Custom(e as u32)
21 }
22}