light_sdk_types/
error.rs

1use light_hasher::HasherError;
2use thiserror::Error;
3
4pub type Result<T> = std::result::Result<T, LightSdkTypesError>;
5
6#[derive(Debug, Error, PartialEq)]
7pub enum LightSdkTypesError {
8    #[error("Address is none during initialization")]
9    InitAddressIsNone,
10    #[error("Address is none during initialization with address")]
11    InitWithAddressIsNone,
12    #[error("Output is none during initialization with address")]
13    InitWithAddressOutputIsNone,
14    #[error("Address is none during meta mutation")]
15    MetaMutAddressIsNone,
16    #[error("Input is none during meta mutation")]
17    MetaMutInputIsNone,
18    #[error("Output lamports is none during meta mutation")]
19    MetaMutOutputLamportsIsNone,
20    #[error("Output is none during meta mutation")]
21    MetaMutOutputIsNone,
22    #[error("Address is none during meta close")]
23    MetaCloseAddressIsNone,
24    #[error("Input is none during meta close")]
25    MetaCloseInputIsNone,
26    #[error("Fewer accounts than system accounts")]
27    FewerAccountsThanSystemAccounts,
28    #[error("CPI accounts index out of bounds: {0}")]
29    CpiAccountsIndexOutOfBounds(usize),
30    #[error(transparent)]
31    Hasher(#[from] HasherError),
32}
33
34impl From<LightSdkTypesError> for u32 {
35    fn from(e: LightSdkTypesError) -> Self {
36        match e {
37            LightSdkTypesError::InitAddressIsNone => 14021,
38            LightSdkTypesError::InitWithAddressIsNone => 14022,
39            LightSdkTypesError::InitWithAddressOutputIsNone => 14023,
40            LightSdkTypesError::MetaMutAddressIsNone => 14024,
41            LightSdkTypesError::MetaMutInputIsNone => 14025,
42            LightSdkTypesError::MetaMutOutputLamportsIsNone => 14026,
43            LightSdkTypesError::MetaMutOutputIsNone => 14027,
44            LightSdkTypesError::MetaCloseAddressIsNone => 14028,
45            LightSdkTypesError::MetaCloseInputIsNone => 14029,
46            LightSdkTypesError::FewerAccountsThanSystemAccounts => 14017,
47            LightSdkTypesError::CpiAccountsIndexOutOfBounds(_) => 14031,
48            LightSdkTypesError::Hasher(e) => e.into(),
49        }
50    }
51}