1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! The D-Bus encoding.
//!
//! This module holds the serde serializer and deserializer that implement the D-Bus wire format.
//! They are used through the functions of the [`wire`](crate::wire) module, such as
//! [`to_bytes`](crate::wire::to_bytes), and through
//! [`Data::deserialize`](crate::wire::serialized::Data::deserialize).
pub use *;
pub use *;
use crate::;
/// Reject a signature that carries a GVariant maybe type before it reaches the D-Bus codec.
///
/// The maybe type has no D-Bus wire representation, so a signature containing one (whether given
/// statically or read from a variant on the wire) is invalid input rather than an internal
/// invariant. It becomes reachable when `zbus_utils/gvariant` is enabled — including
/// transitively via a co-located `zgvariant` 2.0 — so this must return an error, not panic.
pub
/// Reject a maybe type in a signature carried as a `g` or `v` value's string form.
///
/// This is the hot path (every variant on the wire), so it avoids re-parsing the string into a
/// `Signature`: `m` is the maybe type constructor and appears nowhere else in the signature
/// grammar, so its presence is an exact test for a maybe type.
pub