aws_lambda_events/encodings/
mod.rs

1use serde::{Deserialize, Serialize};
2use std::ops::{Deref, DerefMut};
3
4#[cfg(feature = "chrono")]
5mod time;
6use crate::custom_serde::{deserialize_base64, serialize_base64};
7
8#[cfg(feature = "chrono")]
9#[cfg_attr(docsrs, doc(cfg(feature = "chrono")))]
10pub use self::time::*;
11#[cfg(feature = "http")]
12mod http;
13#[cfg(feature = "http")]
14#[cfg_attr(docsrs, doc(cfg(feature = "http")))]
15pub use self::http::*;
16
17pub type Error = Box<dyn std::error::Error + Send + Sync>;
18
19/// Binary data encoded in base64.
20#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
21pub struct Base64Data(
22    #[serde(deserialize_with = "deserialize_base64")]
23    #[serde(serialize_with = "serialize_base64")]
24    pub Vec<u8>,
25);
26
27impl Deref for Base64Data {
28    type Target = Vec<u8>;
29
30    fn deref(&self) -> &Self::Target {
31        &self.0
32    }
33}
34
35impl DerefMut for Base64Data {
36    fn deref_mut(&mut self) -> &mut Self::Target {
37        &mut self.0
38    }
39}