Skip to content

Commit 773c921

Browse files
committed
Stop using deprecated chrono's api.
Upgrade to chrono 0.4.35 Signed-off-by: David Calavera <[email protected]>
1 parent f610ff6 commit 773c921

File tree

6 files changed

+32
-29
lines changed

6 files changed

+32
-29
lines changed

Diff for: Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ exclude = ["examples"]
1414
[workspace.dependencies]
1515
base64 = "0.21"
1616
bytes = "1"
17+
chrono = "0.4.35"
1718
futures = "0.3"
1819
futures-channel = "0.3"
1920
futures-util = "0.3"

Diff for: lambda-events/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ edition = "2021"
1818
[dependencies]
1919
base64 = { workspace = true }
2020
bytes = { workspace = true, features = ["serde"], optional = true }
21-
chrono = { version = "0.4.31", default-features = false, features = [
21+
chrono = { workspace = true, default-features = false, features = [
2222
"clock",
2323
"serde",
2424
"std",

Diff for: lambda-events/src/encodings/time.rs

+21-19
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use chrono::{DateTime, Duration, TimeZone, Utc};
1+
use chrono::{DateTime, TimeDelta, TimeZone, Utc};
22
use serde::ser::Serializer;
33
use serde::{
44
de::{Deserializer, Error as DeError},
@@ -55,11 +55,11 @@ impl DerefMut for SecondTimestamp {
5555
pub struct SecondDuration(
5656
#[serde(deserialize_with = "deserialize_duration_seconds")]
5757
#[serde(serialize_with = "serialize_duration_seconds")]
58-
pub Duration,
58+
pub TimeDelta,
5959
);
6060

6161
impl Deref for SecondDuration {
62-
type Target = Duration;
62+
type Target = TimeDelta;
6363

6464
fn deref(&self) -> &Self::Target {
6565
&self.0
@@ -77,11 +77,11 @@ impl DerefMut for SecondDuration {
7777
pub struct MinuteDuration(
7878
#[serde(deserialize_with = "deserialize_duration_minutes")]
7979
#[serde(serialize_with = "serialize_duration_minutes")]
80-
pub Duration,
80+
pub TimeDelta,
8181
);
8282

8383
impl Deref for MinuteDuration {
84-
type Target = Duration;
84+
type Target = TimeDelta;
8585

8686
fn deref(&self) -> &Self::Target {
8787
&self.0
@@ -144,7 +144,7 @@ where
144144
.ok_or_else(|| D::Error::custom("invalid timestamp"))
145145
}
146146

147-
fn serialize_duration_seconds<S>(duration: &Duration, serializer: S) -> Result<S::Ok, S::Error>
147+
fn serialize_duration_seconds<S>(duration: &TimeDelta, serializer: S) -> Result<S::Ok, S::Error>
148148
where
149149
S: Serializer,
150150
{
@@ -153,15 +153,16 @@ where
153153
serializer.serialize_i64(seconds)
154154
}
155155

156-
fn deserialize_duration_seconds<'de, D>(deserializer: D) -> Result<Duration, D::Error>
156+
fn deserialize_duration_seconds<'de, D>(deserializer: D) -> Result<TimeDelta, D::Error>
157157
where
158158
D: Deserializer<'de>,
159159
{
160160
let seconds = f64::deserialize(deserializer)?;
161-
Ok(Duration::seconds(seconds as i64))
161+
TimeDelta::try_seconds(seconds as i64)
162+
.ok_or_else(|| D::Error::custom(format!("invalid time delta seconds `{}`", seconds)))
162163
}
163164

164-
fn serialize_duration_minutes<S>(duration: &Duration, serializer: S) -> Result<S::Ok, S::Error>
165+
fn serialize_duration_minutes<S>(duration: &TimeDelta, serializer: S) -> Result<S::Ok, S::Error>
165166
where
166167
S: Serializer,
167168
{
@@ -170,12 +171,13 @@ where
170171
serializer.serialize_i64(minutes)
171172
}
172173

173-
fn deserialize_duration_minutes<'de, D>(deserializer: D) -> Result<Duration, D::Error>
174+
fn deserialize_duration_minutes<'de, D>(deserializer: D) -> Result<TimeDelta, D::Error>
174175
where
175176
D: Deserializer<'de>,
176177
{
177178
let minutes = f64::deserialize(deserializer)?;
178-
Ok(Duration::minutes(minutes as i64))
179+
TimeDelta::try_minutes(minutes as i64)
180+
.ok_or_else(|| D::Error::custom(format!("invalid time delta minutes `{}`", minutes)))
179181
}
180182

181183
fn normalize_timestamp<'de, D>(deserializer: D) -> Result<(u64, u64), D::Error>
@@ -291,10 +293,10 @@ mod test {
291293
#[derive(Deserialize)]
292294
struct Test {
293295
#[serde(deserialize_with = "deserialize_duration_seconds")]
294-
v: Duration,
296+
v: TimeDelta,
295297
}
296298

297-
let expected = Duration::seconds(36);
299+
let expected = TimeDelta::try_seconds(36).unwrap();
298300

299301
let data = serde_json::json!({
300302
"v": 36,
@@ -314,10 +316,10 @@ mod test {
314316
#[derive(Serialize)]
315317
struct Test {
316318
#[serde(serialize_with = "serialize_duration_seconds")]
317-
v: Duration,
319+
v: TimeDelta,
318320
}
319321
let instance = Test {
320-
v: Duration::seconds(36),
322+
v: TimeDelta::try_seconds(36).unwrap(),
321323
};
322324
let encoded = serde_json::to_string(&instance).unwrap();
323325
assert_eq!(encoded, String::from(r#"{"v":36}"#));
@@ -328,10 +330,10 @@ mod test {
328330
#[derive(Deserialize)]
329331
struct Test {
330332
#[serde(deserialize_with = "deserialize_duration_minutes")]
331-
v: Duration,
333+
v: TimeDelta,
332334
}
333335

334-
let expected = Duration::minutes(36);
336+
let expected = TimeDelta::try_minutes(36).unwrap();
335337

336338
let data = serde_json::json!({
337339
"v": 36,
@@ -351,10 +353,10 @@ mod test {
351353
#[derive(Serialize)]
352354
struct Test {
353355
#[serde(serialize_with = "serialize_duration_minutes")]
354-
v: Duration,
356+
v: TimeDelta,
355357
}
356358
let instance = Test {
357-
v: Duration::minutes(36),
359+
v: TimeDelta::try_minutes(36).unwrap(),
358360
};
359361
let encoded = serde_json::to_string(&instance).unwrap();
360362
assert_eq!(encoded, String::from(r#"{"v":36}"#));

Diff for: lambda-extension/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ tracing = ["lambda_runtime_api_client/tracing"]
2020
[dependencies]
2121
async-stream = "0.3"
2222
bytes = { workspace = true }
23-
chrono = { version = "0.4", features = ["serde"] }
23+
chrono = { workspace = true, features = ["serde"] }
2424
http = { workspace = true }
2525
http-body-util = { workspace = true }
2626
hyper = { workspace = true, features = ["http1", "client", "server"] }

Diff for: lambda-extension/src/logs.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ where
233233
#[cfg(test)]
234234
mod tests {
235235
use super::*;
236-
use chrono::{Duration, TimeZone};
236+
use chrono::{TimeDelta, TimeZone};
237237

238238
#[test]
239239
fn deserialize_full() {
@@ -242,7 +242,7 @@ mod tests {
242242
time: Utc
243243
.with_ymd_and_hms(2020, 8, 20, 12, 31, 32)
244244
.unwrap()
245-
.checked_add_signed(Duration::milliseconds(123))
245+
.checked_add_signed(TimeDelta::try_milliseconds(123).unwrap())
246246
.unwrap(),
247247
record: LambdaLogRecord::Function("hello world".to_string()),
248248
};

Diff for: lambda-extension/src/telemetry.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ where
316316
#[cfg(test)]
317317
mod deserialization_tests {
318318
use super::*;
319-
use chrono::{Duration, TimeZone};
319+
use chrono::{TimeDelta, TimeZone};
320320

321321
macro_rules! deserialize_tests {
322322
($($name:ident: $value:expr,)*) => {
@@ -385,7 +385,7 @@ mod deserialization_tests {
385385
start: Utc
386386
.with_ymd_and_hms(2022, 10, 21, 14, 5, 3)
387387
.unwrap()
388-
.checked_add_signed(Duration::milliseconds(165))
388+
.checked_add_signed(TimeDelta::try_milliseconds(165).unwrap())
389389
.unwrap(),
390390
duration_ms: 2598.0
391391
},
@@ -394,7 +394,7 @@ mod deserialization_tests {
394394
start: Utc
395395
.with_ymd_and_hms(2022, 10, 21, 14, 5, 5)
396396
.unwrap()
397-
.checked_add_signed(Duration::milliseconds(763))
397+
.checked_add_signed(TimeDelta::try_milliseconds(763).unwrap())
398398
.unwrap(),
399399
duration_ms: 0.0
400400
},
@@ -473,7 +473,7 @@ mod deserialization_tests {
473473

474474
#[cfg(test)]
475475
mod serialization_tests {
476-
use chrono::{Duration, TimeZone};
476+
use chrono::{TimeDelta, TimeZone};
477477

478478
use super::*;
479479
macro_rules! serialize_tests {
@@ -557,7 +557,7 @@ mod serialization_tests {
557557
start: Utc
558558
.with_ymd_and_hms(2022, 10, 21, 14, 5, 3)
559559
.unwrap()
560-
.checked_add_signed(Duration::milliseconds(165))
560+
.checked_add_signed(TimeDelta::try_milliseconds(165).unwrap())
561561
.unwrap(),
562562
duration_ms: 2598.0
563563
},
@@ -566,7 +566,7 @@ mod serialization_tests {
566566
start: Utc
567567
.with_ymd_and_hms(2022, 10, 21, 14, 5, 5)
568568
.unwrap()
569-
.checked_add_signed(Duration::milliseconds(763))
569+
.checked_add_signed(TimeDelta::try_milliseconds(763).unwrap())
570570
.unwrap(),
571571
duration_ms: 0.0
572572
},

0 commit comments

Comments
 (0)