#![allow(clippy::print_stdout)]
use rlmesh::prelude::*;
use rlmesh::spaces::SpaceValue;
struct ConstantModel;
#[rlmesh::async_trait]
impl ModelHandler for ConstantModel {
async fn predict(&mut self, obs: ModelObservation) -> rlmesh::Result<Vec<SpaceValue>> {
Ok((0..obs.num_envs).map(|_| SpaceValue::Discrete(0)).collect())
}
}
#[tokio::main]
async fn main() -> rlmesh::Result<()> {
let address = std::env::args()
.nth(1)
.unwrap_or_else(|| "127.0.0.1:5555".to_string());
let model = ConstantModel;
println!("driving model against {address} for 3 episodes");
ModelWorker::new(model)
.run_local_async(RunLocalOptions::parse(&address)?.for_episodes(3))
.await?;
println!("done");
Ok(())
}