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.