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}