Module ender

Source
Expand description

Report on or fix line endings.

To find out the line endings given a Read trait object use read_eol_info():

use std::error::Error;
use std::fs::File;
use whitespace_rs::ender;

fn main() -> Result<(), Box<dyn Error>> {
  let mut reader = "abc\n\r\r\n".as_bytes();
  let eol_info = ender::read_eol_info(&mut reader)?;

  println!("{:?}", eol_info);
  Ok(())
}

To normalize line endings given a Read trait object, create a Write trait object and use write_new_eols():

use std::error::Error;
use std::fs::File;
use whitespace_rs::ender;

fn main() -> Result<(), Box<dyn Error>> {
  let mut reader = "abc\n\r\r\n".as_bytes();
  let mut writer = Vec::new();
  let num_lines = ender::write_new_eols(&mut reader, &mut writer, ender::EndOfLine::Lf)?;

  println!("{}", num_lines);
  Ok(())
}

Structs§

EolInfo
File line information.

Enums§

EndOfLine
Types of line endings.

Functions§

read_eol_info
Read end-of-line information for a file.
write_new_eols
Write input file out with new end-of-lines.