From 5e04f9c5c370363c50233225fb6377671cff0aa9 Mon Sep 17 00:00:00 2001 From: Ian Rettig Date: Fri, 6 Jun 2025 14:23:49 -0400 Subject: [PATCH] Feat: Use BufReader for better io efficiency. --- src/main.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 686c351..15f3132 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,6 @@ use clap::Parser; +use std::fs::File; +use std::io::{BufRead, BufReader}; // Search for a pattern in a file and display the lines that contain it. #[derive(Parser)] @@ -7,14 +9,19 @@ struct Cli { path: std::path::PathBuf, } -fn main() { +fn main() -> std::io::Result<()> { let args = Cli::parse(); - let content = std::fs::read_to_string(&args.path).expect("Could not read file."); + let f = File::open(&args.path)?; + let mut reader = BufReader::new(f); + let mut line = String::new(); - for line in content.lines() { + while reader.read_line(&mut line)? > 0 { if line.contains(&args.pattern) { println!("{}", line) } + line.clear(); } + + Ok(()) }