#[derive(Debug, Clone, PartialEq, Eq)]
pub enum FieldType {
Text,
Button,
Choice,
Signature,
Unknown(String),
}
impl FieldType {
pub fn from_name(name: &str) -> Self {
match name {
"Tx" => FieldType::Text,
"Btn" => FieldType::Button,
"Ch" => FieldType::Choice,
"Sig" => FieldType::Signature,
other => FieldType::Unknown(other.to_string()),
}
}
pub fn to_name(&self) -> &str {
match self {
FieldType::Text => "Tx",
FieldType::Button => "Btn",
FieldType::Choice => "Ch",
FieldType::Signature => "Sig",
FieldType::Unknown(name) => name,
}
}
}
impl std::fmt::Display for FieldType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
FieldType::Text => write!(f, "Text"),
FieldType::Button => write!(f, "Button"),
FieldType::Choice => write!(f, "Choice"),
FieldType::Signature => write!(f, "Signature"),
FieldType::Unknown(name) => write!(f, "Unknown({})", name),
}
}
}