Struct zbus::MatchRule

source ·
pub struct MatchRule<'m> { /* private fields */ }
Expand description

A bus match rule for subscribing to specific messages.

This is mainly used by peer to subscribe to specific signals as by default the bus will not send out most broadcasted signals. This API is intended to make it easy to create and parse match rules. See the match rules section of the D-Bus specification for a description of each possible element of a match rule.

Examples

use std::convert::TryFrom;
let rule = MatchRule::builder()
    .msg_type(zbus::MessageType::Signal)
    .sender("org.freedesktop.DBus")?
    .interface("org.freedesktop.DBus.Properties")?
    .member("PropertiesChanged")?
    .build();
let rule_str = rule.to_string();
assert_eq!(
    rule_str,
    "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged'",
);

// Let's parse it back.
let parsed_rule = MatchRule::try_from(rule_str.as_str())?;
assert_eq!(rule, parsed_rule);

Caveats

The PartialEq implementation assumes arguments in both rules are in the same order.

Implementations

Create a builder for MatchRuleBuilder.

The sender, if set.

The message type, if set.

The interfac, if set.

The member name if set.

The path or path namespace, if set.

The destination, if set.

The arguments.

The argument paths.

Match messages whose first argument is within the specified namespace.

Note that while the spec allows this to be any string that’s a valid bus or interface name except that it can have no ., we only allow valid interface names. The reason is not only to keep things simple and type safe at the same time but also for the fact that use cases of only matching on the first component of a bus or interface name are unheard of.

Creates an owned clone of self.

Creates an owned clone of self.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
Get the signature for the implementing type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
A DeserializeSeed implementation for this type.
Get a deserializer compatible with this signature.
Get the signature for the implementing type. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more