Rustのtokioクレートのメモ。
tokioは、非同期処理を行う(async/awaitを使う)Rustアプリケーションを作成するための実装。
〜 [dependencies] tokio = { version = "1.42.0", features=["full"] }
tokioのフィーチャーは色々あるが、とりあえずfullを指定しておくと全部使える。
main関数にasyncを付けたい場合、#[tokio::main]を使う。
#[tokio::main]を使うには、macrosとrt-multi-threadフィーチャーが必要。
[dependencies] tokio = { version = "1.42.0", features=["macros", "rt-multi-thread"] }
#[tokio::main] async fn main() { 〜 }
#[tokio::main]を付けた関数は、実体としては、block_onを使った形式に変換されるらしい。
参考: ODENさんの【rust】async/awaitのベストプラクティス
テスト用の関数にasyncを付けたい場合、#[test]の代わりに#[tokio::test]を使う。
#[cfg(test)] mod test{ #[tokio::test] async fn test1(){ 〜 } }
use文でインポートしておく方が便利かも。
#[cfg(test)] mod test{ use tokio::test; #[test] async fn test1(){ 〜 } }