41 stable releases

new 4.1.1 May 20, 2024
4.0.3 Apr 30, 2024
4.0.2 Feb 25, 2024
3.15.2 Feb 25, 2024
2.0.0 May 22, 2020

#14 in #d-bus

Download history 160450/week @ 2024-01-29 105605/week @ 2024-02-05 118195/week @ 2024-02-12 117955/week @ 2024-02-19 135552/week @ 2024-02-26 140734/week @ 2024-03-04 135987/week @ 2024-03-11 154717/week @ 2024-03-18 149047/week @ 2024-03-25 157363/week @ 2024-04-01 134243/week @ 2024-04-08 154823/week @ 2024-04-15 160370/week @ 2024-04-22 161543/week @ 2024-04-29 149263/week @ 2024-05-06 152297/week @ 2024-05-13

635,103 downloads per month
Used in 401 crates (5 directly)

MIT license

67KB
1K SLoC

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);

Dependencies

~1.4–2MB
~42K SLoC