str_utils/
normalize_newlines.rs1use alloc::borrow::Cow;
2
3pub trait NormalizeNewlines<'a> {
7 fn normalize_newlines(self) -> Cow<'a, str>;
11}
12
13impl<'a> NormalizeNewlines<'a> for &'a str {
14 #[inline]
15 fn normalize_newlines(self) -> Cow<'a, str> {
16 crate::newlines::replace_newlines_with(self, b'\n')
17 }
18}
19
20impl<'a> NormalizeNewlines<'a> for Cow<'a, str> {
21 #[inline]
22 fn normalize_newlines(self) -> Cow<'a, str> {
23 match self {
24 Cow::Borrowed(s) => s.normalize_newlines(),
25 Cow::Owned(s) => {
26 Cow::Owned(crate::cow_into_owned!(s, s.as_str().normalize_newlines(),))
27 },
28 }
29 }
30}