16-常用的过程宏软件包
9.14 常用的过程宏软件包
由于过程宏可以作为独立的软件包进行分发,因此可以在crates.io上找到许多实用的宏软件包。通过它们可以大大减少为生成Rust代码而手动编写模板的工作量。其中一些如下所示。
- derive-new:该软件包为结构体提供了默认的全字段构造函数,并且支持自定义。
- derive-more:该软件包可以绕过这样的限制,即我们已经为类型包装了许多自动实现的特征,但是失去了为其创建自定义类型包装的能力。该软件包可以帮助我们提供相同的特征集,即使是在这种包装器类型上也是如此。
- lazy_static:该软件包提供了一个类函数的过程宏,其名为lazy_static!,你可以在其中声明需要动态初始化类型的静态值。例如,你可以将配置对象声明为HashMap,并可以跨代码库全局访问它。