#接口 #文件 #API 绑定 #Java #生成器 #rifgen #flapigen

构建 rifgen_attributes_utils

ffi 接口文件生成器。与 flapigen 一起使用

1 个不稳定版本

0.1.0 2023年6月8日

#271 in FFI

MIT 许可证

4KB
52

rifgen

Rust doc Rust Documentation donate

将用 Rust 编写的库转换为接口文件的程序。与 flapigen 一起工作。有关如何集成到项目的说明,请点击此处。这个包最初是 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

✅ 您无需担心接口中代码的“顺序”

用户指南

在此处阅读 rifgen 用户指南!

在 crates.io 上查看

联系我

如果您想联系我以帮助任何项目,您可以在 Upwork 上找到我

依赖项

~2MB
~43K SLoC