Struct zvariant::EncodingContext [−][src]
pub struct EncodingContext<B> { /* fields omitted */ }
Expand description
The encoding context to use with the serialization and deserialization API.
This type is generic over the ByteOrder trait. Moreover, the encoding is dependent on the
position of the encoding in the entire message and hence the need to specify the byte
position of the data being serialized or deserialized. Simply pass 0
if serializing or
deserializing to or from the beginning of message, or the preceding bytes end on an 8-byte
boundary.
Examples
use byteorder::LE;
use zvariant::EncodingContext as Context;
use zvariant::{from_slice, to_bytes};
let str_vec = vec!["Hello", "World"];
let ctxt = Context::<LE>::new_dbus(0);
let encoded = to_bytes(ctxt, &str_vec).unwrap();
// Let's decode the 2nd element of the array only
let ctxt = Context::<LE>::new_dbus(14);
let decoded: &str = from_slice(&encoded[14..], ctxt).unwrap();
assert_eq!(decoded, "World");
Implementations
Create a new encoding context.
Convenient wrapper for new
to create a context for D-Bus format.
Convenient wrapper for new
to create a context for GVariant format.
The EncodingFormat
of this context.
Trait Implementations
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl<B> RefUnwindSafe for EncodingContext<B> where
B: RefUnwindSafe,
impl<B> Send for EncodingContext<B> where
B: Send,
impl<B> Sync for EncodingContext<B> where
B: Sync,
impl<B> Unpin for EncodingContext<B> where
B: Unpin,
impl<B> UnwindSafe for EncodingContext<B> where
B: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more