5 个不稳定版本
0.3.0 | 2023年11月19日 |
---|---|
0.2.2 | 2023年8月26日 |
0.2.1 | 2023年8月6日 |
0.2.0 | 2023年8月6日 |
0.1.0 | 2023年8月6日 |
479 在 文本处理 中排名
每月下载量 1,291
在 6 个 crate 中使用(4 个直接使用)
10KB
199 行
line-numbers
line-numbers 是一个 Rust crate,用于高效地查找字符串偏移量对应的行号。
用法
创建一个 LinePositions
,然后你可以找到一个偏移量的行号。
let s = "foo\nbar\nbaz\n";
let s_lines: Vec<_> = s.lines().collect();
let line_positions = LinePositions::from(s);
let offset = 5;
let line_num = line_positions.from_offset(offset);
println!(
"Offset {} is on line {}, which has the text {:?}.",
offset,
line_num.display(),
s_lines[line_num.as_usize()]
);
类似项目
- line-span 解决了类似的问题,但每次都会扫描整个字符串。
lib.rs
:
高效地在字符串内查找行号和行跨度。
use line_numbers::LinePositions;
let s = "foo\nbar\nbaz\n";
let s_lines: Vec<_> = s.lines().collect();
let line_positions = LinePositions::from(s);
let offset = 5;
let line_num = line_positions.from_offset(offset);
println!(
"Offset {} is on line {}, which has the text {:?}.",
offset,
line_num.display(),
s_lines[line_num.as_usize()]
);