2个版本
0.1.1 | 2023年7月11日 |
---|---|
0.1.0 | 2023年7月10日 |
#206 in FFI
8KB
96 行
不可见的 #[repr(Rust)]
包装器,为可以通过FFI按值传递的 #[repr(Rust)]
类型
重要 只有需要8字节对齐或更小的类型可以包装,并且C环境必须将uint64_t对齐到至少8字节边界。
use repr_c_wrapper::*;
#[repr(C)]
pub struct OpaqueWrapper(repr_c_wrapper_t!(String));
#[no_mangle]
pub extern "C" fn some_func() -> OpaqueWrapper {
OpaqueWrapper("hello".to_string().into())
}