[][src]Module yukikaze::client

Client module

Entry point to HTTP client side.

API highlights

  • Client - Wraps hyper::Client and provides various async methods to send requests
  • Request - Entry point to creating requests.
  • Response - Result of successful requests. Provides various async methods to read body.

Usage

Simple

use yukikaze::{matsu, client};

async fn example() {
    let client = client::Client::default();

    let req = client::Request::get("https://google.com").expect("To create request").empty();
    let mut result = matsu!(client.send(req)).expect("Not timedout").expect("Successful");
    assert!(result.is_success());

    let html = matsu!(result.text()).expect("To read HTML");
    println!("Google page:\n{}", html);
}

Custom configuration

use yukikaze::{matsu, 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 {
        //never times out
        time::Duration::from_secs(0)
    }
}

async fn example() {
    let client = client::Client::<TimeoutCfg>::new();

    let req = client::Request::get("https://google.com").expect("To create request").empty();
    let result = matsu!(client.send(req)).expect("Not timedout").expect("Successful");
    assert!(result.is_success());
}

Re-exports

pub use request::Request;
pub use response::Response;

Modules

config

Describes client configuration

request

Client request

response

Response module.

Structs

Client

HTTP Client

Type Definitions

RequestResult

Alias to result of sending request.