pub use crate::{
FromBytes,
ToBytes,
Vec,
io::{self, Read, Write},
};
use crate::{SerializationError, serialize::traits::*};
pub fn serialize_vec_without_len<'a>(
src: impl Iterator<Item = &'a (impl CanonicalSerialize + 'a)>,
mut writer: impl Write,
compress: Compress,
) -> Result<(), SerializationError> {
for elem in src {
CanonicalSerialize::serialize_with_mode(elem, &mut writer, compress)?;
}
Ok(())
}
pub fn serialized_vec_size_without_len(src: &[impl CanonicalSerialize], compress: Compress) -> usize {
if src.is_empty() { 0 } else { src.len() * CanonicalSerialize::serialized_size(&src[0], compress) }
}
pub fn deserialize_vec_without_len<T: CanonicalDeserialize>(
mut reader: impl Read,
compress: Compress,
validate: Validate,
len: usize,
) -> Result<Vec<T>, SerializationError> {
(0..len).map(|_| CanonicalDeserialize::deserialize_with_mode(&mut reader, compress, validate)).collect()
}