1 个不稳定版本
0.1.0 | 2023年9月25日 |
---|
#1878 在 过程宏
6KB
derive-enum-all-values
关于
一个过程宏,它公开了一个名为 all_values
的方法,该方法返回所有定义的值作为编译时静态。
用法
将 derive_enum_all_values
添加到您的 Cargo.toml
[dependencies]
derive_enum_all_values = "0.1.0"
然后为您的枚举推导 AllValues
use derive_enum_all_values::AllValues;
#[derive(AllValues)]
enum MyEnum {
Variant1,
Variant2,
// ... other variants ...
}
fn main() {
for variant in MyEnum::all_values() {
println!("{:?}", variant);
}
}
此宏生成以下代码
impl MyEnum {
pub fn all_values() -> &'static [MyEnum] {
&[MyEnum::Variant1, MyEnum::Variant2]
}
}
一个静态、编译时已知的数组,包含每个枚举值。
开发
如何开发此项目。
克隆此仓库
# When cloning, make sure symlinks are enabled
git clone -c core.symlinks=true https://github.com/Sewer56/derive-enum-all-values.git
安装Rust
Visual Studio Code集成
Code
/VSCode
是事实上的Rust开发环境。
以下扩展是必需的
- rust-analyzer 用于Rust支持。
- coverage-gutters 用于覆盖率支持。
- CodeLLDB 用于调试。
- crates 更容易的依赖关系管理。
Reloaded项目中(.vscode
)的VSCode配置包含以下内容
- 保存时运行Rust代码检查器
clippy
。 - 保存时运行代码格式化工具
rustfmt
。 - 常见操作的任务(生成文档、主动CI/CD等)。
这些配置在 .vscode
文件夹中;可以通过 Ctrl+Shift+P -> 运行任务
运行任务。
文件布局
以下是你项目的预期文件布局
.vscode/
src/
Cargo.toml
src
文件夹应包含你项目的所有源代码。
Cargo.toml
应该位于项目的根目录中。
贡献
请参阅CONTRIBUTING以获取如何为该项目做出贡献的指导。
许可协议
根据MIT协议授权。
依赖关系
~295–750KB
~18K SLoC