From bbf4da28594c93c47d37958fbe967342b68b4709 Mon Sep 17 00:00:00 2001 From: Ian Rettig Date: Mon, 9 Jun 2025 11:58:43 -0400 Subject: [PATCH] Feat: Add test case for find_matches Slight find_matches rewrite to use Write trait. --- src/main.rs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index c84a7cf..f357562 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,21 +19,29 @@ fn main() -> Result<()> { let content = std::fs::read_to_string(&args.path) .with_context(|| format!("could not read file `{}`.", args.path.display()))?; - - find_matches(content.as_str(), args.pattern.as_str()); + find_matches( + content.as_str(), + args.pattern.as_str(), + &mut std::io::stdout(), + ); 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() { 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)] fn answer() -> i32 {