Skip to main content

line_column

Function line_column 

Source
pub fn line_column(s: &str, index: usize) -> (u32, u32)
Expand description

Get tuple of line and column, use byte index

Use LF (0x0A) to split newline, also compatible with CRLF (0x0D 0x0A)

§Panics

  • index out of 0..s.len()
  • index not on char boundary

§Examples

assert_eq!(line_column("", 0),     (1, 1));
assert_eq!(line_column("a", 0),    (1, 1));
assert_eq!(line_column("a", 1),    (1, 2));
assert_eq!(line_column("ab", 1),   (1, 2));
assert_eq!(line_column("a\n", 1),  (1, 2));
assert_eq!(line_column("a\n", 2),  (2, 1));
assert_eq!(line_column("a\nb", 2), (2, 1));