Skip to main content

session_reuse_and_pipelining/
main.rs

1use std::error::Error;
2
3use nano_get::{Client, ConnectionPolicy, Request};
4
5fn summarize(label: &str, response: &nano_get::Response) {
6    println!(
7        "{label}: {} {} ({} bytes)",
8        response.status_code,
9        response.reason_phrase,
10        response.body.len()
11    );
12}
13
14fn main() -> Result<(), Box<dyn Error>> {
15    let client = Client::builder()
16        .connection_policy(ConnectionPolicy::Reuse)
17        .build();
18    let mut session = client.session();
19
20    let first = session.execute(Request::get("http://example.com/")?)?;
21    let second = session.execute(Request::get("http://example.com/index.html")?)?;
22    let pipelined = session.execute_pipelined(&[
23        Request::get("http://example.com/")?,
24        Request::get("http://example.com/index.html")?,
25    ])?;
26
27    println!("This example demonstrates the Session API shape for reuse and pipelining.");
28    summarize("sequential #1", &first);
29    summarize("sequential #2", &second);
30    summarize("pipeline #1", &pipelined[0]);
31    summarize("pipeline #2", &pipelined[1]);
32
33    Ok(())
34}