#display #from-str #regex #enums #derive #proc-macro

parse-display-derive

使用常见设置实现 Display 和 FromStr 的过程宏

22 个版本

0.10.0 2024 年 8 月 4 日
0.9.1 2024 年 5 月 30 日
0.9.0 2024 年 2 月 4 日
0.8.2 2023 年 7 月 16 日
0.1.0 2019 年 6 月 15 日

#769过程宏

Download history 27343/week @ 2024-05-02 27513/week @ 2024-05-09 27657/week @ 2024-05-16 26908/week @ 2024-05-23 28650/week @ 2024-05-30 26984/week @ 2024-06-06 29717/week @ 2024-06-13 37074/week @ 2024-06-20 37253/week @ 2024-06-27 38929/week @ 2024-07-04 48658/week @ 2024-07-11 48847/week @ 2024-07-18 44490/week @ 2024-07-25 50464/week @ 2024-08-01 52599/week @ 2024-08-08 49875/week @ 2024-08-15

204,455 每月下载量
用于 199 个 crate(4 个直接使用)

MIT/Apache

81KB
2.5K SLoC

parse-display

Crates.io Docs.rs Actions Status

此 crate 提供 derive 宏 DisplayFromStr。这些宏使用常见的辅助属性来指定格式。

安装

将其添加到您的 Cargo.toml 中

[dependencies]
parse-display = "0.10.0"

文档

有关详细信息,请参阅 #[derive(Display)] 文档。

示例

use parse_display::{Display, FromStr};

#[derive(Display, FromStr, PartialEq, Debug)]
#[display("{a}-{b}")]
struct X {
  a: u32,
  b: u32,
}
assert_eq!(X { a:10, b:20 }.to_string(), "10-20");
assert_eq!("10-20".parse(), Ok(X { a:10, b:20 }));


#[derive(Display, FromStr, PartialEq, Debug)]
#[display(style = "snake_case")]
enum Y {
  VarA,
  VarB,
}
assert_eq!(Y::VarA.to_string(), "var_a");
assert_eq!("var_a".parse(), Ok(Y::VarA));

许可协议

本项目采用 Apache-2.0/MIT 双许可协议。有关详细信息,请参阅两个 LICENSE-* 文件。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交以包含在作品中的任何贡献都将按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~2.4–4MB
~70K SLoC