You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: fuzz_client.rs
    path of file: ./repos/h2/fuzz/fuzz_targets
    
    the code of the file until where you have to start completion: #![no_main]
use h2_support::prelude::*;
use libfuzzer_sys::{arbitrary::Arbitrary, fuzz_target};

#[derive(Debug, Arbitrary)]
struct HttpSpec {
    uri: Vec<u8>,
    header_name: Vec<u8>,
    header_value: Vec<u8>,
}

async fn fuzz_
    
async fn fuzz_entry(inp: HttpSpec) {
    if let Ok(req) = Request::builder()
        .uri(&inp.uri[..])
        .header(&inp.header_name[..], &inp.header_value[..])
        .body(())
    {
        let (io, mut _srv) = mock::new();
        let (mut client, _h2) = client::Builder::new()
            .handshake::<_, Bytes>(io)
            .await
            .unwrap();

        // this could still trigger a user error:
        // - if the uri isn't absolute
        // - if the header name isn't allowed in http2 (like connection)
        let _ = client.send_request(req, true);
    }
}