#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum ErrorCode {
Unavailable,
NotEnoughMoney,
VersionUnsupported,
OriginalPsbtRejected,
}
impl ErrorCode {
pub const fn as_str(&self) -> &'static str {
match self {
Self::Unavailable => "unavailable",
Self::NotEnoughMoney => "not-enough-money",
Self::VersionUnsupported => "version-unsupported",
Self::OriginalPsbtRejected => "original-psbt-rejected",
}
}
}
impl core::str::FromStr for ErrorCode {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"unavailable" => Ok(Self::Unavailable),
"not-enough-money" => Ok(Self::NotEnoughMoney),
"version-unsupported" => Ok(Self::VersionUnsupported),
"original-psbt-rejected" => Ok(Self::OriginalPsbtRejected),
_ => Err(()),
}
}
}
impl core::fmt::Display for ErrorCode {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.write_str(self.as_str())
}
}