4 个版本
0.2.1 | 2020 年 8 月 11 日 |
---|---|
0.2.0 | 2020 年 7 月 18 日 |
0.1.1 | 2020 年 7 月 13 日 |
0.1.0 | 2020 年 7 月 13 日 |
#358 在 缓存
18,350 每月下载量
在 34 个 crate 中使用 (12 个直接使用)
11KB
110 行
line-col
一个用于计算字符串切片基于 1 的行/列号的简单 crate。
示例
use line_col::LineColLookup;
let text = "One\nTwo";
let lookup = LineColLookup::new(text);
assert_eq!(lookup.get(0), (1, 1)); // 'O' (line 1, col 1)
assert_eq!(lookup.get(1), (1, 2)); // 'n' (line 1, col 2)
assert_eq!(lookup.get(2), (1, 3)); // 'e' (line 1, col 3)
assert_eq!(lookup.get(4), (2, 1)); // 'T' (line 2, col 1)
assert_eq!(lookup.get(5), (2, 2)); // 'w' (line 2, col 2)
assert_eq!(lookup.get(6), (2, 3)); // 'o' (line 2, col 3)
assert_eq!(lookup.get(7), (2, 4)); // <end> (line 2, col 4)
列计算方法
此 crate 提供两种计算列号的方法。
LineColLookup::get
方法计算从行首开始的字节数(加一)。然而,这并不考虑图形簇(例如,复杂的重音字符,emoji 等)。如果您想根据图形簇的数量来计算列,请启用 grapheme-clusters
功能并使用 LineColLookup::get_by_cluster
。
变更日志
0.2.1
LineColLookup
现在将行头表生成延迟到第一次查找
0.2.0
- 将特定于集群的
LineColLookup::get
实现移动到其自己的方法,LineColLookup::get_by_cluster
- 删除某些测试中的不必要的功能过滤器
0.1.1
- 修复了文档中的错误
- 使用扩展的图形簇
0.1.0
初始版本
依赖关系
~140KB