]>
Commit | Line | Data |
---|---|---|
62c5094d FG |
1 | mod lines; |
2 | ||
3 | pub use lines::LinesWithTerminator; | |
4 | ||
5 | /// Normalize line endings | |
6 | pub fn normalize_lines(data: &str) -> String { | |
68504ae0 FG |
7 | normalize_lines_chars(data.chars()).collect() |
8 | } | |
9 | ||
10 | fn normalize_lines_chars(data: impl Iterator<Item = char>) -> impl Iterator<Item = char> { | |
11 | normalize_line_endings::normalized(data) | |
12 | } | |
13 | ||
14 | /// Normalize path separators | |
15 | pub fn normalize_paths(data: &str) -> String { | |
16 | normalize_paths_chars(data.chars()).collect() | |
17 | } | |
18 | ||
19 | fn normalize_paths_chars(data: impl Iterator<Item = char>) -> impl Iterator<Item = char> { | |
20 | data.map(|c| if c == '\\' { '/' } else { c }) | |
62c5094d FG |
21 | } |
22 | ||
23 | /// "Smart" text normalization | |
24 | /// | |
25 | /// This includes | |
26 | /// - Line endings | |
27 | /// - Path separators | |
28 | pub fn normalize_text(data: &str) -> String { | |
68504ae0 | 29 | normalize_paths_chars(normalize_lines_chars(data.chars())).collect() |
62c5094d | 30 | } |