move rust code to own library for targeting
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
This commit is contained in:
2023-06-27 15:05:46 +02:00
parent c352ba7fd3
commit 6d2ffe6902
28 changed files with 5721 additions and 2 deletions

View File

@@ -0,0 +1,70 @@
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,
}