expect_json/expects/
expect_op.rs1use crate::expects::SerializeExpect;
2use crate::expects::SerializeExpectOp;
3use serde::Serialize;
4use std::fmt::Debug;
5use std::ops::Deref;
6use std::ops::DerefMut;
7
8#[derive(Debug, Clone, Serialize)]
9#[serde(into = "SerializeExpect")]
10pub struct ExpectOp<V>
11where
12 V: Into<SerializeExpectOp> + Clone,
13{
14 inner: V,
15}
16
17impl<V> ExpectOp<V>
18where
19 V: Into<SerializeExpectOp> + Clone,
20{
21 pub fn new(inner: V) -> Self {
22 Self { inner }
23 }
24}
25
26impl<V> Deref for ExpectOp<V>
27where
28 V: Into<SerializeExpectOp> + Clone,
29{
30 type Target = V;
31
32 fn deref(&self) -> &Self::Target {
33 &self.inner
34 }
35}
36
37impl<V> DerefMut for ExpectOp<V>
38where
39 V: Into<SerializeExpectOp> + Clone,
40{
41 fn deref_mut(&mut self) -> &mut Self::Target {
42 &mut self.inner
43 }
44}
45
46impl<V> From<ExpectOp<V>> for SerializeExpect
47where
48 V: Into<SerializeExpectOp> + Clone,
49{
50 fn from(expect_op: ExpectOp<V>) -> Self {
51 let inner = Into::<SerializeExpectOp>::into(expect_op.inner);
52 SerializeExpect::from(inner)
53 }
54}