diff --git a/src/field_attributes.rs b/src/field_attributes.rs index ff0df48..94cbf02 100644 --- a/src/field_attributes.rs +++ b/src/field_attributes.rs @@ -261,7 +261,7 @@ where /// ```rust /// use serde_aux::prelude::*; /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "deserialize_number_from_string")] /// number_from_string: u64, @@ -286,7 +286,7 @@ where /// /// use serde_aux::prelude::*; /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq)] +/// #[derive(serde::Deserialize, Debug, PartialEq)] /// struct IntId(u64); /// /// impl FromStr for IntId { @@ -297,7 +297,7 @@ where /// } /// } /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "deserialize_number_from_string")] /// int_id: IntId, @@ -314,7 +314,7 @@ where pub fn deserialize_number_from_string<'de, T, D>(deserializer: D) -> Result where D: Deserializer<'de>, - T: FromStr + serde::Deserialize<'de>, + T: FromStr + Deserialize<'de>, ::Err: Display, { #[derive(Deserialize)] @@ -337,7 +337,7 @@ where /// ```rust /// use serde_aux::prelude::*; /// -/// #[derive(Debug, serde::Deserialize)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "deserialize_option_number_from_string")] /// option_num: Option, @@ -394,7 +394,7 @@ pub fn deserialize_option_number_from_string<'de, T, D>( ) -> Result, D::Error> where D: Deserializer<'de>, - T: FromStr + serde::Deserialize<'de>, + T: FromStr + Deserialize<'de>, ::Err: Display, { #[derive(Deserialize)] @@ -425,7 +425,7 @@ macro_rules! wrap_option_number_from_string_fn { pub fn $func<'de, T, D>(deserializer: D) -> Result<$res, D::Error> where D: Deserializer<'de>, - T: FromStr + serde::Deserialize<'de>, + T: FromStr + Deserialize<'de>, ::Err: Display, { #[derive(Deserialize)] @@ -458,7 +458,7 @@ wrap_option_number_from_string_fn!( /// use serde_aux::prelude::*; /// use std::cell::Cell; /// - /// #[derive(Debug, serde::Deserialize)] + /// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "deserialize_cell_option_number_from_string")] /// v: Cell> @@ -479,7 +479,7 @@ wrap_option_number_from_string_fn!( /// use serde_aux::prelude::*; /// use std::cell::RefCell; /// - /// #[derive(Debug, serde::Deserialize)] + /// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(default, deserialize_with = "deserialize_ref_cell_option_number_from_string")] /// v: RefCell> @@ -500,7 +500,7 @@ wrap_option_number_from_string_fn!( /// use serde_aux::prelude::*; /// use std::sync::Mutex; /// - /// #[derive(Debug, serde::Deserialize)] + /// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(default, deserialize_with = "deserialize_mutex_option_number_from_string")] /// v: Mutex> @@ -521,7 +521,7 @@ wrap_option_number_from_string_fn!( /// use serde_aux::prelude::*; /// use std::sync::RwLock; /// - /// #[derive(Debug, serde::Deserialize)] + /// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(default, deserialize_with = "deserialize_rw_lock_option_number_from_string")] /// v: RwLock> @@ -543,7 +543,7 @@ wrap_option_number_from_string_fn!( /// ```rust /// use serde_aux::prelude::*; /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "deserialize_bool_from_anything")] /// boolean: bool, @@ -666,7 +666,7 @@ where /// ```rust /// use serde_aux::prelude::*; /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "deserialize_string_from_number")] /// number_as_string: String, @@ -711,7 +711,7 @@ where /// ```rust /// use serde_aux::prelude::*; /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "deserialize_default_from_null")] /// null_as_default: u64, @@ -744,13 +744,13 @@ where /// ```rust /// use serde_aux::prelude::*; /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "deserialize_default_from_empty_object")] /// empty_as_default: Option, /// } /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyInnerStruct { /// mandatory: u64, /// } @@ -802,7 +802,7 @@ where /// ```rust /// use serde_aux::prelude::*; /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "deserialize_vec_from_string_or_vec")] /// list: Vec, @@ -818,8 +818,8 @@ where /// ``` pub fn deserialize_vec_from_string_or_vec<'de, T, D>(deserializer: D) -> Result, D::Error> where - D: serde::Deserializer<'de>, - T: FromStr + serde::Deserialize<'de> + 'static, + D: Deserializer<'de>, + T: FromStr + Deserialize<'de> + 'static, ::Err: std::fmt::Display, { StringOrVecToVec::default().into_deserializer()(deserializer) @@ -994,7 +994,7 @@ where /// /// serde_aux::StringOrVecToVecParser!(parse_between_commas, |c| { c == ',' }, true); /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "parse_between_commas")] /// list: Vec, @@ -1011,7 +1011,7 @@ where /// /// serde_aux::StringOrVecToVecParser!(u8, parse_hex_with_spaces, ' ', |s| { u8::from_str_radix(s, 16) }, true); /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStructHex { /// #[serde(deserialize_with = "parse_hex_with_spaces")] /// list: Vec, @@ -1068,7 +1068,7 @@ macro_rules! StringOrVecToVecParser { /// StringOrVecToVec::default().into_deserializer()(deserializer) /// } /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "parser")] /// list: Vec, @@ -1116,7 +1116,7 @@ pub enum Pattern<'a> { /// StringOrVecToVec::with_separator(vec![Pattern::Char('+'), Pattern::Char('-')]).into_deserializer()(deserializer) /// } /// - /// #[derive(serde::Serialize, serde::Deserialize, Debug)] + /// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "parser")] /// list: Vec, @@ -1166,7 +1166,7 @@ impl<'a> From>> for Pattern<'a> { /// StringOrVecToVec::with_separator(vec!['-', '+'].into_iter().collect::()).into_deserializer()(deserializer) /// } /// -/// #[derive(serde::Serialize, serde::Deserialize, Debug)] +/// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "parser")] /// list: Vec, @@ -1218,7 +1218,7 @@ where impl<'a, 'de, T> Default for StringOrVecToVec<'a, T, T::Err> where - T: FromStr + serde::Deserialize<'de> + 'static, + T: FromStr + Deserialize<'de> + 'static, ::Err: std::fmt::Display, { fn default() -> Self { @@ -1228,7 +1228,7 @@ where impl<'a, 'de, T> StringOrVecToVec<'a, T, T::Err> where - T: FromStr + serde::Deserialize<'de> + 'static, + T: FromStr + Deserialize<'de> + 'static, ::Err: std::fmt::Display, { /// Create a `StringOrVecToVec` builder with a custom separator. `T::from_str` is used to parse @@ -1249,7 +1249,7 @@ where /// StringOrVecToVec::with_separator(|c| c == '-' || c == '+').into_deserializer()(deserializer) /// } /// - /// #[derive(serde::Serialize, serde::Deserialize, Debug)] + /// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "parser")] /// list: Vec, @@ -1284,7 +1284,7 @@ where /// parser.into_deserializer()(deserializer) /// } /// - /// #[derive(serde::Serialize, serde::Deserialize, Debug)] + /// #[derive(serde::Deserialize, Debug)] /// struct MyStructSkipEmpty { /// #[serde(deserialize_with = "parser_skip_empty")] /// list: Vec, @@ -1318,7 +1318,7 @@ impl<'a, T, E> StringOrVecToVec<'a, T, E> { /// StringOrVecToVec::new('-', |s| s.trim().parse(), false).into_deserializer()(deserializer) /// } /// - /// #[derive(serde::Serialize, serde::Deserialize, Debug)] + /// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "parser")] /// list: Vec, @@ -1362,7 +1362,7 @@ impl<'a, T, E> StringOrVecToVec<'a, T, E> { /// StringOrVecToVec::with_parser(|s| s.trim().parse()).into_deserializer()(deserializer) /// } /// - /// #[derive(serde::Serialize, serde::Deserialize, Debug)] + /// #[derive(serde::Deserialize, Debug)] /// struct MyStruct { /// #[serde(deserialize_with = "parser")] /// list: Vec, @@ -1383,11 +1383,11 @@ impl<'a, T, E> StringOrVecToVec<'a, T, E> { /// Creates the actual deserializer from this builder. pub fn into_deserializer<'de, D>( self, - ) -> impl FnMut(D) -> Result, >::Error> + ) -> impl FnMut(D) -> Result, >::Error> where 'a: 'de, - D: serde::Deserializer<'de>, - T: serde::Deserialize<'de>, + D: Deserializer<'de>, + T: Deserialize<'de>, E: std::fmt::Display, { #[derive(Deserialize)]