Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Line endings normalizer

Overview

This crate provides an iterator over characters with normalized line endings, meaning all valid line endings in the input are converted to a single newline character: \n (U+000A), like this:

  • \n\n
  • \r\n
  • \r\n\n

The normalized iterator can be created using standalone function normalized or by calling the method normalized on any iterator over characters.

Examples

Using standalone function normalized()

#![allow(unused)]
fn main() {
use normalized_line_endings::normalized;

let input = "This is a string \n with \r some \n\r\n random newlines\r\r\n\n";
assert_eq!(
  "This is a string \n with \n some \n\n random newlines\n\n\n",
  normalized(input.chars()).collect::<String>()
);
}

Using Normalized trait extension

#![allow(unused)]
fn main() {
use normalized_line_endings::Normalized;

let input = "This is a string \n with \r some \n\r\n random newlines\r\r\n\n";
assert_eq!(
  "This is a string \n with \n some \n\n random newlines\n\n\n",
  input.chars().normalized().collect::<String>()
);
}