multiversx_sc_scenario/scenario/model/
storage_check.rs1use crate::scenario_format::{
2 interpret_trait::{InterpretableFrom, InterpreterContext, IntoRaw},
3 serde_raw::CheckStorageRaw,
4};
5
6use super::CheckStorageDetails;
7
8#[derive(Debug, Clone, Default)]
9pub enum CheckStorage {
10 #[default]
11 Star,
12 Equal(CheckStorageDetails),
13}
14
15impl CheckStorage {
16 pub fn is_star(&self) -> bool {
17 matches!(self, CheckStorage::Star)
18 }
19}
20
21impl InterpretableFrom<CheckStorageRaw> for CheckStorage {
22 fn interpret_from(from: CheckStorageRaw, context: &InterpreterContext) -> Self {
23 match from {
24 CheckStorageRaw::Star => CheckStorage::Star,
25 CheckStorageRaw::Equal(m) => {
26 CheckStorage::Equal(CheckStorageDetails::interpret_from(m, context))
27 }
28 }
29 }
30}
31
32impl IntoRaw<CheckStorageRaw> for CheckStorage {
33 fn into_raw(self) -> CheckStorageRaw {
34 match self {
35 CheckStorage::Star => CheckStorageRaw::Star,
36 CheckStorage::Equal(details) => CheckStorageRaw::Equal(details.into_raw()),
37 }
38 }
39}