include!(env!("BINDINGS"));
use crate::my::test::i::{ping, pong};
struct Component;
export!(Component);
impl Guest for Component {
async fn run() {
let (tx, rx) = wit_future::new(|| unreachable!());
let f1 = ping(rx, "world".into());
let f2 = async { tx.write("hello".into()).await.unwrap() };
let (rx2, ()) = futures::join!(f1, f2);
let m2 = rx2.await;
assert_eq!(m2, "helloworld");
let (tx, rx) = wit_future::new(|| unreachable!());
let f1 = async move {
let m3 = pong(rx).await;
assert_eq!(m3, "helloworld");
};
let f2 = async { tx.write(m2).await.unwrap() };
let ((), ()) = futures::join!(f1, f2);
}
}