pub fn search<'a>(querry: &str, contents: &'a str) -> Vec<&'a str> {
let mut lines: Vec<&str> = vec![];
for line in contents.lines(){
if line.contains(querry){
lines.push(line);
}
}
lines
}
pub fn search_case_insensitive<'a>(querry: &str, contents: &'a str) -> Vec<&'a str>{
contents.lines().filter(|x| x.contains(querry)).collect()
}
#[cfg(test)]
mod tests{
use super::*;
#[test]
fn case_sensitive() {
let querry = "duct";
let contents = "\
Rust:
safe, fast, productive.
Pick three.
Duct tape.";
assert_eq!(vec!["safe, fast, productive."], search(querry, contents));
}
#[test]
fn case_insensitive() {
let querry = "rUsT";
let contents = "\
Rust:
safe, fast, productive.
Pick three.
Trust me.";
assert_eq!{
vec!["Rust:", "Trust me."],
search_case_insensitive(querry, contents),
};
}
}