azure_storage_queue 1.0.0

Microsoft Azure Queue client library for Rust
Documentation
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
//
// Code generated by Microsoft (R) Rust Code Generator. DO NOT EDIT.

pub mod option_offset_date_time_rfc3339_fixed_width {
    #![allow(clippy::type_complexity)]
    use azure_core::time::{parse_rfc3339, OffsetDateTime};
    use serde::{Deserialize, Deserializer, Serialize, Serializer};
    use std::{num::NonZero, result::Result};
    use time::format_description::well_known::{iso8601, Iso8601};

    pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<OffsetDateTime>, D::Error>
    where
        D: Deserializer<'de>,
    {
        let to_deserialize = <Option<String>>::deserialize(deserializer)?;
        match to_deserialize {
            Some(to_deserialize) => {
                let decoded0 = parse_rfc3339(&to_deserialize).map_err(serde::de::Error::custom)?;
                Ok(Some(decoded0))
            }
            None => Ok(None),
        }
    }

    pub fn serialize<S>(
        to_serialize: &Option<OffsetDateTime>,
        serializer: S,
    ) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        let format = Iso8601::<
            {
                iso8601::Config::DEFAULT
                    .set_time_precision(iso8601::TimePrecision::Second {
                        decimal_digits: NonZero::new(7),
                    })
                    .encode()
            },
        >;
        if let Some(to_serialize) = to_serialize {
            let encoded0 = to_serialize
                .format(&format)
                .map_err(serde::ser::Error::custom)?;
            <Option<String>>::serialize(&Some(encoded0), serializer)
        } else {
            serializer.serialize_none()
        }
    }
}