pub fn count(text: String, substring: &str) -> usize {
if text.is_empty() || substring.is_empty() {
return 0_usize;
}
text.matches(substring).count()
}
pub fn split(text: String, delimiter: Option<&str>) -> Vec<String> {
let delimiter = delimiter.unwrap_or(" ");
if text.is_empty() || delimiter.is_empty() {
return vec![];
}
text.split(delimiter).map(|s| s.to_string()).collect()
}
#[cfg(test)]
mod tests {
use super::count;
#[test]
fn test_count_empty_string() {
let text = String::from("");
let substring = "";
assert_eq!(count(text, substring), 0);
}
#[test]
fn test_count_no_match() {
let text = String::from("Hello World");
let substring = "abc";
assert_eq!(count(text, substring), 0);
}
}