fix prop serialization

This commit is contained in:
Evan Almloff committed 2023-07-08 09:13:24 -07:00
1 parent f0d1346652
commit 453d087ed6
2 files changed
+6 -7

No files matched your search

@@ -4,8 +4,8 @@ use base64::engine::general_purpose::STANDARD;
use base64::Engine; use base64::Engine;
#[allow(unused)] #[allow(unused)]
pub(crate) fn serde_from_string<T: DeserializeOwned>(string: &str) -> Option<T> { pub(crate) fn serde_from_bytes<T: DeserializeOwned>(string: &[u8]) -> Option<T> {
let decompressed = STANDARD.decode(string.as_bytes()).ok()?; let decompressed = STANDARD.decode(string).ok()?;
postcard::from_bytes(&decompressed).ok() postcard::from_bytes(&decompressed).ok()
} }
+4 -5
View File
@@ -23,7 +23,7 @@ fn serialized_and_deserializes() {
for x in 0..10usize { for x in 0..10usize {
for y in 0..10 { for y in 0..10 {
let mut as_string = String::new(); let mut as_string: Vec<u8> = Vec::new();
let data = vec![ let data = vec![
Data { Data {
a: x as u32, a: x as u32,
@@ -37,10 +37,9 @@ fn serialized_and_deserializes() {
}; };
y y
]; ];
serialize_props::serde_to_writable(&data, &mut unsafe { as_string.as_bytes_mut() }) serialize_props::serde_to_writable(&data, &mut as_string).unwrap();
.unwrap();
println!("{}", as_string); println!("{:?}", as_string);
println!( println!(
"original size: {}", "original size: {}",
std::mem::size_of::<Data>() * data.len() std::mem::size_of::<Data>() * data.len()
@@ -48,7 +47,7 @@ fn serialized_and_deserializes() {
println!("serialized size: {}", to_allocvec(&data).unwrap().len()); println!("serialized size: {}", to_allocvec(&data).unwrap().len());
println!("compressed size: {}", as_string.len()); println!("compressed size: {}", as_string.len());
let decoded: Vec<Data> = deserialize_props::serde_from_string(&as_string).unwrap(); let decoded: Vec<Data> = deserialize_props::serde_from_bytes(&as_string).unwrap();
assert_eq!(data, decoded); assert_eq!(data, decoded);
} }
} }