では下記のいずれかの条件を満たした crate をインポートして使うことができます。

    • crates.io で最もよくダウンロードされている上位100位 – https://crates.io/crates?sort=downloads

rust-cookbook で使われいるクレート – https://rust-lang-nursery.github.io/rust-cookbook/

それらの依存関係のクレート

futures + tokio_core を使った例です – https://play.rust-lang.org/?gist=9d639631527653dee35c1f4174497c62&version=stable&mode=debug&edition=2015

extern crate futures;
extern crate tokio_core;

use std::time::Duration;
use futures::prelude::*;
use tokio_core::reactor::Core;
use tokio_core::reactor::Timeout;

fn main() {
    println!("tokio_core");
    let mut core = Core::new().unwrap();
    let handle = core.handle();
    core.run(
        Timeout::new(Duration::from_secs(1), &handle).unwrap()
            .and_then(move |_|{
                println!("1");
                Timeout::new(Duration::from_secs(1), &handle).unwrap()
                    .and_then(move |_|{
                        println!("2");
                        Timeout::new(Duration::from_secs(1), &handle).unwrap()
                            .and_then(move |_|{
                                println!("3");
                                futures::future::ok(())
                            })
                    })
            })
            .map_err(|err| println!("{:?}", err) )
    ).unwrap();
    println!("end");
}

残念ながら rust の非同期 IO ライブラリ tokio-core と tokio runtime と actix 0.5 と actix 0.6 でタイマーの比較 で多様した mdo は含まれていないので↑のように手動でマクロ展開する必要があります。

すごいライブラリ作って上位100位に入って mdo を依存関係に入れれば使えるようになる

ace エディタがスマホから入力するのが辛い問題はありますが、ちょっとした挙動の検証に何かと便利なのではないでしょうか。

参考

    その他の情報はこの help ページで見れます – https://play.rust-lang.org/help
bannerAds