usesuper::{FlexZeroSlice, FlexZeroVec}; use alloc::vec::Vec; use core::fmt; use serde::de::{self, Deserialize, Deserializer, SeqAccess, Visitor}; #[cfg(feature = "serde")] use serde::ser::{Serialize, SerializeSeq, Serializer};
#[derive(Default)] struct FlexZeroVecVisitor {}
impl<'de> Visitor<'de> for FlexZeroVecVisitor { type Value = FlexZeroVec<'de>;
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
formatter.write_str("a sequence or borrowed buffer of bytes")
}
#[test] fn test_serde_json() { let zerovec_orig: FlexZeroVec = FlexZeroVec::parse_byte_slice(BYTES).expect("parse"); let json_str = serde_json::to_string(&zerovec_orig).expect("serialize");
assert_eq!(JSON_STR, json_str); // FlexZeroVec should deserialize from JSON to either Vec or FlexZeroVec let vec_new: Vec<usize> =
serde_json::from_str(&json_str).expect("deserialize from buffer to Vec");
assert_eq!(zerovec_orig.to_vec(), vec_new); let zerovec_new: FlexZeroVec =
serde_json::from_str(&json_str).expect("deserialize from buffer to FlexZeroVec");
assert_eq!(zerovec_orig.to_vec(), zerovec_new.to_vec());
assert!(matches!(zerovec_new, FlexZeroVec::Owned(_)));
}
#[test] fn test_serde_bincode() { let zerovec_orig: FlexZeroVec = FlexZeroVec::parse_byte_slice(BYTES).expect("parse"); let bincode_buf = bincode::serialize(&zerovec_orig).expect("serialize");
assert_eq!(BINCODE_BUF, bincode_buf); let zerovec_new: FlexZeroVec =
bincode::deserialize(&bincode_buf).expect("deserialize from buffer to FlexZeroVec");
assert_eq!(zerovec_orig.to_vec(), zerovec_new.to_vec());
assert!(matches!(zerovec_new, FlexZeroVec::Borrowed(_)));
}
#[test] fn test_vzv_borrowed() { let zerovec_orig: &FlexZeroSlice = FlexZeroSlice::parse_byte_slice(BYTES).expect("parse"); let bincode_buf = bincode::serialize(&zerovec_orig).expect("serialize");
assert_eq!(BINCODE_BUF, bincode_buf); let zerovec_new: &FlexZeroSlice =
bincode::deserialize(&bincode_buf).expect("deserialize from buffer to FlexZeroSlice");
assert_eq!(zerovec_orig.to_vec(), zerovec_new.to_vec());
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-06-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.