40 lines
1000 B
Rust
40 lines
1000 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::IOValue;
|
|
use crate::Reader;
|
|
use crate::Value;
|
|
|
|
pub fn from_bytes<'de, D: Domain, Dec: DomainDecode<D>>(
|
|
bs: &'de [u8],
|
|
decode_embedded: &mut Dec,
|
|
) -> io::Result<Value<D>> {
|
|
BytesBinarySource::new(bs).packed().next(false, decode_embedded)
|
|
}
|
|
|
|
pub fn iovalue_from_bytes(bs: &[u8]) -> io::Result<IOValue> {
|
|
super::BytesBinarySource::new(bs).packed().next_iovalue(false)
|
|
}
|
|
|
|
pub fn annotated_from_bytes<'de, D: Domain, Dec: DomainDecode<D>>(
|
|
bs: &'de [u8],
|
|
decode_embedded: &mut Dec,
|
|
) -> io::Result<Value<D>> {
|
|
super::BytesBinarySource::new(bs).packed().next(true, decode_embedded)
|
|
}
|
|
|
|
pub fn annotated_iovalue_from_bytes(bs: &[u8]) -> io::Result<IOValue> {
|
|
super::BytesBinarySource::new(bs).packed().next_iovalue(true)
|
|
}
|