TextWriter::encode for Vec<u8>
This commit is contained in:
parent
e80d849f9a
commit
e913951b91
|
@ -16,14 +16,13 @@ use super::super::writer::{Writer, CompoundWriter, varint};
|
|||
|
||||
pub struct PackedWriter<W: io::Write>(Suspendable<W>);
|
||||
|
||||
impl PackedWriter<Vec<u8>> {
|
||||
impl PackedWriter<&mut Vec<u8>> {
|
||||
pub fn encode<D: Embeddable, N: NestedValue<D>, Enc: DomainEncode<D>>(
|
||||
enc: &mut Enc,
|
||||
v: &N,
|
||||
) -> io::Result<Vec<u8>> {
|
||||
let mut buf: Vec<u8> = Vec::new();
|
||||
let w = &mut PackedWriter::new(&mut buf);
|
||||
w.write(enc, v)?;
|
||||
PackedWriter::new(&mut buf).write(enc, v)?;
|
||||
Ok(buf)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
use crate::value::DomainEncode;
|
||||
use crate::value::Embeddable;
|
||||
use crate::value::IOValue;
|
||||
use crate::value::IOValueDomainCodec;
|
||||
use crate::value::NestedValue;
|
||||
use crate::value::Writer;
|
||||
use crate::value::suspendable::Suspendable;
|
||||
use crate::value::writer::CompoundWriter;
|
||||
|
@ -28,6 +33,21 @@ impl std::default::Default for CommaStyle {
|
|||
}
|
||||
}
|
||||
|
||||
impl TextWriter<&mut Vec<u8>> {
|
||||
pub fn encode<D: Embeddable, N: NestedValue<D>, Enc: DomainEncode<D>>(
|
||||
enc: &mut Enc,
|
||||
v: &N,
|
||||
) -> io::Result<Vec<u8>> {
|
||||
let mut buf: Vec<u8> = Vec::new();
|
||||
TextWriter::new(&mut buf).write(enc, v)?;
|
||||
Ok(buf)
|
||||
}
|
||||
|
||||
pub fn encode_iovalue(v: &IOValue) -> io::Result<Vec<u8>> {
|
||||
Self::encode(&mut IOValueDomainCodec, v)
|
||||
}
|
||||
}
|
||||
|
||||
impl<W: io::Write> TextWriter<W> {
|
||||
pub fn new(w: W) -> Self {
|
||||
TextWriter {
|
||||
|
|
Loading…
Reference in New Issue