Compare commits

..
Author SHA1 Message Date
Ian Rettig f9418783d4 Feat: Add custom error message. 2025-06-06 17:50:44 -04:00
Ian Rettig d7d2c74b23 Feat: question mark unwrap. 2025-06-06 17:02:32 -04:00
Ian Rettig d41577ef7d Feat: return error in unwrap. 2025-06-06 17:00:21 -04:00
Ian Rettig 3ff1454fb6 Feat: Use unwrapping for error handling. 2025-06-06 16:55:57 -04:00
Ian Rettig a663f2b4d8 Feat: set up manual error handling. 2025-06-06 14:46:21 -04:00
+9 -8
View File
@@ -1,6 +1,4 @@
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)]
@@ -9,18 +7,21 @@ struct Cli {
path: std::path::PathBuf,
}
fn main() -> std::io::Result<()> {
#[derive(Debug)]
struct CustomError(String);
fn main() -> Result<(), CustomError> {
let args = Cli::parse();
let f = File::open(&args.path)?;
let mut reader = BufReader::new(f);
let mut line = String::new();
// let content = std::fs::read_to_string(&args.path).expect("Could not read file.");
while reader.read_line(&mut line)? > 0 {
let content = std::fs::read_to_string(&args.path)
.map_err(|err| CustomError(format!("Error reading `{}`: {}", args.path.display(), err)))?;
for line in content.lines() {
if line.contains(&args.pattern) {
println!("{}", line)
}
line.clear();
}
Ok(())