From 34426ab06750056f01b1cbfb9ff28a5e5c32acea Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Wed, 4 Sep 2024 19:30:20 +0200 Subject: [PATCH] UTC_OFFSET_FORMAT: do not rely on promotion of function calls --- time/src/serde/mod.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/time/src/serde/mod.rs b/time/src/serde/mod.rs index 40caa2888..795be78c8 100644 --- a/time/src/serde/mod.rs +++ b/time/src/serde/mod.rs @@ -406,20 +406,24 @@ impl<'a> Deserialize<'a> for Time { // region: UtcOffset /// The format used when serializing and deserializing a human-readable `UtcOffset`. #[cfg(feature = "parsing")] +const UTC_OFFSET_HOUR: modifier::OffsetHour = { + let mut m = modifier::OffsetHour::default(); + m.sign_is_mandatory = true; + m +}; +#[cfg(feature = "parsing")] +const UTC_OFFSET_MINUTE: modifier::OffsetMinute = modifier::OffsetMinute::default(); +#[cfg(feature = "parsing")] +const UTC_OFFSET_SECOND: modifier::OffsetSecond = modifier::OffsetSecond::default(); +#[cfg(feature = "parsing")] const UTC_OFFSET_FORMAT: &[BorrowedFormatItem<'_>] = &[ - BorrowedFormatItem::Component(Component::OffsetHour({ - let mut m = modifier::OffsetHour::default(); - m.sign_is_mandatory = true; - m - })), + BorrowedFormatItem::Component(Component::OffsetHour(UTC_OFFSET_HOUR)), BorrowedFormatItem::Optional(&BorrowedFormatItem::Compound(&[ BorrowedFormatItem::Literal(b":"), - BorrowedFormatItem::Component(Component::OffsetMinute(modifier::OffsetMinute::default())), + BorrowedFormatItem::Component(Component::OffsetMinute(UTC_OFFSET_MINUTE)), BorrowedFormatItem::Optional(&BorrowedFormatItem::Compound(&[ BorrowedFormatItem::Literal(b":"), - BorrowedFormatItem::Component(Component::OffsetSecond( - modifier::OffsetSecond::default(), - )), + BorrowedFormatItem::Component(Component::OffsetSecond(UTC_OFFSET_SECOND)), ])), ])), ];