use serde::{Deserialize, Serialize};
use std::{ops, str::FromStr};
#[derive(Eq, PartialEq, Clone, Copy, Debug, Hash, Deserialize, Serialize)]
pub enum AbsoluteSide {
ASide,
IASide,
}
impl FromStr for AbsoluteSide {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"A" => Ok(AbsoluteSide::ASide),
"IA" => Ok(AbsoluteSide::IASide),
_ => Err(()),
}
}
}
impl ops::Not for AbsoluteSide {
type Output = AbsoluteSide;
fn not(self) -> Self::Output {
match self {
AbsoluteSide::ASide => AbsoluteSide::IASide,
AbsoluteSide::IASide => AbsoluteSide::ASide,
}
}
}