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(){
〜
}
}