This commit is contained in:
2023-05-20 14:11:35 +02:00
parent 7f6b7f4695
commit 7576850ae0
109 changed files with 10720 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Color {
value: (u8, u8, u8, f32),
}
impl Color {
pub fn new(red: u8, green: u8, blue: u8, alpha: f32) -> Color {
Color {
value: (red, green, blue, alpha),
}
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum PaintStyle {
Fill(FillStyle),
Stroke(StrokeStyle),
StrokeAndFill(StrokeAndFillStyle),
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Paint {
pub style: PaintStyle,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TextPaint {
pub style: PaintStyle,
pub align: TextAlign,
pub size: f32,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct StrokeStyle {
pub color: Color,
pub width: f32,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct StrokeAndFillStyle {
pub stroke: StrokeStyle,
pub fill: FillStyle,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct FillStyle {
pub color: Color,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum TextAlign {
Left,
Center,
Right,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct FontDefinition {
pub family_name: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Font {
pub glyph_count: i32,
pub weight: i32,
pub style: String,
}