Додаткові типи

Тип RustТип C++
Stringrust::String
&strrust::Str
CxxStringstd::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>
  • Ці типи можна використовувати в полях спільних структур, а також в аргументах і поверненнях зовнішніх функцій.
  • Зверніть увагу, що String у Rust не відображається безпосередньо у std::string. На це є декілька причин:
    • std::string не підтримує інваріант UTF-8, якого вимагає String.
    • Ці два типи мають різне розташування в пам'яті, тому їх не можна передавати безпосередньо між мовами.
    • std::string вимагає конструктора переміщення, який не відповідає семантиці переміщення Rust, тому std::string не може бути переданий за значенням до Rust