Deriving `zeroize::Zeroize` requires the `Zeroize` trait to already be in scope
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Führe die minimale Reproduktion in src/lib.rs aus und untersuche die Expansion des zeroize::Zeroize-Derives, wobei der serde-Derive-Vergleich als Kontext dient. Bestätige, dass das Problem behoben ist, wenn das Ableiten von zeroize::Zeroize nicht länger einen expliziten use zeroize::Zeroize-Import erfordert und die Reproduktion weiterhin kompiliert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Hi, while trying to add zeroize support to a crate I'm making, I found that I was getting a weird error about the Zeroize trait not being in scope:
error[E0405]: cannot find trait `Zeroize` in this scope
--> src\lib.rs:13:40
|
13 | #[cfg_attr(feature = "zeroize", derive(zeroize::Zeroize))]
| ^^^^^^^^^^^^^^^^ not found in this scope
|
= note: this error originates in the derive macro `zeroize::Zeroize` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider importing this trait
|
3 + use zeroize::Zeroize;
|
Here's a minimal reproduction (unfortunately I can't send a playground link, since the playground doesn't provide the zeroize derives):
#[derive(zeroize::Zeroize)]
struct A;
The fix is relatively simple:
use zeroize::Zeroize;
#[derive(zeroize::Zeroize)]
struct A;
though having a trait in scope solely for a derive feels... wrong.
I will note that serde is able to derive without its relevant traits in scope:
#[derive(serde::Serialize, serde::Deserialize)]
struct A;
So perhaps zeroize should be changed to do the same?
Thank you for your time, and hopefully this is a relatively easy fix.
- Vorherrschende Sprache
- Rust
- Sterne
- 674
- Forks
- 170
- Ø Merge
- 1 T. 12 Std.
- Gemergte PRs (30 T.)
- 10
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus RustCrypto/utils
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
RustCrypto/utils#1546 · 1 Kommentar ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
RustCrypto/utils#1537 · 7 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
RustCrypto/utils#1534 · 2 Kommentare ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 45/100
RustCrypto/utils#1529 · 4 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
RustCrypto/utils#1510 · 1 Kommentar ·
Alle Issues in RustCrypto/utils
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
bug good first issue package: quic
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
-
`dora trace view` sends a non-canonical full UUID as-is, so a valid trace ID shows "No spans found" Offencli coordinator rust
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
-
area: tasks enhancement good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Jason-jo17/Polybench#15 · 1 Kommentar ·