session_reuse_and_pipelining/
main.rs1use 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}