1 use test_programs::proxy;
2 use test_programs::wasi::http::types::{
3     Fields, IncomingRequest, OutgoingBody, 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(_: IncomingRequest, outparam: ResponseOutparam)11     fn handle(_: IncomingRequest, outparam: ResponseOutparam) {
12         let fields = Fields::new();
13         let resp = OutgoingResponse::new(fields);
14         let body = resp.body().expect("outgoing response");
15 
16         ResponseOutparam::set(outparam, Ok(resp));
17 
18         let out = body.write().expect("outgoing stream");
19         out.blocking_write_and_flush(b"Hello, WASI!")
20             .expect("writing response");
21 
22         drop(out);
23         OutgoingBody::finish(body, None).expect("outgoing-body.finish");
24     }
25 }
26 
main()27 fn main() {}
28