#[repr(u8)]
#[derive(Clone, Debug, Default)]
pub enum SbFunctionError {
#[default]
None = 0,
FatalError = 1,
FunctionError(u8),
FunctionResultEmitError = 200,
QuoteVerificationError = 201,
SwitchboardError(u8),
OutOfFunds = 250,
Reserved251 = 251,
ContainerUnavailable = 252,
FunctionResultNotFound = 253,
CallbackError = 254,
FunctionTimeout = 255,
}
impl From<u8> for SbFunctionError {
fn from(value: u8) -> Self {
match value {
0 => SbFunctionError::None,
1 => SbFunctionError::FatalError,
2..=199 => SbFunctionError::FunctionError(value),
200 => SbFunctionError::FunctionResultEmitError,
201 => SbFunctionError::QuoteVerificationError,
202..=249 => SbFunctionError::SwitchboardError(value),
250 => SbFunctionError::OutOfFunds,
251 => SbFunctionError::Reserved251,
252 => SbFunctionError::ContainerUnavailable,
253 => SbFunctionError::FunctionResultNotFound,
254 => SbFunctionError::CallbackError,
255 => SbFunctionError::FunctionTimeout,
}
}
}
impl SbFunctionError {
pub fn as_u8(&self) -> u8 {
match self {
SbFunctionError::None => 0,
SbFunctionError::FatalError => 1,
SbFunctionError::FunctionError(value) => *value,
SbFunctionError::FunctionResultEmitError => 200,
SbFunctionError::QuoteVerificationError => 201,
SbFunctionError::SwitchboardError(value) => *value,
SbFunctionError::OutOfFunds => 250,
SbFunctionError::Reserved251 => 251,
SbFunctionError::ContainerUnavailable => 252,
SbFunctionError::FunctionResultNotFound => 253,
SbFunctionError::CallbackError => 254,
SbFunctionError::FunctionTimeout => 255,
}
}
}