use std::fmt;
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum CaiSign {
Negative,
Positive,
}
impl fmt::Display for CaiSign {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
let text = match self {
CaiSign::Positive => "+",
CaiSign::Negative => "-"
};
write!(f, "{}", text)
}
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum CaiOrder {
Low,
High,
}
impl fmt::Display for CaiOrder {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
let text = match self {
CaiOrder::High => "H",
CaiOrder::Low => "L"
};
write!(f, "{}", text)
}
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum CaiDigit {
N1,
N2,
N3,
N4,
N5,
N6,
N7,
N8,
N9,
N0,
}
impl From<CaiDigit> for i64 {
fn from(d: CaiDigit) -> Self {
match d {
CaiDigit::N0 => 0.into(),
CaiDigit::N1 => 1.into(),
CaiDigit::N2 => 2.into(),
CaiDigit::N3 => 3.into(),
CaiDigit::N4 => 4.into(),
CaiDigit::N5 => 5.into(),
CaiDigit::N6 => 6.into(),
CaiDigit::N7 => 7.into(),
CaiDigit::N8 => 8.into(),
CaiDigit::N9 => 9.into(),
}
}
}
impl fmt::Display for CaiDigit {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
let text = match self {
CaiDigit::N0 => "0",
CaiDigit::N1 => "1",
CaiDigit::N2 => "2",
CaiDigit::N3 => "3",
CaiDigit::N4 => "4",
CaiDigit::N5 => "5",
CaiDigit::N6 => "6",
CaiDigit::N7 => "7",
CaiDigit::N8 => "8",
CaiDigit::N9 => "9"
};
write!(f, "{}", text)
}
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum CaiComma {
No,
Yes,
}
impl fmt::Display for CaiComma {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
let text = match self {
CaiComma::Yes => ".",
CaiComma::No => ""
};
write!(f, "{}", text)
}
}