#traits #array #macro

no-std arr_ty

智能数组初始化宏(最佳用于特例对象元素类型)

4 个版本

0.2.2 2024 年 1 月 14 日
0.2.1 2023 年 7 月 30 日
0.2.0 2023 年 4 月 2 日
0.1.0 2023 年 4 月 2 日

1087Rust 模式

每月 21 次下载

MIT/Apache

7KB

arr_ty

智能数组初始化宏(最佳用于特例对象元素类型)。

此 crate 的作者英语不太好。
如果文档难以阅读,请见谅。

这是什么?

此 crate 让初始化元素类型为特例对象的数组变得稍微智能一些(仅作者的个人感觉...)。

let arr = arr_ty!(Box<dyn Any>; [
    Box::new(0),
    Box::new(false),
    Box::new("false")
]);

据作者了解,截至 2023 年,Rust (1.68.2) 以下代码存在以下不智能之处。

  • 冗余...

    let arr = [
        Box::new(0) as Box<dyn Any>,
        Box::new(false) as Box<dyn Any>,
        Box::new("false") as Box<dyn Any>
    ];
    
  • 或无统一...

    let arr = [
        Box::new(0) as Box<dyn Any>,
        Box::new(false),
        Box::new("false")
    ];
    
  • 或手动计数...

    let arr: [Box<dyn Any>; 3] = [
        Box::new(0),
        Box::new(false),
        Box::new("false")
    ];
    

新增内容

v0.2.1-0.2.2

  • 轻微重构。

v0.2.0

  • 移除了元素类型的限制。
    例如:由特例对象组成的元组类型可以用作元素类型。

    let arr = arr_ty!((i32, Box<dyn Any>); [
        (0, Box::new(false)),
        (0, Box::new("false"))
    ]);
    

无运行时依赖