Skip to content

Commit 2fdd90a

Browse files
Merge pull request #176 from gwbres/timescale-default
epoch, timescale: implement default trait
2 parents 7d6708c + 27d8e41 commit 2fdd90a

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

src/epoch.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ const CUMULATIVE_DAYS_FOR_MONTH: [u16; 12] = {
156156
/// Defines a nanosecond-precision Epoch.
157157
///
158158
/// Refer to the appropriate functions for initializing this Epoch from different time systems or representations.
159-
#[derive(Copy, Clone, Eq)]
159+
#[derive(Copy, Clone, Eq, Default)]
160160
#[repr(C)]
161161
#[cfg_attr(feature = "python", pyclass)]
162162
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]

src/timescale.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,18 @@ pub enum TimeScale {
7474
BDT,
7575
}
7676

77+
impl Default for TimeScale {
78+
/// Builds default TAI time scale
79+
fn default() -> Self {
80+
/*
81+
* We use TAI as default Time scale,
82+
* because `Epoch` is always defined with respect to TAI.
83+
* Also, a default `Epoch` is then a null duration into TAI.
84+
*/
85+
Self::TAI
86+
}
87+
}
88+
7789
impl TimeScale {
7890
pub(crate) const fn formatted_len(&self) -> usize {
7991
match &self {

tests/timescale.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,8 @@ fn test_is_gnss() {
5454
let ts = TimeScale::TAI;
5555
assert!(!ts.is_gnss());
5656
}
57+
58+
#[test]
59+
fn test_default() {
60+
assert_eq!(TimeScale::default(), TimeScale::TAI);
61+
}

0 commit comments

Comments
 (0)