#[derive(Debug, Default, Clone)]
pub struct PrintingPosition {
pub x_printing_position: XPrintingPosition,
pub y_printing_position: YPrintingPosition,
}
#[derive(Default, Debug, PartialEq, Eq, Clone)]
pub enum XPrintingPosition {
#[default]
Left,
Middle,
Right,
Custom(usize),
}
#[derive(Default, Debug, PartialEq, Eq, Clone)]
pub enum YPrintingPosition {
Top,
Middle,
#[default]
Bottom,
Custom(usize),
}
impl PrintingPosition {
pub fn new(
x_printing_position: XPrintingPosition,
y_printing_position: YPrintingPosition,
) -> Self {
Self {
x_printing_position,
y_printing_position,
}
}
pub fn with_x_printing_position(x_printing_position: XPrintingPosition) -> Self {
Self {
x_printing_position,
..Default::default()
}
}
pub fn with_y_printing_position(y_printing_position: YPrintingPosition) -> Self {
Self {
y_printing_position,
..Default::default()
}
}
}
impl From<(XPrintingPosition, YPrintingPosition)> for PrintingPosition {
fn from(item: (XPrintingPosition, YPrintingPosition)) -> Self {
Self {
x_printing_position: item.0,
y_printing_position: item.1,
}
}
}