first commit

This commit is contained in:
Samuele Iacoponi
2026-03-08 17:24:01 +01:00
commit 51cdd1d358
5 changed files with 53 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/target

7
Cargo.lock generated Normal file
View File

@@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "minigrep"
version = "0.1.0"

6
Cargo.toml Normal file
View File

@@ -0,0 +1,6 @@
[package]
name = "minigrep"
version = "0.1.0"
edition = "2024"
[dependencies]

24
README.md Normal file
View File

@@ -0,0 +1,24 @@
# minigrep
A command-line search tool built in Rust, following the [minigrep project](https://doc.rust-lang.org/book/ch12-00-an-io-project.html) from **The Rust Programming Language** book.
## Usage
```bash
cargo run -- <query> <file_path>
```
## What it does
Searches for a string pattern within a file and prints the matching lines to stdout.
## Purpose
This is my personal implementation of the minigrep project from the Rust Book, used to practice Rust fundamentals such as:
- CLI argument handling
- File I/O
- Error handling
- Structs and methods
- Iterators and closures
- Writing tests

15
src/main.rs Normal file
View File

@@ -0,0 +1,15 @@
use std::env;
fn main() {
// Args returns an iterator of args from cli
// Collect turns an iterator into a collection
// In this case transform values of args into a vector
let args: Vec<String> = env::args().collect();
let query = &args[0];
let file_path = &args[1];
println!("Searching for {query}");
println!("In file {file_path}");
// TODO handle the case of less or more parameters entered by user
}