Struct zvariant::EncodingContext
source · [−]pub struct EncodingContext<B> { /* private fields */ }
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
sourceimpl<B> EncodingContext<B> where
B: ByteOrder,
impl<B> EncodingContext<B> where
B: ByteOrder,
sourcepub fn new(format: EncodingFormat, position: usize) -> Self
pub fn new(format: EncodingFormat, position: usize) -> Self
Create a new encoding context.
sourcepub fn new_dbus(position: usize) -> Self
pub fn new_dbus(position: usize) -> Self
Convenient wrapper for new
to create a context for D-Bus format.
sourcepub fn new_gvariant(position: usize) -> Self
pub fn new_gvariant(position: usize) -> Self
Convenient wrapper for new
to create a context for GVariant format.
sourcepub fn format(self) -> EncodingFormat
pub fn format(self) -> EncodingFormat
The EncodingFormat
of this context.
Trait Implementations
sourceimpl<B: Clone> Clone for EncodingContext<B>
impl<B: Clone> Clone for EncodingContext<B>
sourcefn clone(&self) -> EncodingContext<B>
fn clone(&self) -> EncodingContext<B>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<B: Debug> Debug for EncodingContext<B>
impl<B: Debug> Debug for EncodingContext<B>
sourceimpl<B: PartialEq> PartialEq<EncodingContext<B>> for EncodingContext<B>
impl<B: PartialEq> PartialEq<EncodingContext<B>> for EncodingContext<B>
sourcefn eq(&self, other: &EncodingContext<B>) -> bool
fn eq(&self, other: &EncodingContext<B>) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &EncodingContext<B>) -> bool
fn ne(&self, other: &EncodingContext<B>) -> bool
This method tests for !=
.
impl<B: Copy> Copy for EncodingContext<B>
impl<B: Eq> Eq for EncodingContext<B>
impl<B> StructuralEq for EncodingContext<B>
impl<B> StructuralPartialEq for EncodingContext<B>
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more