Макрос chromium::import!
Після додавання :my_rust_lib
до GN deps
нам все ще потрібно навчитися імпортувати та використовувати my_rust_lib
з my_rust_lib_unittest.rs
. Ми не надали явного crate_name
для my_rust_lib
, тому його ім'я буде обчислено на основі повного шляху та імені. На щастя, ми можемо уникнути роботи з такою громіздкою назвою за допомогою макросу chromium::import!
з автоматично імпортованого крейту chromium
:
chromium::import! {
"//ui/base:my_rust_lib";
}
use my_rust_lib::my_function_under_test;
Під ковдрою макрос розширюється до чогось схожого на це:
extern crate ui_sbase_cmy_urust_ulib as my_rust_lib;
use my_rust_lib::my_function_under_test;
Додаткову інформацію можна знайти у коментарі документації макросу chromium::import
.
Бібліотека rust_static_library
підтримує вказівку явної назви через властивість crate_name
, але робити це не рекомендується. Не рекомендується, тому що ім'я крейту має бути глобально унікальним. crates.io гарантує унікальність імен своїх крейтів, тому GN цілі cargo_crate
(створені за допомогою інструменту gnrt
, описаного в наступному розділі) використовують короткі імена крейтів.