diff options
author | Joel Galenson <jgalenson@google.com> | 2021-10-14 18:02:05 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-10-14 18:02:05 +0000 |
commit | 520f396092a5065d2628de06768c08fc498fd90a (patch) | |
tree | 4811788d84fe11a9bd6cb858921536d9c641037a | |
parent | 174245394c23e51697f47aa3af44fc66c0e0452f (diff) | |
parent | 7df28121ab813635f1ab301ff4a659f2e3b48d2d (diff) | |
download | serde_json-520f396092a5065d2628de06768c08fc498fd90a.tar.gz |
Merge "Upgrade rust/crates/serde_json to 1.0.68" am: 7df28121ab
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/serde_json/+/1833324
Change-Id: I28fb4bc87e51be9165d2ccf0905133f409628439
-rw-r--r-- | .cargo_vcs_info.json | 4 | ||||
-rw-r--r-- | Android.bp | 12 | ||||
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | Cargo.toml.orig | 2 | ||||
-rw-r--r-- | METADATA | 8 | ||||
-rw-r--r-- | src/de.rs | 4 | ||||
-rw-r--r-- | src/lib.rs | 2 | ||||
-rw-r--r-- | src/map.rs | 1 | ||||
-rw-r--r-- | src/value/de.rs | 120 |
9 files changed, 26 insertions, 129 deletions
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json index 53f9a19..76c8954 100644 --- a/.cargo_vcs_info.json +++ b/.cargo_vcs_info.json @@ -1,5 +1,5 @@ { "git": { - "sha1": "6346bb30037f31ea69b9a4eb029875e23521681c" + "sha1": "9420d3a0a4ebf17ef1deeecee07851f58ff6148f" } -} +}
\ No newline at end of file @@ -42,6 +42,8 @@ rust_library { name: "libserde_json", host_supported: true, crate_name: "serde_json", + cargo_env_compat: true, + cargo_pkg_version: "1.0.68", srcs: ["src/lib.rs"], edition: "2018", features: [ @@ -59,13 +61,3 @@ rust_library { "com.android.virt", ], } - -// dependent_library ["feature_list"] -// itoa-0.4.7 -// proc-macro2-1.0.28 "default,proc-macro" -// quote-1.0.9 "default,proc-macro" -// ryu-1.0.5 -// serde-1.0.127 "default,derive,serde_derive,std" -// serde_derive-1.0.127 "default" -// syn-1.0.74 "clone-impls,default,derive,parsing,printing,proc-macro,quote" -// unicode-xid-0.2.2 "default" @@ -12,7 +12,7 @@ [package] edition = "2018" name = "serde_json" -version = "1.0.66" +version = "1.0.68" authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"] include = ["build.rs", "src/**/*.rs", "README.md", "LICENSE-APACHE", "LICENSE-MIT"] description = "A JSON serialization file format" diff --git a/Cargo.toml.orig b/Cargo.toml.orig index a664e75..5c647a1 100644 --- a/Cargo.toml.orig +++ b/Cargo.toml.orig @@ -1,6 +1,6 @@ [package] name = "serde_json" -version = "1.0.66" # remember to update html_root_url +version = "1.0.68" # remember to update html_root_url authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"] license = "MIT OR Apache-2.0" description = "A JSON serialization file format" @@ -7,13 +7,13 @@ third_party { } url { type: ARCHIVE - value: "https://static.crates.io/crates/serde_json/serde_json-1.0.66.crate" + value: "https://static.crates.io/crates/serde_json/serde_json-1.0.68.crate" } - version: "1.0.66" + version: "1.0.68" license_type: NOTICE last_upgrade_date { year: 2021 - month: 8 - day: 9 + month: 9 + day: 22 } } @@ -434,8 +434,8 @@ impl<'de, R: Read<'de>> Deserializer<R> { } else { let neg = (significand as i64).wrapping_neg(); - // Convert into a float if we underflow. - if neg > 0 { + // Convert into a float if we underflow, or on `-0`. + if neg >= 0 { ParserNumber::F64(-(significand as f64)) } else { ParserNumber::I64(neg) @@ -300,7 +300,7 @@ //! [macro]: https://docs.serde.rs/serde_json/macro.json.html //! [`serde-json-core`]: https://github.com/rust-embedded-community/serde-json-core -#![doc(html_root_url = "https://docs.rs/serde_json/1.0.66")] +#![doc(html_root_url = "https://docs.rs/serde_json/1.0.68")] #![deny(clippy::all, clippy::pedantic)] // Ignored clippy lints #![allow( @@ -251,6 +251,7 @@ impl Map<String, Value> { } } +#[allow(clippy::derivable_impls)] // clippy bug: https://github.com/rust-lang/rust-clippy/issues/7655 impl Default for Map<String, Value> { #[inline] fn default() -> Self { diff --git a/src/value/de.rs b/src/value/de.rs index a66d692..24ca826 100644 --- a/src/value/de.rs +++ b/src/value/de.rs @@ -512,7 +512,11 @@ impl<'de> VariantAccess<'de> for VariantDeserializer { { match self.value { Some(Value::Array(v)) => { - serde::Deserializer::deserialize_any(SeqDeserializer::new(v), visitor) + if v.is_empty() { + visitor.visit_unit() + } else { + visit_array(v, visitor) + } } Some(other) => Err(serde::de::Error::invalid_type( other.unexpected(), @@ -534,9 +538,7 @@ impl<'de> VariantAccess<'de> for VariantDeserializer { V: Visitor<'de>, { match self.value { - Some(Value::Object(v)) => { - serde::Deserializer::deserialize_any(MapDeserializer::new(v), visitor) - } + Some(Value::Object(v)) => visit_object(v, visitor), Some(other) => Err(serde::de::Error::invalid_type( other.unexpected(), &"struct variant", @@ -561,38 +563,6 @@ impl SeqDeserializer { } } -impl<'de> serde::Deserializer<'de> for SeqDeserializer { - type Error = Error; - - #[inline] - fn deserialize_any<V>(mut self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - let len = self.iter.len(); - if len == 0 { - visitor.visit_unit() - } else { - let ret = tri!(visitor.visit_seq(&mut self)); - let remaining = self.iter.len(); - if remaining == 0 { - Ok(ret) - } else { - Err(serde::de::Error::invalid_length( - len, - &"fewer elements in array", - )) - } - } - } - - forward_to_deserialize_any! { - bool i8 i16 i32 i64 i128 u8 u16 u32 u64 u128 f32 f64 char str string - bytes byte_buf option unit unit_struct newtype_struct seq tuple - tuple_struct map struct enum identifier ignored_any - } -} - impl<'de> SeqAccess<'de> for SeqDeserializer { type Error = Error; @@ -665,24 +635,6 @@ impl<'de> MapAccess<'de> for MapDeserializer { } } -impl<'de> serde::Deserializer<'de> for MapDeserializer { - type Error = Error; - - #[inline] - fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - visitor.visit_map(self) - } - - forward_to_deserialize_any! { - bool i8 i16 i32 i64 i128 u8 u16 u32 u64 u128 f32 f64 char str string - bytes byte_buf option unit unit_struct newtype_struct seq tuple - tuple_struct map struct enum identifier ignored_any - } -} - macro_rules! deserialize_value_ref_number { ($method:ident) => { #[cfg(not(feature = "arbitrary_precision"))] @@ -1043,7 +995,11 @@ impl<'de> VariantAccess<'de> for VariantRefDeserializer<'de> { { match self.value { Some(&Value::Array(ref v)) => { - serde::Deserializer::deserialize_any(SeqRefDeserializer::new(v), visitor) + if v.is_empty() { + visitor.visit_unit() + } else { + visit_array_ref(v, visitor) + } } Some(other) => Err(serde::de::Error::invalid_type( other.unexpected(), @@ -1065,9 +1021,7 @@ impl<'de> VariantAccess<'de> for VariantRefDeserializer<'de> { V: Visitor<'de>, { match self.value { - Some(&Value::Object(ref v)) => { - serde::Deserializer::deserialize_any(MapRefDeserializer::new(v), visitor) - } + Some(&Value::Object(ref v)) => visit_object_ref(v, visitor), Some(other) => Err(serde::de::Error::invalid_type( other.unexpected(), &"struct variant", @@ -1090,38 +1044,6 @@ impl<'de> SeqRefDeserializer<'de> { } } -impl<'de> serde::Deserializer<'de> for SeqRefDeserializer<'de> { - type Error = Error; - - #[inline] - fn deserialize_any<V>(mut self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - let len = self.iter.len(); - if len == 0 { - visitor.visit_unit() - } else { - let ret = tri!(visitor.visit_seq(&mut self)); - let remaining = self.iter.len(); - if remaining == 0 { - Ok(ret) - } else { - Err(serde::de::Error::invalid_length( - len, - &"fewer elements in array", - )) - } - } - } - - forward_to_deserialize_any! { - bool i8 i16 i32 i64 i128 u8 u16 u32 u64 u128 f32 f64 char str string - bytes byte_buf option unit unit_struct newtype_struct seq tuple - tuple_struct map struct enum identifier ignored_any - } -} - impl<'de> SeqAccess<'de> for SeqRefDeserializer<'de> { type Error = Error; @@ -1194,24 +1116,6 @@ impl<'de> MapAccess<'de> for MapRefDeserializer<'de> { } } -impl<'de> serde::Deserializer<'de> for MapRefDeserializer<'de> { - type Error = Error; - - #[inline] - fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - visitor.visit_map(self) - } - - forward_to_deserialize_any! { - bool i8 i16 i32 i64 i128 u8 u16 u32 u64 u128 f32 f64 char str string - bytes byte_buf option unit unit_struct newtype_struct seq tuple - tuple_struct map struct enum identifier ignored_any - } -} - struct MapKeyDeserializer<'de> { key: Cow<'de, str>, } |