2020-07-08 12:34:25 +00:00
|
|
|
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
|
|
|
|
2021-07-05 10:38:11 +00:00
|
|
|
use std::io;
|
|
|
|
|
|
|
|
use super::{BinarySource, DomainDecode, Embeddable, IOValue, IOValueDomainCodec, NestedValue, Reader};
|
2021-06-28 20:25:41 +00:00
|
|
|
|
2021-07-04 15:16:13 +00:00
|
|
|
pub fn from_bytes<D: Embeddable, N: NestedValue<D>, Dec: DomainDecode<D>>(
|
|
|
|
bs: &[u8],
|
|
|
|
decode_embedded: Dec,
|
2021-07-05 10:38:11 +00:00
|
|
|
) -> io::Result<N> {
|
2021-07-04 15:16:13 +00:00
|
|
|
super::BytesBinarySource::new(bs).packed(decode_embedded).demand_next(false)
|
2021-06-28 20:25:41 +00:00
|
|
|
}
|
|
|
|
|
2021-07-05 10:38:11 +00:00
|
|
|
pub fn iovalue_from_bytes(bs: &[u8]) -> io::Result<IOValue> {
|
2021-07-05 10:34:29 +00:00
|
|
|
from_bytes(bs, IOValueDomainCodec)
|
2021-07-04 15:16:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn annotated_from_bytes<D: Embeddable, N: NestedValue<D>, Dec: DomainDecode<D>>(
|
|
|
|
bs: &[u8],
|
|
|
|
decode_embedded: Dec,
|
2021-07-05 10:38:11 +00:00
|
|
|
) -> io::Result<N> {
|
2021-07-04 15:16:13 +00:00
|
|
|
super::BytesBinarySource::new(bs).packed(decode_embedded).demand_next(true)
|
|
|
|
}
|
|
|
|
|
2021-07-05 10:38:11 +00:00
|
|
|
pub fn annotated_iovalue_from_bytes(bs: &[u8]) -> io::Result<IOValue> {
|
2021-07-05 10:34:29 +00:00
|
|
|
annotated_from_bytes(bs, IOValueDomainCodec)
|
2021-06-28 20:25:41 +00:00
|
|
|
}
|