Module spacer

Source
Expand description

Report on or fix beginning of line spacing

To find out the line beginnings given a Read trait object use read_bol_info():

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

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

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

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

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

fn main() -> Result<(), Box<dyn Error>> {
  let mut reader = "abc\n\r\r\n".as_bytes();
  let mut writer = Vec::new();
  let bol_info = spacer::write_new_bols(&mut reader, &mut writer, spacer::BeginningOfLine::Tabs(2, true))?;

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

Structs§

BolInfo
Information about line beginnings in the file

Enums§

BeginningOfLine
Types of line beginnings

Functions§

read_bol_info
Read beginning of line information
write_new_bols
Write input file out with new beginning-of-lines