Saída JSON do comando tree: Uma história de advertência sobre suposições

2025-07-25
Saída JSON do comando tree: Uma história de advertência sobre suposições

A versão 2.0 do comando `tree` introduziu a capacidade de gerar saída JSON não indentada através do descritor de arquivo 3 (apenas Linux). No entanto, essa implementação inicial fez uma suposição perigosa sobre o ambiente do usuário, levando a problemas generalizados de compatibilidade. A versão 2.0.2 corrigiu isso exigindo que a variável de ambiente `STDDATA_FD` seja definida. Isso destaca a importância de evitar suposições sobre o ambiente do usuário no desenvolvimento de software. O comando `tree` aprimorado agora oferece saída de dados estruturados flexível por meio da variável `STDDATA_FD`, facilmente processada com ferramentas como o nushell.

Leia mais
Desenvolvimento comando tree

Limitações da macro `#[derive]` do Rust e soluções alternativas

2025-07-08
Limitações da macro `#[derive]` do Rust e soluções alternativas

A macro `#[derive]` do Rust, ao gerar implementações para traits como `Clone`, exige que todos os parâmetros genéricos também implementem `Clone`. Isso limita sua aplicabilidade. O artigo analisa dois exemplos mostrando por que essa restrição impede a compilação do código. O autor propõe duas soluções: enviar um RFC para alterar o comportamento do compilador e escrever uma macro personalizada para contornar a limitação. O autor opta pela segunda opção, planejando implementar macros `derive` mais flexíveis no crate `derive_more` ou em um crate próprio para resolver esse problema.

Leia mais
Desenvolvimento