chore(deps) Update Rust crate serde_with to v3 #7048
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2
->3
Release Notes
jonasbb/serde_with
v3.0.0
: serde_with v3.0.0Compare Source
This breaking release should not impact most users.
It only affects custom character sets used for base64 of which there are no instances of on GitHub.
Changed
Upgrade base64 to v0.21 (#543)
Thanks to @jeff-hiner for submitting the PR.
Remove support for custom character sets.
This is technically a breaking change.
A code search on GitHub revealed no instances of anyone using that, and
serde_with
ships with many predefined character sets.The removal means that future base64 upgrade will no longer be breaking changes.
v2.3.3
: serde_with v2.3.3Compare Source
Changed
syn
to v2 anddarling
to v0.20 (#578)Update proc-macro dependencies.
This change should have no impact on users, but now uses the same dependency as
serde_derive
.v2.3.2
: serde_with v2.3.2Compare Source
Changed
Improve the error message when deserializing
OneOrMany
orPickFirst
fails.It now includes the original error message for each of the individual variants.
This is possible by dropping untagged enums as the internal implementations, since they will likely never support this, as these old PRs show serde#2376 and serde#1544.
The new errors look like:
Fixed
Thanks to @nox for submitting a PR.
v2.3.1
: serde_with v2.3.1Compare Source
Fixed
Undo the changes to the trait bound for
Seq
. (#570, #571)The new implementation caused issues with serialization formats that require the sequence length beforehand.
It also caused problems, that certain attributes which worked before no longer worked, due to mismatching number of references.
Thanks to @stefunctional for reporting and for @stephaneyfx for providing a test case.
v2.3.0
: serde_with v2.3.0Compare Source
Added
Add
serde_as
compatible versions for the existing duplicate key and value handling. (#534)The new types
MapPreventDuplicates
,MapFirstKeyWins
,SetPreventDuplicates
, andSetLastValueWins
can replace the existing modulesmaps_duplicate_key_is_error
,maps_first_key_wins
,sets_duplicate_value_is_error
, andsets_last_value_wins
.Added a new
KeyValueMap
type using the map key as a struct field. (#341)This conversion is useful for maps, where an ID value is the map key, but the ID should become part of a single struct.
The conversion allows this, by using a special field named
$key$
.This conversion is possible for structs and maps, using the
$key$
field.Tuples, tuple structs, and sequences are supported by turning the first value into the map key.
Each of the
SimpleStruct
swill turn into a JSON snippet like this.
Changed
Seq
to allow for more custom types. (#565)This extends the support beyond tuples.
Fixed
EnumMap
passes thehuman_readable
status of theSerializer
to more places.alloc
on targets withouttarget_has_atomic = "ptr"
. (#560)Thanks to @vembacher for reporting and fixing the issue.
v2.2.0
: serde_with v2.2.0Compare Source
Added
Add new
Map
andSeq
types for converting between maps and tuple lists. (#527)The behavior is not new, but already present using
BTreeMap
/HashMap
orVec
.However, the new types
Map
andSeq
are also available onno_std
, even without thealloc
feature.Changed
serde_with_macros
dependency to the same version as the main crate.This simplifies publishing and ensures that always a compatible version is picked.
Fixed
serde_with::apply
had an issue matching types when invisible token groups where in use (#538)The token groups can stem from macro_rules expansion, but should be treated mostly transparent.
The old code required a group to match a group, while now groups are silently removed when checking for type patterns.
v2.1.0
: serde_with v2.1.0Compare Source
Added
Add new
apply
attribute to simplify repetitive attributes over many fields.Multiple rules and multiple attributes can be provided each.
The
apply
attribute will expand into this, applying the attributs to the matching fields:The attribute supports field matching using many rules, such as
_
to apply to all fields and partial generics likeOption
to match anyOption
be itOption<String>
,Option<bool>
, orOption<T>
.Fixed
The derive macros
SerializeDisplay
andDeserializeFromStr
now take better care not to use conflicting names for generic values. (#526)All used generics now start with
__
to make conflicts with manually written code unlikely.Thanks to @Elrendio for submitting a PR fixing the issue.
v2.0.1
: serde_with v2.0.1Compare Source
Added
time
added support for the well-knownIso8601
format.This extends the existing support of
Rfc2822
andRfc3339
.Changed
serde_as
is used on an enum variant.Attributes on enum variants were never supported.
But
#[serde(with = "...")]
can be added on variants, such that some confusion can occur when migration (#499).Note
A cargo bug (cargo#10801) means that upgrading from v1 to v2 may add unnecessary crates to the
Cargo.lock
file.A diff of the lock-file makes it seem that
serde_with
depends on new crates, even though these crates are unused and will not get compiled or linked.However, tools consuming
Cargo.lock
orcargo metadata
might give wrong results.Configuration
📅 Schedule: Branch creation - "after 3am on Wednesday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Never, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.