Module dbus::arg[][src]

Expand description

Types and traits for easily getting a message’s arguments, or appening a message with arguments.

Also see the arguments guide (in the examples directory).

A message has read1, read2 etc, and append1, append2 etc, which is your starting point into this module’s types.

Append a:

bool, u8, u16, u32, u64, i16, i32, i64, f64 - the corresponding D-Bus basic type

&str - a D-Bus string. D-Bus strings do not allow null characters, so if the string contains null characters, it will be cropped to only include the data before the null character. (Tip: This allows for skipping an allocation by writing a string literal which ends with a null character.)

&[T] where T: Append - a D-Bus array. Note: can use an efficient fast-path in case of T being an FixedArray type.

Array<T, I> where T: Append, I: Iterator<Item=T> - a D-Bus array, maximum flexibility.

Variant<T> where T: Append - a D-Bus variant.

(T1, T2) where T1: Append, T2: Append - tuples are D-Bus structs. Implemented up to 12.

Dict<K, V, I> where K: Append + DictKey, V: Append, I: Iterator<Item=(&K, &V)> - A D-Bus dict (array of dict entries).

Path - a D-Bus object path.

Signature - a D-Bus signature.

OwnedFd - shares the file descriptor with the remote side.

Get / read a:

bool, u8, u16, u32, u64, i16, i32, i64, f64 - the corresponding D-Bus basic type

&str, &CStr - a D-Bus string. D-Bus strings are always UTF-8 and do not contain null characters.

&[T] where T: FixedArray - a D-Bus array of integers or f64.

Array<T, Iter> where T: Get - a D-Bus array, maximum flexibility. Implements Iterator so you can easily collect it into, e g, a Vec.

Variant<T> where T: Get - a D-Bus variant. Use this type of Variant if you know the inner type.

Variant<Iter> - a D-Bus variant. This type of Variant allows you to examine the inner type.

(T1, T2) where T1: Get, T2: Get - tuples are D-Bus structs. Implemented up to 12.

Dict<K, V, Iter> where K: Get + DictKey, V: Get - A D-Bus dict (array of dict entries). Implements Iterator so you can easily collect it into, e g, a HashMap.

Path - a D-Bus object path.

Signature - a D-Bus signature.

OwnedFd - a file descriptor sent from the remote side.

Modules

messageitem

MessageItem - old, enum design that is used as parameters and return values from method calls, or as data added to a signal.

Structs

Array

Represents a D-Bus Array. Maximum flexibility (wraps an iterator of items to append).

Dict

Append a D-Bus dict type (i e, an array of dict entries).

Iter

Helper struct for retrieve one or more arguments from a Message.

IterAppend

Helper struct for appending one or more arguments to a Message.

OwnedFd

An RAII wrapper around Fd to ensure that file descriptor is closed when the scope ends.

TypeMismatchError

Error struct to indicate a D-Bus argument type mismatch.

Variant

A simple wrapper to specify a D-Bus variant.

Enums

ArgType

Type of Argument

Traits

Append

Types that can be appended to a message as arguments implement this trait.

AppendAll

Helper trait to append many arguments to a message.

Arg

Types that can represent a D-Bus message argument implement this trait.

ArgAll

Helper trait to introspect many arguments.

DictKey

Types that can be used as keys in a dict type implement this trait.

FixedArray

If a type implements this trait, it means the size and alignment is the same as in D-Bus. This means that you can quickly append and get slices of this type.

Get

Types that can be retrieved from a message as arguments implement this trait.

ReadAll

Helper trait to read all arguments from a message.

RefArg

Object safe version of Arg + Append + Get.

Functions

cast

Cast a RefArg as a specific type (shortcut for any + downcast)

cast_mut

Cast a RefArg as a specific type (shortcut for any_mut + downcast_mut)

prop_cast

Descend into a hashmap returned by e g “Properties::get_all” to retrieve the value of a property.

Type Definitions

PropMap

The type typically used for a dictionary of properties.