Macro chromium::import!

Depois de adicionar :my_rust_lib às deps do GN, ainda precisamos aprender como importar e usar my_rust_lib de my_rust_lib_unittest.rs. Não fornecemos um crate_name explícito para my_rust_lib, portanto, seu nome de crate é calculado com base no caminho e nome do alvo completo. Felizmente, podemos evitar trabalhar com um nome tão difícil de usar usando o macro chromium::import! do crate chromium automaticamente importado:

chromium::import! {
    "//ui/base:my_rust_lib";
}

use my_rust_lib::my_function_under_test;

Por baixo dos panos, a macro se expande para algo semelhante a:

extern crate ui_sbase_cmy_urust_ulib as my_rust_lib;

use my_rust_lib::my_function_under_test;

Mais informações podem ser encontradas no comentário de documentação da macro chromium::import.

rust_static_library suporta a especificação de um nome explícito via propriedade crate_name, mas isso é desencorajado. E é desencorajado porque o nome do crate tem que ser globalmente único. crates.io garante a unicidade de seus nomes de crate, portanto, os alvos cargo_crate GN (gerados pela ferramenta gnrt abordada em uma seção posterior) usam nomes curtos de crate.