Skip to content

Commit 8da3b40

Browse files
authored
x509-tsp: Implement GeneralizedTimeNanos::from_unix_duration (#2068)
1 parent 6316b26 commit 8da3b40

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

x509-tsp/src/generalized_time_nanos.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,18 @@ impl GeneralizedTimeNanos {
3737
pub fn to_unix_duration(&self) -> Duration {
3838
self.datetime.unix_duration() + Duration::from_nanos(u64::from(self.nanoseconds))
3939
}
40+
41+
/// Create a new [`GeneralizedTimeNanos`] given a [`Duration`] since
42+
/// `UNIX_EPOCH` (a.k.a. "Unix time")
43+
pub fn from_unix_duration(unix_duration: Duration) -> Result<Self> {
44+
let datetime =
45+
DateTime::from_unix_duration(unix_duration).map_err(|_| Self::TAG.value_error())?;
46+
47+
Ok(GeneralizedTimeNanos {
48+
datetime,
49+
nanoseconds: unix_duration.subsec_nanos(),
50+
})
51+
}
4052
}
4153

4254
impl From<GeneralizedTime> for GeneralizedTimeNanos {

0 commit comments

Comments
 (0)