Tipos Adicionais

Tipo em RustTipo em 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>
  • Esses tipos podem ser usados nos campos de structs compartilhadas e nos argumentos e retornos de funçÔes externas.
  • Observe que a String do Rust nĂŁo Ă© mapeada diretamente para std::string. HĂĄ algumas razĂ”es para isso:
    • std::string nĂŁo mantĂ©m a invariante UTF-8 que String requer.
    • Os dois tipos tĂȘm layouts diferentes na memĂłria e, portanto, nĂŁo podem ser passados diretamente entre as linguagens.
    • std::string requer construtores de movimento que nĂŁo correspondem Ă  semĂąntica de movimento do Rust, portanto, uma std::string nĂŁo pode ser passada por valor para o Rust.