serde_core/private/
doc.rs

1// Used only by Serde doc tests. Not public API.
2
3use crate::lib::*;
4
5use crate::ser;
6
7#[doc(hidden)]
8#[derive(Debug)]
9pub struct Error;
10
11#[cfg_attr(not(no_diagnostic_namespace), diagnostic::do_not_recommend)]
12impl ser::Error for Error {
13    fn custom<T>(_: T) -> Self
14    where
15        T: Display,
16    {
17        unimplemented!()
18    }
19}
20
21#[cfg(feature = "std")]
22#[cfg_attr(not(no_diagnostic_namespace), diagnostic::do_not_recommend)]
23impl error::Error for Error {
24    fn description(&self) -> &str {
25        unimplemented!()
26    }
27}
28
29#[cfg_attr(not(no_diagnostic_namespace), diagnostic::do_not_recommend)]
30impl Display for Error {
31    fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result {
32        unimplemented!()
33    }
34}
35
36#[doc(hidden)]
37#[macro_export]
38macro_rules! __private_serialize {
39    () => {
40        trait Serialize {
41            fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
42            where
43                S: $crate::Serializer;
44        }
45    };
46}
47
48#[doc(hidden)]
49#[macro_export(local_inner_macros)]
50macro_rules! __serialize_unimplemented {
51    ($($func:ident)*) => {
52        $(
53            __serialize_unimplemented_helper!($func);
54        )*
55    };
56}
57
58#[doc(hidden)]
59#[macro_export]
60macro_rules! __serialize_unimplemented_method {
61    ($func:ident $(<$t:ident>)* ($($arg:ty),*) -> $ret:ident) => {
62        fn $func $(<$t>)* (self $(, _: $arg)*) -> $crate::__private::Result<Self::$ret, Self::Error>
63        where
64            $($t: ?Sized + $crate::Serialize,)*
65        {
66            unimplemented!()
67        }
68    };
69}
70
71#[doc(hidden)]
72#[macro_export(local_inner_macros)]
73macro_rules! __serialize_unimplemented_helper {
74    (bool) => {
75        __serialize_unimplemented_method!(serialize_bool(bool) -> Ok);
76    };
77    (i8) => {
78        __serialize_unimplemented_method!(serialize_i8(i8) -> Ok);
79    };
80    (i16) => {
81        __serialize_unimplemented_method!(serialize_i16(i16) -> Ok);
82    };
83    (i32) => {
84        __serialize_unimplemented_method!(serialize_i32(i32) -> Ok);
85    };
86    (i64) => {
87        __serialize_unimplemented_method!(serialize_i64(i64) -> Ok);
88    };
89    (u8) => {
90        __serialize_unimplemented_method!(serialize_u8(u8) -> Ok);
91    };
92    (u16) => {
93        __serialize_unimplemented_method!(serialize_u16(u16) -> Ok);
94    };
95    (u32) => {
96        __serialize_unimplemented_method!(serialize_u32(u32) -> Ok);
97    };
98    (u64) => {
99        __serialize_unimplemented_method!(serialize_u64(u64) -> Ok);
100    };
101    (f32) => {
102        __serialize_unimplemented_method!(serialize_f32(f32) -> Ok);
103    };
104    (f64) => {
105        __serialize_unimplemented_method!(serialize_f64(f64) -> Ok);
106    };
107    (char) => {
108        __serialize_unimplemented_method!(serialize_char(char) -> Ok);
109    };
110    (str) => {
111        __serialize_unimplemented_method!(serialize_str(&str) -> Ok);
112    };
113    (bytes) => {
114        __serialize_unimplemented_method!(serialize_bytes(&[u8]) -> Ok);
115    };
116    (none) => {
117        __serialize_unimplemented_method!(serialize_none() -> Ok);
118    };
119    (some) => {
120        __serialize_unimplemented_method!(serialize_some<T>(&T) -> Ok);
121    };
122    (unit) => {
123        __serialize_unimplemented_method!(serialize_unit() -> Ok);
124    };
125    (unit_struct) => {
126        __serialize_unimplemented_method!(serialize_unit_struct(&str) -> Ok);
127    };
128    (unit_variant) => {
129        __serialize_unimplemented_method!(serialize_unit_variant(&str, u32, &str) -> Ok);
130    };
131    (newtype_struct) => {
132        __serialize_unimplemented_method!(serialize_newtype_struct<T>(&str, &T) -> Ok);
133    };
134    (newtype_variant) => {
135        __serialize_unimplemented_method!(serialize_newtype_variant<T>(&str, u32, &str, &T) -> Ok);
136    };
137    (seq) => {
138        type SerializeSeq = $crate::ser::Impossible<Self::Ok, Self::Error>;
139        __serialize_unimplemented_method!(serialize_seq(Option<usize>) -> SerializeSeq);
140    };
141    (tuple) => {
142        type SerializeTuple = $crate::ser::Impossible<Self::Ok, Self::Error>;
143        __serialize_unimplemented_method!(serialize_tuple(usize) -> SerializeTuple);
144    };
145    (tuple_struct) => {
146        type SerializeTupleStruct = $crate::ser::Impossible<Self::Ok, Self::Error>;
147        __serialize_unimplemented_method!(serialize_tuple_struct(&str, usize) -> SerializeTupleStruct);
148    };
149    (tuple_variant) => {
150        type SerializeTupleVariant = $crate::ser::Impossible<Self::Ok, Self::Error>;
151        __serialize_unimplemented_method!(serialize_tuple_variant(&str, u32, &str, usize) -> SerializeTupleVariant);
152    };
153    (map) => {
154        type SerializeMap = $crate::ser::Impossible<Self::Ok, Self::Error>;
155        __serialize_unimplemented_method!(serialize_map(Option<usize>) -> SerializeMap);
156    };
157    (struct) => {
158        type SerializeStruct = $crate::ser::Impossible<Self::Ok, Self::Error>;
159        __serialize_unimplemented_method!(serialize_struct(&str, usize) -> SerializeStruct);
160    };
161    (struct_variant) => {
162        type SerializeStructVariant = $crate::ser::Impossible<Self::Ok, Self::Error>;
163        __serialize_unimplemented_method!(serialize_struct_variant(&str, u32, &str, usize) -> SerializeStructVariant);
164    };
165}