reinfer_client/resources/
statistics.rs

1use std::collections::HashMap;
2
3use crate::LabelName;
4use chrono::NaiveDate;
5use ordered_float::NotNan;
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
9pub(crate) struct GetResponse {
10    pub statistics: Statistics,
11}
12
13#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
14pub struct LabelCount {
15    positive: f32,
16    negative: f32,
17}
18
19#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
20#[serde(untagged)]
21pub enum TimeSeriesEntry {
22    Timestamp(NaiveDate),
23    Number(f32),
24}
25
26#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
27pub struct Statistics {
28    pub num_comments: NotNan<f64>,
29
30    #[serde(default)]
31    pub label_counts: HashMap<LabelName, LabelCount>,
32
33    #[serde(default)]
34    pub label_timeseries: Vec<Vec<TimeSeriesEntry>>,
35}