1 use test_programs::proxy;
2 use test_programs::wasi::{
3     http::types::{Fields, IncomingRequest, OutgoingBody, OutgoingResponse, ResponseOutparam},
4     keyvalue,
5 };
6 
7 struct T;
8 
9 proxy::export!(T);
10 
11 impl proxy::exports::wasi::http::incoming_handler::Guest for T {
handle(_: IncomingRequest, outparam: ResponseOutparam)12     fn handle(_: IncomingRequest, outparam: ResponseOutparam) {
13         let fields = Fields::new();
14         let resp = OutgoingResponse::new(fields);
15         let body = resp.body().expect("outgoing response");
16 
17         ResponseOutparam::set(outparam, Ok(resp));
18 
19         let out = body.write().expect("outgoing stream");
20         let bucket = keyvalue::store::open("").unwrap();
21         let data = bucket.get("hello").unwrap().unwrap();
22         out.blocking_write_and_flush(&data)
23             .expect("writing response");
24 
25         drop(out);
26         OutgoingBody::finish(body, None).expect("outgoing-body.finish");
27     }
28 }
29 
main()30 fn main() {}
31