preserves/implementations/rust/preserves/src/packed/mod.rs

32 lines
821 B
Rust

pub mod constants;
pub mod reader;
pub mod view;
pub mod writer;
pub use reader::PackedReader;
pub use writer::PackedWriter;
use std::io;
use crate::BinarySource;
use crate::BytesBinarySource;
use crate::Domain;
use crate::DomainDecode;
use crate::Shell;
use crate::ShellHandle;
use crate::ValueReader;
pub fn from_bytes<'de, D: Domain<'de>, Dec: DomainDecode<'de, D>>(
bs: &'de [u8],
decode_embedded: &mut Dec,
) -> io::Result<ShellHandle<'de, D>> {
Ok(Shell::read_domain(&mut BytesBinarySource::new(bs).packed(), false, decode_embedded)?)
}
pub fn annotated_from_bytes<'de, D: Domain<'de>, Dec: DomainDecode<'de, D>>(
bs: &'de [u8],
decode_embedded: &mut Dec,
) -> io::Result<ShellHandle<'de, D>> {
Ok(Shell::read_domain(&mut BytesBinarySource::new(bs).packed(), true, decode_embedded)?)
}