Limitações do CXX
De longe, a página mais útil ao usar o CXX é a referência de tipo.
CXX fundamentalmente é adequado para casos em que:
- Sua interface Rust-C++ é suficientemente simples para que você possa declarar tudo.
- Você está usando apenas os tipos já suportados nativamente pelo CXX, por exemplo,
std::unique_ptr,std::string,&[u8]etc.
Ele tem muitas limitações — por exemplo, falta de suporte para o tipo Option do Rust.
Essas limitações nos restringem a usar o Rust no Chromium apenas para “leaf nodes” (“nós folha”) bem isolados, em vez de para interoperabilidade Rust-C++ arbitrária. Ao considerar um caso de uso para o Rust no Chromium, um bom ponto de partida é elaborar os bindings CXX para a fronteira entre as linguagens para ver se ela parece simples o suficiente.
Você também deve discutir alguns dos outros pontos problemáticos com o CXX, por exemplo:
- Seu tratamento de erros é baseado em exceções C++ (dado no próximo slide)
- Ponteiros de função são difíceis de usar.