10 个版本
0.1.61 | 2022年10月25日 |
---|---|
0.1.51 | 2022年2月23日 |
0.1.7 | 2023年6月8日 |
0.1.6 | 2022年10月25日 |
0.1.4 | 2021年10月6日 |
#72 在 FFI
每月下载量 294
58KB
875 行
rifgen
将用 Rust 编写的库翻译成接口文件的程序。它与 flapigen 一起工作。有关如何集成到您的项目的说明,请点击 这里。这个 crate 最初是 rust_interface_file_generator
假设您有以下 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
✅ 您无需担心接口中代码的 "顺序"
用户指南
联系我
如果您想与我联系以帮助任何项目,您可以通过 Upwork 联系我
依赖项
~1.5MB
~38K SLoC