1804060c8SJoel Dice #![expect(clippy::allow_attributes_without_reason)]
2804060c8SJoel Dice 
3804060c8SJoel Dice use wasmtime::component::{HasData, ResourceTable};
4f7a5aa34SAlex Crichton use wasmtime_wasi::{WasiCtx, WasiCtxView, WasiView};
5804060c8SJoel Dice 
6804060c8SJoel Dice pub mod borrowing_host;
7804060c8SJoel Dice pub mod closed_streams;
8804060c8SJoel Dice pub mod resource_stream;
9804060c8SJoel Dice pub mod round_trip;
10804060c8SJoel Dice pub mod round_trip_direct;
11804060c8SJoel Dice pub mod round_trip_many;
12804060c8SJoel Dice pub mod transmit;
13804060c8SJoel Dice pub mod util;
14*112112d4SAlex Crichton pub mod yield_;
15*112112d4SAlex Crichton pub mod yield_runner;
16804060c8SJoel Dice 
17804060c8SJoel Dice /// Host implementation, usable primarily by tests
18804060c8SJoel Dice pub struct Ctx {
19804060c8SJoel Dice     pub wasi: WasiCtx,
20804060c8SJoel Dice     pub table: ResourceTable,
21804060c8SJoel Dice     pub continue_: bool,
22804060c8SJoel Dice }
23804060c8SJoel Dice 
24804060c8SJoel Dice impl WasiView for Ctx {
ctx(&mut self) -> WasiCtxView<'_>2569b4acbfSAlex Crichton     fn ctx(&mut self) -> WasiCtxView<'_> {
260a074afcSAlex Crichton         WasiCtxView {
270a074afcSAlex Crichton             ctx: &mut self.wasi,
280a074afcSAlex Crichton             table: &mut self.table,
290a074afcSAlex Crichton         }
30804060c8SJoel Dice     }
31804060c8SJoel Dice }
32804060c8SJoel Dice 
33804060c8SJoel Dice impl HasData for Ctx {
34804060c8SJoel Dice     type Data<'a> = &'a mut Self;
35804060c8SJoel Dice }
36