librelink_client/
glucose.rs

1use serde::{Deserialize, Serialize};
2
3use crate::connection::{GraphData, Ticket};
4
5#[derive(Serialize, Deserialize, Debug)]
6pub struct GlucoseHistoryRequest {
7    pub status: i32,
8    pub data: GlucoseHistoryData,
9    pub ticket: Ticket,
10}
11
12#[derive(Serialize, Deserialize, Debug)]
13pub struct LogBookRequest {
14    pub status: i32,
15    pub data: Vec<GraphData>,
16    pub ticket: Ticket,
17}
18
19#[derive(Serialize, Debug, Deserialize)]
20pub struct GlucoseHistoryData {
21    #[serde(rename = "lastUpload")]
22    pub last_upload: i64,
23    #[serde(rename = "lastUploadCGM")]
24    pub last_upload_gcm: i64,
25    #[serde(rename = "lastUploadPro")]
26    pub last_upload_pro: i64,
27    #[serde(rename = "reminderSent")]
28    pub reminder_sent: i64,
29    pub devices: Vec<i32>,
30    pub periods: Vec<Period>,
31}
32
33#[derive(Serialize, Deserialize, Debug)]
34pub struct Period {
35    #[serde(rename = "dateEnd")]
36    pub date_end: i64,
37    #[serde(rename = "dateStart")]
38    pub date_start: i64,
39    #[serde(rename = "noData")]
40    pub no_data: bool,
41    #[serde(rename = "dataType")]
42    pub data_type: String,
43    #[serde(rename = "avgGlucose")]
44    pub avg_glucose: i64,
45    #[serde(rename = "serialNumber")]
46    pub serial_number: String,
47    #[serde(rename = "deviceId")]
48    pub device_id: String,
49    #[serde(rename = "deviceType")]
50    pub device_type: i32,
51    //mergeable_devices: ?? unkown type
52    #[serde(rename = "hypoEvents")]
53    pub hypo_events: i32,
54    #[serde(rename = "avgTestsPerDay")]
55    pub avg_tests_per_day: i32,
56    #[serde(rename = "daysOfData")]
57    pub days_of_data: i32,
58    pub data: PeriodData,
59}
60
61#[derive(Serialize, Deserialize, Debug)]
62pub struct PeriodData {
63    #[serde(rename = "maxGlucoseRange")]
64    pub max_glucose_range: i32,
65    #[serde(rename = "minGlucoseRange")]
66    pub min_glucose_range: i32,
67    #[serde(rename = "maxGlucoseValue")]
68    pub max_glucose_value: i32,
69    pub blocks: Vec<Vec<Block>>,
70}
71
72#[derive(Serialize, Deserialize, Debug)]
73pub struct Block {
74    pub time: i64,
75    pub percentile5: f32,
76    pub percentile25: f32,
77    pub percentile50: f32,
78    pub percentile75: f32,
79    pub percentile95: f32,
80}