#api #ffi #c

已删除 capi

Rust 中构建 C API 的辅助方法:在 Rust 对象和 C 之间传递所有权。注意:一旦 Box::from_raw/into_raw 稳定,此功能将过时。

使用旧的 Rust 2015

0.0.3 2015 年 9 月 12 日
0.0.2 2015 年 2 月 7 日
0.0.1 2015 年 2 月 7 日

#113 in #c

BSD-2-Clause

6KB
81

Rust 的 C API 辅助函数

辅助函数,允许 C 程序在 Rust 库中创建和释放对象。

注意:一旦 Box::from_raw/into_raw 稳定,此功能将过时。

请参阅 crates.io


lib.rs:

这些是构建具有 "alloc" 和 "free" 方法的 C API 的辅助方法,用于处理 Rust 对象的内存分配。

方法对 to_c_owned()to_owned_from_c() 允许将 Rust 对象的所有权传递给 C 并返回。

您可以使用 to_c_owned() 创建一个 Rust 对象并将其传递给 C,而不需要在程序的 Rust 部分中保留该对象的引用。

通过 to_c_owned() 传递给 C 的任何对象都必须通过 to_owned_from_c() 来回收。您需要创建一个用于释放对象的 C 函数,然后调用 to_owned_from_c()

C 所拥有的对象可以通过使用 &T 作为 extern "C" 的函数类型从 Rust 返回。如果出于某种原因您声明了接受指针的函数,则可以通过 as_ref_from_c() 获取引用,但这通常是不必要的。

mutconst 方法的 mutconst 版本仅为了方便,可以互换。

没有运行时依赖