3 个不稳定版本
| 0.2.0 | 2020年10月11日 |
|---|---|
| 0.1.1 | 2020年7月12日 |
| 0.1.0 | 2020年7月10日 |
在 Rust 模式 中排名 2993
18KB
393 行
wrapgen
wrapgen 是一个工具,可以自动生成通过 FFI 调用的 C 函数的 Rust 包装器。它将指针返回值包裹在 Option 中,并将 int 返回值包裹在 Result 中。目前,wrapgen 仅在您的函数遵循返回 0 表示成功运行,否则返回其他值的 C 约定时才工作。
如何使用 wrapgen
您可以将 wrapgen 作为独立的二进制文件使用
wrapgen 输入.rs 输出.rs
其中 input.rs 每行包含一个函数声明
或将其包含在您的 build.rs 文件中
fn main() {
WrapGen::new("input1.rs")
.add_file("input2.rs")
.function("fn my_test_fn(arg1: cty::c_int) -> cty::c_int")
.prefix("rs_")
.use_core(false)
.generate("output.rs");
}
lib.rs:
wrapgen 是一个工具,可以自动生成通过 FFI 调用的 C 函数的 Rust 包装器。它将指针返回值包裹在 Option 中,并将 int 返回值包裹在 Result 中。目前,wrapgen 仅在您的函数遵循返回 0 表示成功运行,否则返回其他值的 C 约定时才工作。
如何使用 wrapgen
您可以将 wrapgen 作为独立的二进制文件使用
wrapgen 输入.rs 输出.rs
其中 input.rs 每行包含一个函数声明
或将其包含在您的 build.rs 文件中
fn main() {
WrapGen::new("input1.rs")
.add_file("input2.rs")
.function("fn my_test_fn(arg1: cty::c_int) -> cty::c_int")
.prefix("rs_")
.use_core(false)
.generate("output.rs");
}
依赖关系
~2.2–3MB
~54K SLoC