libsurfer/cxxrtl/
command.rs

1use serde::Serialize;
2
3use super::timestamp::CxxrtlTimestamp;
4
5#[derive(Serialize, Debug)]
6#[allow(non_camel_case_types, unused)]
7pub(crate) enum Diagnostic {
8    assert,
9    assume,
10    print,
11}
12
13#[derive(Serialize, Debug)]
14#[serde(tag = "command")]
15#[allow(non_camel_case_types)]
16pub(crate) enum CxxrtlCommand {
17    list_scopes {
18        scope: Option<String>,
19    },
20    list_items {
21        scope: Option<String>,
22    },
23    get_simulation_status,
24    query_interval {
25        interval: (CxxrtlTimestamp, CxxrtlTimestamp),
26        collapse: bool,
27        items: Option<String>,
28        item_values_encoding: &'static str,
29        diagnostics: bool,
30    },
31    reference_items {
32        reference: String,
33        items: Vec<Vec<String>>,
34    },
35    run_simulation {
36        until_time: Option<CxxrtlTimestamp>,
37        until_diagnostics: Vec<Diagnostic>,
38        sample_item_values: bool,
39    },
40    pause_simulation,
41}