zvariant_derive

Crates.iozvariant_derive
lib.rszvariant_derive
version5.1.0
sourcesrc
created_at2020-05-22 13:09:28.990065
updated_at2024-11-02 22:27:01.620777
descriptionD-Bus & GVariant encoding & decoding
homepage
repositoryhttps://github.com/dbus2/zbus/
max_upload_size
id244576
size50,236
Zeeshan Ali Khan (zeenix)

documentation

README

zvariant_derive

This crate provides derive macros helpers for zvariant. The zvariant crate re-exports these macros for your convenience so you do not need to use this crate directly.

Status: Stable.

Example code

use zvariant::{serialized::Context, to_bytes, Type, LE};
use serde::{Deserialize, Serialize};

#[derive(Deserialize, Serialize, Type, PartialEq, Debug)]
struct Struct<'s> {
    field1: u16,
    field2: i64,
    field3: &'s str,
}

assert_eq!(Struct::SIGNATURE, "(qxs)");
let s = Struct {
    field1: 42,
    field2: i64::max_value(),
    field3: "hello",
};
let ctxt = Context::new_dbus(LE, 0);
let encoded = to_bytes(ctxt, &s).unwrap();
let decoded: Struct = encoded.deserialize().unwrap().0;
assert_eq!(decoded, s);
Commit count: 5232

cargo fmt