chj_rustbin/text/naturallanguagejoin.rs
1pub trait NaturalLanguageJoin {
2 fn natural_language_join(&self) -> String;
3}
4
5impl NaturalLanguageJoin for Vec<&'static str> {
6 fn natural_language_join(&self) -> String {
7 let len = self.len();
8 let mut out = String::new();
9 let mut i = 0;
10 for item in self {
11 out.push_str(item);
12 i += 1;
13 if i < len - 1 {
14 out.push_str(", ");
15 } else if i == len - 1 {
16 out.push_str(" or ");
17 }
18 }
19 out
20 }
21}