expect_json/expects/ops/contains_not/
mod.rs1use crate::expects::SerializeExpectOp;
2use crate::internals::types::ValueType;
3use serde::Deserialize;
4use serde::Serialize;
5use serde_json::Value;
6
7mod array_contains_not;
8pub use self::array_contains_not::*;
9
10mod string_contains_not;
11pub use self::string_contains_not::*;
12
13#[derive(Clone, Debug, Serialize, Deserialize)]
14pub enum ContainsNot {
15 Array(ArrayContainsNot),
16 String(StringContainsNot),
17}
18
19impl ContainsNot {
20 pub(crate) fn new<V>(values: V) -> Self
21 where
22 V: Into<Value>,
23 {
24 let value = Into::<Value>::into(values);
25 match value {
26 Value::Array(values_array) => Self::Array(ArrayContainsNot::new(values_array)),
27 Value::String(values_string) => Self::String(StringContainsNot::new(values_string)),
28 _ => {
29 let value_type = ValueType::from(&value);
30 panic!(
31 ".contains expected to take array, string, or object. Received: {value_type}"
32 );
33 }
34 }
35 }
36}
37
38impl From<ContainsNot> for SerializeExpectOp {
39 fn from(contains: ContainsNot) -> Self {
40 match contains {
41 ContainsNot::Array(contains) => Self::ArrayContainsNot(contains),
42 ContainsNot::String(contains) => Self::StringContainsNot(contains),
43 }
44 }
45}