enricobuehler 28613c9214 update logo
improve font resolution logic
generate icons
improve timeline
2023-05-28 22:57:13 +02:00

71 lines
1.5 KiB
Rust

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 font_name: String,
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,
}