#ocaml #derive #ffi #macro-derive #proc-macro

derive-ocaml

基于ocaml crate的ocaml与Rust FFI的简单自定义derive和进程宏

4个版本

0.1.3 2021年2月12日
0.1.2 2018年11月27日
0.1.1 2018年9月17日
0.1.0 2018年7月21日

进程宏中排名658

MIT 许可证

16KB
357

derive-ocaml - 用于更简单ocaml <-> rust FFI的自定义derive和进程宏

警告 此crate非常实验性

derive-ocaml基于ocaml-rs,并为FromValueToValue添加了自定义derive宏。该宏支持结构体、枚举和无箱浮点记录。

此外,它还实现了一个仅在nightly版本中可用的进程宏ocaml-ffi,以简化编写存根函数的样板代码。

#[derive(Debug, Default, ToValue, FromValue)]
#[ocaml(floats_array)]
pub struct Vec3 {
    x: f32,
    y: f32,
    z: f32,
}

#[ocaml_ffi]
pub fn rust_add_vecs(l: Vec3, r: Vec3) -> Vec3 {
    l + r
}

请参阅src/example/src/lib.rssrc/example/src/stubs.ml的示例

依赖关系

~1.5MB
~35K SLoC