#枚举 # derive #生成 #自动生成 #转换 #finite #整型枚举

finite-derive

#[derive(IntEnum)] 对 finite 的支持

5个版本

0.2.0 2021年7月23日
0.1.3 2021年7月1日
0.1.2 2021年6月29日
0.1.1 2021年6月29日
0.1.0 2021年6月29日

#59 in #自动生成

每月 36 下载
用于 finte

MIT 许可证

10KB
211

finite

finite 是一个进程宏crate,用于自动生成整数和Rust枚举之间的转换代码

示例

#[derive(finte::IntEnum)]
#[repr(u16)]
pub enum RustEdition {
    Prev = 2015,
    Now  = 2018,
    Next = 2021,
}


// the above generates

impl finte::IntEnum for RustEdition {
    type Int = u16;

    fn try_from_int(value: Self::Int) -> Option<Self> {
        match value {
            2015 => Some(Self::Prev),
            2018 => Some(Self::Now),
            2021 => Some(Self::Next),
            _ => None,
        }
    }

    fn int_value(&self) -> Self::Int {
        match self {
            Self::Prev => 2015,
            Self::Now  => 2018,
            Self::Next => 2021,
        }
    }
}

无运行时依赖