diff --git a/packages/fullstack/src/props_html/deserialize_props.rs b/packages/fullstack/src/props_html/deserialize_props.rs index 47037db31..b9e2a2aa9 100644 --- a/packages/fullstack/src/props_html/deserialize_props.rs +++ b/packages/fullstack/src/props_html/deserialize_props.rs @@ -4,8 +4,8 @@ use base64::engine::general_purpose::STANDARD; use base64::Engine; #[allow(unused)] -pub(crate) fn serde_from_string(string: &str) -> Option { - let decompressed = STANDARD.decode(string.as_bytes()).ok()?; +pub(crate) fn serde_from_bytes(string: &[u8]) -> Option { + let decompressed = STANDARD.decode(string).ok()?; postcard::from_bytes(&decompressed).ok() } diff --git a/packages/fullstack/src/props_html/mod.rs b/packages/fullstack/src/props_html/mod.rs index d2ca82f56..143c40231 100644 --- a/packages/fullstack/src/props_html/mod.rs +++ b/packages/fullstack/src/props_html/mod.rs @@ -23,7 +23,7 @@ fn serialized_and_deserializes() { for x in 0..10usize { for y in 0..10 { - let mut as_string = String::new(); + let mut as_string: Vec = Vec::new(); let data = vec![ Data { a: x as u32, @@ -37,10 +37,9 @@ fn serialized_and_deserializes() { }; y ]; - serialize_props::serde_to_writable(&data, &mut unsafe { as_string.as_bytes_mut() }) - .unwrap(); + serialize_props::serde_to_writable(&data, &mut as_string).unwrap(); - println!("{}", as_string); + println!("{:?}", as_string); println!( "original size: {}", std::mem::size_of::() * data.len() @@ -48,7 +47,7 @@ fn serialized_and_deserializes() { println!("serialized size: {}", to_allocvec(&data).unwrap().len()); println!("compressed size: {}", as_string.len()); - let decoded: Vec = deserialize_props::serde_from_string(&as_string).unwrap(); + let decoded: Vec = deserialize_props::serde_from_bytes(&as_string).unwrap(); assert_eq!(data, decoded); } }