[][src]Module yukikaze::rt::client

Client runtime

Due to limitation of async fn, the global client is provided by means of macro declare_global_client. The macro defines global client in current scope, alongside companion Request wrapper and GlobalRequest trait. Refer to macro documentation for details.

Usage

use yukikaze::client::Request;

mod generated {
    use yukikaze::client;
    use core::time;

    pub struct TimeoutCfg;

    impl client::config::Config for TimeoutCfg {
        type Connector = client::config::DefaultConnector;
        type Timer = client::config::DefaultTimer;

        fn timeout() -> time::Duration {
            time::Duration::from_millis(50)
        }
    }

    yukikaze::declare_global_client!(TimeoutCfg);
}

use generated::{GlobalRequest};

async fn google() {
    let res = Request::get("https://google.com").expect("To create get request")
                                                .empty()
                                                .global()
                                                .send();
    let result = yukikaze::matsu!(res).expect("To get without timeout")
                                       .expect("Successful response");
    assert!(result.is_success());
}

Modules

generated

Example of generated global client