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 کوتاه استفاده میکنند.