Декларація use
Декларацію use можна використовувати, щоб прив’язати повний шлях до нової назви для простішого доступу. Її часто використовують так:
use crate::deeply::nested::{
my_first_function,
my_second_function,
AndATraitType
};
fn main() {
my_first_function();
}
Ви можете використовувати ключове слово as, щоб прив’язати імпорти до іншої назви:
// Прив’язати шлях `deeply::nested::function` до `other_function`.
use deeply::nested::function as other_function;
fn function() {
println!("called `function()`");
}
mod deeply {
pub mod nested {
pub fn function() {
println!("called `deeply::nested::function()`");
}
}
}
fn main() {
// Простіший доступ до `deeply::nested::function`
other_function();
println!("Entering block");
{
// Це еквівалентно `use deeply::nested::function as function`.
// Ця `function()` затінить зовнішню.
use crate::deeply::nested::function;
// Прив’язки `use` мають локальну область видимості. У цьому випадку
// затінення `function()` є лише в цьому блоці.
function();
println!("Leaving block");
}
function();
}
Ви також можете використовувати pub use, щоб перевизначити експорт елемента з модуля, щоб до нього можна було
отримати доступ через публічний інтерфейс модуля:
mod deeply {
pub mod nested {
pub fn function() {
println!("called `deeply::nested::function()`");
}
}
}
mod cool {
pub use crate::deeply::nested::function;
}
fn main() {
cool::function();
}