创建上下文
本文将带您了解如何在 Kokoro 中构建上下文。
理解 Context
在 Kokoro 框架中,Context
是核心组件,负责协调资源和行为模式。
泛型参数:Resource 和 Mode
Context
结构体包含两个泛型参数:Resource
和 Mode
,它们定义了上下文的资源类型和工作模式。
工作模式的选择
您需要首先确定 Context
的工作模式。在本例中,我们采用 MPSC
模式,该模式源自 kokoro-flume-channel,支持发布-订阅机制,适用于 kokoro-plugin-tiny-http
等基于发布-订阅的插件。
快速创建 Context
使用 kokoro-flume-channel 提供的工具函数,您可以轻松创建一个 MPSC
模式的 Context
:
fn main() {
// 在 MPSC 模式下初始化上下文
let ctx = channel_ctx();
}
默认情况下,创建的 Context
的 Resource
类型为 ()
,这意味着初始资源为空。
自定义 Context
进阶用户可能希望从头开始构建自定义的 Context
。
自定义 Resource
例如,如果您希望 Resource
使用自定义类型,如下所示:
struct MyName {
name: String
}
创建自定义 Context
您可以按照以下步骤创建一个携带自定义资源的 Context
:
fn main() {
let res = MyName { name: "Kokoro".to_string() };
let scope = Scope::create(Arc::new(res));
let mode = MPSC::<()>::default();
let ctx = Context::create(Arc::new(scope), Arc::new(mode));
}
在这个过程中,您会看到多个 Arc
的使用,这是为了确保资源在多线程中的安全共享。
Scope
是另一个重要概念,我们将在后续章节中详细介绍。
结语
通过以上步骤,您可以灵活地创建和管理 Kokoro 中的上下文,为接下来的开发打下坚实基础。
在成功创建 Context 之后,下一步是将插件注册到上下文中。详细请参阅 注册插件 部分。