wowlab_parsers/parsers/
csv.rs1#[must_use]
3pub fn parse_csv_list(value: &str) -> Vec<String> {
4 value
5 .split(',')
6 .map(|s| s.trim().to_string())
7 .filter(|s| !s.is_empty())
8 .collect()
9}
10
11#[cfg(test)]
12mod tests {
13 use googletest::prelude::*;
14
15 use super::*;
16
17 #[gtest]
18 fn test_parse_csv_list() -> Result<()> {
19 verify_that!(parse_csv_list("a,b,c"), container_eq(vec!["a", "b", "c"]))?;
20 verify_that!(
21 parse_csv_list("main, master"),
22 container_eq(vec!["main", "master"])
23 )?;
24 verify_that!(
25 parse_csv_list(" a , b , c "),
26 container_eq(vec!["a", "b", "c"])
27 )?;
28 verify_that!(parse_csv_list("single"), container_eq(vec!["single"]))?;
29 verify_that!(parse_csv_list(""), is_empty())?;
30 verify_that!(parse_csv_list("a,,b"), container_eq(vec!["a", "b"]))?;
31
32 Ok(())
33 }
34}