Tipos adicionales

Rust TypeC++ Type
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>
  • Estos tipos se pueden utilizar en los campos de estructura compartidas y en los argumentos e instrucciones de retorno de las funciones externas.
  • Ten en cuenta que String de Rust no se cruza directamente con std::string. Puede haber varios motivos:
    • std::string no mantiene la invariante de UTF-8 que requiere String.
    • Los dos tipos tienen diseños diferentes en la memoria y, por lo tanto, no se pueden transferir directamente entre lenguajes.
    • std::string requiere constructores de movimiento que no coincidan con la semántica de movimiento de Rust, por lo que std::string no se puede transferir a Rust mediante un valor.