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> |
- این typeها را میتوان در فیلدهای ساختارهای مشترک و آرگومانها و extern functionها استفاده کرد.
- توجه داشته باشید که
String
در Rust مستقیماً به std::string
نگاشت نمیشود. چند دلیل برای این وجود دارد:
-
std::string
ثابت UTF-8 را که String
به آن نیاز دارد را پشتیبانی نمیکند.
- این دو نوع طرحبندیهای متفاوتی در حافظه دارند و بنابراین نمیتوان آنها را مستقیماً بین زبانها منتقل کرد.
std::string
requires move constructors that don't match Rust's move semantics, so a std::string
can't be passed by value to Rust.