chromium::import! 巨集

:my_rust_lib 新增至 GN deps 之後,我們仍需瞭解如何從 my_rust_lib_unittest.rs 匯入及使用 my_rust_lib。我們尚未為 my_rust_lib 提供明確的 crate_name,因此系統會依據完整目標路徑和名稱來運算出 Crate 名稱。幸好,我們可從自動匯入的 chromium Crate 中使用 chromium::import! 巨集,避免採用這類不方便的名稱:

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 屬性指定明確名稱,但不建議這麼做。不建議的原因是 Crate 名稱在全域範圍內不得重複。crates.io 可保證其 Crate 名稱不重複,因此 cargo_crate GN 目標會使用簡短的 Crate 名稱。此目標是由後續章節介紹的 gnrt 工具所產生。