Skip to main content

iris_core/utils/
base64.rs

1//! Helper functions for Base64 encoding and decoding.
2
3use serde::{Deserialize, Serialize};
4use serde::{Deserializer, Serializer};
5
6/// Encodes byte slice as a Base64 string.
7pub fn serialize<S: Serializer>(v: &[u8], s: S) -> Result<S::Ok, S::Error> {
8    let base64 = base64::encode(v);
9    String::serialize(&base64, s)
10}
11
12/// Decodes Base64 string as a byte vector.
13pub fn deserialize<'de, D: Deserializer<'de>>(d: D) -> Result<Vec<u8>, D::Error> {
14    let base64 = String::deserialize(d)?;
15    base64::decode(base64.as_bytes()).map_err(serde::de::Error::custom)
16}