ergo_runtime/common/
effect.rs1use serde::{Deserialize, Serialize};
2
3use super::Value;
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
7pub struct EffectWrite {
8 pub key: String,
9 pub value: Value,
10}
11
12#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
14pub struct IntentField {
15 pub name: String,
16 pub value: Value,
17}
18
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
21pub struct IntentRecord {
22 pub kind: String,
23 pub intent_id: String,
24 pub fields: Vec<IntentField>,
25}
26
27#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
29pub struct ActionEffect {
30 pub kind: String,
31 pub writes: Vec<EffectWrite>,
32 #[serde(default, skip_serializing_if = "Vec::is_empty")]
39 pub intents: Vec<IntentRecord>,
40}