3 个不稳定版本
0.2.0 | 2024年7月18日 |
---|---|
0.1.1 | 2024年7月17日 |
0.1.0 | 2024年7月17日 |
#3 在 #mlua
每月138 次下载
37KB
63 行
Adapter
[!WARNING]
此库绝对不适用于生产环境。
Adapter 是一个库,旨在提供标准接口,以便可以使用不同的接口或插件进行通信。它是为了能够使用不同的语言来配置程序而创建的。
要了解背后的思路,请参阅 RAMBLINGS.md。
此库的关键概念是 Adapter 特性。它基于这样的想法:与外部接口的通信应该像具有输入和输出的函数一样简单。我们使用一个标识符来确定我们想要访问的“端点”。
pub trait Adapter<'a, Input, Output, Identifier, Error> {
fn call(&'a mut self, identifier: Identifier, input: Input) -> Result<Output, Error>;
}
适配器对它使用的输入、输出、标识符和错误是通用的。它接受一个标识符和一个输入,并返回一个包含输出或错误的成果。通过通用性,我们可以对我们的输入和输出应用更严格的特性。
仓库结构
- adapter: 适配器特性的实现。
- adapter-extism: 对 extism 库的适配器。
- adapter-libloading: 对动态库的适配器。
- adapter-mlua: 通过 mlua 包含 lua 的适配器。
依赖关系
~1.5–2.2MB
~40K SLoC