diff --git a/Cargo.toml b/Cargo.toml index 739d5a7..1fe7d8f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -86,12 +86,15 @@ __rusoto_dynamodbstreams_0_46 = { package = "rusoto_dynamodbstreams", version = __rusoto_dynamodbstreams_0_47 = { package = "rusoto_dynamodbstreams", version = "0.47", default-features = false, optional = true } __rusoto_dynamodbstreams_0_48 = { package = "rusoto_dynamodbstreams", version = "0.48", default-features = false, optional = true } base64 = "0.21.0" -serde = "1" +serde_core = "1.0.220" __rusoto_core_0_46_crate = { package = "rusoto_core", version = "0.46", default-features = false, features = ["rustls"], optional = true } __rusoto_core_0_47_crate = { package = "rusoto_core", version = "0.47", default-features = false, features = ["rustls"], optional = true } __rusoto_core_0_48_crate = { package = "rusoto_core", version = "0.48", default-features = false, features = ["rustls"], optional = true } +[target.'cfg(any())'.dependencies] +serde = { version = "1.0.220", default-features = false } + [features] "aws_lambda_events+0_6" = ["__aws_lambda_events_0_6"] "aws_lambda_events+0_7" = ["__aws_lambda_events_0_7"] @@ -170,6 +173,7 @@ __rusoto_core_0_48_crate = { package = "rusoto_core", version = "0.48", default- [dev-dependencies] chrono = { version = "0.4", features = ["serde"] } serde_bytes = "0.11" +serde = "1" serde_derive = "1" serde_json = "1" diff --git a/src/attribute_value.rs b/src/attribute_value.rs index 98d07d1..c143923 100644 --- a/src/attribute_value.rs +++ b/src/attribute_value.rs @@ -82,12 +82,12 @@ pub enum AttributeValue { Bs(Vec>), } -impl serde::Serialize for AttributeValue { +impl serde_core::Serialize for AttributeValue { fn serialize(&self, serializer: S) -> Result where - S: serde::Serializer, + S: serde_core::Serializer, { - use serde::ser::SerializeMap; + use serde_core::ser::SerializeMap; match self { AttributeValue::N(inner) => { @@ -148,13 +148,13 @@ impl serde::Serialize for AttributeValue { } } -impl<'de> serde::Deserialize<'de> for AttributeValue { +impl<'de> serde_core::Deserialize<'de> for AttributeValue { fn deserialize(deserializer: D) -> Result where - D: serde::Deserializer<'de>, + D: serde_core::Deserializer<'de>, { struct Visitor; - impl<'de> serde::de::Visitor<'de> for Visitor { + impl<'de> serde_core::de::Visitor<'de> for Visitor { type Value = AttributeValue; fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { @@ -163,9 +163,9 @@ impl<'de> serde::Deserialize<'de> for AttributeValue { fn visit_map(self, mut map: A) -> Result where - A: serde::de::MapAccess<'de>, + A: serde_core::de::MapAccess<'de>, { - use serde::de::Error; + use serde_core::de::Error; let first_key: String = match map.next_key()? { Some(key) => key, @@ -227,19 +227,19 @@ impl<'de> serde::Deserialize<'de> for AttributeValue { } } -impl<'de> serde::Deserialize<'de> for Item { +impl<'de> serde_core::Deserialize<'de> for Item { fn deserialize(deserializer: D) -> Result where - D: serde::Deserializer<'de>, + D: serde_core::Deserializer<'de>, { HashMap::deserialize(deserializer).map(Item) } } -impl serde::Serialize for Item { +impl serde_core::Serialize for Item { fn serialize(&self, serializer: S) -> Result where - S: serde::Serializer, + S: serde_core::Serializer, { self.0.serialize(serializer) } diff --git a/src/binary_set.rs b/src/binary_set.rs index ea6a6ef..efbb80b 100644 --- a/src/binary_set.rs +++ b/src/binary_set.rs @@ -68,8 +68,8 @@ pub(crate) fn should_serialize_as_binary_set(name: &str) -> bool { /// * the sequence contains any value that is not a binary pub fn serialize(value: &T, serializer: S) -> Result where - T: serde::Serialize, - S: serde::Serializer, + T: serde_core::Serialize, + S: serde_core::Serializer, { serializer.serialize_newtype_struct(NEWTYPE_SYMBOL, &value) } @@ -77,8 +77,8 @@ where /// Deserializes the given value as a set pub fn deserialize<'de, T, D>(deserializer: D) -> Result where - T: serde::Deserialize<'de>, - D: serde::Deserializer<'de>, + T: serde_core::Deserialize<'de>, + D: serde_core::Deserializer<'de>, { T::deserialize(deserializer) } @@ -107,13 +107,13 @@ where /// ``` pub struct BinarySet(pub T); -impl serde::Serialize for BinarySet +impl serde_core::Serialize for BinarySet where - T: serde::Serialize, + T: serde_core::Serialize, { fn serialize(&self, serializer: S) -> Result where - S: serde::Serializer, + S: serde_core::Serializer, { serializer.serialize_newtype_struct(NEWTYPE_SYMBOL, &self.0) } diff --git a/src/de/deserializer.rs b/src/de/deserializer.rs index c0484cc..ef0175d 100644 --- a/src/de/deserializer.rs +++ b/src/de/deserializer.rs @@ -8,7 +8,7 @@ use super::{ }, AttributeValue, Error, ErrorImpl, Result, }; -use serde::de::{self, IntoDeserializer, Visitor}; +use serde_core::de::{self, IntoDeserializer, Visitor}; /// A structure that deserializes [`AttributeValue`]s into Rust values. #[derive(Debug)] diff --git a/src/de/deserializer_bytes.rs b/src/de/deserializer_bytes.rs index ef4f862..0451afe 100644 --- a/src/de/deserializer_bytes.rs +++ b/src/de/deserializer_bytes.rs @@ -1,6 +1,6 @@ use super::{Error, Result}; -use serde::de::{self, Visitor}; -use serde::forward_to_deserialize_any; +use serde_core::de::{self, Visitor}; +use serde_core::forward_to_deserialize_any; pub struct DeserializerBytes { input: T, diff --git a/src/de/deserializer_enum.rs b/src/de/deserializer_enum.rs index e882012..1f7b8d5 100644 --- a/src/de/deserializer_enum.rs +++ b/src/de/deserializer_enum.rs @@ -1,5 +1,5 @@ use super::{AttributeValue, Deserializer, Error, ErrorImpl, Result}; -use serde::de::{ +use serde_core::de::{ DeserializeSeed, Deserializer as _, EnumAccess, IntoDeserializer, VariantAccess, Visitor, }; use std::collections::HashMap; diff --git a/src/de/deserializer_map.rs b/src/de/deserializer_map.rs index afed027..6331d41 100644 --- a/src/de/deserializer_map.rs +++ b/src/de/deserializer_map.rs @@ -1,7 +1,7 @@ use super::{AttributeValue, Deserializer, Error, ErrorImpl, Result}; -use serde::{ +use serde_core::{ de::{self, DeserializeSeed, MapAccess, Visitor}, - forward_to_deserialize_any, serde_if_integer128, + forward_to_deserialize_any, }; use std::collections::HashMap; @@ -140,16 +140,12 @@ impl<'de> de::Deserializer<'de> for DeserializerMapKey { deserialize_integer_key!(deserialize_i16 => visit_i16); deserialize_integer_key!(deserialize_i32 => visit_i32); deserialize_integer_key!(deserialize_i64 => visit_i64); - serde_if_integer128! { - deserialize_integer_key!(deserialize_i128 => visit_i128); - } + deserialize_integer_key!(deserialize_i128 => visit_i128); deserialize_integer_key!(deserialize_u8 => visit_u8); deserialize_integer_key!(deserialize_u16 => visit_u16); deserialize_integer_key!(deserialize_u32 => visit_u32); deserialize_integer_key!(deserialize_u64 => visit_u64); - serde_if_integer128! { - deserialize_integer_key!(deserialize_u128 => visit_u128); - } + deserialize_integer_key!(deserialize_u128 => visit_u128); fn deserialize_bool(self, visitor: V) -> std::result::Result where diff --git a/src/de/deserializer_number.rs b/src/de/deserializer_number.rs index f608af6..bf7f02f 100644 --- a/src/de/deserializer_number.rs +++ b/src/de/deserializer_number.rs @@ -1,6 +1,6 @@ use super::{Error, ErrorImpl, Result}; -use serde::de::{self, Visitor}; -use serde::forward_to_deserialize_any; +use serde_core::de::{self, Visitor}; +use serde_core::forward_to_deserialize_any; pub struct DeserializerNumber { input: String, diff --git a/src/de/deserializer_seq.rs b/src/de/deserializer_seq.rs index e1a9e16..224a776 100644 --- a/src/de/deserializer_seq.rs +++ b/src/de/deserializer_seq.rs @@ -1,7 +1,7 @@ use super::deserializer_bytes::DeserializerBytes; use super::deserializer_number::DeserializerNumber; use super::{AttributeValue, Deserializer, Error, Result}; -use serde::de::{DeserializeSeed, IntoDeserializer, SeqAccess}; +use serde_core::de::{DeserializeSeed, IntoDeserializer, SeqAccess}; pub struct DeserializerSeq { iter: std::vec::IntoIter, diff --git a/src/de/mod.rs b/src/de/mod.rs index dae5930..8ffc29d 100644 --- a/src/de/mod.rs +++ b/src/de/mod.rs @@ -1,6 +1,6 @@ use super::AttributeValue; use crate::{error::ErrorImpl, Error, Item, Items, Result}; -use serde::Deserialize; +use serde_core::Deserialize; use std::collections::HashMap; mod deserializer; diff --git a/src/error.rs b/src/error.rs index 3795f78..88b821c 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,4 +1,4 @@ -use serde::{de, ser}; +use serde_core::{de, ser}; use std::fmt::{self, Display}; /// This type represents all possible errors that can occur when serializing or deserializing diff --git a/src/lib.rs b/src/lib.rs index 4b4d25c..147fa50 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -216,7 +216,8 @@ //! change streams. //! //! However, in very rare cases, you may need to convert the DynamoDB JSON yourself. In those cases, -//! both [Item] and [AttributeValue] implement [serde::Serialize] and [serde::Deserialize]. +//! both [Item] and [AttributeValue] implement [serde_core::Serialize] and +//! [serde_core::Deserialize]. //! //! ``` //! # use serde_dynamo::{AttributeValue, Item}; diff --git a/src/macros/aws_lambda_events.rs b/src/macros/aws_lambda_events.rs index 75b3a7e..ca255aa 100644 --- a/src/macros/aws_lambda_events.rs +++ b/src/macros/aws_lambda_events.rs @@ -58,7 +58,7 @@ macro_rules! aws_lambda_events_macro { /// [`serde_dynamo`-specific AttributeValue](crate::AttributeValue). pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -68,7 +68,7 @@ macro_rules! aws_lambda_events_macro { /// [`serde_dynamo`-specific Item](crate::Item). pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -78,7 +78,7 @@ macro_rules! aws_lambda_events_macro { /// [`serde_dynamo`-specific AttributeValue](crate::AttributeValue). pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -90,7 +90,7 @@ macro_rules! aws_lambda_events_macro { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -102,7 +102,7 @@ macro_rules! aws_lambda_events_macro { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } diff --git a/src/macros/aws_sdk.rs b/src/macros/aws_sdk.rs index 3b3a4d1..8a31709 100644 --- a/src/macros/aws_sdk.rs +++ b/src/macros/aws_sdk.rs @@ -221,7 +221,7 @@ macro_rules! aws_sdk_macro { /// `AV`. pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -233,7 +233,7 @@ macro_rules! aws_sdk_macro { /// `AV`. pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -245,7 +245,7 @@ macro_rules! aws_sdk_macro { /// `AV`. pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -259,7 +259,7 @@ macro_rules! aws_sdk_macro { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -273,7 +273,7 @@ macro_rules! aws_sdk_macro { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } @@ -289,7 +289,7 @@ macro_rules! aws_sdk_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -297,7 +297,7 @@ macro_rules! aws_sdk_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -305,7 +305,7 @@ macro_rules! aws_sdk_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -315,7 +315,7 @@ macro_rules! aws_sdk_macro { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -325,7 +325,7 @@ macro_rules! aws_sdk_macro { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } diff --git a/src/macros/aws_sdk_before_0_35.rs b/src/macros/aws_sdk_before_0_35.rs index cb0b21a..2b7e0f5 100644 --- a/src/macros/aws_sdk_before_0_35.rs +++ b/src/macros/aws_sdk_before_0_35.rs @@ -222,7 +222,7 @@ macro_rules! aws_sdk_macro_before_0_35 { /// `AV`. pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -234,7 +234,7 @@ macro_rules! aws_sdk_macro_before_0_35 { /// `AV`. pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -246,7 +246,7 @@ macro_rules! aws_sdk_macro_before_0_35 { /// `AV`. pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -260,7 +260,7 @@ macro_rules! aws_sdk_macro_before_0_35 { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -274,7 +274,7 @@ macro_rules! aws_sdk_macro_before_0_35 { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } @@ -290,7 +290,7 @@ macro_rules! aws_sdk_macro_before_0_35 { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -298,7 +298,7 @@ macro_rules! aws_sdk_macro_before_0_35 { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -306,7 +306,7 @@ macro_rules! aws_sdk_macro_before_0_35 { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -316,7 +316,7 @@ macro_rules! aws_sdk_macro_before_0_35 { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -326,7 +326,7 @@ macro_rules! aws_sdk_macro_before_0_35 { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } diff --git a/src/macros/aws_sdk_streams.rs b/src/macros/aws_sdk_streams.rs index bb3476e..7cef39a 100644 --- a/src/macros/aws_sdk_streams.rs +++ b/src/macros/aws_sdk_streams.rs @@ -70,7 +70,7 @@ macro_rules! aws_sdk_streams_macro { /// `AV`. pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -82,7 +82,7 @@ macro_rules! aws_sdk_streams_macro { /// `AV`. pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -94,7 +94,7 @@ macro_rules! aws_sdk_streams_macro { /// `AV`. pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -108,7 +108,7 @@ macro_rules! aws_sdk_streams_macro { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -122,7 +122,7 @@ macro_rules! aws_sdk_streams_macro { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } @@ -138,7 +138,7 @@ macro_rules! aws_sdk_streams_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -146,7 +146,7 @@ macro_rules! aws_sdk_streams_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -154,7 +154,7 @@ macro_rules! aws_sdk_streams_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -164,7 +164,7 @@ macro_rules! aws_sdk_streams_macro { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -174,7 +174,7 @@ macro_rules! aws_sdk_streams_macro { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } diff --git a/src/macros/rusoto.rs b/src/macros/rusoto.rs index c6d373d..f24822a 100644 --- a/src/macros/rusoto.rs +++ b/src/macros/rusoto.rs @@ -234,7 +234,7 @@ macro_rules! rusoto_macro { /// `AV`. pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -246,7 +246,7 @@ macro_rules! rusoto_macro { /// `AV`. pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -258,7 +258,7 @@ macro_rules! rusoto_macro { /// `AV`. pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -272,7 +272,7 @@ macro_rules! rusoto_macro { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -286,7 +286,7 @@ macro_rules! rusoto_macro { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } @@ -302,7 +302,7 @@ macro_rules! rusoto_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -310,7 +310,7 @@ macro_rules! rusoto_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -318,7 +318,7 @@ macro_rules! rusoto_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -328,7 +328,7 @@ macro_rules! rusoto_macro { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -338,7 +338,7 @@ macro_rules! rusoto_macro { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } diff --git a/src/macros/rusoto_streams.rs b/src/macros/rusoto_streams.rs index 6a8a855..f3d74a1 100644 --- a/src/macros/rusoto_streams.rs +++ b/src/macros/rusoto_streams.rs @@ -64,7 +64,7 @@ macro_rules! rusoto_streams_macro { /// `AV`. pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -76,7 +76,7 @@ macro_rules! rusoto_streams_macro { /// `AV`. pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -88,7 +88,7 @@ macro_rules! rusoto_streams_macro { /// `AV`. pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -102,7 +102,7 @@ macro_rules! rusoto_streams_macro { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -116,7 +116,7 @@ macro_rules! rusoto_streams_macro { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } @@ -132,7 +132,7 @@ macro_rules! rusoto_streams_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_attribute_value(value: T) -> Result where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_attribute_value(value) } @@ -140,7 +140,7 @@ macro_rules! rusoto_streams_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn to_item(value: T) -> Result> where - T: serde::ser::Serialize, + T: serde_core::ser::Serialize, { crate::ser::to_item(value) } @@ -148,7 +148,7 @@ macro_rules! rusoto_streams_macro { #[deprecated(since = "4.0.0", note = "The double-underscore on the mod name is no longer necessary")] pub fn from_attribute_value<'a, T>(attribute_value: AttributeValue) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_attribute_value(attribute_value) } @@ -158,7 +158,7 @@ macro_rules! rusoto_streams_macro { item: std::collections::HashMap, ) -> Result where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_item(item) } @@ -168,7 +168,7 @@ macro_rules! rusoto_streams_macro { items: Vec>, ) -> Result> where - T: serde::de::Deserialize<'a>, + T: serde_core::de::Deserialize<'a>, { crate::de::from_items(items) } diff --git a/src/number_set.rs b/src/number_set.rs index 50e69cf..115e629 100644 --- a/src/number_set.rs +++ b/src/number_set.rs @@ -64,8 +64,8 @@ pub(crate) fn should_serialize_as_numbers_set(name: &str) -> bool { /// * the sequence contains any value that is not a number pub fn serialize(value: &T, serializer: S) -> Result where - T: serde::Serialize, - S: serde::Serializer, + T: serde_core::Serialize, + S: serde_core::Serializer, { serializer.serialize_newtype_struct(NEWTYPE_SYMBOL, &value) } @@ -73,8 +73,8 @@ where /// Deserializes the given value as a set pub fn deserialize<'de, T, D>(deserializer: D) -> Result where - T: serde::Deserialize<'de>, - D: serde::Deserializer<'de>, + T: serde_core::Deserialize<'de>, + D: serde_core::Deserializer<'de>, { T::deserialize(deserializer) } @@ -102,13 +102,13 @@ where /// ``` pub struct NumberSet(pub T); -impl serde::Serialize for NumberSet +impl serde_core::Serialize for NumberSet where - T: serde::Serialize, + T: serde_core::Serialize, { fn serialize(&self, serializer: S) -> Result where - S: serde::Serializer, + S: serde_core::Serializer, { serializer.serialize_newtype_struct(NEWTYPE_SYMBOL, &self.0) } diff --git a/src/ser/mod.rs b/src/ser/mod.rs index 28ac7da..83aadbc 100644 --- a/src/ser/mod.rs +++ b/src/ser/mod.rs @@ -1,6 +1,6 @@ use super::AttributeValue; use crate::{error::ErrorImpl, Error, Item, Result}; -use serde::Serialize; +use serde_core::Serialize; mod serializer; mod serializer_map; diff --git a/src/ser/serializer.rs b/src/ser/serializer.rs index 0cff512..e6825e1 100644 --- a/src/ser/serializer.rs +++ b/src/ser/serializer.rs @@ -2,7 +2,7 @@ use super::{ AttributeValue, Error, SerializerMap, SerializerSeq, SerializerStruct, SerializerStructVariant, SerializerTupleVariant, }; -use serde::{ser, Serialize}; +use serde_core::{ser, Serialize}; use std::collections::HashMap; /// A structure for serializing Rust values into [`AttributeValue`]s. @@ -71,8 +71,9 @@ impl ser::Serializer for Serializer { fn serialize_none(self) -> Result { Ok(AttributeValue::Null(true)) } - fn serialize_some(self, value: &V) -> Result + fn serialize_some(self, value: &V) -> Result where + V: ?Sized, V: Serialize, { value.serialize(self) @@ -124,12 +125,13 @@ impl ser::Serializer for Serializer { let serializer = SerializerTupleVariant::new(variant, len); Ok(serializer) } - fn serialize_newtype_struct( + fn serialize_newtype_struct( self, name: &'static str, value: &V, ) -> Result where + V: ?Sized, V: Serialize, { let av = value.serialize(self)?; @@ -154,7 +156,7 @@ impl ser::Serializer for Serializer { let serializer = SerializerStructVariant::new(variant, len); Ok(serializer) } - fn serialize_newtype_variant( + fn serialize_newtype_variant( self, _name: &'static str, _variant_index: u32, @@ -162,6 +164,7 @@ impl ser::Serializer for Serializer { value: &V, ) -> Result where + V: ?Sized, V: Serialize, { let serializer = Serializer; diff --git a/src/ser/serializer_map.rs b/src/ser/serializer_map.rs index 28ca03e..d354fd2 100644 --- a/src/ser/serializer_map.rs +++ b/src/ser/serializer_map.rs @@ -1,5 +1,5 @@ use super::{AttributeValue, Error, ErrorImpl, Result, Serializer}; -use serde::{ser, serde_if_integer128, Serialize}; +use serde_core::{ser, Serialize}; use std::collections::HashMap; pub struct SerializerMap { @@ -25,8 +25,9 @@ impl ser::SerializeMap for SerializerMap { type Ok = AttributeValue; type Error = Error; - fn serialize_key(&mut self, key: &K) -> Result<(), Self::Error> + fn serialize_key(&mut self, key: &K) -> Result<(), Self::Error> where + K: ?Sized, K: Serialize, { if self.next_key.is_some() { @@ -38,8 +39,9 @@ impl ser::SerializeMap for SerializerMap { Ok(()) } - fn serialize_value(&mut self, value: &V) -> Result<(), Self::Error> + fn serialize_value(&mut self, value: &V) -> Result<(), Self::Error> where + V: ?Sized, V: Serialize, { let key = self @@ -52,13 +54,11 @@ impl ser::SerializeMap for SerializerMap { Ok(()) } - fn serialize_entry( - &mut self, - key: &K, - value: &V, - ) -> Result<(), Self::Error> + fn serialize_entry(&mut self, key: &K, value: &V) -> Result<(), Self::Error> where + K: ?Sized, K: Serialize, + V: ?Sized, V: Serialize, { let key = key.serialize(MapKeySerializer)?; @@ -101,10 +101,8 @@ impl ser::Serializer for MapKeySerializer { fn serialize_i64(self, v: i64) -> Result { Ok(v.to_string()) } - serde_if_integer128! { - fn serialize_i128(self, v: i128) -> Result { - Ok(v.to_string()) - } + fn serialize_i128(self, v: i128) -> Result { + Ok(v.to_string()) } fn serialize_u16(self, v: u16) -> Result { Ok(v.to_string()) @@ -115,10 +113,8 @@ impl ser::Serializer for MapKeySerializer { fn serialize_u64(self, v: u64) -> Result { Ok(v.to_string()) } - serde_if_integer128! { - fn serialize_u128(self, v: u128) -> Result { - Ok(v.to_string()) - } + fn serialize_u128(self, v: u128) -> Result { + Ok(v.to_string()) } fn serialize_f32(self, _v: f32) -> Result { Err(ErrorImpl::KeyMustBeAString.into()) @@ -147,8 +143,9 @@ impl ser::Serializer for MapKeySerializer { fn serialize_none(self) -> Result { Err(ErrorImpl::KeyMustBeAString.into()) } - fn serialize_some(self, _value: &T) -> Result + fn serialize_some(self, _value: &T) -> Result where + T: ?Sized, T: Serialize, { Err(ErrorImpl::KeyMustBeAString.into()) @@ -196,12 +193,13 @@ impl ser::Serializer for MapKeySerializer { ) -> Result { Err(ErrorImpl::KeyMustBeAString.into()) } - fn serialize_newtype_struct( + fn serialize_newtype_struct( self, _name: &'static str, value: &T, ) -> Result where + T: ?Sized, T: Serialize, { value.serialize(self) @@ -215,7 +213,7 @@ impl ser::Serializer for MapKeySerializer { ) -> Result { Err(ErrorImpl::KeyMustBeAString.into()) } - fn serialize_newtype_variant( + fn serialize_newtype_variant( self, _name: &'static str, _variant_index: u32, @@ -223,6 +221,7 @@ impl ser::Serializer for MapKeySerializer { _value: &T, ) -> Result where + T: ?Sized, T: Serialize, { Err(ErrorImpl::KeyMustBeAString.into()) @@ -233,8 +232,9 @@ impl ser::SerializeSeq for MapKeySerializer { type Ok = String; type Error = Error; - fn serialize_element(&mut self, _value: &T) -> Result<(), Self::Error> + fn serialize_element(&mut self, _value: &T) -> Result<(), Self::Error> where + T: ?Sized, T: Serialize, { unreachable!() @@ -248,8 +248,9 @@ impl ser::SerializeTuple for MapKeySerializer { type Ok = String; type Error = Error; - fn serialize_element(&mut self, _value: &T) -> Result<(), Self::Error> + fn serialize_element(&mut self, _value: &T) -> Result<(), Self::Error> where + T: ?Sized, T: Serialize, { unreachable!() @@ -263,8 +264,9 @@ impl ser::SerializeTupleStruct for MapKeySerializer { type Ok = String; type Error = Error; - fn serialize_field(&mut self, _value: &T) -> Result<(), Self::Error> + fn serialize_field(&mut self, _value: &T) -> Result<(), Self::Error> where + T: ?Sized, T: Serialize, { unreachable!() @@ -278,8 +280,9 @@ impl ser::SerializeTupleVariant for MapKeySerializer { type Ok = String; type Error = Error; - fn serialize_field(&mut self, _value: &T) -> Result<(), Self::Error> + fn serialize_field(&mut self, _value: &T) -> Result<(), Self::Error> where + T: ?Sized, T: Serialize, { unreachable!() @@ -294,12 +297,9 @@ impl ser::SerializeStructVariant for MapKeySerializer { type Ok = String; type Error = Error; - fn serialize_field( - &mut self, - _key: &'static str, - _value: &T, - ) -> Result<(), Self::Error> + fn serialize_field(&mut self, _key: &'static str, _value: &T) -> Result<(), Self::Error> where + T: ?Sized, T: Serialize, { unreachable!() @@ -314,27 +314,27 @@ impl ser::SerializeMap for MapKeySerializer { type Ok = String; type Error = Error; - fn serialize_key(&mut self, _key: &T) -> Result<(), Self::Error> + fn serialize_key(&mut self, _key: &T) -> Result<(), Self::Error> where + T: ?Sized, T: Serialize, { unreachable!() } - fn serialize_value(&mut self, _value: &T) -> Result<(), Self::Error> + fn serialize_value(&mut self, _value: &T) -> Result<(), Self::Error> where + T: ?Sized, T: Serialize, { unreachable!() } - fn serialize_entry( - &mut self, - _key: &K, - _value: &V, - ) -> Result<(), Self::Error> + fn serialize_entry(&mut self, _key: &K, _value: &V) -> Result<(), Self::Error> where + K: ?Sized, K: Serialize, + V: ?Sized, V: Serialize, { unreachable!() @@ -349,12 +349,9 @@ impl ser::SerializeStruct for MapKeySerializer { type Ok = String; type Error = Error; - fn serialize_field( - &mut self, - _key: &'static str, - _value: &T, - ) -> Result<(), Self::Error> + fn serialize_field(&mut self, _key: &'static str, _value: &T) -> Result<(), Self::Error> where + T: ?Sized, T: Serialize, { unreachable!() diff --git a/src/ser/serializer_seq.rs b/src/ser/serializer_seq.rs index 2870ad7..f4194ea 100644 --- a/src/ser/serializer_seq.rs +++ b/src/ser/serializer_seq.rs @@ -1,5 +1,5 @@ use super::{AttributeValue, Error, Result, Serializer}; -use serde::{ser, Serialize}; +use serde_core::{ser, Serialize}; pub struct SerializerSeq { vec: Vec, diff --git a/src/ser/serializer_struct.rs b/src/ser/serializer_struct.rs index b713d2d..d602c5a 100644 --- a/src/ser/serializer_struct.rs +++ b/src/ser/serializer_struct.rs @@ -1,5 +1,5 @@ use super::{AttributeValue, Error, Result, Serializer}; -use serde::{ser, Serialize}; +use serde_core::{ser, Serialize}; use std::collections::HashMap; pub struct SerializerStruct { @@ -18,12 +18,9 @@ impl ser::SerializeStruct for SerializerStruct { type Ok = AttributeValue; type Error = Error; - fn serialize_field( - &mut self, - key: &'static str, - value: &F, - ) -> Result<(), Self::Error> + fn serialize_field(&mut self, key: &'static str, value: &F) -> Result<(), Self::Error> where + F: ?Sized, F: Serialize, { let serializer = Serializer; diff --git a/src/ser/serializer_struct_variant.rs b/src/ser/serializer_struct_variant.rs index 8733924..8dcfdd8 100644 --- a/src/ser/serializer_struct_variant.rs +++ b/src/ser/serializer_struct_variant.rs @@ -1,5 +1,5 @@ use super::{AttributeValue, Error, Result, Serializer}; -use serde::{ser, Serialize}; +use serde_core::{ser, Serialize}; use std::collections::HashMap; pub struct SerializerStructVariant { @@ -20,12 +20,9 @@ impl ser::SerializeStructVariant for SerializerStructVariant { type Ok = AttributeValue; type Error = Error; - fn serialize_field( - &mut self, - key: &'static str, - value: &F, - ) -> Result<(), Self::Error> + fn serialize_field(&mut self, key: &'static str, value: &F) -> Result<(), Self::Error> where + F: ?Sized, F: Serialize, { let serializer = Serializer; diff --git a/src/ser/serializer_tuple_variant.rs b/src/ser/serializer_tuple_variant.rs index 093bfaa..c8a2610 100644 --- a/src/ser/serializer_tuple_variant.rs +++ b/src/ser/serializer_tuple_variant.rs @@ -1,5 +1,5 @@ use super::{AttributeValue, Error, Result, Serializer}; -use serde::{ser, Serialize}; +use serde_core::{ser, Serialize}; use std::collections::HashMap; pub struct SerializerTupleVariant { @@ -20,8 +20,9 @@ impl ser::SerializeTupleVariant for SerializerTupleVariant { type Ok = AttributeValue; type Error = Error; - fn serialize_field(&mut self, value: &F) -> Result<(), Self::Error> + fn serialize_field(&mut self, value: &F) -> Result<(), Self::Error> where + F: ?Sized, F: Serialize, { let serializer = Serializer; diff --git a/src/string_set.rs b/src/string_set.rs index 08f18d8..2999806 100644 --- a/src/string_set.rs +++ b/src/string_set.rs @@ -64,8 +64,8 @@ pub(crate) fn should_serialize_as_string_set(name: &str) -> bool { /// * the sequence contains any value that is not a string pub fn serialize(value: &T, serializer: S) -> Result where - T: serde::Serialize, - S: serde::Serializer, + T: serde_core::Serialize, + S: serde_core::Serializer, { serializer.serialize_newtype_struct(NEWTYPE_SYMBOL, &value) } @@ -73,8 +73,8 @@ where /// Deserializes the given value as a set pub fn deserialize<'de, T, D>(deserializer: D) -> Result where - T: serde::Deserialize<'de>, - D: serde::Deserializer<'de>, + T: serde_core::Deserialize<'de>, + D: serde_core::Deserializer<'de>, { T::deserialize(deserializer) } @@ -102,13 +102,13 @@ where /// ``` pub struct StringSet(pub T); -impl serde::Serialize for StringSet +impl serde_core::Serialize for StringSet where - T: serde::Serialize, + T: serde_core::Serialize, { fn serialize(&self, serializer: S) -> Result where - S: serde::Serializer, + S: serde_core::Serializer, { serializer.serialize_newtype_struct(NEWTYPE_SYMBOL, &self.0) }