Struct async_rustbus::MatchRule [−][src]
pub struct MatchRule {
pub sender: Option<Arc<str>>,
pub path: Option<Arc<str>>,
pub path_namespace: Option<Arc<str>>,
pub interface: Option<Arc<str>>,
pub member: Option<Arc<str>>,
// some fields omitted
}Represents a match for incoming signals.
Signals match a MatchRule if they match every field.
When one of the fields is None it is equivelent to a wildcard for that field,
causing that field to be matching for every signal.
MatchRule’s are ordered by their specificity.
If one MatchRule is ‘less than’ another, then it is more specific than the other one.
See the Ord impl for details.
Fields
sender: Option<Arc<str>>Checks against the sender of the signal.
path: Option<Arc<str>>Matches against the object path of the signal requiring an exact match (no children).
path and path_namespace cannot be used simultanously.
path_namespace: Option<Arc<str>>Matches against the object path of the signal.
It accepts an exact match, or a child of path_namespace.
path and path_namespace cannot be used simultanously.
interface: Option<Arc<str>>Matches against the interface of the signal.
member: Option<Arc<str>>Matches against the signal member.
Implementations
impl MatchRule[src]
impl MatchRule[src]pub fn new() -> Self[src]
pub fn sender<S: Into<String>>(&mut self, sender: S) -> &mut Self[src]
pub fn path<S: Into<String>>(&mut self, path: S) -> &mut Self[src]
pub fn path_namespace<S: Into<String>>(
&mut self,
path_namespace: S
) -> &mut Self[src]
&mut self,
path_namespace: S
) -> &mut Self
pub fn interface<S: Into<String>>(&mut self, interface: S) -> &mut Self[src]
pub fn member<S: Into<String>>(&mut self, member: S) -> &mut Self[src]
pub fn is_empty(&self) -> bool[src]
pub fn matches(&self, msg: &MarshalledMessage) -> bool[src]
Returns true if the message is a signal and matches the rule.
pub fn match_string(&self) -> String[src]
Returns the org.freedesktop.DBus.AddMatch match rule string.
Trait Implementations
impl Clone for MatchRule[src]
impl Clone for MatchRule[src]fn clone(&self) -> Self[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Ord for MatchRule[src]
impl Ord for MatchRule[src]MatchRules are ordered by their specificity.
If one match rule is ‘less than’ another then it is more specific than the other.
When evaluating specificity the following steps are taken:
- If one rule has
Somesenderand the otherNonethen, the former is less than the latter. Otherwise continue to the next step. - If one rule has
Somepathand the otherNonethen, the former is less than the latter. Otherwise continue to the next step. - If one rule has
Somepath_namespaceand the otherNonethen, the former is less than the latter. Otherwise continue to the next step. - If both rules have
Somepath_namespaceand one is a subset of the other than the former is less than the latter. Otherwise continue to the next step. - If one rule has
Someinterfaceand the otherNonethen, the former is less than the latter. Otherwise continue to the next step. - If one rule has
Somememberand the otherNonethen, the former is less than the latter. Otherwise continue to the next step. - Compare
senderfield. If not equal return theOrdering, otherwise continue to the next step. - Compare
pathfield. If not equal return theOrdering, otherwise continue to the next step. - Compare
path_namespacefield. If not equal return theOrdering, otherwise continue to the next step. - Compare
interfacefield. If not equal return theOrdering, otherwise continue to the next step. - Compare
memberfield, and return the result.
impl PartialOrd<MatchRule> for MatchRule[src]
impl PartialOrd<MatchRule> for MatchRule[src]