librelink_client/
glucose.rs1use 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 #[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}