expect_json/expects/
serialize_expect_op.rs

1use crate::expects::ops::ArrayContains;
2use crate::expects::ops::ArrayContainsNot;
3use crate::expects::ops::StringContains;
4use crate::expects::ops::StringContainsNot;
5use crate::internals::Context;
6use crate::internals::JsonExpectOp;
7use crate::internals::JsonValueEqResult;
8use serde::Deserialize;
9use serde::Serialize;
10use serde_json::Value;
11use strum::IntoStaticStr;
12
13#[derive(Clone, Debug, Serialize, Deserialize, IntoStaticStr, PartialEq)]
14#[serde(tag = "type")]
15pub enum SerializeExpectOp {
16    ArrayContains(ArrayContains),
17    ArrayContainsNot(ArrayContainsNot),
18    StringContains(StringContains),
19    StringContainsNot(StringContainsNot),
20}
21
22impl SerializeExpectOp {
23    pub fn on_any<'a>(
24        self,
25        context: &mut Context<'a>,
26        received: &'a Value,
27    ) -> JsonValueEqResult<()> {
28        match self {
29            Self::ArrayContains(inner) => inner.on_any(context, received),
30            Self::ArrayContainsNot(inner) => inner.on_any(context, received),
31            Self::StringContains(inner) => inner.on_any(context, received),
32            Self::StringContainsNot(inner) => inner.on_any(context, received),
33        }
34    }
35}