fuzzcheck/serializers/
serde_serializer.rs1use std::marker::PhantomData;
2
3#[doc(cfg(feature = "serde_json_serializer"))]
7pub struct SerdeSerializer<S> {
8 phantom: PhantomData<S>,
9}
10
11impl<S> Default for SerdeSerializer<S> {
12 #[coverage(off)]
13 fn default() -> Self {
14 Self { phantom: PhantomData }
15 }
16}
17
18impl<S> crate::traits::Serializer for SerdeSerializer<S>
19where
20 S: serde::Serialize + for<'e> serde::Deserialize<'e>,
21{
22 type Value = S;
23
24 #[coverage(off)]
25 fn extension(&self) -> &str {
26 "json"
27 }
28 #[coverage(off)]
29 fn from_data(&self, data: &[u8]) -> Option<S> {
30 serde_json::from_slice(data).ok()
31 }
32 #[coverage(off)]
33 fn to_data(&self, value: &Self::Value) -> Vec<u8> {
34 serde_json::to_vec(value).unwrap()
35 }
36}