tree 命令的 JSON 输出改进与陷阱

2025-07-25
tree 命令的 JSON 输出改进与陷阱

tree 命令的 2.0 版本增加了通过文件描述符 3 输出未缩进 JSON 的功能(目前仅限 Linux)。然而,这一功能的初始实现存在问题,因为它假设了用户环境中存在特定的文件描述符。这导致了严重的兼容性问题,因此在 2.0.2 版本中,该功能被修改为仅在设置环境变量 STDDATA_FD 时才启用。这个故事突出了在软件开发中避免假设用户环境的必要性,同时也展示了 tree 命令如何通过 STDDATA_FD 环境变量灵活地输出结构化数据,并可以用 nushell 进行进一步处理。

阅读更多

Rust Derive宏的局限性与解决方案

2025-07-08
Rust Derive宏的局限性与解决方案

Rust的`#[derive]`宏在生成`Clone`等trait实现时,要求所有泛型参数也必须实现`Clone`,这限制了其应用场景。文章分析了两个例子,说明了该限制导致代码无法编译的原因。作者提出了两种解决方案:一是提交RFC修改编译器行为,二是编写自定义宏来绕过限制。作者选择后者,并计划在`derive_more` crate或自行创建的crate中实现更灵活的derive宏,以解决这个问题。

阅读更多
开发