basic_app/
basic_app.rs

1use dynamecs::{System, Universe};
2use dynamecs_app::{dynamecs_main, Scenario};
3use serde::{Deserialize, Serialize};
4use tracing::{debug, debug_span};
5
6#[derive(Serialize, Deserialize)]
7struct Config {}
8
9fn initialize_scenario(_config: &Config) -> eyre::Result<Scenario> {
10    let mut scenario = Scenario::default_with_name("basic");
11    scenario.post_systems.add_system(SystemThatLogs);
12    scenario.post_systems.add_system(OtherSystemThatLogs);
13    Ok(scenario)
14}
15
16#[derive(Debug)]
17struct SystemThatLogs;
18
19#[derive(Debug)]
20struct OtherSystemThatLogs;
21
22impl System for SystemThatLogs {
23    fn run(&mut self, _data: &mut Universe) -> eyre::Result<()> {
24        let _span = debug_span!("system_that_logs", something = "test").entered();
25        debug!(number = 42, "some debug info");
26        Ok(())
27    }
28}
29
30impl System for OtherSystemThatLogs {
31    fn run(&mut self, _data: &mut Universe) -> eyre::Result<()> {
32        let _span = debug_span!("other_system_that_logs", something = "other test").entered();
33        debug!(digits = 17, "some other debug info");
34        {
35            let _span = debug_span!("subspan1").entered();
36            {
37                {
38                    let _span = debug_span!("assembly").entered();
39                    {
40                        let _span = debug_span!("vector").entered();
41                    }
42                    {
43                        let _span = debug_span!("matrix").entered();
44                    }
45                }
46                {
47                    let _span = debug_span!("solve").entered();
48                }
49            }
50        }
51        {
52            let _span = debug_span!("subspan2").entered();
53            {
54                {
55                    let _span2 = debug_span!("assembly").entered();
56                }
57                {
58                    let _span3 = debug_span!("solve").entered();
59                }
60            }
61        }
62        Ok(())
63    }
64}
65
66dynamecs_main!(initialize_scenario);