Trait pod::code::Encode
[−]
[src]
pub trait Encode { type Options: Default; fn encode<W: Write>(&self, w: &mut W) -> Result<()> { ... } fn encode_options<W: Write>(&self, w: &mut W, _options: Self::Options) -> Result<()> { ... } fn encode_vec(&self) -> Result<Vec<u8>> { ... } fn encode_vec_options(&self, options: Self::Options) -> Result<Vec<u8>> { ... } }
Encodes an value's binary representation to a Write
.
Note that this is not serialization, and some data may be lost. It is left up to the implementation to decide what its representation is.
Provided Implementations
String
, str
String
s are encoded as their raw UTF-8 representation. Length is not encoded, and
must be provided when decoding (or reads to end of stream). Will error upon invalid UTF-8
sequences, nul bytes, etc.
CString
, CStr
CString
s are encoded with a trailing nul byte. Decoding runs until the first nul byte reached.
Vec<T>
, [T]
Vectors are encoded in sequence as packed raw values. Length is not encoded.
Option<T>
Some(T)
is encoded as T
, None
writes 0 bytes. Decoding will always produce Some(T)
Pod
Pod
types are encoded as their raw in-memory representation. Use EndianPrimitive
members to
control the byte order.
Associated Types
type Options: Default
Options that may be provided to affect how the value is encoded
Provided Methods
fn encode<W: Write>(&self, w: &mut W) -> Result<()>
Encodes to the Write
with default options
fn encode_options<W: Write>(&self, w: &mut W, _options: Self::Options) -> Result<()>
Encodes to the Write
with the provided options
fn encode_vec(&self) -> Result<Vec<u8>>
Encodes to a new byte vector
fn encode_vec_options(&self, options: Self::Options) -> Result<Vec<u8>>
Encodes to a new byte vector with the provided options
Implementors
impl<T: Encode> Encode for Option<T>
impl Encode for String
impl Encode for str
impl<'a> Encode for &'a str
impl Encode for CString
impl Encode for CStr
impl<'a> Encode for &'a CStr
impl<T: Encode> Encode for Vec<T> where T::Options: Clone
impl<T: Encode> Encode for [T] where T::Options: Clone
impl<'a, T: Encode> Encode for &'a [T] where T::Options: Clone