Function device_tree_source::byte_offset_to_line_col [] [src]

pub fn byte_offset_to_line_col<K, I>(
    bytes: I,
    offset: usize
) -> Result<(usize, usize), ParseError> where
    K: Borrow<u8> + Eq,
    I: Iterator<Item = K>, 

Returns the line and column of the character at the offset within the iterator.

Offsets are assumed to be 0 indexed, and lines and columns are 1 indexed.

Errors

Will return an ParseError::NotFound if the offset is past the end of the iterator.

Example

use device_tree_source::byte_offset_to_line_col;
use device_tree_source::ParseError;

let string = "Howdy\nHow goes it\n\nI'm doing fine";

assert_eq!(byte_offset_to_line_col(string.as_bytes().iter(), 0), Ok((1, 1)));
assert_eq!(byte_offset_to_line_col(string.as_bytes().iter(), 8), Ok((2, 3)));
assert_eq!(byte_offset_to_line_col(string.as_bytes().iter(), 33), Err(ParseError::NotFound));