From d421fa1497ddf2ff4387b795f729a80d82c31bf9 Mon Sep 17 00:00:00 2001 From: Taryn Hill Date: Sat, 29 Aug 2020 11:06:21 -0500 Subject: [PATCH] chore: update Rust demo to work with schema change --- demos/rust/src/main.rs | 106 ++++++++++++++++++++--------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/demos/rust/src/main.rs b/demos/rust/src/main.rs index f52ba85..149ac3a 100644 --- a/demos/rust/src/main.rs +++ b/demos/rust/src/main.rs @@ -1,77 +1,77 @@ use serde::Serialize; -#[derive(Debug, Serialize)] -struct Label { - label: Option, -} -#[derive(Debug, Serialize)] -struct Row { - label: Option, - columns: Vec, -} -#[derive(Debug, Serialize)] -struct Column { - content: Option, - tag: Option, - color: Option, -} -#[derive(Debug, Serialize)] -struct Marker { - id: String, - row: u64, - column: u64, - rows: Option, - columns: Option, - label: Option, - color: Option, -} +// expected to mirror +// https://hediet.github.io/visualization/docs/visualization-data-schema.json +// +// implements the grid visualizer as an example -#[allow(clippy::trivially_copy_pass_by_ref)] -fn is_false(b: &bool) -> bool { - !*b -} - -#[derive(Debug, Serialize)] -struct Kind { - #[serde(skip_serializing_if = "is_false")] - array: bool, -} +pub type Label = String; +/// `GridVisualizationData` in schema #[derive(Debug, Serialize)] pub struct Grid { kind: Kind, - #[serde(rename = "columnLabels")] - column_labels: Option>, rows: Vec, - markers: Option>, + + #[serde(rename = "columnLabels")] + #[serde(skip_serializing_if="Option::is_none")] + column_labels: Option>, +} + +#[derive(Debug, Serialize)] +pub struct Kind { + grid: bool, +} + +#[derive(Debug, Serialize)] +pub struct Row { + columns: Vec, + + #[serde(skip_serializing_if="Option::is_none")] + label: Option