Rustコトハジメ

Rustで競技プログラミングをやる人の覚書のようなものです。

2020-05-04から1日間の記事一覧

Futureのselect!マクロ

async fn task_one() { /* ... */ } async fn task_two() { /* ... */ } async fn race_tasks() { let t1 = task_one().fuse(); let t2 = task_two().fuse(); pin_mut!(t1, t2); select! { () = t1 => println!("task one completed first"), () = t2 => pri…

なぜFuture::pollはPinをとるのか?

Futureトレイトはこのような形をしている。 trait Future { type Output; fn poll( // Note the change from `&mut self` to `Pin<&mut Self>`: self: Pin<&mut Self>, // and the change from `wake: fn()` to `cx: &mut Context<'_>`: cx: &mut Context<'_…