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

33 lines
905 B
Rust
Raw Normal View History

pub mod constants;
pub mod reader;
pub mod writer;
pub use reader::PackedReader;
pub use writer::PackedWriter;
2021-06-28 20:25:41 +00:00
use std::io;
use super::{BinarySource, DomainDecode, IOValue, IOValueDomainCodec, NestedValue, Reader};
2021-06-28 20:25:41 +00:00
pub fn from_bytes<N: NestedValue, Dec: DomainDecode<N::Embedded>>(
bs: &[u8],
2022-07-10 11:25:35 +00:00
decode_embedded: &mut Dec,
) -> io::Result<N> {
2022-07-10 11:25:35 +00:00
super::BytesBinarySource::new(bs).packed().demand_next(false, decode_embedded)
2021-06-28 20:25:41 +00:00
}
pub fn iovalue_from_bytes(bs: &[u8]) -> io::Result<IOValue> {
2022-07-10 11:25:35 +00:00
from_bytes(bs, &mut IOValueDomainCodec)
}
pub fn annotated_from_bytes<N: NestedValue, Dec: DomainDecode<N::Embedded>>(
bs: &[u8],
2022-07-10 11:25:35 +00:00
decode_embedded: &mut Dec,
) -> io::Result<N> {
2022-07-10 11:25:35 +00:00
super::BytesBinarySource::new(bs).packed().demand_next(true, decode_embedded)
}
pub fn annotated_iovalue_from_bytes(bs: &[u8]) -> io::Result<IOValue> {
2022-07-10 11:25:35 +00:00
annotated_from_bytes(bs, &mut IOValueDomainCodec)
2021-06-28 20:25:41 +00:00
}