1#![doc = include_str!("../README.md")]
2
3pub mod client;
4pub mod data;
5pub mod errors;
6pub mod models;
7pub mod prelude;
8
9use chrono::{DateTime, NaiveDateTime, Utc};
10pub use client::BrawlClient;
11pub use errors::BrawlError;
12use serde::Deserialize;
13
14pub(crate) fn parse_date<'de, D>(deserializer: D) -> Result<DateTime<Utc>, D::Error>
15where
16 D: serde::Deserializer<'de>,
17{
18 let s = String::deserialize(deserializer)?;
19 let naive = NaiveDateTime::parse_from_str(&s, "%Y%m%dT%H%M%S%.3fZ")
20 .map_err(serde::de::Error::custom)?;
21
22 let time = DateTime::<Utc>::from_naive_utc_and_offset(naive, Utc);
23
24 Ok(time)
25}