#[cfg(feature = "fmt_json")]
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq)]
#[cfg_attr(feature = "fmt_json", derive(Serialize, Deserialize))]
pub enum Alignment {
Left,
Right,
Centered,
Justified,
}
pub trait HasAlignment {
fn alignment(&self) -> &Alignment;
fn set_alignment(&mut self, alignment: Alignment) -> &mut Self;
fn set_left_aligned(&mut self) -> &mut Self {
self.set_alignment(Alignment::Left)
}
fn set_right_aligned(&mut self) -> &mut Self {
self.set_alignment(Alignment::Right)
}
fn set_ragged_left(&mut self) -> &mut Self {
self.set_alignment(Alignment::Right)
}
fn set_ragged_right(&mut self) -> &mut Self {
self.set_alignment(Alignment::Left)
}
fn set_centered(&mut self) -> &mut Self {
self.set_alignment(Alignment::Centered)
}
fn set_justified(&mut self) -> &mut Self {
self.set_alignment(Alignment::Justified)
}
}
impl Default for Alignment {
fn default() -> Self {
Self::Left
}
}