1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! 插件 trait 定义
//!
//! 定义插件接口,是洋葱模型的核心。
//!
//! # 插件编写模式
//!
//! ```rust
//! use artisan::{Plugin, Rocket, flow_ctrl::Next};
//! use async_trait::async_trait;
//!
//! pub struct MyPlugin;
//!
//! #[async_trait]
//! impl Plugin for MyPlugin {
//! async fn assembly(&self, rocket: &mut Rocket, next: Next<'_>) -> artisan::Result<()> {
//! // 前向逻辑:修改 rocket
//!
//! next.call(rocket).await?; // 调用下一层
//!
//! // 后向逻辑:处理响应
//! Ok(())
//! }
//! }
//! ```
use async_trait;
use crateRocket;
use crateNext;
/// 插件 trait - 洋葱模型核心