vtx_sdk/lib.rs
1/// WIT 接口绑定模块(私有)
2///
3/// # 说明
4/// 该模块负责生成和管理与 `wit/vtx.wit` 文件中定义的接口绑定。
5/// 通过使用 `wit_bindgen` 宏,自动将 `wit/vtx.wit` 文件中的接口转换为 Rust 类型。
6///
7/// **注意**:该模块依赖根目录下的 `wit/` 文件夹,在发布时需要确保 `Cargo.toml` 的 `include` 字段包含该路径。
8/// 在构建过程中,`wit_bindgen` 宏会根据 `wit/vtx.wit` 文件生成绑定代码。
9///
10/// 该模块仅用于内部实现,不应直接在外部访问。外部应该通过 `prelude` 或显式导出的类型来使用。
11pub mod bindings {
12 // 使用 wit_bindgen 宏生成 WIT 接口的 Rust 类型绑定
13 wit_bindgen::generate!({
14 world: "plugin", // 定义插件名称
15 // `path` 是相对于 `Cargo.toml` 的路径,指定 WIT 文件所在的位置
16 // 在作为 crate 依赖时,cargo 会解压源码,此路径仍然有效
17 path: "wit",
18 pub_export_macro: true, // 导出宏,以供外部调用
19 default_bindings_module: "vtx_sdk::bindings", // 默认绑定模块路径
20 });
21}
22
23// =====================
24// 模块定义
25// =====================
26
27/// 数据库工具模块(迁移、结构、连接封装)
28pub mod db;
29
30/// HTTP 请求 / 响应结构与构造器
31pub mod http;
32
33/// 用户身份认证与上下文结构工具
34pub mod auth;
35
36/// 错误类型定义与统一错误处理
37pub mod error;
38
39/// 通用预导入模块(导出常用类型/宏/辅助函数)
40pub mod prelude;
41
42// =====================
43// 类型导出(供外部模块使用)
44// =====================
45
46/// 导出插件实现接口定义(`export!(...)`)
47/// 提供给外部使用插件的接口。
48pub use bindings::export;
49
50/// 用户上下文结构,常用于授权接口
51/// `UserContext` 类型常用于用户身份认证和权限检查的上下文数据。
52pub use bindings::vtx::api::auth_types::UserContext;
53
54/// 插件清单类型,用于插件元数据管理
55/// `Manifest` 类型用于表示插件的元数据和描述信息。
56pub use bindings::vtx::api::types::Manifest;
57
58// =====================
59// 元数据导出 (仅在 meta 特性开启时可用)
60// =====================
61
62/// 暴露 SDK 内置的 WIT 接口定义文件内容
63/// CLI 工具可以使用此常量来验证插件是否符合当前版本的契约
64#[cfg(feature = "meta")]
65pub const WIT_DEFINITION: &str = include_str!("../wit/vtx.wit");
66
67/// SDK 版本号
68#[cfg(feature = "meta")]
69pub const VERSION: &str = env!("CARGO_PKG_VERSION");