diffenator3_lib/
structs.rs1use serde::Serialize;
2
3#[derive(Debug, Serialize)]
5#[cfg_attr(feature = "typescript", derive(typescript_type_def::TypeDef))]
6pub struct Difference {
7 pub word: String,
9 pub buffer_a: String,
11 #[serde(skip_serializing_if = "Option::is_none")]
13 pub buffer_b: Option<String>,
14 pub differing_pixels: usize,
16 #[serde(skip_serializing_if = "String::is_empty")]
18 pub ot_features: String,
19 #[serde(skip_serializing_if = "String::is_empty")]
21 pub lang: String,
22}
23
24#[derive(Serialize)]
25#[cfg_attr(feature = "typescript", derive(typescript_type_def::TypeDef))]
26pub struct EncodedGlyph {
27 pub string: String,
29 #[serde(skip_serializing_if = "Option::is_none")]
31 pub name: Option<String>,
32}
33#[derive(Serialize)]
35#[cfg_attr(feature = "typescript", derive(typescript_type_def::TypeDef))]
36pub struct CmapDiff {
37 #[serde(skip_serializing_if = "Vec::is_empty")]
38 pub missing: Vec<EncodedGlyph>,
39 #[serde(skip_serializing_if = "Vec::is_empty")]
40 pub new: Vec<EncodedGlyph>,
41}
42
43#[derive(Debug, Serialize)]
45#[cfg_attr(feature = "typescript", derive(typescript_type_def::TypeDef))]
46pub struct GlyphDiff {
47 pub string: String,
49 pub name: String,
51 pub unicode: String,
53 pub differing_pixels: usize,
55}
56
57#[cfg(feature = "typescript")]
58pub type Api = (Difference, GlyphDiff, CmapDiff);