strava_wrapper/models/
route.rs1use 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}