#variant #enums #function #macro #proc-macro #members #inner

enum-extract-macro

将枚举变体提取到其自己的类型的衍生宏

2个版本

0.1.1 2023年12月30日
0.1.0 2023年12月28日

#17 in #members

Download history 60/week @ 2024-03-11 66/week @ 2024-03-18 6/week @ 2024-03-25 44/week @ 2024-04-01 17/week @ 2024-05-20 5/week @ 2024-05-27 11/week @ 2024-06-03 15/week @ 2024-06-10 19/week @ 2024-06-17 23/week @ 2024-06-24

69 monthly downloads
用于 skyscraper

MIT/Apache

52KB
822

enum-extract

License MIT License Apache 2.0

一个生成枚举内部成员函数的衍生proc宏。

这是对enum-as-inner的深度修改分支。以下是一些关键差异:

  1. as_[variant]into_[variant]as_[variant]_mut方法返回一个包含具体错误类型的Result EnumExtractError
    • 当实际变体与预期变体不匹配时返回错误,并包含用于故障排除目的的预期变体和实际变体的名称。
    • 错误还实现了Display,带有消息expected {expected}, got {actual},这样您就可以有一个起点来开始故障排除,而不是在Option上调用unwrap,或者反复手动编写更好的错误消息。
  2. 添加了extract_as_[variant]extract_into_[variant]extract_as_[variant]_mut方法,如果实际变体与预期变体不匹配,则引发panic。
    • 这对于测试非常有用,尤其是在接受panic的情况下,特别是当与EnumExtractError结构支持的更好的错误消息结合使用时。

此项目由两个应该一起使用的包组成。由于导出过程宏的包可以导出过程宏,因此它们是分开的。它们应被视为单一项目,因此将同步版本。

enum-extract-macro

Dependency Status Crates.io doc.rs

提供用于枚举的 EnumExtract 衍生宏,可用于获取每个变体的 as_[variant] 函数,以及其他有用函数。

请参阅文档以获取示例和更多详细信息。

enum-extract-error

Dependency Status Crates.io doc.rs

提供用于 as_[variant] 函数返回值的 EnumExtractError

请参阅文档以获取示例和更多详细信息。

依赖关系

~325–790KB
~18K SLoC