summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-01-03 10:31:45 +0100
committerMatthias Beyer <mail@beyermatthias.de>2021-01-03 10:37:32 +0100
commit3d5f34085c57c83075e5e96ac7d888f54fab026d (patch)
treeb2b609de31f8516a5b7d27ac870ea02ceb104627
parent6bb680b6fbdc93a7d626886933fe4dc926f44664 (diff)
Simplify logic implementation by providing getters on Series type
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--src/api.rs15
-rw-r--r--src/main.rs7
2 files changed, 16 insertions, 6 deletions
diff --git a/src/api.rs b/src/api.rs
index 2e41aae..a68e12f 100644
--- a/src/api.rs
+++ b/src/api.rs
@@ -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