Skip to main content

strava_wrapper/models/
route.rs

1//! Route resource types.
2
3use super::athlete::SummaryAthlete;
4use super::common::{LatLng, PolylineMap};
5use super::segment::SummarySegment;
6use chrono::{DateTime, Utc};
7use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct Route {
11    pub athlete: Option<SummaryAthlete>,
12    pub description: Option<String>,
13    pub distance: Option<f32>,
14    pub elevation_gain: Option<f32>,
15    pub id: Option<i64>,
16    pub id_str: Option<String>,
17    pub map: Option<PolylineMap>,
18    pub name: Option<String>,
19    pub private: Option<bool>,
20    pub starred: Option<bool>,
21    pub timestamp: Option<i64>,
22    pub r#type: Option<i32>,
23    pub sub_type: Option<i32>,
24    pub created_at: Option<DateTime<Utc>>,
25    pub updated_at: Option<DateTime<Utc>>,
26    pub estimated_moving_time: Option<i32>,
27    pub segments: Option<Vec<SummarySegment>>,
28    pub waypoints: Option<Vec<Waypoint>>,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
32pub struct Waypoint {
33    pub latlng: Option<LatLng>,
34    pub target_latlng: Option<LatLng>,
35    pub categories: Option<String>,
36    pub title: Option<String>,
37    pub description: Option<String>,
38    pub distance_into_route: Option<i32>,
39}