Skip to main content

chartml_core/spec/
style.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize)]
4#[serde(rename_all = "camelCase")]
5pub struct StyleSpec {
6    pub version: u32,
7    pub name: String,
8    pub colors: Option<Vec<String>>,
9    pub grid: Option<GridSpec>,
10    pub height: Option<f64>,
11    pub show_dots: Option<bool>,
12    pub stroke_width: Option<f64>,
13    pub fonts: Option<FontsSpec>,
14    pub legend: Option<LegendSpec>,
15}
16
17#[derive(Debug, Clone, Deserialize, Serialize)]
18#[serde(rename_all = "camelCase")]
19pub struct GridSpec {
20    pub x: Option<bool>,
21    pub y: Option<bool>,
22    pub color: Option<String>,
23    pub opacity: Option<f64>,
24    pub dash_array: Option<String>,
25}
26
27#[derive(Debug, Clone, Deserialize, Serialize)]
28#[serde(rename_all = "camelCase")]
29pub struct FontsSpec {
30    pub title: Option<FontSpec>,
31    pub axis: Option<FontSpec>,
32    pub data_label: Option<FontSpec>,
33}
34
35#[derive(Debug, Clone, Deserialize, Serialize)]
36#[serde(rename_all = "camelCase")]
37pub struct FontSpec {
38    pub family: Option<String>,
39    pub size: Option<f64>,
40    pub weight: Option<String>,
41    pub color: Option<String>,
42}
43
44#[derive(Debug, Clone, Deserialize, Serialize)]
45#[serde(rename_all = "camelCase")]
46pub struct LegendSpec {
47    pub position: Option<String>,
48    pub orientation: Option<String>,
49}