Skip to main content

InspectorMiddleware

Trait InspectorMiddleware 

Source
pub trait InspectorMiddleware<Evt>: Send + Sync {
    // Required methods
    fn name(&self) -> &str;
    fn inspect(&self, event: &Evt) -> Result<(), InspectorError>;
}
Expand description

只读检查器——接收 &Evt,后台并行执行,不阻塞事件流。

Inspector 通过 tokio::spawn 并发执行,其错误通过异步 error channel 报告, 不会影响 Mutator 阶段的事件处理。

§示例

struct TokenLogger;
impl InspectorMiddleware<String> for TokenLogger {
    fn name(&self) -> &str { "token_logger" }
    fn inspect(&self, event: &String) -> Result<(), InspectorError> {
        eprintln!("[inspector] event: {event}");
        Ok(())
    }
}

Required Methods§

Source

fn name(&self) -> &str

返回此 inspector 的唯一标识名称。

Source

fn inspect(&self, event: &Evt) -> Result<(), InspectorError>

检查事件(只读),返回 Ok(()) 或错误(通过 error channel 报告)。

Inspect 的返回值不会影响事件流——即使返回 Err,事件也会继续传递。

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§