tux/text/
join_lines.rs

1/// Joins a sequence of strings into a single string separate by line breaks.
2pub 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}