Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include scope id in SocketAddrV6::Display #77426

Merged
merged 1 commit into from Oct 5, 2020

Conversation

tamird
Copy link
Contributor

@tamird tamird commented Oct 1, 2020

r? @tmandry

I couldn't find any unit tests for these functions.

cc @ghanan94 @brunowonka

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 1, 2020
@tmandry
Copy link
Member

tmandry commented Oct 3, 2020

@dtolnay Are there any issues with changing the Display impl here?

@dtolnay
Copy link
Member

dtolnay commented Oct 3, 2020

I think this is fine.

Copy link
Member

@dtolnay dtolnay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs tests. Tests are in library/std/src/net/addr/tests.rs.

@dtolnay dtolnay added the T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. label Oct 3, 2020
@tamird
Copy link
Contributor Author

tamird commented Oct 4, 2020

Added tests.

Copy link
Member

@dtolnay dtolnay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@dtolnay
Copy link
Member

dtolnay commented Oct 4, 2020

@bors r+

@bors
Copy link
Contributor

bors commented Oct 4, 2020

📌 Commit 4585c22 has been approved by dtolnay

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 4, 2020
bors added a commit to rust-lang-ci/rust that referenced this pull request Oct 5, 2020
Rollup of 11 pull requests

Successful merges:

 - rust-lang#75853 (Use more intra-doc-links in `core::fmt`)
 - rust-lang#75928 (Remove trait_selection error message in specific case)
 - rust-lang#76329 (Add check for doc alias attribute at crate level)
 - rust-lang#77219 (core::global_allocator docs link to std::alloc::GlobalAlloc)
 - rust-lang#77395 (BTreeMap: admit the existence of leaf edges in comments)
 - rust-lang#77407 (Improve build-manifest to work with the improved promote-release)
 - rust-lang#77426 (Include scope id in SocketAddrV6::Display)
 - rust-lang#77439 (Fix missing diagnostic span for `impl Trait` with const generics, and add various tests for `min_const_generics` and `const_generics`)
 - rust-lang#77471 (BTreeMap: refactoring around edges, missed spots)
 - rust-lang#77512 (Allow `Abort` terminators in all const-contexts)
 - rust-lang#77514 (Replace some once(x).chain(once(y)) with [x, y] IntoIter)

Failed merges:

r? `@ghost`
@bors bors merged commit f1afed5 into rust-lang:master Oct 5, 2020
@rustbot rustbot added this to the 1.49.0 milestone Oct 5, 2020
@tamird tamird deleted the sockaddr-scope-id branch October 5, 2020 08:32
dtolnay added a commit to serde-rs/serde that referenced this pull request Oct 5, 2020
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Oct 6, 2020
…lnay

Avoid unchecked casts in net parser

Once this and rust-lang#77426 are in, I'll send another PR adding scope id parsing.

