serde_osc/ser/
serializer_defaults.rs1#[doc(hidden)]
4#[macro_export]
5macro_rules! default_ser_one {
6 ($result:ident, $func:ident($($arg:ty),*)) => {
7 fn $func(self, $(_: $arg,)*) -> ResultE<Self::$result> {
8 Err(Error::UnsupportedType)
9 }
10 };
11}
12
13#[doc(hidden)]
14#[macro_export]
15macro_rules! default_ser_one_sized {
16 ($func:ident($($arg:ty),*)) => {
17 fn $func<T: ?Sized + Serialize>(self, $(_: $arg,)*) -> ResultE<Self::Ok> {
18 Err(Error::UnsupportedType)
19 }
20 };
21}
22
23#[doc(hidden)]
24#[macro_export]
25macro_rules! default_ser_helper {
26 (bool) => { default_ser_one!{Ok, serialize_bool(bool)} };
27 (i8) => { default_ser_one!{Ok, serialize_i8(i8)} };
28 (i16) => { default_ser_one!{Ok, serialize_i16(i16)} };
29 (i32) => { default_ser_one!{Ok, serialize_i32(i32)} };
30 (i64) => { default_ser_one!{Ok, serialize_i64(i64)} };
31 (u8) => { default_ser_one!{Ok, serialize_u8(u8)} };
32 (u16) => { default_ser_one!{Ok, serialize_u16(u16)} };
33 (u32) => { default_ser_one!{Ok, serialize_u32(u32)} };
34 (u64) => { default_ser_one!{Ok, serialize_u64(u64)} };
35 (f32) => { default_ser_one!{Ok, serialize_f32(f32)} };
36 (f64) => { default_ser_one!{Ok, serialize_f64(f64)} };
37 (char) => { default_ser_one!{Ok, serialize_char(char)} };
38 (str) => { default_ser_one!{Ok, serialize_str(&str)} };
39 (bytes) => { default_ser_one!{Ok, serialize_bytes(&[u8])} };
40 (none) => { default_ser_one!{Ok, serialize_none()} };
41 (some) => { default_ser_one_sized!{serialize_some(&T)} };
42 (unit) => { default_ser_one!{Ok, serialize_unit()} };
43 (unit_struct) => { default_ser_one!{Ok, serialize_unit_struct(&'static str)} };
44 (unit_variant) => { default_ser_one!{Ok, serialize_unit_variant(&'static str, u32, &'static str)} };
45 (newtype_struct) => { default_ser_one_sized!{serialize_newtype_struct(&'static str, &T)} };
46 (newtype_variant) => { default_ser_one_sized!{serialize_newtype_variant(&'static str, u32, &'static str, &T)} };
47 (seq) => { default_ser_one!{SerializeSeq, serialize_seq(Option<usize>)} };
48 (tuple) => { default_ser_one!{SerializeTuple, serialize_tuple(usize)} };
49 (tuple_struct) => { default_ser_one!{SerializeTupleStruct, serialize_tuple_struct(&'static str, usize)} };
50 (tuple_variant) => { default_ser_one!{SerializeTupleVariant, serialize_tuple_variant(&'static str, u32, &'static str, usize)} };
51 (map) => { default_ser_one!{SerializeMap, serialize_map(Option<usize>)} };
52 (struct) => { default_ser_one!{SerializeStruct, serialize_struct(&'static str, usize)} };
53 (struct_variant) => { default_ser_one!{SerializeStructVariant, serialize_struct_variant(&'static str, u32, &'static str, usize)} };
54}
55
56#[doc(hidden)]
57#[macro_export]
58macro_rules! default_ser {
59 ($($func:ident)*) => {
60 $(default_ser_helper!{$func})*
61 };
62}
63