use std::fmt::Debug;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Quote(pub(crate) u8, pub(crate) u8);
impl Quote {
pub fn new(c: u8) -> Self {
Self(c, c)
}
pub fn left(&self) -> char {
char::from(self.0)
}
pub fn right(&self) -> char {
char::from(self.1)
}
}
impl From<char> for Quote {
fn from(c: char) -> Self {
(c as u8).into()
}
}
impl From<(char, char)> for Quote {
fn from((l, r): (char, char)) -> Self {
(l as u8, r as u8).into()
}
}
impl From<u8> for Quote {
fn from(u8: u8) -> Self {
Quote::new(u8)
}
}
impl From<(u8, u8)> for Quote {
fn from((l, r): (u8, u8)) -> Self {
Quote(l, r)
}
}