1use super::common::LatLng;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct StreamSet {
10 pub time: Option<TimeStream>,
11 pub distance: Option<DistanceStream>,
12 pub latlng: Option<LatLngStream>,
13 pub altitude: Option<AltitudeStream>,
14 pub velocity_smooth: Option<SmoothVelocityStream>,
15 pub heartrate: Option<HeartrateStream>,
16 pub cadence: Option<CadenceStream>,
17 pub watts: Option<PowerStream>,
18 pub temp: Option<TemperatureStream>,
19 pub moving: Option<MovingStream>,
20 pub grade_smooth: Option<SmoothGradeStream>,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
24pub struct BaseStream {
25 pub original_size: Option<i32>,
26 pub resolution: Option<String>,
27 pub series_type: Option<String>,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
31pub struct AltitudeStream {
32 pub original_size: Option<i32>,
33 pub resolution: Option<String>,
34 pub series_type: Option<String>,
35 pub data: Option<Vec<f32>>,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
39pub struct CadenceStream {
40 pub original_size: Option<i32>,
41 pub resolution: Option<String>,
42 pub series_type: Option<String>,
43 pub data: Option<Vec<i32>>,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
47pub struct DistanceStream {
48 pub original_size: Option<i32>,
49 pub resolution: Option<String>,
50 pub series_type: Option<String>,
51 pub data: Option<Vec<f32>>,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct HeartrateStream {
56 pub original_size: Option<i32>,
57 pub resolution: Option<String>,
58 pub series_type: Option<String>,
59 pub data: Option<Vec<i32>>,
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize)]
63pub struct LatLngStream {
64 pub original_size: Option<i32>,
65 pub resolution: Option<String>,
66 pub series_type: Option<String>,
67 pub data: Option<Vec<LatLng>>,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
71pub struct MovingStream {
72 pub original_size: Option<i32>,
73 pub resolution: Option<String>,
74 pub series_type: Option<String>,
75 pub data: Option<Vec<bool>>,
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
79pub struct PowerStream {
80 pub original_size: Option<i32>,
81 pub resolution: Option<String>,
82 pub series_type: Option<String>,
83 pub data: Option<Vec<i32>>,
84}
85
86#[derive(Debug, Clone, Serialize, Deserialize)]
87pub struct SmoothGradeStream {
88 pub original_size: Option<i32>,
89 pub resolution: Option<String>,
90 pub series_type: Option<String>,
91 pub data: Option<Vec<f32>>,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize)]
95pub struct SmoothVelocityStream {
96 pub original_size: Option<i32>,
97 pub resolution: Option<String>,
98 pub series_type: Option<String>,
99 pub data: Option<Vec<f32>>,
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
103pub struct TemperatureStream {
104 pub original_size: Option<i32>,
105 pub resolution: Option<String>,
106 pub series_type: Option<String>,
107 pub data: Option<Vec<i32>>,
108}
109
110#[derive(Debug, Clone, Serialize, Deserialize)]
111pub struct TimeStream {
112 pub original_size: Option<i32>,
113 pub resolution: Option<String>,
114 pub series_type: Option<String>,
115 pub data: Option<Vec<i32>>,
116}