#[cfg(feature = "pyo3")]
use pyo3::prelude::*;
use serde::Deserialize;
use super::{Border, ColorKind};
#[derive(Debug, Clone, Default, Deserialize)]
#[cfg_attr(
feature = "pyo3",
pyclass(module = "img_gen", get_all, set_all, from_py_object)
)]
pub struct Arc {
pub start: f32,
pub end: f32,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[cfg_attr(
feature = "pyo3",
pyclass(module = "img_gen", get_all, set_all, from_py_object)
)]
pub struct Ellipse {
pub border: Option<Border>,
#[serde(default = "ColorKind::transparent_default")]
pub color: ColorKind,
pub arc: Option<Arc>,
#[serde(default, alias = "border-to-origin")]
pub border_to_origin: bool,
}
#[cfg(test)]
mod tests {
#![allow(clippy::unwrap_used)]
use super::*;
#[test]
fn deserialize_default_ellipse() {
let json = r#"{}"#;
let ellipse: Ellipse = serde_json::from_str(json).unwrap();
assert_eq!(ellipse.color.get_color_tuple_at(0, 0), (0, 0, 0, 0));
assert!(ellipse.border.is_none());
assert!(ellipse.arc.is_none());
assert!(!ellipse.border_to_origin);
}
}