summaryrefslogtreecommitdiff
path: root/minigrep/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'minigrep/src/lib.rs')
-rw-r--r--minigrep/src/lib.rs31
1 files changed, 30 insertions, 1 deletions
diff --git a/minigrep/src/lib.rs b/minigrep/src/lib.rs
index 78610ba..b55e924 100644
--- a/minigrep/src/lib.rs
+++ b/minigrep/src/lib.rs
@@ -23,7 +23,36 @@ impl Config {
pub fn run(config: Config) -> Result<(), Box<dyn Error>> {
let contents = fs::read_to_string(config.filename)?;
- dbg!(contents);
Ok(())
}
+fn search<'a>(query: &str, contents: &'a str) -> Vec<&'a str> {
+ let mut results = Vec::new();
+
+ for line in contents.lines() {
+ if line.contains(query) {
+ results.push(line);
+ }
+ }
+
+ results
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn one_result() {
+ let query = "duct";
+ let contents = "\
+Rust:
+safe, fast, productive.
+Pick three.";
+
+ assert_eq!(
+ vec!["safe, fast, productive."],
+ search(query, contents)
+ );
+ }
+}