diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-01-03 10:31:45 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-01-03 10:37:32 +0100 |
commit | 3d5f34085c57c83075e5e96ac7d888f54fab026d (patch) | |
tree | b2b609de31f8516a5b7d27ac870ea02ceb104627 | |
parent | 6bb680b6fbdc93a7d626886933fe4dc926f44664 (diff) |
Simplify logic implementation by providing getters on Series type
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | src/api.rs | 15 | ||||
-rw-r--r-- | src/main.rs | 7 |
2 files changed, 16 insertions, 6 deletions
@@ -5,6 +5,7 @@ use chrono::prelude::*; use serde_json; +use getset::{Getters, MutGetters}; #[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Copy)] pub struct Range { @@ -35,10 +36,18 @@ pub enum TargetData { Table(Table), } -#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] +#[derive(Getters, MutGetters, Serialize, Deserialize, Debug, PartialEq, Clone)] pub struct Series { - pub target: String, - pub datapoints: Vec<[f64; 2]>, + target: String, + + #[getset(get = "pub", get_mut = "pub")] + datapoints: Vec<[f64; 2]>, +} + +impl Series { + pub fn new(target: String) -> Self { + Series { target, datapoints: Vec::new() } + } } #[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] diff --git a/src/main.rs b/src/main.rs index 5d8d4d3..b97a595 100644 --- a/src/main.rs +++ b/src/main.rs @@ -145,8 +145,9 @@ fn hash_map_iter(h : HashMap<&String, (&LogItem, Vec<(String, String)>)>, d_from for (file, &(logitem, ref cns)) in h.iter() { // prepare an empty Vector of Series - let mut series_vec = cns.iter().map(|tpl| tpl.1.to_string()) - .map(|target| Series { target, datapoints: Vec::new() }) + let mut series_vec = cns.iter() + .map(|tpl| tpl.1.to_string()) + .map(Series::new) .collect::<Vec<_>>(); // open the current file for reading @@ -187,7 +188,7 @@ fn hash_map_iter(h : HashMap<&String, (&LogItem, Vec<(String, String)>)>, d_from series_vec .get_mut(i) .ok_or(Error::from("out of bounds: series_vec"))? - .datapoints + .datapoints_mut() .push([ captured, // grafana requires ms |