1pub fn join_lines<T>(lines: T) -> String
3where
4 T: IntoIterator,
5 T::Item: AsRef<str>,
6{
7 let lines = lines.into_iter().collect::<Vec<_>>();
8 lines
9 .iter()
10 .map(|x| x.as_ref())
11 .collect::<Vec<_>>()
12 .join("\n")
13}
14
15#[cfg(test)]
16mod test_join_lines {
17 use super::join_lines;
18
19 #[test]
20 fn with_empty_sequence_returns_empty() {
21 let out = join_lines(Vec::<String>::new());
22 assert_eq!(out, "");
23 }
24
25 #[test]
26 fn returns_lines_joined_by_line_break() {
27 let out = join_lines(["a", "b", "c"]);
28 assert_eq!(out, "a\nb\nc");
29 }
30}