Skip to content

Update Rust crate serde to ~1.0.188 - autoclosed

Óscar García Amor requested to merge renovate/serde-1.x into master

This MR contains the following updates:

Package Type Update Change
serde (source) dependencies patch ~1.0 -> ~1.0.188

Release Notes

serde-rs/serde (serde)

v1.0.188

Compare Source

  • Fix "failed to parse manifest" error when building serde using a Cargo version between 1.45 and 1.50 (#​2603)

v1.0.187

Compare Source

  • Remove support for Emscripten targets on rustc older than 1.40 (#​2600)

v1.0.186

Compare Source

  • Disallow incompatible versions of serde_derive and serde in the dependency graph (#​2588, thanks @​soqb)

v1.0.185

Compare Source

  • Fix error "cannot move out of *self which is behind a shared reference" deriving Serialize on a non_exhaustive enum (#​2591)

v1.0.184

Compare Source

  • Restore from-source serde_derive build on all platforms — eventually we'd like to use a first-class precompiled macro if such a thing becomes supported by cargo / crates.io

v1.0.183

Compare Source

  • Support deserializing Box<OsStr> with an equivalent representation as OsString (#​2556, thanks @​DBLouis)

v1.0.182

Compare Source

v1.0.181

Compare Source

  • Make serde(alias) work in combination with flatten when using in-place deserialization (#​2443, thanks @​Mingun)
  • Improve the representation of adjacently tagged enums in formats where enum tags are serialized by index, as opposed to by string name (#​2505, #​2496, thanks @​Baptistemontan)

v1.0.180

Compare Source

  • Update to 2018 edition

v1.0.179

Compare Source

  • Support serialization of tuple variants inside a flattened field (#​2448, thanks @​Mingun)

v1.0.178

Compare Source

  • Fix build error when using serde with "std" feature turned off and "unstable" feature turned on (#​2541)

v1.0.177

Compare Source

  • Add serde(rename_all_fields = "...") attribute to apply a rename_all on every struct variant of an enum (#​1695, thanks @​jplatte)
  • Improve diagnostics for attribute parse errors (#​2536, thanks @​jplatte)

v1.0.176

Compare Source

  • Allow tag field of an internally tagged enum to have same name as a field inside a skipped struct variant (#​2266, thanks @​flisky)

v1.0.175

Compare Source

v1.0.174

Compare Source

  • Documentation improvements

v1.0.173

Compare Source

  • Fix missing trait implementations when using serde derive macro on a macro-generated data structure, such as via the bitflags crate (#​2516)

v1.0.172

Compare Source

  • Experiment with precompiling the serde_derive macros to reduce build time (#​2514)

v1.0.171

Compare Source

v1.0.170

Compare Source

  • Produce error message on suffixed string literals inside serde attributes (#​2242)
  • Support single identifier as unbraced default value for const generic parameter (#​2449)

v1.0.169

Compare Source

  • Add Deserializer::deserialize_identifier support for adjacently tagged enums (#​2475, thanks @​Baptistemontan)
  • Fix unused_braces lint in generated Deserialize impl that uses braced const generic expressions (#​2414)

v1.0.168

Compare Source

  • Allow serde::de::IgnoredAny to be the type for a serde(flatten) field (#​2436, thanks @​Mingun)
  • Allow larger preallocated capacity for smaller elements (#​2494)

v1.0.167

Compare Source

  • Add serialize and deserialize impls for RangeFrom and RangeTo (#​2471, thanks @​tbu-)

v1.0.166

Compare Source

  • Add no-alloc category to crates.io metadata

v1.0.165

Compare Source

  • Fix incorrect count of fields passed to tuple deserialization methods when using serde(skip_deserializing) attributes (#​2466, thanks @​Mingun)
  • Fix -Zminimal-versions build

v1.0.164

Compare Source

v1.0.163

Compare Source

  • Eliminate build script from serde_derive crate to slightly reduce build time (#​2442, thanks @​taiki-e)

v1.0.162

Compare Source

  • Support deserializing flattened adjacently tagged enums from data formats which represent fields as bytes, such as the csv crate (#​2377, thanks @​mfro)

    #[derive(Deserialize)]
    pub struct Record {
        common: u64,
        #[serde(flatten)]
        kind: Kind,
    }
    
    #[derive(Deserialize)]
    #[serde(tag = "kind", content = "parameter", rename_all = "lowercase")]
    enum Kind {
        Foo(u64),
        Bar(bool),
    }
    common,kind,parameter
    1,foo,42
    2,bar,true

v1.0.161

Compare Source

  • Improve error messages produced by serde_test on test failure (#​2435, thanks @​Mingun)

v1.0.160

Compare Source

v1.0.159

Compare Source

  • Accept empty #[serde()] attribute (#​2422)

v1.0.158

Compare Source

  • Fix "expected serde crate attribute to be a string" error when using macro_rules metavariable inside of serde attribute: #[serde(crate = $serde_path)] (#​2409)

v1.0.157

Compare Source

  • Update syn dependency to 2.x

v1.0.156

Compare Source

  • Documentation improvements

v1.0.155

Compare Source

  • Support Serialize and Deserialize impls for core::ffi::CStr and alloc::ffi::CString without "std" feature (#​2374, thanks @​safarir)

v1.0.154

Compare Source

  • Fix "undeclared lifetime" error in generated code when deriving Deserialize for an enum with both flatten and 'static fields (#​2383, thanks @​Mingun)

v1.0.153

Compare Source

  • Support serde(alias = "…") attribute used inside of flattened struct (#​2387, thanks @​bebecue)

v1.0.152

Compare Source

  • Documentation improvements

v1.0.151

Compare Source

  • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#​2344)

v1.0.150

Compare Source

  • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#​2334)
  • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#​2337, thanks @​badboy)

v1.0.149

Compare Source

  • Relax some trait bounds from the Serialize impl of BinaryHeap, BTreeSet, and HashSet (#​2333, thanks @​jonasbb)

v1.0.148

Compare Source

  • Support remote derive for generic types that have private fields (#​2327)

v1.0.147

Compare Source

  • Add serde::de::value::EnumAccessDeserializer which transforms an EnumAccess into a Deserializer (#​2305)

v1.0.146

Compare Source

v1.0.145

Compare Source

v1.0.144

Compare Source

  • Change atomic ordering used by Serialize impl of atomic types to match ordering used by Debug impl of those same types (#​2263, thanks @​taiki-e)

v1.0.143

Compare Source

  • Invert build.rs cfgs in serde_test to produce the most modern configuration in the default case (#​2253, thanks @​taiki-e)

v1.0.142

Compare Source

  • Add keywords to crates.io metadata

v1.0.141

Compare Source

  • Add no-std category to crates.io metadata

v1.0.140

Compare Source

  • Invert serde_derive cfgs to convenience non-Cargo builds on a modern toolchain (#​2251, thanks @​taiki-e)

v1.0.139

Compare Source

  • Add new constructor function for all IntoDeserializer impls (#​2246)

v1.0.138

Compare Source

  • Documentation improvements

v1.0.137

Compare Source

  • Update documentation links to some data formats whose repos have moved (#​2201, thanks @​atouchet)
  • Fix declared rust-version of serde and serde_test (#​2168)

v1.0.136

Compare Source

  • Improve default error message when Visitor fails to deserialize a u128 or i128 (#​2167)

v1.0.135

Compare Source

  • Update discord channels listed in readme

v1.0.134

Compare Source

  • Improve error messages on deserializing NonZero integers from a 0 value (#​2158)

v1.0.133

Compare Source

  • Optimize deserialization of data structures that contain recursive use of flatten fields or tag or untagged enums (#​2148)

v1.0.132

Compare Source

  • Enable Serialize and Deserialize impls for std::sync::atomic::{AtomicI64, AtomicU64} on riscv64 arch (#​2141, thanks @​Avimitin)

v1.0.131

Compare Source

  • Avoid unused_results being triggered in generated code for adjacently tagged enum (#​2116, thanks @​tyranron)

v1.0.130

Compare Source

  • Provide MapAccess and SeqAccess impl for reference to a dynamically sized existing impl (#​2081)

v1.0.129

Compare Source

v1.0.128

Compare Source

v1.0.127

Compare Source

  • Resolve warning in rustc nightly-2021-07-31+ compiling serde_test

v1.0.126

Compare Source

  • Resolve conflict with forbid(future_incompatible) lint setting in generated code (#​2026, thanks @​hyd-dev)

v1.0.125

Compare Source

v1.0.124

Compare Source

  • Fix possible panic deserializing invalid data as SystemTime (#​1997, thanks @​cyang1)

v1.0.123

Compare Source

  • Support Self keywords in fields of types that derive Deserialize (#​1830, thanks @​taiki-e)
  • Allow floats to be deserialized from ints in tagged unions (#​1842, thanks @​Timmmm)
  • Support Self inside fields that use serialize_with (#​1970)

v1.0.122

Compare Source

  • Add IntoDeserializer impl for &[u8] (#​1898, thanks @​Mingun)

  • Handle unrecognized numeric field keys during deserialization of a field_identifier, equivalently to string field keys (#​1914, thanks @​Mingun)

  • Add attribute to override default deserialization failure expectation message (#​1916, thanks @​Mingun)

    #[derive(Deserialize)]
    #[serde(untagged, expecting = "single version or array of versions")]
    struct VersionSpec {
        One(Version),
        Many(Vec<Version>),
    }
  • Improve serde_test handling of map entries and error message construction (#​1918, thanks @​Mingun)

  • Produce more accurate location information on test failures from serde_test crate (#​1920, thanks @​Mingun)

  • Improve diagnostic on failure to parse a rename_all attribute (#​1960, #​1961)

  • Eliminate unnecessary trait bounds on some value Deserializer impls (#​1963)

v1.0.121

Compare Source

  • Support borrowed data during deserialization of a field identifier (#​1917, thanks @​Mingun)
  • Fix panic when deserializing Duration with nanoseconds that cause the seconds counter to overflow (#​1958, thanks @​jonasbb)

v1.0.120

Compare Source

  • Fix deserialization of ignored fields containing 128-bit integer (#​1955, thanks @​TheJokr)

v1.0.119

Compare Source

v1.0.118

Compare Source

v1.0.117

Compare Source

v1.0.116

Compare Source

  • Fix deserialization of IpAddr, SocketAddr, Bound, Result, OsString in formats which process variant identifiers as u64 (#​1888, thanks @​joshtriplett)

v1.0.115

Compare Source

  • Support #[serde(flatten)] on a field whose type is a type parameter and concrete type is () (#​1873)

v1.0.114

Compare Source

  • Improve packed repr matching to support deriving Serialize for structs having repr(C, packed) (#​1813, thanks @​TannerRogalsky)

v1.0.113

Compare Source

v1.0.112

Compare Source

  • Support serde(flatten) on map types where the Serializer only works with serialize_entry (#​1837)

v1.0.111

Compare Source

  • Process borrowed lifetimes inside of interpolated macro_rules metavariables, such as in the case of #[derive(Deserialize)] struct S<'a> { field: $field } (#​1821)

v1.0.110

Compare Source

v1.0.109

Compare Source

  • Allow adjacently tagged newtype variants containing Option to omit the content field when deserializing (#​1553, #​1706, thanks @​zth0)
  • Avoid panicking when a SystemTime older than UNIX_EPOCH is serialized (#​1702, thanks @​hjiayz)

v1.0.108

Compare Source

  • Provide a Serializer impl that can write primitives and unit variants to a &mut fmt::Formatter (#​1705, thanks @​jethrogb)

    use serde::Serialize;
    use std::fmt::{self, Display};
    
    #[derive(Serialize)]
    #[serde(rename_all = "kebab-case")]
    pub enum MessageType {
        StartRequest,
        EndRequest,
    }
    
    impl Display for MessageType {
        fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
            self.serialize(f)
        }
    }

v1.0.107

Compare Source

  • Fix panic during macro expansion when using serde(skip) and serde(other) in the same enum (#​1804)

v1.0.106

Compare Source

  • Hide dummy const implementation detail from rustdoc when documenting a binary crate (#​1768, thanks @​robo9k)

v1.0.105

Compare Source

v1.0.104

Compare Source

v1.0.103

Compare Source

  • Support deserializing untagged unit variants from formats that treat unit as None (#​1668)

v1.0.102

Compare Source

  • Support deserializing PathBuf from bytes like &Path already did, and support deserializing Box<Path> (#​1656, thanks @​heftig)

v1.0.101

Compare Source

  • Report errors on malformed serde attributes, like #[serde(rename =)] -- the compiler used to reject these itself, but when the compiler relaxed its requirements on attribute syntax these malformed attributes began silently being ignored by serde_derive

  • Eliminate unused variable warning when using skip_serializing inside a tuple variant of an adjacently tagged enum (#​1617, thanks @​arilotter)

  • Support skip attribute inside of newtype variants (#​1622, thanks @​Xaeroxe)

v1.0.100

Compare Source

  • Provide serde::ser::StdError and serde::de::StdError which are either a re-export of std::error::Error (if Serde's "std" feature is enabled) or a new identical trait (otherwise).

    #[cfg(feature = "std")]
    pub use std::error::Error as StdError;
    
    #[cfg(not(feature = "std"))]
    pub trait StdError: Debug + Display {
        fn source(&self) -> Option<&(StdError + 'static)> { None }
    }

    Serde's error traits serde::ser::Error and serde::de::Error require std::error::Error as a supertrait, but only when Serde is built with "std" enabled. Data formats that don't care about no_std support should generally provide their error types with a std::error::Error impl directly:

    #[derive(Debug)]
    struct MySerError {...}
    
    impl serde::ser::Error for MySerError {...}
    
    impl std::fmt::Display for MySerError {...}
    
    // We don't support no_std!
    impl std::error::Error for MySerError {}

    Data formats that do support no_std may either have a "std" feature of their own as has been required in the past:

    [features]
    std = ["serde/std"]
    #[cfg(feature = "std")]
    impl std::error::Error for MySerError {}

    ... or else now may provide the std Error impl unconditionally via Serde's re-export:

    impl serde::ser::StdError for MySerError {}

v1.0.99

Compare Source

  • Update Syn dependency to 1.0.

    Note: This raises the minimum required compiler version for serde_derive from rustc 1.15 to rustc 1.31. The minimum required compiler version for serde remains at rustc 1.13.

v1.0.98

Compare Source

v1.0.97

Compare Source

  • Introduce serde(try_from = "...") attribute to derive Deserialize based on a given implementation of std::convert::TryFrom (#​1526, thanks @​fanzeyi)

    #[derive(Deserialize)]
    #[serde(try_from = "u32")]
    enum N {
        Zero,
        One,
        Two,
    }
    
    impl TryFrom<u32> for N {
        type Error = String;
    
        fn try_from(u: u32) -> Result<Self, Self::Error> {
            match u {
                0 => Ok(Self::Zero),
                1 => Ok(Self::One),
                2 => Ok(Self::Two),
                other => Err(format!("out of range: {}", other)),
            }
        }
    }

v1.0.96

Compare Source

v1.0.95

Compare Source

yanked

v1.0.94

Compare Source

  • Accept enums in input data when deserializing IgnoredAny (#​1558)

v1.0.93

Compare Source

  • Allow integer keys in untagged flattened map (#​1545)

v1.0.92

Compare Source

v1.0.91

Compare Source

  • Support deserializing from MapAccessDeserializer into an enum (#​1522)

v1.0.90

Compare Source

  • Add an attribute #[serde(crate = "path::to::serde")] which replaces the use of extern crate serde in the generated code; this is intended for crates that invoke Serde derives from a macro and need to refer to serde through their own re-export rather than requiring callers to list Serde in Cargo.toml (#​1499, thanks @​sgrif)

    #[derive(Deserialize)]
    #[serde(crate = "__tw::codegen::serde")]
    struct S { ... }
    // expands to:
    impl<'de> __tw::codegen::serde::Deserialize<'de> for S {
        ...
    }

v1.0.89

Compare Source

v1.0.88

Compare Source

  • Support flatten and skip_serializing / skip_deserializing attributes on the same field

v1.0.87

Compare Source

v1.0.86

Compare Source

  • Implement Serialize and Deserialize for core::ops::Bound<T> (#​1466, thanks @​0nkery)

v1.0.85

Compare Source

  • Accept #[serde(alias = "...")] attribute on fields and variants which allows the same field or variant to be deserialized from any of multiple different names in the input (#​1458, thanks @​Lymia)

    #[derive(Deserialize)]
    struct S {
        #[serde(alias = "old_name")]
        new_name: String,  // will deserialize from either of "old_name" or "new_name"
    }

v1.0.84

Compare Source

  • Update example code in documentation to 2018 edition

v1.0.83

Compare Source

  • Support a rename_all specification that applies only to the Serialize impl or only to the Deserialize impl (#​1447, thanks @​vincascm)

    #[derive(Serialize, Deserialize)]
    #[serde(rename_all(
        serialize = "camelCase",
        deserialize = "SCREAMING_SNAKE_CASE",
    ))]
    struct S { /* ... */ }
  • Allow serializing struct name inside of structs with named fields (#​1448, thanks @​motu42)

    #[derive(Serialize)]
    #[serde(tag = "type")]
    struct S { /* ... */ }  // serializes as {"type":"S",...}

v1.0.82

Compare Source

  • Support serde(default) attribute inside of tuple structs and tuple variants (#​1442, thanks @​tcr)

v1.0.81

Compare Source

  • Better error messages when using an invalid combination of serde attributes (#​1424, thanks @​hcpl)
  • Support deserializing tagged enums inside of untagged enums in formats that encode tagged enum variants by index, like MessagePack (#​1437, thanks @​daboross)

v1.0.80

Compare Source

  • Performance optimization for Vec::deserialize_in_place to deserialize elements in place (#​1411)

v1.0.79

Compare Source

  • Add serde(other) variant attribute for deserializing any variant that is not one of the others (#​1382)

    #[derive(Deserialize)]
    #[serde(tag = "variant")]
    enum MyEnum {
        A(ModelA),
        B(ModelB),
        #[serde(other)]
        Unknown,
    }

    In this internally tagged enum the MyEnum::Unknown variant would be produced if the "variant" tag in the input is neither "A" nor "B".

    This feature is currently limited to externally tagged and adjacently tagged enums in which the other variant is a unit variant.

v1.0.78

Compare Source

  • Fix panic deserializing flattened Value after flattened struct (#​1379)

v1.0.77

Compare Source

  • Fix internally tagged enum deserialization with unknown fields (#​1376, thanks @​dreid)

v1.0.76

Compare Source

v1.0.75

Compare Source

  • Adjust dependency version requirement to support building with -Z minimal-versions in CI (#​1367)

v1.0.74

Compare Source

v1.0.73

Compare Source

  • Fix the names of serialized fields when the Rust data structure uses a raw identifier (#​1362)

v1.0.72

Compare Source

  • Fix compilation of default-features = false, features = ["alloc", "rc"] feature combination (#​1359, thanks @​Pratyush)

v1.0.71

Compare Source

v1.0.70

Compare Source

  • Update --features alloc to work with nightly-2018-07-07 (#​1335)

v1.0.69

Compare Source

v1.0.68

Compare Source

v1.0.67

Compare Source

  • Implement Serialize for core::fmt::Arguments (#​1319)

v1.0.66

Compare Source

  • Implement Serialize and Deserialize for ! (#​544, unstable)
  • Support Duration in no-std mode on sufficiently new compilers (#​1123)
  • Improve compiler error messages (#​1297, thanks @​adamcrume)

v1.0.65

Compare Source

  • Do not panic when serializing a RefCell that is currently mutably borrowed (#​1300, thanks @​xfix)
  • Allow flattened fields after a flattened map to receive input fields (#​1299)

v1.0.64

Compare Source

  • Second attempt to work around docs.rs old compiler version (#​1295)

v1.0.63

Compare Source

  • Workaround to get docs.rs successfully building our docs with its old compiler (#​1294)

v1.0.62

Compare Source

  • Implement IntoDeserializer for i128 and u128 (#​1280)
  • Implement Copy for the primitive value deserializers (#​1287)
  • Implement Clone for primitive value deserializers even when the error type cannot be cloned (#​1287)

v1.0.61

Compare Source

  • Stabilize Deserialize impls for dynamically sized Rc / Arc (#​1266)
  • Stabilize Deserialize impl for Box<CStr> (#​1267)

v1.0.60

Compare Source

  • Add Serde impls for i128 and u128 when compiling with Rust 1.26+ (#​1263)
  • Stabilize Serde impls for std::num::NonZero* on Rust 1.28+ (#​1278, thanks @​SimonSapin)

v1.0.59

Compare Source

  • Add a serde(transparent) container attribute to indicate that a struct serializes and deserializes the same as its only field -- analogous to repr(transparent) (#​1054)

v1.0.58

Compare Source

  • Fix generated code for deserializing untagged newtype variant (#​1268)

v1.0.57

Compare Source

  • Remove unstable Serialize and Deserialize impls for NonZero<T> which has been removed from the most recent nightly compiler (#​1265)

v1.0.56

Compare Source

  • Add a Serde build.rs script for rustc version detection in preparation for adding i128 / u128 primitive support on sufficiently new compilers. Please let us know in #​1136 if having a build script causes undue complication in your environment. We will begin using the build script to enable observable functionality after a week or so, at which point it will become harder to roll back.

v1.0.55

Compare Source

  • Support formats that want to deserialize flattened identifiers as bytes (#​1257)

v1.0.54

Compare Source

  • Support flattened untagged Options in struct fields (#​1255)

v1.0.53

Compare Source

  • Support deserializing flattened untagged enum (#​1253)

v1.0.52

Compare Source

  • Allow overriding inferred bounds at the variant level using a bound attribute (#​1149)
  • Respect skip_serializing attribute in tuple structs and variants (#​1048)
  • Account for skip_serializing_if in computing tuple struct lengths (#​1049)
  • Improve error for struct deserialized from array that is too short (#​981)
  • Accept implicitly borrowed data inside of an Option field (#​1029)

v1.0.51

Compare Source

  • Fix the Deserialize implementation generated for an adjacently tagged enum with zero variants (#​785)
  • Improve error message when deriving Deserialize for a type that already has a 'de lifetime (#​893)
  • Add a #[serde(skip)] variant attribute to combine the skip_serializing and skip_deserializing variant attributes that already existed
  • Respect variant skip attributes when inferring type parameter bounds (#​892)

v1.0.50

Compare Source

  • Detect unsupported use of Deserialize on a dynamically sized struct ending in slice field (#​830)

v1.0.49

Compare Source

v1.0.48

Compare Source

  • Fix Serialize impl of an adjacently tagged empty tuple variant or struct variant (#​1247)

v1.0.47

Compare Source

  • Support flatten attribute inside of enums (#​1206)

v1.0.46

Compare Source

  • Support deserializing a flattened internally tagged enum (#​1189)

v1.0.45

Compare Source

  • Fix dead code warnings when generating remote impls (#​976)

v1.0.44

Compare Source

  • Respect deserialize_with used together with flatten (#​1240)

v1.0.43

Compare Source

  • Fix handling of newtype struct inside of an untagged enum in serde_test (#​1233)

v1.0.42

Compare Source

v1.0.41

Compare Source

  • Allow integers in an internally tagged enum to be deserialized from CBOR integers of any size (#​1222)

v1.0.40

Compare Source

  • More flexible deserialization of byte arrays inside of untagged and internally tagged enums (#​1217, #​1216)

v1.0.39

Compare Source

  • Implement deserializer hints in handling of untagged and adjacently tagged enums to improve compile time and executable size (#​286)

v1.0.38

Compare Source

  • Infer trait bounds for use of a type parameter associated type (#​1213, thanks @​Osspial)
  • Fix deserialize_with on a struct variant with one field (#​1215)

v1.0.37

Compare Source

v1.0.36

Compare Source

  • Emit working code in the case of remote = "Self" attribute (#​1196)

v1.0.35

Compare Source

v1.0.34

Compare Source

  • Add a flatten attribute to remove one level of structure between the serialized representation and the Rust data structure; more details in struct flattening (#​1179, thanks @​mitsuhiko)

v1.0.33

Compare Source

  • Fix parsing of Self-qualified paths like "<[_]>::serialize" within serialize_with attributes

v1.0.32

Compare Source

  • Fix derive expansion for structs containing &str or &[u8] with missing lifetime parameter (#​1176)

v1.0.31

Compare Source

(yanked)

v1.0.30

Compare Source

v1.0.29

Compare Source

  • Fix unused parentheses warning in generated code (#​1172)

v1.0.28

Compare Source

  • Update to Syn 0.12 which allows serde_derive to handle new Rust syntax that has been added within the past year
  • Report conflicts between the tag of an internally tagged enum and any of the variant field names, or between the tag and content field of an adjacently tagged enum (#​1170, thanks @​H2CO3)

v1.0.27

Compare Source

v1.0.26

Compare Source

  • Extend Serialize and Deserialize impls on PhantomData to work for T: ?Sized

v1.0.25

Compare Source

  • Add the following function with default implementation to the Deserialize trait (thanks @​Gankro!)

    fn deserialize_in_place<D>(deserializer: D, place: &mut Self) -> Result<(), D::Error>
    where
        D: Deserializer<'de>,
    {
        *place = Deserialize::deserialize(deserializer)?;
        Ok(())
    }

    This is a power user feature that allows deserialization to reuse existing allocations for types like String and Vec. Enable the deserialize_in_place feature of serde_derive to generate these efficient implementations for all types that use #[derive(Deserialize)].

    extern crate serde;
    extern crate serde_json;
    
    use serde::Deserialize;
    
    fn main() {
        let mut v = Vec::<i32>::with_capacity(128);
        assert_eq!(v.capacity(), 128);
    
        let j = "[1, 2, 3]";
        let ref mut de = serde_json::Deserializer::from_str(j);
        Deserialize::deserialize_in_place(de, &mut v).unwrap();
        assert_eq!(v, [1, 2, 3]);
        assert_eq!(v.capacity(), 128);
    }

v1.0.24

Compare Source

  • Fix delegation of a skipped field's default value to the container's Default impl (#​1105, thanks @​Binero)
  • Improve performance of array deserialization (#​1106, thanks @​khuey)

v1.0.23

Compare Source

  • Revert a change that caused serde_test deserialization tests using skipped fields to fail (#​1096)

v1.0.22

Compare Source

  • Fix #[derive(Deserialize)] used with #![no_implicit_prelude] (#​1103)

v1.0.21

Compare Source

  • Fix deserialization of untagged newtype variant containing externally tagged struct variant in formats that represent struct variants as a sequence (#​1093, thanks @​alex-shapiro)

v1.0.20

Compare Source

  • Print the contents of the expected token when a serialize assert fails (#​1086, thanks @​Marwes)
  • Catch wrong field names length in serde_test (#​1090)

v1.0.19

Compare Source

  • Allow borrow attribute on newtype variants (#​929)
  • Fix bounds for macro named the same as a type parameter (#​1081)
  • Add an API for making tests for readable/compact representations (#​1084, thanks @​Marwes)
  • Allow internally tagged newtype variant containing unit struct (#​1085)

v1.0.18

Compare Source

  • Fix handling of borrowed lifetimes in fields that are skipped during deserialization (#​1078, thanks @​epage)

v1.0.17

Compare Source

v1.0.16

Compare Source

v1.0.15

Compare Source

  • Support for deserializing internally tagged enums in MessagePack (#​1058)

v1.0.14

Compare Source

  • Generate code without warnings when a struct contains a &'static field (#​1052)
  • Fix errors in generated code when compiling with deny(trivial_numeric_casts) (#​1053)

v1.0.13

Compare Source

  • Allow the tag of a field or enum variant to be deserialized from any unsigned integer type (#​963, thanks @​sfackler)
  • Support serialize_with and deserialize_with applied to entire enum variants (#​1015, thanks @​spinda)
  • Add an optional skip_field method so serializers can be notified when a field is skipped (#​1022, thanks @​sfackler)
  • Add a "SCREAMING-KEBAB-CASE" option for the rename_all attribute (#​1043, thanks @​greyblake)

v1.0.12

Compare Source

  • Implement Serialize for Rc<T> and Arc<T> where T: ?Sized (#​1038)
  • Implement Deserialize for Rc<T> and Arc<T> where Box<T>: Deserialize (#​1039)

v1.0.11

Compare Source

  • Make remote derive usable from outside of the module containing the remote definition (#​1001)
  • Update NonZero deserialization to account for constructor changes in nightly (#​1003)

v1.0.10

Compare Source

v1.0.9

Compare Source

v1.0.8

Compare Source

  • Add a #[serde(skip)] field attribute which unifies skip_serializing and skip_deserializing (#​935, thanks @​spikefoo)

v1.0.7

Compare Source

v1.0.6

Compare Source

  • ~Add a #[serde(skip)] field attribute which unifies skip_serializing and skip_deserializing (#​935, thanks @​spikefoo)~ (mistakenly omitted from 1.0.6, this feature is in 1.0.8)

v1.0.5

Compare Source

  • Fix a regression in deserializing internally tagged struct variants containing unit variant containing borrowed strings (#​932)

v1.0.4

Compare Source

  • Support borrowing within internally tagged enum (#​926)

v1.0.3

Compare Source

v1.0.2

Compare Source

v1.0.1

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by Óscar García Amor

Merge request reports