machine_check_gui/
shared.rs

1use machine_check_common::check::Property;
2use serde::{Deserialize, Serialize};
3use snapshot::{RootPropertyIndex, Snapshot};
4
5pub mod snapshot;
6
7/// Step settings.
8#[derive(Clone, Debug, Serialize, Deserialize)]
9pub struct StepSettings {
10    pub max_refinements: Option<u64>,
11    pub selected_property: Property,
12}
13
14/// Request for the backend to do something.
15#[derive(Clone, Debug, Serialize, Deserialize)]
16pub enum Request {
17    InitialContent,
18    GetContent,
19    Query,
20    Cancel,
21    Reset,
22    Step(StepSettings),
23    AddProperty(Property),
24    RemoveProperty(RootPropertyIndex),
25}
26
27/// Backend status.
28#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
29pub enum BackendStatus {
30    Cancelling,
31    Waiting,
32    Running,
33}
34
35impl BackendStatus {
36    pub fn is_waiting(&self) -> bool {
37        matches!(self, BackendStatus::Waiting)
38    }
39}
40
41#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
42pub struct BackendSpaceInfo {
43    pub num_refinements: usize,
44    pub num_states: usize,
45    pub num_transitions: usize,
46}
47
48/// Information about the backend.
49#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
50pub struct BackendInfo {
51    pub status: BackendStatus,
52    pub space_info: BackendSpaceInfo,
53}
54
55/// Response from the backend to a request from the frontend.
56#[derive(Clone, Debug, Serialize, Deserialize)]
57pub struct Response {
58    pub info: BackendInfo,
59    pub snapshot: Option<Snapshot>,
60}