use super::{Border, ColorKind};
#[cfg(feature = "pyo3")]
use pyo3::prelude::*;
use serde::{Deserialize, Serialize};
#[cfg_attr(
feature = "pyo3",
pyclass(eq, eq_int, module = "img_gen", from_py_object)
)]
#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize)]
pub enum Corners {
#[serde(alias = "top left")]
TopLeft,
#[serde(alias = "top right")]
TopRight,
#[serde(alias = "bottom left")]
BottomLeft,
#[serde(alias = "bottom right")]
BottomRight,
}
impl Corners {
pub const ALL: [Self; 4] = [
Corners::TopLeft,
Corners::TopRight,
Corners::BottomLeft,
Corners::BottomRight,
];
}
#[cfg_attr(
feature = "pyo3",
pyclass(module = "img_gen", get_all, set_all, from_py_object)
)]
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct Rectangle {
pub border: Option<Border>,
#[serde(default = "ColorKind::transparent_default")]
pub color: ColorKind,
#[serde(default)]
pub radius: f32,
#[serde(default)]
pub corners: Vec<Corners>,
}