1*3f3d65b0SAlex Crichton use test_programs::p3::wasi::random;
2*3f3d65b0SAlex Crichton 
3*3f3d65b0SAlex Crichton struct Component;
4*3f3d65b0SAlex Crichton 
5*3f3d65b0SAlex Crichton test_programs::p3::export!(Component);
6*3f3d65b0SAlex Crichton 
7*3f3d65b0SAlex Crichton impl test_programs::p3::exports::wasi::cli::run::Guest for Component {
run() -> Result<(), ()>8*3f3d65b0SAlex Crichton     async fn run() -> Result<(), ()> {
9*3f3d65b0SAlex Crichton         let args = std::env::args().collect::<Vec<_>>();
10*3f3d65b0SAlex Crichton         let args = args.iter().map(|s| s.as_str()).collect::<Vec<_>>();
11*3f3d65b0SAlex Crichton         match &args[1..] {
12*3f3d65b0SAlex Crichton             ["random", n] => {
13*3f3d65b0SAlex Crichton                 random::random::get_random_bytes(n.parse().unwrap());
14*3f3d65b0SAlex Crichton             }
15*3f3d65b0SAlex Crichton             ["insecure", n] => {
16*3f3d65b0SAlex Crichton                 random::insecure::get_insecure_random_bytes(n.parse().unwrap());
17*3f3d65b0SAlex Crichton             }
18*3f3d65b0SAlex Crichton             other => {
19*3f3d65b0SAlex Crichton                 panic!("unexpected args: {other:?}");
20*3f3d65b0SAlex Crichton             }
21*3f3d65b0SAlex Crichton         }
22*3f3d65b0SAlex Crichton         Ok(())
23*3f3d65b0SAlex Crichton     }
24*3f3d65b0SAlex Crichton }
25*3f3d65b0SAlex Crichton 
main()26*3f3d65b0SAlex Crichton fn main() {}
27