#枚举 #宏推导 #整数 #转换 #int #try-from-int

int-to-c-enum

TryFromInt - 将整数转换为枚举的便捷推导宏

1 个不稳定版本

0.1.0 2024年7月1日

#980Rust 模式

Download history 174/week @ 2024-06-29 9/week @ 2024-07-06 20/week @ 2024-07-13 42/week @ 2024-07-20 53/week @ 2024-07-27

134 每月下载次数
ostd 中使用

MPL-2.0 许可证

5KB

TryFromInt - 将整数转换为枚举的便捷推导宏

快速入门

要使用此包,首先将其添加到您的 Cargo.toml 文件中。

[dependencies]
int-to-c-enum = "0.1.0"

您可以使用此宏为 类似 C 的枚举

use int_to_c_enum::TryFromInt;
#[repr(u8)]
#[derive(TryFromInt, Debug)]
pub enum Color {
    Red = 1,
    Blue = 2,
    Green = 3,
}

然后,您可以使用此枚举的 try_from 函数。

fn main() {
    let color = Color::try_from(1).unwrap();
    println!("color = {color:?}"); // color = Red;
}

简介

此包提供了一个名为 TryFromInt 的推导过程宏。此宏将为满足以下要求的枚举自动实现 TryFrom 特性

  1. 枚举必须具有原始 repr,即枚举应具有如 #[repr(u8)]、#[repr(u32)] 等属性。TryFrom 的类型参数将是 repr,例如,在 QuickStart 示例中,该宏将为 Color 实现 TryFrom<u8>
  2. 枚举必须仅由单元变体组成,这称为 仅单元枚举。每个字段应有一个 显式区分符

依赖项

~105KB