use
use
の通常パターン
#![allow(unused)] fn main() { use embedded_hal::delay::DelayNs; }
単純に省略しているパターンです。
こうすることでembedded_hal::delay::DelayNs
はDelayNs
で呼び出し可能になります。
use
の*
パターン
*
を最後につけるとそれ以下のmod(モジュール)や関数を呼び出せるようになります。
#![allow(unused)] fn main() { use defmt::*; }
イメージで説明すると、crate_a
の下にモジュール(m1)
があり、m1
内に関数func3
があった場合、それらが省略できるという意味です。
crate_a
├── m1
└── func2
use crate_a::*; fn main(){ m1::func3(); // crate_a::M1::func3としなくてよい func2(); // crate_a::func2()としなくて良い }
as
#![allow(unused)] fn main() { use rp2040_hal as hal; }
as
は、as
の前のクレート名を変更する機能を持っています。この文だとrp2040_hal
からhal
にクレート名を変更しています。
use
のas _
パターン
#![allow(unused)] fn main() { use defmt_rtt as _; use panic_probe as _; }
これは、クレートをmain.rsに取り込んだ後に、as _
でクレート名を_
に変換することで、main.rsで直接呼び出しをできないようにしています。(Underscore Imports)
defmt_rtt
の例で説明すると、defmt_rtt
はdefmt
をrttとして利用する設定にし、その後にas _
をすることでmain.rsで直接参照できなくなるのでmain.rsに悪影響を与えなくなります。