dbus-async 2.3.1

Asynchronous DBus library
Documentation
use super::super::Connection;
use dbus_message_parser::{
    match_rule::MatchRule,
    message::{Message, MessageType},
};

impl Connection {
    pub(in super::super) fn receive_message(&mut self, msg: Message) {
        for (match_rules, sender) in self.match_rules.iter_mut() {
            if MatchRule::matching_rules(match_rules, &msg) {
                if let Err(e) = sender.try_send(msg.clone()) {
                    error!("mpsc.try_send: {:?}", e);
                }
            }
        }

        match msg.get_type() {
            MessageType::MethodCall => self.method_call(msg),
            MessageType::MethodReturn => self.method_return(msg),
            MessageType::Error => self.error(msg),
            MessageType::Signal => self.signal(msg),
        }
    }
}