Skip to main content

wccg_models/activity/
stats.rs

1use crate::activity::Activity;
2use getset::{Getters, Setters};
3use serde::{Deserialize, Serialize};
4
5#[cfg(feature = "wasm")]
6use wasm_bindgen::prelude::wasm_bindgen;
7
8#[cfg_attr(feature = "wasm", wasm_bindgen)]
9#[derive(Debug, Serialize, Deserialize, Getters, Setters)]
10#[getset(get = "pub", set = "pub")]
11#[serde(rename_all = "camelCase")]
12pub struct Stats {
13    distance: f32,
14    count: i32,
15    total_elevation_gain: Option<f32>,
16    commute_distance: f32,
17    commute_count: i32,
18    commute_total_elevation_gain: Option<f32>,
19    longest_activity: Option<Activity>,
20    last_activity: Option<Activity>,
21}
22
23impl Stats {
24    pub fn new() -> Stats {
25        Stats {
26            distance: 0.0,
27            count: 0,
28            total_elevation_gain: Some(0.0),
29            commute_distance: 0.0,
30            commute_count: 0,
31            commute_total_elevation_gain: Some(0.0),
32            longest_activity: None,
33            last_activity: None,
34        }
35    }
36}