#bindings #c-sharp #code-generation

csharpbindgen

一个用于从Rust代码生成C#绑定的库

1 个不稳定版本

0.1.0 2019年7月13日

#5#csharp

MPL-2.0 许可证

24KB
589 代码行

csharpbindgen ── CircleCI docs.rs

csharpbindgen 是一个Rust库,用于从Rust代码生成低级C#绑定。

更多详情,请参阅在线文档或克隆此仓库并运行cargo doc --open


lib.rs:

csharpbindgen 是一个用于从Rust代码生成低级C#绑定的库。

它目前处于非常原始的状态,主要设计用于Unity Pathfinder插件,并且缺少许多功能。

快速入门

该库旨在通过Cargo构建脚本使用。

以下是一个示例程序,它将一些简单的Rust代码转换为C#

let rust = r#"
  pub unsafe extern "C" fn my_func(foo: i32) -> f32 { /* ... */ }
"#;

let code = csharpbindgen::Builder::new("MyDll", rust.to_string())
    .class_name("MyStuff")
    .generate()
    .unwrap();

println!("{}", code);

这将打印出类似以下C#代码的内容

// This file has been auto-generated, please do not edit it.

using System;
using System.Runtime.InteropServices;

internal class MyStuff {
    [DllImport("MyDll")]
    internal static extern float my_func(Int32 foo);
}

要查看更完整的示例,请参阅Unity Pathfinder插件的build.rs

依赖项

~2MB
~45K SLoC