#enums #display #derive #traits

enum-display-derive

为简单枚举实现Display特质的自定义派生

2个版本

使用旧Rust 2015

0.1.1 2021年2月27日
0.1.0 2017年2月13日

389进程宏

Download history 8009/week @ 2024-03-14 8058/week @ 2024-03-21 7399/week @ 2024-03-28 9044/week @ 2024-04-04 7108/week @ 2024-04-11 7871/week @ 2024-04-18 7968/week @ 2024-04-25 7516/week @ 2024-05-02 7355/week @ 2024-05-09 6875/week @ 2024-05-16 9182/week @ 2024-05-23 8076/week @ 2024-05-30 8389/week @ 2024-06-06 7856/week @ 2024-06-13 7448/week @ 2024-06-20 5128/week @ 2024-06-27

每月下载量 30,407
68 crates(29 个直接使用)中使用

MIT/Apache

8KB
67

为枚举派生Display特质

Build Status

文档

此crate可以为非常简单的枚举派生Display实现,如下所示

#[macro_use]
extern crate enum_display_derive;

use std::fmt::Display;

#[derive(Display)]
enum FizzBuzz {
   Fizz,
   Buzz,
   FizzBuzz,
   Number(u64),
}

fn fb(i: u64) -> FizzBuzz {
   match (i % 3, i % 5) {
       (0, 0) => FizzBuzz::FizzBuzz,
       (0, _) => FizzBuzz::Fizz,
       (_, 0) => FizzBuzz::Buzz,
       (_, _) => FizzBuzz::Number(i),
   }
}

fn main() {
   for i in 0..100 {
       println!("{}", fb(i));
   }
}

你应该看到以下输出

FizzBuzz
1
2
Fizz
4
Buzz
Fizz
7
...

许可

根据以下之一许可

贡献

除非你明确声明,否则任何有意提交以包含在此作品中的贡献,根据Apache-2.0许可证定义,应按上述方式双许可,不附加任何额外条款或条件。

依赖

~1.5MB
~35K SLoC