diff --git a/charming/src/element/mark_line.rs b/charming/src/element/mark_line.rs index 8ed0401..fab6599 100644 --- a/charming/src/element/mark_line.rs +++ b/charming/src/element/mark_line.rs @@ -168,6 +168,9 @@ pub struct MarkLine { #[serde(skip_serializing_if = "Vec::is_empty")] symbol: Vec, + #[serde(skip_serializing_if = "Option::is_none")] + precision: Option, + #[serde(skip_serializing_if = "Vec::is_empty")] data: Vec, } @@ -186,6 +189,7 @@ impl MarkLine { zlevel: None, z: None, symbol: vec![], + precision: None, data: vec![], } } @@ -215,6 +219,11 @@ impl MarkLine { self } + pub fn precision>(mut self, precision: F) -> Self { + self.precision = Some(precision.into()); + self + } + pub fn data>(mut self, data: Vec) -> Self { self.data = data.into_iter().map(|m| m.into()).collect(); self diff --git a/charming/src/series/line.rs b/charming/src/series/line.rs index 81d74fb..97131ec 100644 --- a/charming/src/series/line.rs +++ b/charming/src/series/line.rs @@ -4,7 +4,7 @@ use crate::{ datatype::{DataFrame, DataPoint}, element::{ smoothness::Smoothness, AreaStyle, CoordinateSystem, DimensionEncode, Emphasis, ItemStyle, - Label, LineStyle, MarkArea, MarkLine, MarkPoint, Symbol, SymbolSize, + Label, LineStyle, MarkArea, MarkLine, MarkPoint, Symbol, SymbolSize, Tooltip, }, }; @@ -77,6 +77,9 @@ pub struct Line { #[serde(skip_serializing_if = "Option::is_none")] y_axis_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + tooltip: Option, + #[serde(skip_serializing_if = "Vec::is_empty")] data: DataFrame, } @@ -112,6 +115,7 @@ impl Line { encode: None, x_axis_index: None, y_axis_index: None, + tooltip: None, data: vec![], } } @@ -223,6 +227,11 @@ impl Line { self } + pub fn tooltip(mut self, tooltip: Tooltip) -> Self { + self.tooltip = Some(tooltip); + self + } + pub fn data>(mut self, data: Vec) -> Self { self.data = data.into_iter().map(|d| d.into()).collect(); self