perg/lib.rs
1extern crate regex;
2use regex::Regex;
3
4#[allow(unused_must_use)]
5pub fn search(
6 is_case_insensitive: bool,
7 content: &str,
8 pattern: &str,
9 mut writer: impl std::io::Write,
10) {
11 let pattern = if is_case_insensitive {
12 pattern.to_lowercase()
13 } else {
14 pattern.to_string()
15 };
16
17 let regex = Regex::new(&pattern).unwrap();
18 for line in content.lines() {
19 if regex.is_match(line) {
20 writeln!(writer, "{}", line);
21 }
22 }
23}