nuit_core/node/
shape.rs

1use serde::{Serialize, Deserialize};
2
3use crate::{Angle, Style, Vec2};
4
5/// A rendered shape tree.
6#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase", rename_all_fields = "camelCase")]
8pub enum ShapeNode {
9    // Primitive
10    Capsule {},
11    Circle {},
12    Ellipse {},
13    Rectangle {},
14    RoundedRectangle { corner_size: Vec2<f64> },
15    Sector { start_angle: Angle, end_angle: Angle, inner_radius_fraction: f64 },
16
17    // Styled
18    Fill { wrapped: Box<ShapeNode>, style: Style },
19    Stroke { wrapped: Box<ShapeNode>, style: Style },
20}