rusty_vision/traits/
draw.rs

1use derive_new::new;
2
3use crate::{
4    color::Color,
5    error::Error,
6    geometry::{Point, Shape},
7};
8
9#[derive(Debug, Clone, Copy, new)]
10pub struct RectParams {
11    pub topleft: Point,
12    pub shape: Shape,
13    pub color: Color,
14    pub border_width: Option<usize>,
15    pub corner_radius: Option<f32>,
16    pub fill_color: Option<Color>,
17}
18
19#[derive(Debug, Clone, Copy, new)]
20pub struct CircleParams {
21    pub center: Point,
22    pub radius: usize,
23    pub color: Color,
24    pub fill_color: Option<Color>,
25}
26
27#[derive(Debug, Clone, Copy)]
28pub struct TriangleParams;
29
30pub trait Drawable<T> {
31    fn draw(&mut self, params: &T) -> Result<(), Error>;
32}