Обмеження 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++ (наведені на наступному слайді)
  • Функціональні покажчики незручні у використанні.