Macro chromium::import!

Después de añadir :my_rust_lib a GN deps, tenemos que aprender a importar y usar my_rust_lib desde my_rust_lib_unittest.rs. No hemos proporcionado un crate_name explícito para my_rust_lib, por lo que el nombre del crate se calcula en función de la ruta y el nombre de destino completos. Por suerte, podemos evitar trabajar con un nombre tan poco práctico usando la macro chromium::import! del crate chromium importado automáticamente:

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

use my_rust_lib::my_function_under_test;

En un segundo plano, la macro se expande a algo parecido a lo siguiente:

extern crate ui_sbase_cmy_urust_ulib as my_rust_lib;

use my_rust_lib::my_function_under_test;

Puedes obtener más información en el comentario del documento de la macro chromium::import.

rust_static_library permite especificar un nombre explícito mediante la propiedad crate_name, pero no se recomienda hacerlo. El motivo es porque el nombre del crate debe ser único en todo el mundo. crates.io garantiza la exclusividad de sus nombres de crate, de modo que los elementos de destino de GN cargo_crate (generados por la herramienta gnrt que se explican en una sección posterior) usan nombres de crate cortos.