| Crates.io | puniyu_handler |
| lib.rs | puniyu_handler |
| version | 0.4.1 |
| created_at | 2025-10-24 15:46:52.532582+00 |
| updated_at | 2025-11-16 07:32:28.75103+00 |
| description | puniyu 的事件处理器模块 |
| homepage | https://github.com/puniyu/puniyu |
| repository | https://github.com/puniyu/puniyu |
| max_upload_size | |
| id | 1898618 |
| size | 82,584 |
事件处理器模块
puniyu_handler 是 puniyu 项目中负责事件处理的核心库。它提供了统一的事件处理器接口、消息事件处理实现以及处理器注册和管理机制。
事件处理器基础 trait,所有事件处理器都需要实现此 trait:
handle(): 异步处理事件的方法name(): 返回处理器名称rank(): 返回处理器优先级(默认值为 5,数值越小优先级越高)消息事件处理器实现:
使用 parse_command! 宏解析消息文本:
--flag value 格式作为参数CommandRegistry 获取命令定义Bot 和 EventContext 实例HandlerResult 决定是否继续执行其他处理器处理器注册表,提供处理器的注册和管理功能:
register(): 注册处理器unregister(): 卸载处理器get_all(): 获取所有处理器get_with_name(): 根据名称获取处理器底层存储实现:
RwLock<Vec<Arc<dyn Handler>>> 存储处理器Arc 和 RwLock 确保线程安全puniyu_command 紧密集成本项目采用 LGPL 许可证。