Sortie JSON de la commande tree : une mise en garde contre les hypothèses

2025-07-25
Sortie JSON de la commande tree : une mise en garde contre les hypothèses

La version 2.0 de la commande `tree` a introduit la possibilité de produire une sortie JSON non indentée via le descripteur de fichier 3 (Linux uniquement). Cependant, cette implémentation initiale a fait une hypothèse dangereuse concernant l’environnement de l’utilisateur, ce qui a entraîné des problèmes de compatibilité généralisés. La version 2.0.2 a corrigé cela en exigeant que la variable d’environnement `STDDATA_FD` soit définie. Cela souligne l’importance d’éviter les hypothèses concernant l’environnement de l’utilisateur dans le développement de logiciels. La commande `tree` améliorée offre désormais une sortie de données structurée flexible via `STDDATA_FD`, facilement traitée avec des outils comme nushell.

Lire plus
Développement commande tree

Limitations de la macro `#[derive]` de Rust et solutions alternatives

2025-07-08
Limitations de la macro `#[derive]` de Rust et solutions alternatives

La macro `#[derive]` de Rust, lors de la génération d'implémentations pour des traits comme `Clone`, exige que tous les paramètres génériques implémentent également `Clone`. Cela limite son applicabilité. L'article analyse deux exemples montrant pourquoi cette restriction empêche la compilation du code. L'auteur propose deux solutions : soumettre un RFC pour modifier le comportement du compilateur et écrire une macro personnalisée pour contourner la limitation. L'auteur opte pour la seconde solution, prévoyant d'implémenter des macros `derive` plus flexibles dans le crate `derive_more` ou dans un crate qu'il créera lui-même pour résoudre ce problème.

Lire plus
Développement