تایپ‌های اضافی

Rust TypeC++ Type
Stringrust::String
&strrust::Str
CxxStringstd::string
&[T]/&mut [T]rust::Slice
<Box<Trust::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.