Added max() min() n GraphicJson and cleaned up serialization

[?]
Jul 13, 2021, 9:44 AM
YJXKWWM6TQLANMJZ2KGCLYUPSHYQXBD6JGZZLGF4BHAPL57YFNAQC

Dependencies

  • [2] SPSFTMLR Completed loading ts_data from specification.
  • [3] GQVS55HI Finished generate_ts_spec() function.
  • [4] 2SABVMY3 Finished into_json() functionality.
  • [*] TTR5IFSG Working on building generic TSSpec.

Change contents

  • replacement in src/ts.rs at line 9
    [3.7678][3.7678:7700]()
    use serde::Serialize;
    [3.7678]
    [3.7700]
    use serde::{
    Serialize,
    Serializer,
    };
    use serde::ser::SerializeStruct;
  • edit in src/ts.rs at line 38
    [2.1136]
    [2.1136]
    static GRAPHIC_HEIGHT: f32 = 200.0;
  • replacement in src/ts.rs at line 168
    [2.4390][2.4390:4418]()
    #[derive(Debug, Serialize)]
    [2.4390]
    [2.4418]
    #[derive(Debug)]
  • edit in src/ts.rs at line 181
    [2.4670]
    [3.9110]
  • edit in src/ts.rs at line 187
    [2.4811]
    [6.5981]
    }
    /// Calculate the maximum value of all series in `Self`.
    pub (crate) fn max(&self) -> f32 {
    self.series.iter()
    .map(|(ts, _)| ts.max(0))
    .fold(f32::NEG_INFINITY, |a, b| a.max(b))
    }
    /// Calculate the minimum value of all series in `Self`.
    pub (crate) fn min(&self) -> f32 {
    self.series.iter()
    .map(|(ts, _)| ts.min(0))
    .fold(f32::INFINITY, |a, b| a.min(b))
  • edit in src/ts.rs at line 202
    [6.5987]
    [2.4812]
    pub (crate) fn height(&self) -> f32 {
    match self.height {
    Some(h) => h,
    None => GRAPHIC_HEIGHT,
    }
    }
  • edit in src/ts.rs at line 210
    [2.4814]
    [6.5987]
    impl Serialize for GraphicJson {
    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
    where
    S: Serializer,
    {
    // let height = serializer.serialize_f32(self.height())?;
  • edit in src/ts.rs at line 218
    [6.5988]
    [2.4815]
    // let max = serializer.serialize_f32(self.max())?;
    // let min = serializer.serialize_f32(self.min())?;
    // let series = serializer.serialize(self.series);
    let mut graphic_json = serializer.serialize_struct("GraphicJson", 4)?;
    graphic_json.serialize_field("height", &self.height())?;
    graphic_json.serialize_field("series", &self.series)?;
    graphic_json.serialize_field("max", &self.max())?;
    graphic_json.serialize_field("min", &self.min())?;
    graphic_json.end()
    }
    }