]> git.proxmox.com Git - cargo.git/blame - vendor/snapbox/src/utils/mod.rs
New upstream version 0.66.0
[cargo.git] / vendor / snapbox / src / utils / mod.rs
CommitLineData
62c5094d
FG
1mod lines;
2
3pub use lines::LinesWithTerminator;
4
5/// Normalize line endings
6pub fn normalize_lines(data: &str) -> String {
68504ae0
FG
7 normalize_lines_chars(data.chars()).collect()
8}
9
10fn normalize_lines_chars(data: impl Iterator<Item = char>) -> impl Iterator<Item = char> {
11 normalize_line_endings::normalized(data)
12}
13
14/// Normalize path separators
15pub fn normalize_paths(data: &str) -> String {
16 normalize_paths_chars(data.chars()).collect()
17}
18
19fn 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
28pub fn normalize_text(data: &str) -> String {
68504ae0 29 normalize_paths_chars(normalize_lines_chars(data.chars())).collect()
62c5094d 30}