midgard_rs/types/
action_metadata.rs

1use serde::{Deserialize, Serialize};
2
3use crate::ActionMetadataAddLiquidity;
4use crate::ActionMetadataRefund;
5use crate::ActionMetadataSwap;
6use crate::ActionMetadataWithdraw;
7
8/*
9
10*** Action Metadata Scheme ***
11
12{
13	"swap": Option<ActionMetadataSwap>,
14	"addLiquidity": Option<ActionMetadataAddLiquidity>,
15		"withdraw": Option<ActionMetadataWithdraw>,
16		"refund": Option<ActionMetadataRefund>,
17}
18*/
19
20#[derive(Debug, Serialize, Deserialize, Clone, Default)]
21pub struct ActionMetadata {
22	swap: Option<ActionMetadataSwap>,
23
24	#[serde(rename = "addLiquidity")]
25	add_liquidity: Option<ActionMetadataAddLiquidity>,
26
27	withdraw: Option<ActionMetadataWithdraw>,
28
29	refund: Option<ActionMetadataRefund>,
30}
31
32impl ActionMetadata {
33	#[must_use]
34	pub const fn get_swap(&self) -> &Option<ActionMetadataSwap> {
35		&self.swap
36	}
37
38	#[must_use]
39	pub const fn get_add_liquidity(&self) -> &Option<ActionMetadataAddLiquidity> {
40		&self.add_liquidity
41	}
42
43	#[must_use]
44	pub const fn get_withdraw(&self) -> &Option<ActionMetadataWithdraw> {
45		&self.withdraw
46	}
47
48	#[must_use]
49	pub const fn get_refund(&self) -> &Option<ActionMetadataRefund> {
50		&self.refund
51	}
52}