use crate::{FontManager, ZplResult};
#[allow(clippy::too_many_arguments)]
pub trait ZplForgeBackend {
fn setup_page(&mut self, width: f64, height: f64, resolution: f32);
fn setup_font_manager(&mut self, font_manager: &FontManager);
fn draw_text(
&mut self,
x: u32,
y: u32,
font: char,
height: Option<u32>,
width: Option<u32>,
text: &str,
reverse_print: bool,
color: Option<String>,
) -> ZplResult<()>;
fn draw_graphic_box(
&mut self,
x: u32,
y: u32,
width: u32,
height: u32,
thickness: u32,
color: char,
custom_color: Option<String>,
rounding: u32,
reverse_print: bool,
) -> ZplResult<()>;
fn draw_graphic_circle(
&mut self,
x: u32,
y: u32,
radius: u32,
thickness: u32,
color: char,
custom_color: Option<String>,
reverse_print: bool,
) -> ZplResult<()>;
fn draw_graphic_ellipse(
&mut self,
x: u32,
y: u32,
width: u32,
height: u32,
thickness: u32,
color: char,
custom_color: Option<String>,
reverse_print: bool,
) -> ZplResult<()>;
fn draw_graphic_field(
&mut self,
x: u32,
y: u32,
width: u32,
height: u32,
data: &[u8],
reverse_print: bool,
) -> ZplResult<()>;
fn draw_graphic_image_custom(
&mut self,
x: u32,
y: u32,
width: u32,
height: u32,
data: &str,
) -> ZplResult<()>;
fn draw_code128(
&mut self,
x: u32,
y: u32,
orientation: char,
height: u32,
module_width: u32,
interpretation_line: char,
interpretation_line_above: char,
check_digit: char,
mode: char,
data: &str,
reverse_print: bool,
) -> ZplResult<()>;
fn draw_qr_code(
&mut self,
x: u32,
y: u32,
orientation: char,
model: u32,
magnification: u32,
error_correction: char,
mask: u32,
data: &str,
reverse_print: bool,
) -> ZplResult<()>;
fn draw_code39(
&mut self,
x: u32,
y: u32,
orientation: char,
check_digit: char,
height: u32,
module_width: u32,
interpretation_line: char,
interpretation_line_above: char,
data: &str,
reverse_print: bool,
) -> ZplResult<()>;
fn finalize(&mut self) -> ZplResult<Vec<u8>>;
}