momba_explore/model/
actions.rs1use serde::{Deserialize, Serialize};
2
3use super::expressions::*;
4
5#[derive(Serialize, Deserialize, Eq, PartialEq, Clone, Debug)]
17#[serde(rename_all = "SCREAMING_SNAKE_CASE", tag = "kind")]
18pub enum ActionPattern {
19 Silent,
21 Labeled(LabeledPattern),
23}
24
25#[derive(Serialize, Deserialize, Eq, PartialEq, Clone, Debug)]
27pub struct LabeledPattern {
28 pub label: String,
30 pub arguments: Vec<PatternArgument>,
32}
33
34#[derive(Serialize, Deserialize, Eq, PartialEq, Clone, Debug)]
36#[serde(rename_all = "SCREAMING_SNAKE_CASE", tag = "direction")]
37pub enum PatternArgument {
38 Write { value: Expression },
39 Read { identifier: String },
40}
41
42#[derive(Serialize, Deserialize, Eq, PartialEq, Clone, Debug)]
43pub struct WriteArgument {
44 pub value: Expression,
45}
46
47#[derive(Serialize, Deserialize, Eq, PartialEq, Clone, Debug)]
48pub struct ReadArgument {
49 pub identifier: String,
50}