Feat: Add test case for find_matches

Slight find_matches rewrite to use Write trait.
This commit is contained in:
Ian Rettig
2025-06-09 11:58:43 -04:00
parent 7cca8410e1
commit bbf4da2859
+13 -5
View File
@@ -19,21 +19,29 @@ fn main() -> Result<()> {
let content = std::fs::read_to_string(&args.path) let content = std::fs::read_to_string(&args.path)
.with_context(|| format!("could not read file `{}`.", args.path.display()))?; .with_context(|| format!("could not read file `{}`.", args.path.display()))?;
find_matches(
find_matches(content.as_str(), args.pattern.as_str()); content.as_str(),
args.pattern.as_str(),
&mut std::io::stdout(),
);
Ok(()) Ok(())
} }
fn find_matches(content: &str, pattern: &str) { fn find_matches(content: &str, pattern: &str, mut writer: impl std::io::Write) {
for line in content.lines() { for line in content.lines() {
if line.contains(pattern) { if line.contains(pattern) {
println!("{}", line) writeln!(writer, "{}", line);
} }
} }
} }
#[test]
fn find_a_match() {
let mut result = Vec::new();
find_matches("lorem ipsum\ndolar sit amet", "lorem", &mut result);
assert_eq!(result, b"lorem ipsum\n")
}
#[allow(dead_code)] #[allow(dead_code)]
fn answer() -> i32 { fn answer() -> i32 {