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§
source§impl<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 format(self) -> EncodingFormat
pub fn format(self) -> EncodingFormat
The EncodingFormat
of this context.
Trait Implementations§
source§impl<B: Clone> Clone for EncodingContext<B>
impl<B: Clone> Clone for EncodingContext<B>
source§fn clone(&self) -> EncodingContext<B>
fn clone(&self) -> EncodingContext<B>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<B: Debug> Debug for EncodingContext<B>
impl<B: Debug> Debug for EncodingContext<B>
source§impl<B: PartialEq> PartialEq for EncodingContext<B>
impl<B: PartialEq> PartialEq for EncodingContext<B>
impl<B: Copy> Copy for EncodingContext<B>
impl<B: Eq> Eq for EncodingContext<B>
impl<B> StructuralPartialEq for EncodingContext<B>
Auto Trait Implementations§
impl<B> Freeze for EncodingContext<B>
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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)