nano-get 0.3.0

A tiny HTTP/1.1 GET and HEAD client with zero dependencies by default.
Documentation
use std::error::Error;

fn preview_bytes(bytes: &[u8], max_len: usize) -> String {
    let shown = bytes
        .iter()
        .take(max_len)
        .map(|byte| format!("{byte:02x}"))
        .collect::<Vec<_>>()
        .join(" ");
    if bytes.len() > max_len {
        format!("{shown} ...")
    } else {
        shown
    }
}

fn main() -> Result<(), Box<dyn Error>> {
    let url = "http://example.com";
    let body = nano_get::get_bytes(url)?;

    println!("GET {url}");
    println!("received {} bytes", body.len());
    println!("hex preview: {}", preview_bytes(&body, 16));

    Ok(())
}