其他类型
Rust Type | C++ Type |
---|---|
String | rust::String |
&str | rust::Str |
CxxString | std::string |
&[T] /&mut [T] | rust::Slice |
Box<T> | rust::Box<T> |
UniquePtr<T> | std::unique_ptr<T> |
Vec<T> | rust::Vec<T> |
CxxVector<T> | std::vector<T> |
- 这些类型可用于共享结构体的字段以及外部函数的参数和返回结果。
- 请注意,Rust 的
String
不会直接映射到std::string
。导致这种情况的原因有以下几种:std::string
不遵循String
所需的 UTF-8 不变性。- 这两种类型的内存布局不同,因此无法直接在语言之间进行传递。
std::string
需要与 Rust 的移动语义不匹配的 move 构造函数,因此std::string
无法按值传递给 Rust。