[][src]Function dqcsim::common::util::friendly_enumerate

pub fn friendly_enumerate(
    items: impl Iterator<Item = impl Into<String>>,
    conjunction: Option<&str>
) -> String

Turns a string list into its natural language equivalent.

The optional conjunction is placed between the final comma and final string, if specified. An empty list returns "nothing".

Examples

use dqcsim::common::util::friendly_enumerate;

assert_eq!(
    friendly_enumerate(vec!["a", "b", "c"].into_iter(), Some("or")),
    "a, b, or c"
);
assert_eq!(
    friendly_enumerate(vec!["x", "y"].into_iter(), Some("and")),
    "x and y"
);
assert_eq!(
    friendly_enumerate(vec!["x", "y"].into_iter(), None),
    "x, y"
);
assert_eq!(
    friendly_enumerate(vec!["foo", "bar", "baz"].into_iter(), None),
    "foo, bar, baz"
);
assert_eq!(
    friendly_enumerate(vec!["one"].into_iter(), Some("and")),
    "one"
);
assert_eq!(
    friendly_enumerate(vec!["one"].into_iter(), None),
    "one"
);
let empty: Vec<String> = vec![];
assert_eq!(
    friendly_enumerate(empty.into_iter(), None),
    "<nothing>"
);