18 个版本
0.2.5 | 2021年10月7日 |
---|---|
0.2.4 | 2021年10月6日 |
0.1.121 | 2021年9月19日 |
0.1.25 | 2021年10月6日 |
在 FFI 中排名 222
每月下载 51 次
59KB
883 行
rust_interface_file_generator
将用 Rust 编写的库翻译为接口文件的程序。
注意,这个 crate 已被弃用。请使用 rifgen
它与 flapigen 一起工作。有关如何与项目集成的说明,请点击 这里
假设你有以下 Rust 代码
struct Foo {
data: i32
}
impl Foo {
fn new(val: i32) -> Foo {
Foo{data: val}
}
fn f(&self, a: i32, b: i32) -> i32 {
self.data + a + b
}
fn set_field(&mut self, v: i32) {
self.data = v;
}
}
使用 flapigen,你需要编写一个类似以下的接口文件
foreign_class!(class Foo {
self_type Foo;
constructor Foo::new(_: i32) -> Foo;
fn Foo::set_field(&mut self, _: i32);
fn Foo::f(&self, _: i32, _: i32) -> i32;
});
以便在 Java 中编写类似这样的代码
Foo foo = new Foo(5);
int res = foo.f(1, 2);
assert res == 8;
或者在 C++ 中编写类似这样的代码
Foo foo(5);
int res = foo.f(1, 2);
assert(res == 8);
这个程序生成接口文件,这样你就可以有更多时间专注于你的代码
其他功能
✅ 快速且易于使用
✅ 指定结果的代码风格,例如 CamelCase 或 snake_case
✅ 支持 struct、enum、trait
✅ 你无需担心接口中代码的“顺序”
用户指南
在此处阅读 rust_interface_file_gen
用户指南!
## 更新到 rifgen
这个 crate 现已迁移到 rifgen
依赖
~1.5MB
~37K SLoC