chromium::import!
Macro
After adding :my_rust_lib
to GN deps
, we still need to learn how to import
and use my_rust_lib
from my_rust_lib_unittest.rs
. We haven’t provided an
explicit crate_name
for my_rust_lib
so its crate name is computed based on
the full target path and name. Fortunately we can avoid working with such an
unwieldy name by using the chromium::import!
macro from the
automatically-imported chromium
crate:
chromium::import! {
"//ui/base:my_rust_lib";
}
use my_rust_lib::my_function_under_test;
Under the covers the macro expands to something similar to:
extern crate ui_sbase_cmy_urust_ulib as my_rust_lib;
use my_rust_lib::my_function_under_test;
More information can be found in the doc comment of the chromium::import
macro.
rust_static_library
supports specifying an explicit name via crate_name
property, but doing this is discouraged. And it is discouraged because the crate
name has to be globally unique. crates.io guarantees uniqueness of its crate
names so cargo_crate
GN targets (generated by the gnrt
tool covered in a
later section) use short crate names.