Skip to content

Commit

Permalink
Missed some files
Browse files Browse the repository at this point in the history
  • Loading branch information
john-sharratt committed Mar 3, 2024
1 parent 0460876 commit 34a9b4d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 0 deletions.
19 changes: 19 additions & 0 deletions crates/model/src/base64_array.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
use serde::{Deserialize, Serialize};
use serde::{Deserializer, Serializer};
use std::convert::TryInto;

pub fn serialize<S: Serializer, const C: usize>(v: &[u8; C], s: S) -> Result<S::Ok, S::Error> {
#[allow(deprecated)]
let base64 = base64::encode(v);
String::serialize(&base64, s)
}

pub fn deserialize<'de, D: Deserializer<'de>, const C: usize>(d: D) -> Result<[u8; C], D::Error> {
let base64 = String::deserialize(d)?;
#[allow(deprecated)]
let bytes = base64::decode(base64).map_err(serde::de::Error::custom)?;
let bytes: [u8; C] = bytes.try_into().map_err(|data: Vec<u8>| {
serde::de::Error::custom(format!("failed to convert array (len={})", data.len()))
})?;
Ok(bytes)
}
Loading

0 comments on commit 34a9b4d

Please sign in to comment.