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/// 数据库工具模块(迁移、结构、连接封装)
15pub mod db;
16
17/// HTTP 请求 / 响应结构与构造器
18pub mod http;
19
20/// 用户身份认证与上下文结构工具
21pub mod auth;
22
23/// 错误类型定义与统一错误处理
24pub mod error;
25
26/// 通用预导入模块(导出常用类型/宏/辅助函数)
27pub mod prelude;
28
29/// FFmpeg 任务封装模块
30pub mod ffmpeg;
31
32/// Stream I/O(Buffer 资源、文件打开、内存缓冲)封装模块
33pub mod stream;
34
35/// 宿主上下文(当前用户)封装模块
36pub mod context;
37
38/// 事件类型与 payload 解析辅助
39pub mod events;
40
41/// 事件总线封装(发布事件)
42pub mod event_bus;
43
44/// 更低样板的插件导出适配
45pub mod plugin;
46
47// =====================
48// 类型导出(供外部模块使用)
49// =====================
50
51/// 导出插件实现接口定义(`export!(...)`)
52/// 提供给外部使用插件的接口。
53pub use bindings::export;
54
55/// 用户上下文结构,常用于授权接口
56/// `UserContext` 类型常用于用户身份认证和权限检查的上下文数据。
57pub use bindings::vtx::api::auth_types::UserContext;
58
59/// 插件清单类型,用于插件元数据管理
60/// `Manifest` 类型用于表示插件的元数据和描述信息。
61pub use bindings::vtx::api::types::Manifest;
62
63/// 当前用户信息(来自宿主上下文)
64pub use bindings::vtx::api::auth_types::CurrentUser;
65
66// =====================
67// 元数据导出 (仅在 meta 特性开启时可用)
68// =====================
69
70/// 暴露 SDK 使用的 WIT 接口定义内容
71/// 直接复用 vtx-protocol crate 中的常量,零运行时开销
72#[cfg(feature = "meta")]
73pub const WIT_DEFINITION: &str = vtx_protocol::WIT_CONTENT;
74
75/// SDK 版本号
76#[cfg(feature = "meta")]
77pub const VERSION: &str = env!("CARGO_PKG_VERSION");