Обмеження CXX
Безумовно, найбільш корисною сторінкою при використанні CXX є довідник типів.
CXX принципово підходить для випадків, коли:
- Ваш інтерфейс Rust-C++ достатньо простий, щоб ви могли оголосити все це.
- Ви використовуєте лише типи, які вже підтримуються CXX, наприклад,
std::unique_ptr
,std::string
,&[u8]
тощо.
Це має багато обмежень --- наприклад, відсутність підтримки типу Option
у Rust.
Ці обмеження обмежують нас у використанні Rust у Chromium лише для добре ізольованих "листових вузлів", а не для довільної взаємодії Rust-C++. Розглядаючи варіанти використання Rust у Chromium, гарною відправною точкою є складання проекту прив'язки CXX для мовної межі, щоб побачити, чи виглядає він достатньо простим.
In addition, right now, Rust code in one component cannot depend on Rust
code in another, due to linking details in our component build. That's another
reason to restrict Rust to use in leaf nodes.
Ви також повинні обговорити деякі інші проблемні моменти з CXX, наприклад:
- Обробка помилок базується на винятках C++ (наведені на наступному слайді)
- Функціональні покажчики незручні у використанні.