r? @dtolnay
renovate bot added a commit to smartive/zitadel-rust that referenced this pull request May 2, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [serde](https://serde.rs)
([source](https://togithub.com/serde-rs/serde)) | dependencies | patch |
`1.0` -> `1.0.200` |
| [serde_json](https://togithub.com/serde-rs/json) | dependencies |
patch | `1.0` -> `1.0.116` |

---

### Release Notes

<details>
<summary>serde-rs/serde (serde)</summary>

###
[`v1.0.200`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.200)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.199...v1.0.200)

- Fix formatting of "invalid type" and "invalid value" deserialization
error messages containing NaN or infinite floats
([#&#8203;2733](https://togithub.com/serde-rs/serde/issues/2733), thanks
[@&#8203;jamessan](https://togithub.com/jamessan))

###
[`v1.0.199`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.199)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.198...v1.0.199)

- Fix ambiguous associated item when `forward_to_deserialize_any!` is
used on an enum with `Error` variant
([#&#8203;2732](https://togithub.com/serde-rs/serde/issues/2732), thanks
[@&#8203;aatifsyed](https://togithub.com/aatifsyed))

###
[`v1.0.198`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.198)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.197...v1.0.198)

- Support serializing and deserializing `Saturating<T>`
([#&#8203;2709](https://togithub.com/serde-rs/serde/issues/2709), thanks
[@&#8203;jbethune](https://togithub.com/jbethune))

###
[`v1.0.197`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.197)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.196...v1.0.197)

-   Fix unused_imports warnings when compiled by rustc 1.78
- Optimize code size of some Display impls
([#&#8203;2697](https://togithub.com/serde-rs/serde/issues/2697), thanks
[@&#8203;nyurik](https://togithub.com/nyurik))

###
[`v1.0.196`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.196)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.195...v1.0.196)

- Improve formatting of "invalid type" error messages involving floats
([#&#8203;2682](https://togithub.com/serde-rs/serde/issues/2682))

###
[`v1.0.195`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.195)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.194...v1.0.195)

- Prevent remote definitions of tuple struct or tuple variant from
triggering dead_code warning
([#&#8203;2671](https://togithub.com/serde-rs/serde/issues/2671))

###
[`v1.0.194`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.194)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.193...v1.0.194)

- Update proc-macro2 to fix caching issue when using a rustc-wrapper
such as sccache

###
[`v1.0.193`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.193)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.192...v1.0.193)

- Fix field names used for the deserialization of `RangeFrom` and
`RangeTo`
([#&#8203;2653](https://togithub.com/serde-rs/serde/issues/2653),
[#&#8203;2654](https://togithub.com/serde-rs/serde/issues/2654),
[#&#8203;2655](https://togithub.com/serde-rs/serde/issues/2655), thanks
[@&#8203;emilbonnek](https://togithub.com/emilbonnek))

###
[`v1.0.192`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.192)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.191...v1.0.192)

- Allow internal tag field in untagged variant
([#&#8203;2646](https://togithub.com/serde-rs/serde/issues/2646), thanks
[@&#8203;robsdedude](https://togithub.com/robsdedude))

###
[`v1.0.191`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.191)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.190...v1.0.191)

-   Documentation improvements

###
[`v1.0.190`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.190)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.189...v1.0.190)

- Preserve NaN sign when deserializing f32 from f64 or vice versa
([#&#8203;2637](https://togithub.com/serde-rs/serde/issues/2637))

###
[`v1.0.189`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.189)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.188...v1.0.189)

- Fix "cannot infer type" error when internally tagged enum contains
untagged variant
([#&#8203;2613](https://togithub.com/serde-rs/serde/issues/2613), thanks
[@&#8203;ahl](https://togithub.com/ahl))

###
[`v1.0.188`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.188)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.187...v1.0.188)

- Fix *"failed to parse manifest"* error when building serde using a
Cargo version between 1.45 and 1.50
([#&#8203;2603](https://togithub.com/serde-rs/serde/issues/2603))

###
[`v1.0.187`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.187)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.186...v1.0.187)

- Remove support for Emscripten targets on rustc older than 1.40
([#&#8203;2600](https://togithub.com/serde-rs/serde/issues/2600))

###
[`v1.0.186`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.186)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.185...v1.0.186)

- Disallow incompatible versions of `serde_derive` and `serde` in the
dependency graph
([#&#8203;2588](https://togithub.com/serde-rs/serde/issues/2588), thanks
[@&#8203;soqb](https://togithub.com/soqb))

###
[`v1.0.185`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.185)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.184...v1.0.185)

- Fix error *"cannot move out of `*self` which is behind a shared
reference"* deriving Serialize on a non_exhaustive enum
([#&#8203;2591](https://togithub.com/serde-rs/serde/issues/2591))

###
[`v1.0.184`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.184)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.183...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`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.183)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.182...v1.0.183)

- Support deserializing `Box<OsStr>` with an equivalent representation
as `OsString`
([#&#8203;2556](https://togithub.com/serde-rs/serde/issues/2556), thanks
[@&#8203;DBLouis](https://togithub.com/DBLouis))

###
[`v1.0.182`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.182)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.181...v1.0.182)

- Render field aliases in sorted order in error messages
([#&#8203;2458](https://togithub.com/serde-rs/serde/issues/2458), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))
- Support `serde(default)` on tuple structs
([#&#8203;2553](https://togithub.com/serde-rs/serde/issues/2553), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))

###
[`v1.0.181`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.181)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.180...v1.0.181)

- Make `serde(alias)` work in combination with `flatten` when using
in-place deserialization
([#&#8203;2443](https://togithub.com/serde-rs/serde/issues/2443), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))
- Improve the representation of adjacently tagged enums in formats where
enum tags are serialized by index, as opposed to by string name
([#&#8203;2505](https://togithub.com/serde-rs/serde/issues/2505),
[#&#8203;2496](https://togithub.com/serde-rs/serde/issues/2496), thanks
[@&#8203;Baptistemontan](https://togithub.com/Baptistemontan))

###
[`v1.0.180`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.180)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.179...v1.0.180)

-   Update to 2018 edition

###
[`v1.0.179`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.179)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.178...v1.0.179)

- Support serialization of tuple variants inside a flattened field
([#&#8203;2448](https://togithub.com/serde-rs/serde/issues/2448), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))

###
[`v1.0.178`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.178)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.177...v1.0.178)

- Fix build error when using serde with "std" feature turned off and
"unstable" feature turned on
([#&#8203;2541](https://togithub.com/serde-rs/serde/issues/2541))

###
[`v1.0.177`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.177)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.176...v1.0.177)

- Add `serde(rename_all_fields = "...")` attribute to apply a
`rename_all` on every struct variant of an enum
([#&#8203;1695](https://togithub.com/serde-rs/serde/issues/1695), thanks
[@&#8203;jplatte](https://togithub.com/jplatte))
- Improve diagnostics for attribute parse errors
([#&#8203;2536](https://togithub.com/serde-rs/serde/issues/2536), thanks
[@&#8203;jplatte](https://togithub.com/jplatte))

###
[`v1.0.176`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.176)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.175...v1.0.176)

- Allow tag field of an internally tagged enum to have same name as a
field inside a skipped struct variant
([#&#8203;2266](https://togithub.com/serde-rs/serde/issues/2266), thanks
[@&#8203;flisky](https://togithub.com/flisky))

###
[`v1.0.175`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.175)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.174...v1.0.175)

- Restore missing LICENSE files in serde_derive crate
([#&#8203;2527](https://togithub.com/serde-rs/serde/issues/2527), thanks
[@&#8203;ankane](https://togithub.com/ankane))

###
[`v1.0.174`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.174)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.173...v1.0.174)

-   Documentation improvements

###
[`v1.0.173`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.173)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.172...v1.0.173)

- Fix missing trait implementations when using serde derive macro on a
macro-generated data structure, such as via the `bitflags` crate
([#&#8203;2516](https://togithub.com/serde-rs/serde/issues/2516))

###
[`v1.0.172`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.172)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.171...v1.0.172)

- Experiment with precompiling the serde_derive macros to reduce build
time ([#&#8203;2514](https://togithub.com/serde-rs/serde/issues/2514))

###
[`v1.0.171`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.171)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.170...v1.0.171)

- Support `derive(Deserialize)` on unit structs that have const generics
([#&#8203;2500](https://togithub.com/serde-rs/serde/issues/2500), thanks
[@&#8203;Baptistemontan](https://togithub.com/Baptistemontan))

###
[`v1.0.170`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.170)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.169...v1.0.170)

- Produce error message on suffixed string literals inside serde
attributes
([#&#8203;2242](https://togithub.com/serde-rs/serde/issues/2242))
- Support single identifier as unbraced default value for const generic
parameter
([#&#8203;2449](https://togithub.com/serde-rs/serde/issues/2449))

###
[`v1.0.169`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.169)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.168...v1.0.169)

- Add Deserializer::deserialize_identifier support for adjacently tagged
enums ([#&#8203;2475](https://togithub.com/serde-rs/serde/issues/2475),
thanks [@&#8203;Baptistemontan](https://togithub.com/Baptistemontan))
- Fix unused_braces lint in generated Deserialize impl that uses braced
const generic expressions
([#&#8203;2414](https://togithub.com/serde-rs/serde/issues/2414))

###
[`v1.0.168`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.168)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.167...v1.0.168)

- Allow `serde::de::IgnoredAny` to be the type for a `serde(flatten)`
field ([#&#8203;2436](https://togithub.com/serde-rs/serde/issues/2436),
thanks [@&#8203;Mingun](https://togithub.com/Mingun))
- Allow larger preallocated capacity for smaller elements
([#&#8203;2494](https://togithub.com/serde-rs/serde/issues/2494))

###
[`v1.0.167`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.167)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.166...v1.0.167)

- Add serialize and deserialize impls for `RangeFrom` and `RangeTo`
([#&#8203;2471](https://togithub.com/serde-rs/serde/issues/2471), thanks
[@&#8203;tbu-](https://togithub.com/tbu-))

###
[`v1.0.166`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.166)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.165...v1.0.166)

-   Add `no-alloc` category to crates.io metadata

###
[`v1.0.165`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.165)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.164...v1.0.165)

- Fix incorrect count of fields passed to tuple deserialization methods
when using `serde(skip_deserializing)` attributes
([#&#8203;2466](https://togithub.com/serde-rs/serde/issues/2466), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))
-   Fix `-Zminimal-versions` build

###
[`v1.0.164`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.164)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.163...v1.0.164)

- Allowed enum variants to be individually marked as untagged
([#&#8203;2403](https://togithub.com/serde-rs/serde/issues/2403), thanks
[@&#8203;dewert99](https://togithub.com/dewert99))

###
[`v1.0.163`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.163)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.162...v1.0.163)

- Eliminate build script from serde_derive crate to slightly reduce
build time
([#&#8203;2442](https://togithub.com/serde-rs/serde/issues/2442), thanks
[@&#8203;taiki-e](https://togithub.com/taiki-e))

###
[`v1.0.162`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.162)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.161...v1.0.162)

- Support deserializing flattened adjacently tagged enums from data
formats which represent fields as bytes, such as the `csv` crate
([#&#8203;2377](https://togithub.com/serde-rs/serde/issues/2377), thanks
[@&#8203;mfro](https://togithub.com/mfro))

    ```rust
    #[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),
    }
    ```

    ```csv
    common,kind,parameter
    1,foo,42
    2,bar,true
    ```

###
[`v1.0.161`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.161)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.160...v1.0.161)

- Improve error messages produced by serde_test on test failure
([#&#8203;2435](https://togithub.com/serde-rs/serde/issues/2435), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))

###
[`v1.0.160`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.160)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.159...v1.0.160)

- Make derived serializer/deserializer internals `doc(hidden)`
([#&#8203;2426](https://togithub.com/serde-rs/serde/issues/2426), thanks
[@&#8203;compiler-errors](https://togithub.com/compiler-errors))

###
[`v1.0.159`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.159)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.158...v1.0.159)

- Accept empty #\[serde()] attribute
([#&#8203;2422](https://togithub.com/serde-rs/serde/issues/2422))

###
[`v1.0.158`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.158)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.157...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)]`
([#&#8203;2409](https://togithub.com/serde-rs/serde/issues/2409))

###
[`v1.0.157`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.157)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.156...v1.0.157)

-   Update syn dependency to 2.x

###
[`v1.0.156`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.156)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.155...v1.0.156)

-   Documentation improvements

###
[`v1.0.155`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.155)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.154...v1.0.155)

- Support `Serialize` and `Deserialize` impls for `core::ffi::CStr` and
`alloc::ffi::CString` without "std" feature
([#&#8203;2374](https://togithub.com/serde-rs/serde/issues/2374), thanks
[@&#8203;safarir](https://togithub.com/safarir))

###
[`v1.0.154`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.154)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.153...v1.0.154)

- Fix "undeclared lifetime" error in generated code when deriving
Deserialize for an enum with both `flatten` and `'static` fields
([#&#8203;2383](https://togithub.com/serde-rs/serde/issues/2383), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))

###
[`v1.0.153`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.153)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.152...v1.0.153)

- Support `serde(alias = "…")` attribute used inside of flattened struct
([#&#8203;2387](https://togithub.com/serde-rs/serde/issues/2387), thanks
[@&#8203;bebecue](https://togithub.com/bebecue))

###
[`v1.0.152`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.152)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.151...v1.0.152)

-   Documentation improvements

###
[`v1.0.151`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.151)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.150...v1.0.151)

- Update `serde::`{`ser`,`de`}`::StdError` to re-export
`core::error::Error` when serde is built with `feature="std"` **off**
and `feature="unstable"` **on**
([#&#8203;2344](https://togithub.com/serde-rs/serde/issues/2344))

###
[`v1.0.150`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.150)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.149...v1.0.150)

- Relax some trait bounds from the `Serialize` impl of `HashMap` and
`BTreeMap`
([#&#8203;2334](https://togithub.com/serde-rs/serde/issues/2334))
- Enable `Serialize` and `Deserialize` impls of `std::sync::atomic`
types on more platforms
([#&#8203;2337](https://togithub.com/serde-rs/serde/issues/2337), thanks
[@&#8203;badboy](https://togithub.com/badboy))

###
[`v1.0.149`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.149)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.148...v1.0.149)

- Relax some trait bounds from the `Serialize` impl of `BinaryHeap`,
`BTreeSet`, and `HashSet`
([#&#8203;2333](https://togithub.com/serde-rs/serde/issues/2333), thanks
[@&#8203;jonasbb](https://togithub.com/jonasbb))

###
[`v1.0.148`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.148)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.147...v1.0.148)

- Support `remote` derive for generic types that have private fields
([#&#8203;2327](https://togithub.com/serde-rs/serde/issues/2327))

###
[`v1.0.147`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.147)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.146...v1.0.147)

- Add `serde::de::value::EnumAccessDeserializer` which transforms an
`EnumAccess` into a `Deserializer`
([#&#8203;2305](https://togithub.com/serde-rs/serde/issues/2305))

###
[`v1.0.146`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.146)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.145...v1.0.146)

- Allow internally tagged newtype variant to contain unit
([#&#8203;2303](https://togithub.com/serde-rs/serde/issues/2303), thanks
[@&#8203;tage64](https://togithub.com/tage64))

###
[`v1.0.145`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.145)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.144...v1.0.145)

- Allow RefCell\<T>, Mutex\<T>, and RwLock\<T> to be serialized
regardless of whether T is `Sized`
([#&#8203;2282](https://togithub.com/serde-rs/serde/issues/2282), thanks
[@&#8203;ChayimFriedman2](https://togithub.com/ChayimFriedman2))

###
[`v1.0.144`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.144)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.143...v1.0.144)

- Change atomic ordering used by Serialize impl of atomic types to match
ordering used by Debug impl of those same types
([#&#8203;2263](https://togithub.com/serde-rs/serde/issues/2263), thanks
[@&#8203;taiki-e](https://togithub.com/taiki-e))

###
[`v1.0.143`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.143)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.142...v1.0.143)

- Invert build.rs cfgs in serde_test to produce the most modern
configuration in the default case
([#&#8203;2253](https://togithub.com/serde-rs/serde/issues/2253), thanks
[@&#8203;taiki-e](https://togithub.com/taiki-e))

###
[`v1.0.142`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.142)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.141...v1.0.142)

-   Add keywords to crates.io metadata

###
[`v1.0.141`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.141)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.140...v1.0.141)

-   Add `no-std` category to crates.io metadata

###
[`v1.0.140`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.140)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.139...v1.0.140)

- Invert serde_derive cfgs to convenience non-Cargo builds on a modern
toolchain
([#&#8203;2251](https://togithub.com/serde-rs/serde/issues/2251), thanks
[@&#8203;taiki-e](https://togithub.com/taiki-e))

###
[`v1.0.139`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.139)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.138...v1.0.139)

- Add `new` constructor function for all `IntoDeserializer` impls
([#&#8203;2246](https://togithub.com/serde-rs/serde/issues/2246))

###
[`v1.0.138`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.138)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.137...v1.0.138)

-   Documentation improvements

###
[`v1.0.137`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.137)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.136...v1.0.137)

- Update documentation links to some data formats whose repos have moved
([#&#8203;2201](https://togithub.com/serde-rs/serde/issues/2201), thanks
[@&#8203;atouchet](https://togithub.com/atouchet))
- Fix declared `rust-version` of serde and serde_test
([#&#8203;2168](https://togithub.com/serde-rs/serde/issues/2168))

###
[`v1.0.136`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.136)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.135...v1.0.136)

- Improve default error message when `Visitor` fails to deserialize a
u128 or i128
([#&#8203;2167](https://togithub.com/serde-rs/serde/issues/2167))

###
[`v1.0.135`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.135)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.134...v1.0.135)

-   Update discord channels listed in readme

###
[`v1.0.134`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.134)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.133...v1.0.134)

- Improve error messages on deserializing NonZero integers from a 0
value ([#&#8203;2158](https://togithub.com/serde-rs/serde/issues/2158))

###
[`v1.0.133`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.133)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.132...v1.0.133)

- Optimize deserialization of data structures that contain recursive use
of `flatten` fields or `tag` or `untagged` enums
([#&#8203;2148](https://togithub.com/serde-rs/serde/issues/2148))

###
[`v1.0.132`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.132)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.131...v1.0.132)

- Enable Serialize and Deserialize impls for
`std::sync::atomic::{AtomicI64, AtomicU64}` on riscv64 arch
([#&#8203;2141](https://togithub.com/serde-rs/serde/issues/2141), thanks
[@&#8203;Avimitin](https://togithub.com/Avimitin))

###
[`v1.0.131`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.131)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.130...v1.0.131)

- Avoid `unused_results` being triggered in generated code for
adjacently tagged enum
([#&#8203;2116](https://togithub.com/serde-rs/serde/issues/2116), thanks
[@&#8203;tyranron](https://togithub.com/tyranron))

###
[`v1.0.130`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.130)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.129...v1.0.130)

- Provide `MapAccess` and `SeqAccess` impl for reference to a
dynamically sized existing impl
([#&#8203;2081](https://togithub.com/serde-rs/serde/issues/2081))

###
[`v1.0.129`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.129)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.128...v1.0.129)

- Support deserialization of remote structs that used packed repr
([#&#8203;2078](https://togithub.com/serde-rs/serde/issues/2078),
[#&#8203;2079](https://togithub.com/serde-rs/serde/issues/2079),
[#&#8203;2080](https://togithub.com/serde-rs/serde/issues/2080))

###
[`v1.0.128`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.128)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.127...v1.0.128)

- Enable 128-bit integers on emscripten in Rust 1.40+
([#&#8203;2076](https://togithub.com/serde-rs/serde/issues/2076), thanks
[@&#8203;Manishearth](https://togithub.com/Manishearth))

###
[`v1.0.127`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.127)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.126...v1.0.127)

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

###
[`v1.0.126`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.126)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.125...v1.0.126)

- Resolve conflict with `forbid(future_incompatible)` lint setting in
generated code
([#&#8203;2026](https://togithub.com/serde-rs/serde/issues/2026), thanks
[@&#8203;hyd-dev](https://togithub.com/hyd-dev))

###
[`v1.0.125`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.125)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.124...v1.0.125)

- Improve performance of serializing `Ipv4Addr`
([#&#8203;2001](https://togithub.com/serde-rs/serde/issues/2001), thanks
[@&#8203;saethlin](https://togithub.com/saethlin))

###
[`v1.0.124`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.124)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.123...v1.0.124)

- Fix possible panic deserializing invalid data as `SystemTime`
([#&#8203;1997](https://togithub.com/serde-rs/serde/issues/1997), thanks
[@&#8203;cyang1](https://togithub.com/cyang1))

###
[`v1.0.123`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.123)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.122...v1.0.123)

- Support `Self` keywords in fields of types that derive Deserialize
([#&#8203;1830](https://togithub.com/serde-rs/serde/issues/1830), thanks
[@&#8203;taiki-e](https://togithub.com/taiki-e))
- Allow floats to be deserialized from ints in tagged unions
([#&#8203;1842](https://togithub.com/serde-rs/serde/issues/1842), thanks
[@&#8203;Timmmm](https://togithub.com/Timmmm))
- Support `Self` inside fields that use serialize_with
([#&#8203;1970](https://togithub.com/serde-rs/serde/issues/1970))

###
[`v1.0.122`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.122)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.121...v1.0.122)

- Add IntoDeserializer impl for &\[u8]
([#&#8203;1898](https://togithub.com/serde-rs/serde/issues/1898), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))

- Handle unrecognized numeric field keys during deserialization of a
field_identifier, equivalently to string field keys
([#&#8203;1914](https://togithub.com/serde-rs/serde/issues/1914), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))

- Add attribute to override default deserialization failure expectation
message
([#&#8203;1916](https://togithub.com/serde-rs/serde/issues/1916), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))

    ```rust
    #[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
([#&#8203;1918](https://togithub.com/serde-rs/serde/issues/1918), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))

- Produce more accurate location information on test failures from
`serde_test` crate
([#&#8203;1920](https://togithub.com/serde-rs/serde/issues/1920), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))

- Improve diagnostic on failure to parse a `rename_all` attribute
([#&#8203;1960](https://togithub.com/serde-rs/serde/issues/1960),
[#&#8203;1961](https://togithub.com/serde-rs/serde/issues/1961))

- Eliminate unnecessary trait bounds on some value Deserializer impls
([#&#8203;1963](https://togithub.com/serde-rs/serde/issues/1963))

###
[`v1.0.121`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.121)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.120...v1.0.121)

- Support borrowed data during deserialization of a field identifier
([#&#8203;1917](https://togithub.com/serde-rs/serde/issues/1917), thanks
[@&#8203;Mingun](https://togithub.com/Mingun))
- Fix panic when deserializing `Duration` with nanoseconds that cause
the seconds counter to overflow
([#&#8203;1958](https://togithub.com/serde-rs/serde/issues/1958), thanks
[@&#8203;jonasbb](https://togithub.com/jonasbb))

###
[`v1.0.120`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.120)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.119...v1.0.120)

- Fix deserialization of ignored fields containing 128-bit integer
([#&#8203;1955](https://togithub.com/serde-rs/serde/issues/1955), thanks
[@&#8203;TheJokr](https://togithub.com/TheJokr))

###
[`v1.0.119`](https://togithub.com/serde-rs/serde/compare/v1.0.118...v1.0.119)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.118...v1.0.119)

###
[`v1.0.118`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.118)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.117...v1.0.118)

- Support serialization of core::num::Wrapping in no_std mode
([#&#8203;1926](https://togithub.com/serde-rs/serde/issues/1926), thanks
[@&#8203;attente](https://togithub.com/attente))

###
[`v1.0.117`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.117)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.116...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](https://togithub.com/rust-lang/rust/pull/77426))

###
[`v1.0.116`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.116)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.115...v1.0.116)

- Fix deserialization of IpAddr, SocketAddr, Bound, Result, OsString in
formats which process variant identifiers as u64
([#&#8203;1888](https://togithub.com/serde-rs/serde/issues/1888), thanks
[@&#8203;joshtriplett](https://togithub.com/joshtriplett))

###
[`v1.0.115`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.115)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.114...v1.0.115)

- Support `#[serde(flatten)]` on a field whose type is a type parameter
and concrete type is `()`
([#&#8203;1873](https://togithub.com/serde-rs/serde/issues/1873))

###
[`v1.0.114`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.114)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.113...v1.0.114)

- Improve `packed` repr matching to support deriving Serialize for
structs having `repr(C, packed)`
([#&#8203;1813](https://togithub.com/serde-rs/serde/issues/1813), thanks
[@&#8203;TannerRogalsky](https://togithub.com/TannerRogalsky))

###
[`v1.0.113`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.113)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.112...v1.0.113)

- Improve diagnostic when a serde trait is not implemented
([#&#8203;1827](https://togithub.com/serde-rs/serde/issues/1827), thanks
[@&#8203;taiki-e](https://togithub.com/taiki-e))

###
[`v1.0.112`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.112)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.111...v1.0.112)

- Support `serde(flatten)` on map types where the Serializer only works
with serialize_entry
([#&#8203;1837](https://togithub.com/serde-rs/serde/issues/1837))

###
[`v1.0.111`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.111)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.110...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 }`
([#&#8203;1821](https://togithub.com/serde-rs/serde/issues/1821))

###
[`v1.0.110`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.110)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.109...v1.0.110)

- Support deriving Serialize impl for a `repr(packed)` struct
([#&#8203;1791](https://togithub.com/serde-rs/serde/issues/1791), thanks
[@&#8203;alvardes](https://togithub.com/alvardes))

###
[`v1.0.109`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.109)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.108...v1.0.109)

- Allow adjacently tagged newtype variants containing `Option` to omit
the content field when deserializing
([#&#8203;1553](https://togithub.com/serde-rs/serde/issues/1553),
[#&#8203;1706](https://togithub.com/serde-rs/serde/issues/1706), thanks
[@&#8203;zth0](https://togithub.com/zth0))
- Avoid panicking when a SystemTime older than UNIX_EPOCH is serialized
([#&#8203;1702](https://togithub.com/serde-rs/serde/issues/1702), thanks
[@&#8203;hjiayz](https://togithub.com/hjiayz))

###
[`v1.0.108`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.108)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.107...v1.0.108)

- Provide a `Serializer` impl that can write primitives and unit
variants to a `&mut fmt::Formatter`
([#&#8203;1705](https://togithub.com/serde-rs/serde/issues/1705), thanks
[@&#8203;jethrogb](https://togithub.com/jethrogb))

    ```rust
    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`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.107)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.106...v1.0.107)

- Fix panic during macro expansion when using `serde(skip)` and
`serde(other)` in the same enum
([#&#8203;1804](https://togithub.com/serde-rs/serde/issues/1804))

###
[`v1.0.106`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.106)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.105...v1.0.106)

- Hide dummy const implementation detail from rustdoc when documenting a
binary crate
([#&#8203;1768](https://togithub.com/serde-rs/serde/issues/1768), thanks
[@&#8203;robo9k](https://togithub.com/robo9k))

###
[`v1.0.105`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.105)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.104...v1.0.105)

- Allow #\[serde(borrow)] to work on non-standard `Cow` types
([#&#8203;1754](https://togithub.com/serde-rs/serde/issues/1754), thanks
[@&#8203;maciejhirsz](https://togithub.com/maciejhirsz))

###
[`v1.0.104`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.104)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.103...v1.0.104)

- Revert stabilization of Serialize/Deserialize impls for `!` to account
for
[https://github.com/rust-lang/rust/pull/67224](https://togithub.com/rust-lang/rust/pull/67224)

###
[`v1.0.103`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.103)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.102...v1.0.103)

- Support deserializing untagged unit variants from formats that treat
unit as None
([#&#8203;1668](https://togithub.com/serde-rs/serde/issues/1668))

###
[`v1.0.102`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.102)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.101...v1.0.102)

- Support deserializing `PathBuf` from bytes like `&Path` already did,
and support deserializing `Box<Path>`
([#&#8203;1656](https://togithub.com/serde-rs/serde/issues/1656), thanks
[@&#8203;heftig](https://togithub.com/heftig))

###
[`v1.0.101`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.101)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.100...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
([#&#8203;1617](https://togithub.com/serde-rs/serde/issues/1617), thanks
[@&#8203;arilotter](https://togithub.com/arilotter))

- Support skip attribute inside of newtype variants
([#&#8203;1622](https://togithub.com/serde-rs/serde/issues/1622), thanks
[@&#8203;Xaeroxe](https://togithub.com/Xaeroxe))

###
[`v1.0.100`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.100)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.99...v1.0.100)

- 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).

    ```rust
    #[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:

    ```rust
    #[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:

    ```toml
    [features]
    std = ["serde/std"]
    ```

    ```rust
    #[cfg(feature = "std")]
    impl std::error::Error for MySerError {}
    ```

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

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

###
[`v1.0.99`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.99)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.98...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`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.98)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.97...v1.0.98)

- Add support for NonZeroI\* types
([#&#8203;1589](https://togithub.com/serde-rs/serde/issues/1589), thanks
[@&#8203;Flaise](https://togithub.com/Flaise))

###
[`v1.0.97`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.97)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.96...v1.0.97)

- Introduce `serde(try_from = "...")` attribute to derive Deserialize
based on a given implementation of
[`std::convert::TryFrom`](https://doc.rust-lang.org/std/convert/trait.TryFrom.html)
([#&#8203;1526](https://togithub.com/serde-rs/serde/issues/1526), thanks
[@&#8203;fanzeyi](https://togithub.com/fanzeyi))

    ```rust
    #[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`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.96)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.95...v1.0.96)

- Implement serialization and deserialization for std::sync::atomic
types ([#&#8203;1572](https://togithub.com/serde-rs/serde/issues/1572)
and [#&#8203;1581](https://togithub.com/serde-rs/serde/issues/1581),
thanks [@&#8203;Roguelazer](https://togithub.com/Roguelazer))
- Make "alloc" feature work on stable Rust 1.36+
([#&#8203;1576](https://togithub.com/serde-rs/serde/issues/1576), thanks
[@&#8203;c410-f3r](https://togithub.com/c410-f3r))

###
[`v1.0.95`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.95)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.94...v1.0.95)

*yanked*

###
[`v1.0.94`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.94)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.93...v1.0.94)

- Accept enums in input data when deserializing IgnoredAny
([#&#8203;1558](https://togithub.com/serde-rs/serde/issues/1558))

###
[`v1.0.93`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.93)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.92...v1.0.93)

- Allow integer keys in untagged flattened map
([#&#8203;1545](https://togithub.com/serde-rs/serde/issues/1545))

###
[`v1.0.92`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.92)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.91...v1.0.92)

- Support using `serde(flatten)` in no_std + alloc mode
([#&#8203;1543](https://togithub.com/serde-rs/serde/issues/1543), thanks
[@&#8203;jplatte](https://togithub.com/jplatte))

###
[`v1.0.91`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.91)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.90...v1.0.91)

- Support deserializing from MapAccessDeserializer into an enum
([#&#8203;1522](https://togithub.com/serde-rs/serde/issues/1522))

###
[`v1.0.90`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.90)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.89...v1.0.90)

- 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
([#&#8203;1499](https://togithub.com/serde-rs/serde/issues/1499), thanks
[@&#8203;sgrif](https://togithub.com/sgrif))

    ```rust
    #[derive(Deserialize)]
    #[serde(crate = "__tw::codegen::serde")]
    struct S { ... }
    ```

    ```rust
    // expands to:
    impl<'de> __tw::codegen::serde::Deserialize<'de> for S {
        ...
    }
    ```

###
[`v1.0.89`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.89)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.88...v1.0.89)

- Implement Serialize and Deserialize for core::cmp::Reverse\<T>
([#&#8203;1486](https://togithub.com/serde-rs/serde/issues/1486), thanks
[@&#8203;vorot93](https://togithub.com/vorot93))
- Fix a Clippy lint triggered within generated code involving flatten +
deny_unknown_fields
([#&#8203;1492](https://togithub.com/serde-rs/serde/issues/1492), thanks
[@&#8203;thomaseizinger](https://togithub.com/thomaseizinger))

###
[`v1.0.88`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.88)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.87...v1.0.88)

- Support `flatten` and `skip_serializing` / `skip_deserializing`
attributes on the same field

###
[`v1.0.87`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.87)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.86...v1.0.87)

- Fix inclusion of tag in struct containing flattened fields
([#&#8203;1468](https://togithub.com/serde-rs/serde/issues/1468), thanks
[@&#8203;jwillbold](https://togithub.com/jwillbold))

###
[`v1.0.86`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.86)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.85...v1.0.86)

- Implement Serialize and Deserialize for core::ops::Bound\<T>
([#&#8203;1466](https://togithub.com/serde-rs/serde/issues/1466), thanks
[@&#8203;0nkery](https://togithub.com/0nkery))

###
[`v1.0.85`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.85)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.84...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
([#&#8203;1458](https://togithub.com/serde-rs/serde/issues/1458), thanks
[@&#8203;Lymia](https://togithub.com/Lymia))

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

###
[`v1.0.84`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.84)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.83...v1.0.84)

-   Update example code in documentation to 2018 edition

###
[`v1.0.83`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.83)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.82...v1.0.83)

- Support a `rename_all` specification that applies only to the
Serialize impl or only to the Deserialize impl
([#&#8203;1447](https://togithub.com/serde-rs/serde/issues/1447), thanks
[@&#8203;vincascm](https://togithub.com/vincascm))

    ```rust
    #[derive(Serialize, Deserialize)]
    #[serde(rename_all(
        serialize = "camelCase",
        deserialize = "SCREAMING_SNAKE_CASE",
    ))]
    struct S { /* ... */ }
    ```

- Allow serializing struct name inside of structs with named fields
([#&#8203;1448](https://togithub.com/serde-rs/serde/issues/1448), thanks
[@&#8203;motu42](https://togithub.com/motu42))

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

###
[`v1.0.82`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.82)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.81...v1.0.82)

- Support `serde(default)` attribute inside of tuple structs and tuple
variants
([#&#8203;1442](https://togithub.com/serde-rs/serde/issues/1442), thanks
[@&#8203;tcr](https://togithub.com/tcr))

###
[`v1.0.81`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.81)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.80...v1.0.81)

- Better error messages when using an invalid combination of serde
attributes
([#&#8203;1424](https://togithub.com/serde-rs/serde/issues/1424), thanks
[@&#8203;hcpl](https://togithub.com/hcpl))
- Support deserializing tagged enums inside of untagged enums in formats
that encode tagged enum variants by index, like MessagePack
([#&#8203;1437](https://togithub.com/serde-rs/serde/issues/1437), thanks
[@&#8203;daboross](https://togithub.com/daboross))

###
[`v1.0.80`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.80)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.79...v1.0.80)

- Performance optimization for `Vec::deserialize_in_place` to
deserialize elements in place
([#&#8203;1411](https://togithub.com/serde-rs/serde/issues/1411))

###
[`v1.0.79`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.79)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.78...v1.0.79)

- Add `serde(other)` variant attribute for deserializing any variant
that is not one of the others
([#&#8203;1382](https://togithub.com/serde-rs/serde/issues/1382))

    ```rust
    #[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`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.78)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.77...v1.0.78)

- Fix panic deserializing flattened Value after flattened struct
([#&#8203;1379](https://togithub.com/serde-rs/serde/issues/1379))

###
[`v1.0.77`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.77)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.76...v1.0.77)

- Fix internally tagged enum deserialization with unknown fields
([#&#8203;1376](https://togithub.com/serde-rs/serde/issues/1376), thanks
[@&#8203;dreid](https://togithub.com/dreid))

###
[`v1.0.76`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.76)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.75...v1.0.76)

- Provide impls for
[`NonZeroU128`](https://doc.rust-lang.org/std/num/struct.NonZeroU128.html)
([#&#8203;1371](https://togithub.com/serde-rs/serde/issues/1371), thanks
[@&#8203;hcpl](https://togithub.com/hcpl))

###
[`v1.0.75`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.75)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.74...v1.0.75)

- Adjust dependency version requirement to support building with `-Z
minimal-versions` in CI
([#&#8203;1367](https://togithub.com/serde-rs/serde/issues/1367))

###
[`v1.0.74`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.74)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.73...v1.0.74)

- Disable i128 integers on Emscripten targets
([#&#8203;1365](https://togithub.com/serde-rs/serde/issues/1365), thanks
[@&#8203;koute](https://togithub.com/koute))

###
[`v1.0.73`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.73)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.72...v1.0.73)

- Fix the names of serialized fields when the Rust data structure uses a
raw identifier
([#&#8203;1362](https://togithub.com/serde-rs/serde/issues/1362))

###
[`v1.0.72`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.72)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.71...v1.0.72)

- Fix compilation of `default-features = false, features = ["alloc",
"rc"]` feature combination
([#&#8203;1359](https://togithub.com/serde-rs/serde/issues/1359), thanks
[@&#8203;Pratyush](https://togithub.com/Pratyush))

###
[`v1.0.71`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.71)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.70...v1.0.71)

- Provide impls for
[`core::ops::RangeInclusive`](https://doc.rust-lang.org/core/ops/struct.RangeInclusive.html)
([#&#8203;1347](https://togithub.com/serde-rs/serde/issues/1347), thanks
[@&#8203;c410-f3r](https://togithub.com/c410-f3r))
- Provide impls for
[`core::ops::Range`](https://doc.rust-lang.org/core/ops/struct.Range.html)
whether or not `"std"` feature is enabled
([#&#8203;1348](https://togithub.com/serde-rs/serde/issues/1348))

###
[`v1.0.70`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.70)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.69...v1.0.70)

- Update `--features alloc` to work with nightly-2018-07-07
([#&#8203;1335](https://togithub.com/serde-rs/serde/issues/1335))

###
[`v1.0.69`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.69)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.68...v1.0.69)

- Support Rust 2018 `use_extern_macros`
([https://github.com/rust-lang/rust/pull/51496](https://togithub.com/rust-lang/rust/pull/51496))

###
[`v1.0.68`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.68)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.67...v1.0.68)

- Suppress 'extern crate' warning for rust 2018
([#&#8203;1324](https://togithub.com/serde-rs/serde/issues/1324), thanks
[@&#8203;jechase](https://togithub.com/jechase))

###
[`v1.0.67`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.67)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.66...v1.0.67)

- Implement Serialize for core::fmt::Arguments
([#&#8203;1319](https://togithub.com/serde-rs/serde/issues/1319))

###
[`v1.0.66`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.66)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.65...v1.0.66)

- Implement Serialize and Deserialize for `!`
([#&#8203;544](https://togithub.com/serde-rs/serde/issues/544),
unstable)
- Support Duration in no-std mode on sufficiently new compilers
([#&#8203;1123](https://togithub.com/serde-rs/serde/issues/1123))
- Improve compiler error messages
([#&#8203;1297](https://togithub.com/serde-rs/serde/issues/1297), thanks
[@&#8203;adamcrume](https://togithub.com/adamcrume))

###
[`v1.0.65`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.65)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.64...v1.0.65)

- Do not panic when serializing a RefCell that is currently mutably
borrowed
([#&#8203;1300](https://togithub.com/serde-rs/serde/issues/1300), thanks
[@&#8203;xfix](https://togithub.com/xfix))
- Allow flattened fields after a flattened map to receive input fields
([#&#8203;1299](https://togithub.com/serde-rs/serde/issues/1299))

###
[`v1.0.64`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.64)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.63...v1.0.64)

- Second attempt to work around docs.rs old compiler version
([#&#8203;1295](https://togithub.com/serde-rs/serde/issues/1295))

###
[`v1.0.63`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.63)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.62...v1.0.63)

- Workaround to get docs.rs successfully building our docs with its old
compiler
([#&#8203;1294](https://togithub.com/serde-rs/serde/issues/1294))

###
[`v1.0.62`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.62)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.61...v1.0.62)

- Implement
[`IntoDeserializer`](https://docs.serde.rs/serde/de/trait.IntoDeserializer.html)
for i128 and u128
([#&#8203;1280](https://togithub.com/serde-rs/serde/issues/1280))
- Implement Copy for the primitive value deserializers
([#&#8203;1287](https://togithub.com/serde-rs/serde/issues/1287))
- Implement Clone for primitive value deserializers even when the error
type cannot be cloned
([#&#8203;1287](https://togithub.com/serde-rs/serde/issues/1287))

###
[`v1.0.61`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.61)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.60...v1.0.61)

- Stabilize Deserialize impls for dynamically sized Rc / Arc
([#&#8203;1266](https://togithub.com/serde-rs/serde/issues/1266))
- Stabilize Deserialize impl for Box\<CStr>
([#&#8203;1267](https://togithub.com/serde-rs/serde/issues/1267))

###
[`v1.0.60`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.60)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.59...v1.0.60)

- Add Serde impls for i128 and u128 when compiling with Rust 1.26+
([#&#8203;1263](https://togithub.com/serde-rs/serde/issues/1263))
- Stabilize Serde impls for std::num::NonZero\* on Rust 1.28+
([#&#8203;1278](https://togithub.com/serde-rs/serde/issues/1278), thanks
[@&#8203;SimonSapin](https://togithub.com/SimonSapin))

###
[`v1.0.59`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.59)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.58...v1.0.59)

- Add a `serde(transparent)` container attribute to indicate that a
struct serializes and deserializes the same as its only field --
analogous to `repr(transparent)`
([#&#8203;1054](https://togithub.com/serde-rs/serde/issues/1054))

###
[`v1.0.58`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.58)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.57...v1.0.58)

- Fix generated code for deserializing untagged newtype variant
([#&#8203;1268](https://togithub.com/serde-rs/serde/issues/1268))

###
[`v1.0.57`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.57)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.56...v1.0.57)

- Remove unstable Serialize and Deserialize impls for `NonZero<T>` which
has been removed from the most recent nightly compiler
([#&#8203;1265](https://togithub.com/serde-rs/serde/issues/1265))

###
[`v1.0.56`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.56)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.55...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
[#&#8203;1136](https://togithub.com/serde-rs/serde/issues/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 o

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 9pm,before 6am" in timezone
Europe/Zurich, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/smartive/zitadel-rust).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants