| Crates.io | dris-build |
| lib.rs | dris-build |
| version | 0.1.1 |
| created_at | 2026-01-16 06:42:26.412618+00 |
| updated_at | 2026-01-21 09:38:49.578501+00 |
| description | dris 的 build.rs 侧代码生成器(扫描 #[component]/#[constructor] 并生成容器代码) |
| homepage | |
| repository | https://github.com/wuhaiji/dris |
| max_upload_size | |
| id | 2048021 |
| size | 257,932 |
dris-build 是 dris 的 build.rs 侧代码生成器:在编译期扫描组件与构造函数,生成 Container 到 OUT_DIR/dris_gen.rs。
生成代码会引用 dris_rt::All/dris_rt::Type 等路径(直接依赖 dris-rt 即可):
[dependencies]
dris-rt = "0.1.1"
[build-dependencies]
dris-build = "0.1.1"
build.rs:
fn main() {
dris_build::generate().unwrap();
}
在你的 crate 里引入生成文件:
include!(concat!(env!("OUT_DIR"), "/dris_gen.rs"));
然后就可以:
let container = dris_gen::Container::build();
#[component]/#[constructor]。cfg 条件裁剪(会解析 src/**/*.rs),因此当前版本不支持在 cfg/cfg_attr 作用域里声明组件/构造函数(包括 #[cfg_attr(..., component/constructor)])。建议把 cfg 放在实现细节里,不要切换组件类型/构造函数本身。