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