vtx_sdk/
lib.rs

1/// WIT 接口绑定模块(私有)
2///
3/// # 说明
4/// 该模块负责生成和管理与 VTX Protocol 定义的接口绑定。
5/// 它不再依赖本地文件,而是直接使用 `vtx-protocol` 提供的单一事实来源。
6pub mod bindings {
7    include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
8}
9
10// =====================
11// 模块定义
12// =====================
13
14/// 宿主 ABI 封装(按领域拆分,便于维护)
15pub mod host;
16
17/// 兼容性导出:保持 `vtx_sdk::db/...` 等路径不变
18pub use host::{auth, context, db, event_bus, events, ffmpeg, http, stream};
19
20/// 错误类型定义与统一错误处理
21pub mod error;
22
23/// 通用预导入模块(导出常用类型/宏/辅助函数)
24pub mod prelude;
25
26/// 更低样板的插件导出适配
27pub mod plugin;
28
29// =====================
30// 类型导出(供外部模块使用)
31// =====================
32
33/// 导出插件实现接口定义(`export!(...)`)
34/// 提供给外部使用插件的接口。
35pub use bindings::export;
36
37/// 用户上下文结构,常用于授权接口
38/// `UserContext` 类型常用于用户身份认证和权限检查的上下文数据。
39pub use bindings::vtx::api::auth_types::UserContext;
40
41/// 插件清单类型,用于插件元数据管理
42/// `Manifest` 类型用于表示插件的元数据和描述信息。
43pub use bindings::vtx::api::types::Manifest;
44
45/// 当前用户信息(来自宿主上下文)
46pub use bindings::vtx::api::auth_types::CurrentUser;
47
48// =====================
49// 元数据导出 (仅在 meta 特性开启时可用)
50// =====================
51
52/// 暴露 SDK 使用的 WIT 接口定义内容
53/// 直接复用 vtx-protocol crate 中的常量,零运行时开销
54#[cfg(feature = "meta")]
55pub const WIT_DEFINITION: &str = vtx_protocol::WIT_CONTENT;
56
57/// SDK 版本号
58#[cfg(feature = "meta")]
59pub const VERSION: &str = env!("CARGO_PKG_VERSION");