nonebot_rs/matcher/
action.rs

1use crate::log::{colored::*, event, Level};
2
3/// Matchers 内部 Action
4#[derive(Clone, Debug)]
5pub enum MatchersAction {
6    /// 添加 MessageEvent Matcher
7    AddMessageEventMatcher {
8        message_event_matcher: super::Matcher<crate::event::MessageEvent>,
9    },
10    /// 移除 Matcher
11    RemoveMatcher { matcher_name: String },
12}
13
14impl super::matchers::Matchers {
15    /// Matchers 处理 action method
16    pub fn handle_action(&mut self, action: MatchersAction) {
17        match action {
18            MatchersAction::AddMessageEventMatcher {
19                message_event_matcher,
20            } => {
21                event!(
22                    Level::DEBUG,
23                    "Adding Message Event Matcher: {}",
24                    message_event_matcher.name.blue()
25                );
26                self.add_message_matcher(message_event_matcher);
27            }
28            MatchersAction::RemoveMatcher { matcher_name } => {
29                event!(
30                    Level::DEBUG,
31                    "Removing Message Event Matcher: {}",
32                    matcher_name.blue()
33                );
34                self.remove_matcher(&matcher_name);
35            }
36        }
37    }
38}