All checks were successful
continuous-integration/drone/push Build is passing
multiple environments like wasm, tauri and more put non wasm compatible features like rayon multithreading behind feature flags
71 lines
1.5 KiB
Rust
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,
|
|
}
|