Skip to main content

example/
example.rs

1use event_simulation::Simulation;
2use multilinear::{Change, MultilinearInfo, MultilinearSimulation};
3
4fn main() {
5    let mut story = MultilinearInfo::new();
6
7    // Create aspects
8    let place = story.add_aspect();
9    let clothes = story.add_aspect();
10
11    // Define event: Move from bedroom to living room
12    let event_move = story
13        .add_event()
14        .with_change(&[Change::transition(place, 0, 1)])
15        .unwrap()
16        .event();
17
18    // Define event: Change clothes in bedroom
19    let event_clothes = story
20        .add_event()
21        .with_change(&[
22            Change::condition(place, 0),
23            Change::transition(clothes, 1, 0),
24        ])
25        .unwrap()
26        .event();
27
28    let mut simulation = MultilinearSimulation::new(story);
29    simulation.try_call(event_clothes);
30    simulation.try_call(event_move);
31    simulation.try_revert(event_move);
32}