1 use test_programs::proxy; 2 use test_programs::wasi::http::types::{ 3 Fields, IncomingRequest, OutgoingResponse, ResponseOutparam, 4 }; 5 6 struct T; 7 8 proxy::export!(T); 9 10 impl proxy::exports::wasi::http::incoming_handler::Guest for T { handle(request: IncomingRequest, outparam: ResponseOutparam)11 fn handle(request: IncomingRequest, outparam: ResponseOutparam) { 12 let headers = request.headers(); 13 let header_key = "env".to_string(); 14 let env_var = headers.get(&header_key); 15 assert!(env_var.len() == 1, "should have exactly one `env` header"); 16 let key = std::str::from_utf8(&env_var[0]).unwrap(); 17 let fields = Fields::new(); 18 if let Ok(val) = std::env::var(key) { 19 fields.set(&header_key, &[val.into_bytes()]).unwrap(); 20 } 21 let resp = OutgoingResponse::new(fields); 22 ResponseOutparam::set(outparam, Ok(resp)); 23 } 24 } 25 main()26fn main() {} 27