1 个不稳定版本
0.0.1 | 2023年4月15日 |
---|
#37 在 #selection
46,719 每月下载量
用于 sonnerie
14KB
296 行
choice-string
提供解析字符串中的选择(索引和范围)的实用工具
特性
解析选择字符串
对于此包,选择字符串的格式可以通过以下示例理解
The following packages are available:
(1) good-package (2) bad-package (3) decent-package
(4) awful-package (5) amazing-package (6) package6
(7) package7 (8) package8
Select which packages to install:
>> 1 3 5 6-8
The following packages are being installed:
good-package, decent-package, amazing-package, package6,
package7, package8
...
在这种情况下,用户选择了索引 1、3、5,以及包含 6 到 8 的所有索引。
简单的 API
let selection = choice_string::parse("1, 2, 3, 4-8").expect("parse error");
assert!(selection.contains_item(5));
灵活的语法
分隔符是灵活的。以下任何一种都适用
,
- 一个逗号;
- 一个分号
您还可以在单个字符串中使用上述任何组合,甚至混合作为单个分隔符。
例如
1, 2, 3,5 6-9
1-8 11, 12
1,2,3,4
1;2;3;4
压缩到最小表示
解析后,提供的范围通过并集操作进行压缩。
例如
1, 2, 3, 4-5, 11
->1-5, 11
依赖项
~1.4–2.1MB
~43K SLoC