near_api_types/utils/
mod.rs

1/// Convenience module to allow annotating a serde structure as base64 bytes.
2pub mod base64_bytes {
3    use base64::Engine;
4    use serde::{de, Deserialize, Deserializer, Serializer};
5
6    pub fn serialize<S>(bytes: &[u8], serializer: S) -> Result<S::Ok, S::Error>
7    where
8        S: Serializer,
9    {
10        serializer.serialize_str(&base64::engine::general_purpose::STANDARD.encode(bytes))
11    }
12
13    pub fn deserialize<'de, D>(deserializer: D) -> Result<Vec<u8>, D::Error>
14    where
15        D: Deserializer<'de>,
16    {
17        let s: String = Deserialize::deserialize(deserializer)?;
18        base64::engine::general_purpose::STANDARD
19            .decode(s.as_str())
20            .map_err(de::Error::custom)
21    }
22}
23
24pub mod near_gas_as_u64 {
25    use near_gas::NearGas;
26    use serde::Serializer;
27
28    pub fn serialize<S>(value: &NearGas, serializer: S) -> Result<S::Ok, S::Error>
29    where
30        S: Serializer,
31    {
32        serializer.serialize_u64(value.as_gas())
33    }
34}