use std::fmt;
use std::str::FromStr;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum JsonEncodeErrorKind {
Budget,
InvalidRawJson,
Serialize,
Write,
}
impl fmt::Display for JsonEncodeErrorKind {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str(match self {
Self::Budget => "budget",
Self::InvalidRawJson => "invalid_raw_json",
Self::Serialize => "serialize",
Self::Write => "write",
})
}
}
impl FromStr for JsonEncodeErrorKind {
type Err = &'static str;
fn from_str(value: &str) -> Result<Self, Self::Err> {
if value.eq_ignore_ascii_case("budget") {
Ok(Self::Budget)
} else if value.eq_ignore_ascii_case("invalid_raw_json") {
Ok(Self::InvalidRawJson)
} else if value.eq_ignore_ascii_case("serialize") {
Ok(Self::Serialize)
} else if value.eq_ignore_ascii_case("write") {
Ok(Self::Write)
} else {
Err("unknown JsonEncodeErrorKind")
}
}
}