Update Rust crate thiserror to v2 (#47)
All checks were successful
continuous-integration/drone/push Build is passing

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [thiserror](https://github.com/dtolnay/thiserror) | dependencies | major | `1.0.61` -> `2.0.0` |

---

### Release Notes

<details>
<summary>dtolnay/thiserror (thiserror)</summary>

### [`v2.0.12`](https://github.com/dtolnay/thiserror/releases/tag/2.0.12)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.11...2.0.12)

-   Prevent elidable_lifetime_names pedantic clippy lint in generated impl ([#&#8203;413](https://github.com/dtolnay/thiserror/issues/413))

### [`v2.0.11`](https://github.com/dtolnay/thiserror/releases/tag/2.0.11)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.10...2.0.11)

-   Add feature gate to tests that use std ([#&#8203;409](https://github.com/dtolnay/thiserror/issues/409), [#&#8203;410](https://github.com/dtolnay/thiserror/issues/410), thanks [@&#8203;Maytha8](https://github.com/Maytha8))

### [`v2.0.10`](https://github.com/dtolnay/thiserror/releases/tag/2.0.10)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.9...2.0.10)

-   Support errors containing a generic type parameter's associated type in a field ([#&#8203;408](https://github.com/dtolnay/thiserror/issues/408))

### [`v2.0.9`](https://github.com/dtolnay/thiserror/releases/tag/2.0.9)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.8...2.0.9)

-   Work around `missing_inline_in_public_items` clippy restriction being triggered in macro-generated code ([#&#8203;404](https://github.com/dtolnay/thiserror/issues/404))

### [`v2.0.8`](https://github.com/dtolnay/thiserror/releases/tag/2.0.8)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.7...2.0.8)

-   Improve support for macro-generated `derive(Error)` call sites ([#&#8203;399](https://github.com/dtolnay/thiserror/issues/399))

### [`v2.0.7`](https://github.com/dtolnay/thiserror/releases/tag/2.0.7)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.6...2.0.7)

-   Work around conflict with #\[deny(clippy::allow_attributes)] ([#&#8203;397](https://github.com/dtolnay/thiserror/issues/397), thanks [@&#8203;zertosh](https://github.com/zertosh))

### [`v2.0.6`](https://github.com/dtolnay/thiserror/releases/tag/2.0.6)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.5...2.0.6)

-   Suppress deprecation warning on generated From impls ([#&#8203;396](https://github.com/dtolnay/thiserror/issues/396))

### [`v2.0.5`](https://github.com/dtolnay/thiserror/releases/tag/2.0.5)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.4...2.0.5)

-   Prevent deprecation warning on generated impl for deprecated type ([#&#8203;394](https://github.com/dtolnay/thiserror/issues/394))

### [`v2.0.4`](https://github.com/dtolnay/thiserror/releases/tag/2.0.4)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.3...2.0.4)

-   Eliminate needless_lifetimes clippy lint in generated `From` impls ([#&#8203;391](https://github.com/dtolnay/thiserror/issues/391), thanks [@&#8203;matt-phylum](https://github.com/matt-phylum))

### [`v2.0.3`](https://github.com/dtolnay/thiserror/releases/tag/2.0.3)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.2...2.0.3)

-   Support the same Path field being repeated in both Debug and Display representation in error message ([#&#8203;383](https://github.com/dtolnay/thiserror/issues/383))
-   Improve error message when a format trait used in error message is not implemented by some field ([#&#8203;384](https://github.com/dtolnay/thiserror/issues/384))

### [`v2.0.2`](https://github.com/dtolnay/thiserror/releases/tag/2.0.2)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.1...2.0.2)

-   Fix hang on invalid input inside #\[error(...)] attribute ([#&#8203;382](https://github.com/dtolnay/thiserror/issues/382))

### [`v2.0.1`](https://github.com/dtolnay/thiserror/releases/tag/2.0.1)

[Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.0...2.0.1)

-   Support errors that contain a dynamically sized final field ([#&#8203;375](https://github.com/dtolnay/thiserror/issues/375))
-   Improve inference of trait bounds for fields that are interpolated multiple times in an error message ([#&#8203;377](https://github.com/dtolnay/thiserror/issues/377))

### [`v2.0.0`](https://github.com/dtolnay/thiserror/releases/tag/2.0.0)

[Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.69...2.0.0)

#### Breaking changes

-   Referencing keyword-named fields by a raw identifier like `{r#type}` inside a format string is no longer accepted; simply use the unraw name like `{type}` ([#&#8203;347](https://github.com/dtolnay/thiserror/issues/347))

    This aligns thiserror with the standard library's formatting macros, which gained support for implicit argument capture later than the release of this feature in thiserror 1.x.

    ```rust
    #[derive(Error, Debug)]
    #[error("... {type} ...")]  // Before: {r#type}
    pub struct Error {
        pub r#type: Type,
    }
    ```

-   Trait bounds are no longer inferred on fields whose value is shadowed by an explicit named argument in a format message ([#&#8203;345](https://github.com/dtolnay/thiserror/issues/345))

    ```rust
    // Before: impl<T: Octal> Display for Error<T>
    // After: impl<T> Display for Error<T>
    #[derive(Error, Debug)]
    #[error("{thing:o}", thing = "...")]
    pub struct Error<T> {
        thing: T,
    }
    ```

-   Tuple structs and tuple variants can no longer use numerical `{0}` `{1}` access at the same time as supplying extra positional arguments for a format message, as this makes it ambiguous whether the number refers to a tuple field vs a different positional arg ([#&#8203;354](https://github.com/dtolnay/thiserror/issues/354))

    ```rust
    #[derive(Error, Debug)]
    #[error("ambiguous: {0} {}", $N)]
    //                  ^^^ Not allowed, use #[error("... {0} {n}", n = $N)]
    pub struct TupleError(i32);
    ```

-   Code containing invocations of thiserror's `derive(Error)` must now have a direct dependency on the `thiserror` crate regardless of the error data structure's contents ([#&#8203;368](https://github.com/dtolnay/thiserror/issues/368), [#&#8203;369](https://github.com/dtolnay/thiserror/issues/369), [#&#8203;370](https://github.com/dtolnay/thiserror/issues/370), [#&#8203;372](https://github.com/dtolnay/thiserror/issues/372))

#### Features

-   Support disabling thiserror's standard library dependency by disabling the default "std" Cargo feature: `thiserror = { version = "2", default-features = false }` ([#&#8203;373](https://github.com/dtolnay/thiserror/issues/373))

-   Support using `r#source` as field name to opt out of a field named "source" being treated as an error's `Error::source()` ([#&#8203;350](https://github.com/dtolnay/thiserror/issues/350))

    ```rust
    #[derive(Error, Debug)]
    #[error("{source} ==> {destination}")]
    pub struct Error {
        r#source: char,
        destination: char,
    }

    let error = Error { source: 'S', destination: 'D' };
    ```

-   Infinite recursion in a generated Display impl now produces an `unconditional_recursion` warning ([#&#8203;359](https://github.com/dtolnay/thiserror/issues/359))

    ```rust
    #[derive(Error, Debug)]
    #[error("??? {self}")]
    pub struct Error;
    ```

-   A new attribute `#[error(fmt = path::to::myfmt)]` can be used to write formatting logic for an enum variant out-of-line ([#&#8203;367](https://github.com/dtolnay/thiserror/issues/367))

    ```rust
    #[derive(Error, Debug)]
    pub enum Error {
        #[error(fmt = demo_fmt)]
        Demo { code: u16, message: Option<String> },
    }

    fn demo_fmt(code: &u16, message: &Option<String>, formatter: &mut fmt::Formatter) -> fmt::Result {
        write!(formatter, "{code}")?;
        if let Some(msg) = message {
            write!(formatter, " - {msg}")?;
        }
        Ok(())
    }
    ```

-   Enums with an enum-level format message are now able to have individual variants that are `transparent` to supersede the enum-level message ([#&#8203;366](https://github.com/dtolnay/thiserror/issues/366))

    ```rust
    #[derive(Error, Debug)]
    #[error("my error {0}")]
    pub enum Error {
        Json(#[from] serde_json::Error),
        Yaml(#[from] serde_yaml::Error),
        #[error(transparent)]
        Other(#[from] anyhow::Error),
    }
    ```

</details>

---

### Configuration

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

🚦 **Automerge**: Disabled because a matching PR was automerged previously.

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

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

---

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

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44LjAiLCJ1cGRhdGVkSW5WZXIiOiIzOS4xOTQuMCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->

Reviewed-on: https://gitea.communiquons.org/pierre/GrammalecteClient/pulls/47
Co-authored-by: Pierre HUBERT <pierre@noreply.localhost>
Co-committed-by: Pierre HUBERT <pierre@noreply.localhost>
This commit is contained in:
Pierre HUBERT 2025-03-28 15:44:22 +00:00 committed by Pierre HUBERT
parent c562dd014b
commit c094d9cfbe

View File

@ -21,7 +21,7 @@ zip = { version = "2.1.3", optional = true }
mktemp = { version = "0.5.0", optional = true }
rand = { version = "0.9.0", optional = true }
port_scanner = { version = "0.1.5", optional = true }
thiserror = "1.0.61"
thiserror = "2.0.0"
[features]
embedded-server = ["zip", "mktemp", "rand", "port_scanner"]