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

40 lines
1000 B
Rust
Raw Normal View History

2022-11-03 16:17:31 +00:00
pub mod constants;
pub mod reader;
pub mod view;
2022-11-03 16:17:31 +00:00
pub mod writer;
pub use reader::PackedReader;
pub use writer::PackedWriter;
use std::io;
2022-11-03 20:12:15 +00:00
use crate::BinarySource;
use crate::BytesBinarySource;
use crate::Domain;
use crate::DomainDecode;
use crate::IOValue;
use crate::Reader;
2022-11-17 08:43:04 +00:00
use crate::Value;
2022-11-03 16:17:31 +00:00
2022-11-09 14:07:32 +00:00
pub fn from_bytes<'de, D: Domain, Dec: DomainDecode<D>>(
2022-11-03 16:17:31 +00:00
bs: &'de [u8],
decode_embedded: &mut Dec,
2022-11-17 08:43:04 +00:00
) -> io::Result<Value<D>> {
2022-11-03 20:12:15 +00:00
BytesBinarySource::new(bs).packed().next(false, decode_embedded)
2022-11-03 16:17:31 +00:00
}
pub fn iovalue_from_bytes(bs: &[u8]) -> io::Result<IOValue> {
2022-11-03 20:12:15 +00:00
super::BytesBinarySource::new(bs).packed().next_iovalue(false)
2022-11-03 16:17:31 +00:00
}
2022-11-09 14:07:32 +00:00
pub fn annotated_from_bytes<'de, D: Domain, Dec: DomainDecode<D>>(
2022-11-03 16:17:31 +00:00
bs: &'de [u8],
decode_embedded: &mut Dec,
2022-11-17 08:43:04 +00:00
) -> io::Result<Value<D>> {
2022-11-03 20:12:15 +00:00
super::BytesBinarySource::new(bs).packed().next(true, decode_embedded)
2022-11-03 16:17:31 +00:00
}
pub fn annotated_iovalue_from_bytes(bs: &[u8]) -> io::Result<IOValue> {
2022-11-03 20:12:15 +00:00
super::BytesBinarySource::new(bs).packed().next_iovalue(true)
2022-11-03 16:17:31 +00:00
}