#枚举 #转换 #过程宏 # #无分配 #无标准库

无标准库 litenum

最小化字面量与枚举之间的转换工具

7 个版本 (3 个稳定版)

新版本 1.1.1 2024 年 8 月 16 日
1.0.0 2024 年 8 月 15 日
0.1.3 2023 年 8 月 12 日

Rust 模式 中排名 2034

每月下载量 50

MIT 许可协议

10KB
132

litenum

litenum 是字面量和枚举之间转换的 最小化 工具 !

功能

  • 最小化实现
  • 无 std,无分配

使用方法

转换为字面量

#[litenum::to]
enum AnkerTarget {
    _blank,
    _self,
    _top,
    _parent,
}

fn main() {
    assert_eq!(
        AnkerTarget::_blank.lit(),
        "_blank",
    )
}

从字面量转换

#[litenum::from]
#[derive(Debug, PartialEq)]
enum AnkerTarget {
    _blank,
    _self,
    _top,
    _parent,
}

fn main() {
    assert_eq!(
        AnkerTarget::from_lit("_blank"),
        Some(AnkerTarget::_blank),
    )
}

同时实现两者

#[litenum::ium] // same as
                // `#[litenum::to] #[litenum::from]`
#[derive(Debug, PartialEq)]
enum AnkerTarget {
    _blank,
    _self,
    _top,
    _parent,
}

fn main() {
    assert_eq!(
        AnkerTarget::_blank.lit(),
        "_blank",
    );

    assert_eq!(
        AnkerTarget::from_lit("_blank"),
        Some(AnkerTarget::_blank),
    );
}

依赖项

~1.5MB
~35K SLoC