fmi_schema/
variable_counts.rs1use std::fmt::Display;
2
3#[derive(Debug, Default)]
5pub struct Counts {
6 pub num_constants: usize,
7 pub num_parameters: usize,
8 pub num_discrete: usize,
9 pub num_continuous: usize,
10 pub num_inputs: usize,
11 pub num_outputs: usize,
12 pub num_local: usize,
13 pub num_independent: usize,
14 pub num_calculated_parameters: usize,
15 pub num_real_vars: usize,
16 pub num_integer_vars: usize,
17 pub num_enum_vars: usize,
18 pub num_bool_vars: usize,
19 pub num_string_vars: usize,
20}
21
22impl Display for Counts {
23 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
24 f.debug_struct("Variable Counts")
25 .field("Constants", &self.num_constants)
26 .field("Parameters", &self.num_parameters)
27 .field("Discrete", &self.num_discrete)
28 .field("Continuous", &self.num_continuous)
29 .field("Inputs", &self.num_inputs)
30 .field("Outputs", &self.num_outputs)
31 .field("Local", &self.num_local)
32 .field("Independent", &self.num_independent)
33 .field("Calculated parameters", &self.num_calculated_parameters)
34 .field("Real", &self.num_real_vars)
35 .field("Integer", &self.num_integer_vars)
36 .field("Enumeration", &self.num_enum_vars)
37 .field("Boolean", &self.num_bool_vars)
38 .field("String", &self.num_string_vars)
39 .finish()
40 }
41}
42
43pub trait VariableCounts {
44 fn model_counts(&self) -> Counts;
45}