use std::fmt;
use std::str::FromStr;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum JcsEncodeErrorKind {
Budget,
WorkingMemory,
Serialize,
Write,
}
impl fmt::Display for JcsEncodeErrorKind {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str(match self {
Self::Budget => "budget",
Self::WorkingMemory => "working_memory",
Self::Serialize => "serialize",
Self::Write => "write",
})
}
}
impl FromStr for JcsEncodeErrorKind {
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("working_memory") {
Ok(Self::WorkingMemory)
} 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 JcsEncodeErrorKind")
}
}
}