5 个不稳定版本
0.3.1 | 2021年3月13日 |
---|---|
0.3.0 | 2021年3月13日 |
0.2.1 | 2021年3月13日 |
0.2.0 | 2019年9月25日 |
0.1.0 | 2019年9月24日 |
#1692 在 编码
273 每月下载次数
在 diffus 中使用
10KB
216 行
snake_case
一个用于处理 snake_case
标识符的 Rust 包
此包的目的是公开类型 SnakeCase
,它是一个包裹在 String
中的包装器,只能包含有效、非空的 snake_case,且不能以数字开头。换句话说,它始终匹配 ^[_a-z][_a-z0-9]*$
- 非空
- 以小写ASCII字母或下划线开头
- 只包含小写ASCII字母、下划线和数字
注意:此包认为 ___foo__bar_
是有效的 snake_case。
总结:SnakeCase
可以存储任何也是有效的 Rust 小写标识符的字符串。
为什么?
这种情况通常用于唯一的标识符,snake case 对此非常适用。 SnakeCase
总是有效的,这意味着您永远不会遇到尾随空格或空字符串的问题。
基本用法
let id = SnakeCase::try_from_str("hello_world").unwrap();
assert_eq!(id, "hello_world");
还有 SnakeCaseRef
,它是 snake_case 字符串的非拥有引用。
Serde
如果您启用了 "serde"
功能,那么 SnakeCase
将实现 Serialize
和 Deserialize
。
Deserialize
将在字符串不是有效的 snake_case 时失败。
依赖项
~175KB