#variant #error #enums #companion #function #inner #enum-extract

enum-extract-error

enum-extract 提供一个错误类型的伴生 crate

2 个版本

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

#1974Rust 模式

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

85 每月下载量
2 crates 中使用

MIT/Apache

7KB

enum-extract

License MIT License Apache 2.0

一个派生 proc-macro,用于生成到枚举内部成员的函数。

这是对 enum-as-inner 的重大修改分支。以下列出了其中一些主要区别

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

Crate

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

enum-extract-macro

Dependency Status Crates.io doc.rs

提供可用于枚举的 EnumExtract 继承宏,该宏可以为每个变体提供 as_[variant] 函数,以及其他有用的函数。

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

enum-extract-error

Dependency Status Crates.io doc.rs

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

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

依赖关系

~305–770KB
~18K SLoC