preserves/value/text/
mod.rs1#![doc = include_str!("../../../doc/cheatsheet-text-plaintext.md")]
12
13pub mod reader;
14pub mod writer;
15
16pub use reader::TextReader;
17pub use reader::ToplevelWhitespaceMode;
18pub use writer::TextWriter;
19
20use crate::value::reader::BytesBinarySource;
21
22use std::io;
23
24use super::{DomainParse, IOValue, IOValueDomainCodec, NestedValue, Reader, ViaCodec};
25
26pub fn from_str<N: NestedValue, Dec: DomainParse<N::Embedded>>(
28 s: &str,
29 decode_embedded: Dec,
30) -> io::Result<N> {
31 TextReader::new(&mut BytesBinarySource::new(s.as_bytes()), decode_embedded).demand_next(false)
32}
33
34pub fn iovalue_from_str(s: &str) -> io::Result<IOValue> {
36 from_str(s, ViaCodec::new(IOValueDomainCodec))
37}
38
39pub fn annotated_from_str<N: NestedValue, Dec: DomainParse<N::Embedded>>(
41 s: &str,
42 decode_embedded: Dec,
43) -> io::Result<N> {
44 TextReader::new(&mut BytesBinarySource::new(s.as_bytes()), decode_embedded).demand_next(true)
45}
46
47pub fn annotated_iovalue_from_str(s: &str) -> io::Result<IOValue> {
49 annotated_from_str(s, ViaCodec::new(IOValueDomainCodec))
50}