Update Rust crate serde to ~1.0.188 - autoclosed
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
- Fix "failed to parse manifest" error when building serde using a Cargo version between 1.45 and 1.50 (#2603)
v1.0.187
- Remove support for Emscripten targets on rustc older than 1.40 (#2600)
v1.0.186
- Disallow incompatible versions of
serde_derive
andserde
in the dependency graph (#2588, thanks @soqb)
v1.0.185
- Fix error "cannot move out of
*self
which is behind a shared reference" deriving Serialize on a non_exhaustive enum (#2591)
v1.0.184
- 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
- Support deserializing
Box<OsStr>
with an equivalent representation asOsString
(#2556, thanks @DBLouis)
v1.0.182
- Render field aliases in sorted order in error messages (#2458, thanks @Mingun)
- Support
serde(default)
on tuple structs (#2553, thanks @Mingun)
v1.0.181
- Make
serde(alias)
work in combination withflatten
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
- Update to 2018 edition
v1.0.179
v1.0.178
- Fix build error when using serde with "std" feature turned off and "unstable" feature turned on (#2541)
v1.0.177
- Add
serde(rename_all_fields = "...")
attribute to apply arename_all
on every struct variant of an enum (#1695, thanks @jplatte) - Improve diagnostics for attribute parse errors (#2536, thanks @jplatte)
v1.0.176
- 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
v1.0.174
- Documentation improvements
v1.0.173
- 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
- Experiment with precompiling the serde_derive macros to reduce build time (#2514)
v1.0.171
- Support
derive(Deserialize)
on unit structs that have const generics (#2500, thanks @Baptistemontan)
v1.0.170
- 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
- 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
- Allow
serde::de::IgnoredAny
to be the type for aserde(flatten)
field (#2436, thanks @Mingun) - Allow larger preallocated capacity for smaller elements (#2494)
v1.0.167
v1.0.166
- Add
no-alloc
category to crates.io metadata
v1.0.165
- 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
- Allowed enum variants to be individually marked as untagged (#2403, thanks @dewert99)
v1.0.163
- Eliminate build script from serde_derive crate to slightly reduce build time (#2442, thanks @taiki-e)
v1.0.162
-
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
v1.0.160
- Make derived serializer/deserializer internals
doc(hidden)
(#2426, thanks @compiler-errors)
v1.0.159
- Accept empty #[serde()] attribute (#2422)
v1.0.158
- 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
- Update syn dependency to 2.x
v1.0.156
- Documentation improvements
v1.0.155
- Support
Serialize
andDeserialize
impls forcore::ffi::CStr
andalloc::ffi::CString
without "std" feature (#2374, thanks @safarir)
v1.0.154
- 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
v1.0.152
- Documentation improvements
v1.0.151
- Update
serde::
{ser
,de
}::StdError
to re-exportcore::error::Error
when serde is built withfeature="std"
off andfeature="unstable"
on (#2344)
v1.0.150
- Relax some trait bounds from the
Serialize
impl ofHashMap
andBTreeMap
(#2334) - Enable
Serialize
andDeserialize
impls ofstd::sync::atomic
types on more platforms (#2337, thanks @badboy)
v1.0.149
- Relax some trait bounds from the
Serialize
impl ofBinaryHeap
,BTreeSet
, andHashSet
(#2333, thanks @jonasbb)
v1.0.148
- Support
remote
derive for generic types that have private fields (#2327)
v1.0.147
- Add
serde::de::value::EnumAccessDeserializer
which transforms anEnumAccess
into aDeserializer
(#2305)
v1.0.146
v1.0.145
- Allow RefCell<T>, Mutex<T>, and RwLock<T> to be serialized regardless of whether T is
Sized
(#2282, thanks @ChayimFriedman2)
v1.0.144
- 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
- Invert build.rs cfgs in serde_test to produce the most modern configuration in the default case (#2253, thanks @taiki-e)
v1.0.142
- Add keywords to crates.io metadata
v1.0.141
- Add
no-std
category to crates.io metadata
v1.0.140
- Invert serde_derive cfgs to convenience non-Cargo builds on a modern toolchain (#2251, thanks @taiki-e)
v1.0.139
- Add
new
constructor function for allIntoDeserializer
impls (#2246)
v1.0.138
- Documentation improvements
v1.0.137
- 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
- Improve default error message when
Visitor
fails to deserialize a u128 or i128 (#2167)
v1.0.135
- Update discord channels listed in readme
v1.0.134
- Improve error messages on deserializing NonZero integers from a 0 value (#2158)
v1.0.133
- Optimize deserialization of data structures that contain recursive use of
flatten
fields ortag
oruntagged
enums (#2148)
v1.0.132
- Enable Serialize and Deserialize impls for
std::sync::atomic::{AtomicI64, AtomicU64}
on riscv64 arch (#2141, thanks @Avimitin)
v1.0.131
- Avoid
unused_results
being triggered in generated code for adjacently tagged enum (#2116, thanks @tyranron)
v1.0.130
- Provide
MapAccess
andSeqAccess
impl for reference to a dynamically sized existing impl (#2081)
v1.0.129
v1.0.128
- Enable 128-bit integers on emscripten in Rust 1.40+ (#2076, thanks @Manishearth)
v1.0.127
- Resolve warning in rustc nightly-2021-07-31+ compiling serde_test
v1.0.126
- Resolve conflict with
forbid(future_incompatible)
lint setting in generated code (#2026, thanks @hyd-dev)
v1.0.125
- Improve performance of serializing
Ipv4Addr
(#2001, thanks @saethlin)
v1.0.124
v1.0.123
- 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
-
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
- 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
v1.0.119
v1.0.118
v1.0.117
- Allow serialization of std::net::SocketAddrV6 to include a scope id if present (based on https://github.com/rust-lang/rust/pull/77426)
v1.0.116
- Fix deserialization of IpAddr, SocketAddr, Bound, Result, OsString in formats which process variant identifiers as u64 (#1888, thanks @joshtriplett)
v1.0.115
- Support
#[serde(flatten)]
on a field whose type is a type parameter and concrete type is()
(#1873)
v1.0.114
- Improve
packed
repr matching to support deriving Serialize for structs havingrepr(C, packed)
(#1813, thanks @TannerRogalsky)
v1.0.113
v1.0.112
- Support
serde(flatten)
on map types where the Serializer only works with serialize_entry (#1837)
v1.0.111
- 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
- Support deriving Serialize impl for a
repr(packed)
struct (#1791, thanks @alvardes)
v1.0.109
- 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
-
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
- Fix panic during macro expansion when using
serde(skip)
andserde(other)
in the same enum (#1804)
v1.0.106
- Hide dummy const implementation detail from rustdoc when documenting a binary crate (#1768, thanks @robo9k)
v1.0.105
- Allow #[serde(borrow)] to work on non-standard
Cow
types (#1754, thanks @maciejhirsz)
v1.0.104
- Revert stabilization of Serialize/Deserialize impls for
!
to account for https://github.com/rust-lang/rust/pull/67224
v1.0.103
- Support deserializing untagged unit variants from formats that treat unit as None (#1668)
v1.0.102
- Support deserializing
PathBuf
from bytes like&Path
already did, and support deserializingBox<Path>
(#1656, thanks @heftig)
v1.0.101
-
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
-
Provide
serde::ser::StdError
andserde::de::StdError
which are either a re-export ofstd::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
andserde::de::Error
requirestd::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 astd::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
-
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
v1.0.97
-
Introduce
serde(try_from = "...")
attribute to derive Deserialize based on a given implementation ofstd::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
- Implement serialization and deserialization for std::sync::atomic types (#1572 and #1581, thanks @Roguelazer)
- Make "alloc" feature work on stable Rust 1.36+ (#1576, thanks @c410-f3r)
v1.0.95
yanked
v1.0.94
- Accept enums in input data when deserializing IgnoredAny (#1558)
v1.0.93
- Allow integer keys in untagged flattened map (#1545)
v1.0.92
v1.0.91
- Support deserializing from MapAccessDeserializer into an enum (#1522)
v1.0.90
-
Add an attribute
#[serde(crate = "path::to::serde")]
which replaces the use ofextern crate serde
in the generated code; this is intended for crates that invoke Serde derives from a macro and need to refer toserde
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
- Implement Serialize and Deserialize for core::cmp::Reverse<T> (#1486, thanks @vorot93)
- Fix a Clippy lint triggered within generated code involving flatten + deny_unknown_fields (#1492, thanks @thomaseizinger)
v1.0.88
- Support
flatten
andskip_serializing
/skip_deserializing
attributes on the same field
v1.0.87
- Fix inclusion of tag in struct containing flattened fields (#1468, thanks @jwillbold)
v1.0.86
v1.0.85
-
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
- Update example code in documentation to 2018 edition
v1.0.83
-
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
v1.0.81
- 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
- Performance optimization for
Vec::deserialize_in_place
to deserialize elements in place (#1411)
v1.0.79
-
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
- Fix panic deserializing flattened Value after flattened struct (#1379)
v1.0.77
v1.0.76
- Provide impls for
NonZeroU128
(#1371, thanks @hcpl)
v1.0.75
- Adjust dependency version requirement to support building with
-Z minimal-versions
in CI (#1367)
v1.0.74
v1.0.73
- Fix the names of serialized fields when the Rust data structure uses a raw identifier (#1362)
v1.0.72
- Fix compilation of
default-features = false, features = ["alloc", "rc"]
feature combination (#1359, thanks @Pratyush)
v1.0.71
- Provide impls for
core::ops::RangeInclusive
(#1347, thanks @c410-f3r) - Provide impls for
core::ops::Range
whether or not"std"
feature is enabled (#1348)
v1.0.70
- Update
--features alloc
to work with nightly-2018-07-07 (#1335)
v1.0.69
- Support Rust 2018
use_extern_macros
(https://github.com/rust-lang/rust/pull/51496)
v1.0.68
v1.0.67
- Implement Serialize for core::fmt::Arguments (#1319)
v1.0.66
- 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
- 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
- Second attempt to work around docs.rs old compiler version (#1295)
v1.0.63
- Workaround to get docs.rs successfully building our docs with its old compiler (#1294)
v1.0.62
- 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
- Stabilize Deserialize impls for dynamically sized Rc / Arc (#1266)
- Stabilize Deserialize impl for Box<CStr> (#1267)
v1.0.60
- 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
- Add a
serde(transparent)
container attribute to indicate that a struct serializes and deserializes the same as its only field -- analogous torepr(transparent)
(#1054)
v1.0.58
- Fix generated code for deserializing untagged newtype variant (#1268)
v1.0.57
- Remove unstable Serialize and Deserialize impls for
NonZero<T>
which has been removed from the most recent nightly compiler (#1265)
v1.0.56
- 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
- Support formats that want to deserialize flattened identifiers as bytes (#1257)
v1.0.54
- Support flattened untagged Options in struct fields (#1255)
v1.0.53
- Support deserializing flattened untagged enum (#1253)
v1.0.52
- 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
- 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 theskip_serializing
andskip_deserializing
variant attributes that already existed - Respect variant skip attributes when inferring type parameter bounds (#892)
v1.0.50
- Detect unsupported use of Deserialize on a dynamically sized struct ending in slice field (#830)
v1.0.49
- Add serialize and deserialize impls for
std::rc::Weak
andstd::sync::Weak
(#1251)
v1.0.48
- Fix Serialize impl of an adjacently tagged empty tuple variant or struct variant (#1247)
v1.0.47
- Support
flatten
attribute inside of enums (#1206)
v1.0.46
- Support deserializing a flattened internally tagged enum (#1189)
v1.0.45
- Fix dead code warnings when generating remote impls (#976)
v1.0.44
- Respect
deserialize_with
used together withflatten
(#1240)
v1.0.43
- Fix handling of newtype struct inside of an untagged enum in serde_test (#1233)
v1.0.42
v1.0.41
- Allow integers in an internally tagged enum to be deserialized from CBOR integers of any size (#1222)
v1.0.40
- More flexible deserialization of byte arrays inside of untagged and internally tagged enums (#1217, #1216)
v1.0.39
- Implement deserializer hints in handling of untagged and adjacently tagged enums to improve compile time and executable size (#286)
v1.0.38
- 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
- Better error messages for unsupported uses of
serde(flatten)
(#1204 and #1205, thanks @mitsuhiko)
v1.0.36
- Emit working code in the case of
remote = "Self"
attribute (#1196)
v1.0.35
- Implement Serialize and Deserialize for unsigned std::num::NonZero* types (#1191, tracking issue https://github.com/rust-lang/rust/issues/49137, thanks @SimonSapin)
v1.0.34
- 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
- Fix parsing of
Self
-qualified paths like"<[_]>::serialize"
withinserialize_with
attributes
v1.0.32
- Fix derive expansion for structs containing
&str
or&[u8]
with missing lifetime parameter (#1176)
v1.0.31
(yanked)
v1.0.30
- Fix borrowed
Cow<[u8]>
deserializing from non-UTF8 bytes (#1175, thanks @daboross)
v1.0.29
- Fix unused parentheses warning in generated code (#1172)
v1.0.28
- 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
v1.0.26
- Extend Serialize and Deserialize impls on
PhantomData
to work forT: ?Sized
v1.0.25
-
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
andVec
. Enable thedeserialize_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
- 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
- Revert a change that caused serde_test deserialization tests using skipped fields to fail (#1096)
v1.0.22
- Fix
#[derive(Deserialize)]
used with#![no_implicit_prelude]
(#1103)
v1.0.21
- 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
- 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
- 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
- Fix handling of borrowed lifetimes in fields that are skipped during deserialization (#1078, thanks @epage)
v1.0.17
- Add impls for
std::num::Wrapping
(#1072, thanks @LinearZoetrope)
v1.0.16
- Add
Serializer::is_human_readable
andDeserializer::is_human_readable
which allow types like IpAddr to serialize in a human-readable representation in formats like JSON but in a compact binary representation in formats like Bincode (#1044, thanks @Marwes)
v1.0.15
- Support for deserializing internally tagged enums in MessagePack (#1058)
v1.0.14
- 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
- Allow the tag of a field or enum variant to be deserialized from any unsigned integer type (#963, thanks @sfackler)
- Support
serialize_with
anddeserialize_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
- 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
- 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
- Implement Serialize and Deserialize for
std::time::SystemTime
(#949, thanks @WiSaGaN)
v1.0.9
- Fix inferred Deserialize bounds in remote derive (#972)
- Combine the unstable
collections
andalloc
features to align with https://github.com/rust-lang/rust/pull/42648
v1.0.8
- Add a
#[serde(skip)]
field attribute which unifiesskip_serializing
andskip_deserializing
(#935, thanks @spikefoo)
v1.0.7
- Add
BorrowedStrDeserializer
andBorrowedBytesDeserializer
which act likeIntoDeserializer
implementations for&'de str
and&'de [u8]
(#940, thanks @BurntSushi)
v1.0.6
-
~Add a
#[serde(skip)]
field attribute which unifiesskip_serializing
andskip_deserializing
(#935, thanks @spikefoo)~ (mistakenly omitted from 1.0.6, this feature is in 1.0.8)
v1.0.5
- Fix a regression in deserializing internally tagged struct variants containing unit variant containing borrowed strings (#932)
v1.0.4
- Support borrowing within internally tagged enum (#926)
v1.0.3
v1.0.2
- Make adjacently tagged enums honor deny_unknown_fields (#905, thanks @TedDriggs)
v1.0.1
- Remove usage of unstable core::num::Zero, which was removed upstream (#898, thanks @SimonSapin)
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.