| Crates.io | reading-liner |
| lib.rs | reading-liner |
| version | 0.1.0 |
| created_at | 2024-08-01 14:49:34.495043+00 |
| updated_at | 2024-08-01 14:49:34.495043+00 |
| description | A Stream reader which can convert between byte offset and line-column numbers. Support any type which implements io::Read. |
| homepage | |
| repository | https://github.com/ireina7/reading-liner |
| max_upload_size | |
| id | 1322115 |
| size | 21,618 |
Reading and convert offset and line-column location.
A Stream reader which can convert between byte offset and line-column numbers.
Support any type which implements io::Read.
Stream::line_index(&mut self, offset:: location::Offset) -> io::Result<location::line_column::ZeroBased>
Stream::offset_of(&mut self, line_index: location::line_column::ZeroBased) -> io::Result<location::Offset>
Stream::read_line_index(&mut self, offset:: location::Offset, buf: &mut Vec<u8>) -> io::Result<location::line_column::ZeroBased>
Stream::read_offset_of(&mut self, line_index: location::line_column::ZeroBased, buf: &mut Vec<u8>) -> io::Result<location::Offset>
use stream_locate_converter::Stream;
use stream_locate_converter::location;
use std::fs;
fn main() -> io::Result<()> {
let file = fs::File::open("foo.rs")?;
let mut stream = Stream::from(file);
let offset = location::Offset::new(20);
let line_index = stream.line_index(offset)?;
let (line, col) = line_index.one_based().raw();
println!("The offset is on line {line}, column {col}.");
}