1#[cfg(doc)]
2use crate::prelude::{GroundStation, TimeScale, DORIS};
3
4use crate::{
5 error::ParsingError,
6 prelude::{Duration, Observable, Observation},
7};
8
9#[cfg(feature = "serde")]
10use serde::{Deserialize, Serialize};
11
12use itertools::Itertools;
13use std::collections::HashMap;
14
15#[derive(Clone, Copy, Debug, Default, PartialEq, PartialOrd, Eq, Ord, Hash)]
16#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
17pub struct ClockOffset {
18 pub extrapolated: bool,
21
22 pub offset: Duration,
24}
25
26impl ClockOffset {
27 pub fn from_measured_offset(offset: Duration) -> Self {
29 Self {
30 offset,
31 extrapolated: false,
32 }
33 }
34
35 pub fn from_extrapolated_offset(offset: Duration) -> Self {
38 Self {
39 offset,
40 extrapolated: true,
41 }
42 }
43}