From 470f3455f73c70c4207c736eb7f278d7b65f7dfd Mon Sep 17 00:00:00 2001 From: Joscha Date: Fri, 20 Jan 2023 17:11:00 +0100 Subject: [PATCH] Add Time::new constructor --- CHANGELOG.md | 1 + src/api/types.rs | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 348656a..5cc4529 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ Procedure when bumping the version number: ### Added - `Status` conversion utility methods +- `Time::new` constructor ## v0.2.0 - 2022-12-10 diff --git a/src/api/types.rs b/src/api/types.rs index c24b4c9..6729ebe 100644 --- a/src/api/types.rs +++ b/src/api/types.rs @@ -12,7 +12,7 @@ use std::{error, fmt}; use serde::{de, ser, Deserialize, Serialize}; use serde_json::Value; -use time::OffsetDateTime; +use time::{OffsetDateTime, UtcOffset}; /// Describes an account and its preferred name. #[derive(Debug, Clone, Serialize, Deserialize)] @@ -406,8 +406,16 @@ impl<'de> Deserialize<'de> for Snowflake { pub struct Time(#[serde(with = "time::serde::timestamp")] pub OffsetDateTime); impl Time { + pub fn new(time: OffsetDateTime) -> Self { + let time = time + .to_offset(UtcOffset::UTC) + .replace_millisecond(0) + .unwrap(); + Self(time) + } + pub fn now() -> Self { - Self(OffsetDateTime::now_utc().replace_millisecond(0).unwrap()) + Self::new(OffsetDateTime::now_utc()) } }