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);