Deriving `zeroize::Zeroize` requires the `Zeroize` trait to already be in scope
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Exécutez la reproduction minimale dans src/lib.rs et inspectez l’expansion du derive de zeroize::Zeroize, en utilisant la comparaison du derive de serde comme contexte. Confirmez que le problème est résolu lorsque le derive de zeroize::Zeroize ne nécessite plus un import explicite de use zeroize::Zeroize, tandis que la reproduction compile toujours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Rust
- Étoiles
- 674
- Forks
- 170
- Merge moyen
- 1 j 12 h
- PR mergées (30 j)
- 10
Préparer son environnement
Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de RustCrypto/utils
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
RustCrypto/utils#1546 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
RustCrypto/utils#1537 · 7 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
RustCrypto/utils#1534 · 2 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 45/100
RustCrypto/utils#1529 · 4 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
x86: guard CPUID leaf 7 by the maximum basic leaf; AVX detection may need XMM+YMM XCR0 stateOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
RustCrypto/utils#1510 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de RustCrypto/utils
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
linebender/parley#849 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
boxlite-ai/boxlite#1729 ·
Les mainteneurs répondent en général sous 1 jour
-
external
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
langchain-ai/docs#6255 ·
Les mainteneurs répondent en général sous 1 jour
-
P2 testing
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
Les mainteneurs répondent en général sous 1 jour