pub fn line_to_words(line: &str) -> Vec { line.split('|') .map(|w| w.trim().to_string()) .filter(|w| !w.is_empty()) .collect() } pub fn words_to_line(words: &[String]) -> String { words.join(" | ") } #[cfg(test)] mod tests { use super::*; #[test] fn test_line_to_words() { assert_eq!(line_to_words("a"), vec!("a")); assert_eq!(line_to_words("a | b | c"), vec!("a", "b", "c")); } #[test] fn test_words_to_line() { assert_eq!(words_to_line(&["a".to_string()]), "a"); assert_eq!(words_to_line(&["a".to_string(), "b".to_string(), "c".to_string()]), "a | b | c"); } }