chromium::import! Macro

پس از افزودن :my_rust_lib به GN deps، همچنان باید نحوه وارد کردن و استفاده از my_rust_lib را از my_rust_lib_unittest.rs یاد بگیریم. ما یک crate_name صریح برای my_rust_lib ارائه نکرده‌ایم، بنابراین نام crate آن بر اساس مسیر و نام کامل هدف محاسبه می‌شود. خوشبختانه ما می‌توانیم با استفاده از ماکرو chromium::import! از chromium crate که به‌طور خودکار وارد می‌شود، درنتیجه از کار با چنین نامی پرهیز کنیم:

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;

اطلاعات بیشتر را می‌توانید در doc comment پیدا کنید. ماکرو مربوطه chromium::import.

rust_static_library از تعیین نام صریح از طریق ویژگیcrate_name پشتیبانی می‌کند، اما انجام این کار ممنوع است و از آن جلوگیری می‌شود زیرا نام crate باید در سطح سراسری منحصر‌به‌فرد باشد. crates.io منحصر‌به‌فرد بودن نام crateهای خود را تضمین می‌کند، بنابراین اهدافcargo_crate GN (تولید شده توسط ابزار gnrt که در بخش بعدی پوشش داده شده است) از نام‌های crate کوتاه استفاده می‌کنند.