rusty_vision/traits/
draw.rs1use 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}