1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use serde::{Serialize, Deserialize};

use crate::{Style, Vec2};

/// A rendered shape tree.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", rename_all_fields = "camelCase")]
pub enum ShapeNode {
    // Primitive
    Capsule {},
    Circle {},
    Ellipse {},
    Rectangle {},
    RoundedRectangle { corner_size: Vec2<f64> },

    // Styled
    Fill { wrapped: Box<ShapeNode>, style: Style },
    Stroke { wrapped: Box<ShapeNode>, style: Style },
}