From 2b0f40b4433ce03bbec9336b3bf9e7cb05657f8f Mon Sep 17 00:00:00 2001 From: LukaOber Date: Thu, 10 Oct 2024 18:46:44 +0200 Subject: [PATCH] serialize Vec with one element as T for axis --- charming/src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/charming/src/lib.rs b/charming/src/lib.rs index 4c518ab..572dfe3 100644 --- a/charming/src/lib.rs +++ b/charming/src/lib.rs @@ -100,8 +100,8 @@ use component::{ use datatype::Dataset; use element::{process_raw_strings, AxisPointer, Color, MarkLine, Tooltip}; use serde::Serialize; +use serde_with::{formats::PreferOne, serde_as, skip_serializing_none, OneOrMany}; use series::Series; - /** The chart representation. @@ -236,6 +236,7 @@ mouse pointer. [`Toolbox`] is a feature toolbox that includes data view, save as image, data zoom, restore, and reset. */ +#[serde_as] #[derive(Serialize, Debug, PartialEq, Clone)] #[serde(rename_all = "camelCase")] pub struct Chart { @@ -258,6 +259,7 @@ pub struct Chart { #[serde(rename = "grid3D")] grid3d: Vec, + #[serde_as(as = "OneOrMany<_, PreferOne>")] #[serde(skip_serializing_if = "Vec::is_empty")] x_axis: Vec, @@ -265,6 +267,7 @@ pub struct Chart { #[serde(rename = "xAxis3D")] x_axis3d: Vec, + #[serde_as(as = "OneOrMany<_, PreferOne>")] #[serde(skip_serializing_if = "Vec::is_empty")] y_axis: Vec,