1use canwu_api::{Canwu, EntityRef, ObserveRequest, SemanticAction, SimDuration};
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let mut canwu = Canwu::demo(35)?;
5 let ids = Canwu::demo_ids();
6
7 canwu.act(
8 ids.commander,
9 SemanticAction::MoveEntity {
10 subject: EntityRef::Army(ids.army),
11 destination: ids.eastern_territory,
12 cargo: Vec::new(),
13 },
14 )?;
15 let arrival_events = canwu.advance(SimDuration::days(1))?;
16
17 let commander = canwu.observe(ids.commander, &ObserveRequest::default())?;
18 let observer = canwu.observe(ids.observer, &ObserveRequest::default())?;
19 println!("time: {}", canwu.time());
20 println!("arrival events: {}", arrival_events.len());
21 println!(
22 "commander knows location: {:?}",
23 commander.known_armies[0].known_location
24 );
25 println!(
26 "observer still believes location: {:?}",
27 observer.known_armies[0].known_location
28 );
29
30 canwu.advance(SimDuration::days(3))?;
31 let observer = canwu.observe(ids.observer, &ObserveRequest::default())?;
32 println!(
33 "observer after report: {:?}",
34 observer.known_armies[0].known_location
35 );
36 Ok(())
37}