freedom_models/
azel.rs

1#[cfg(feature = "serde")]
2use serde::{Deserialize, Serialize};
3use time::OffsetDateTime;
4
5#[cfg_attr(
6    feature = "serde",
7    derive(Serialize, Deserialize),
8    serde(rename_all = "camelCase")
9)]
10#[derive(Debug, Clone, PartialEq)]
11pub struct Location {
12    pub longitude: f64,
13    pub latitude: f64,
14    pub elevation: f64,
15}
16
17#[cfg_attr(
18    feature = "serde",
19    derive(Serialize, Deserialize),
20    serde(rename_all = "camelCase")
21)]
22#[derive(Debug, Clone, PartialEq)]
23pub struct Direction {
24    #[cfg_attr(feature = "serde", serde(with = "time::serde::iso8601"))]
25    pub timestamp: OffsetDateTime,
26    pub az: f64,
27    pub el: f64,
28}
29
30#[cfg_attr(
31    feature = "serde",
32    derive(Serialize, Deserialize),
33    serde(rename_all = "camelCase")
34)]
35#[derive(Debug, Clone, PartialEq)]
36pub struct AzEl {
37    #[cfg_attr(feature = "serde", serde(with = "time::serde::iso8601"))]
38    pub start: OffsetDateTime,
39    #[cfg_attr(feature = "serde", serde(with = "time::serde::iso8601"))]
40    pub end: OffsetDateTime,
41    pub location: Location,
42    pub directions: Vec<Direction>,
43}