#readability #reference #pointers #unwrap #extension

unbox-box

“为什么我昨天在那个变量前放了一个 *?” - 如果 var 是一个 Box,使用 var.unbox_ref() 而不是 .&*var 以获得更好的可读性

1 个不稳定版本

0.1.0 2021 年 5 月 4 日

#18#readability

MIT/Apache

6KB
59

unbox-box

此软件包提供 .unbox_ref().unbox_mut() 方法在 Box 类型上。它们与 .deref().deref_mut() 相等,但可以更容易地看出正在操作的变量是 Box 类型。

用法

今天早上醒来时,这个想法出现在我脑海中,当我看到这段代码时,我对为什么变量前面有一个解引用运算符 * 非常不确定。

let expr: &syn::ExprLit = match &*assignment.expr { ... };

现在我可以导入

unbox-box = "0.1"

并可以将此代码替换为

use unbox_box::BoxExt as _;
let expr: &syn::ExprLit = match assignment.expr.unbox_ref() { ... };

明天早上醒来时,我非常确信我会认识到 assignment.expr 是一个 Box。祝我好运!

许可证

根据您的选择,受 Apache 许可证 2.0 版或 MIT 许可证的许可。

除非您明确表示,否则,根据 Apache-2.0 许可证定义的,您有意提交的任何贡献,都应按上述方式双重许可,没有任何额外的条款或条件。

无运行时依赖项