mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2026-08-22 14:13:28 +08:00
Updated 'src/io_project/test_driven_dev.md'.
This commit is contained in:
6
projects/io_project/Cargo.toml
Normal file
6
projects/io_project/Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "io_project"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
38
projects/io_project/src/lib.rs
Normal file
38
projects/io_project/src/lib.rs
Normal file
@@ -0,0 +1,38 @@
|
||||
#[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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
pub 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
|
||||
}
|
||||
|
||||
pub fn run(config: Config) -> Result<(), Box<dyn Error>>{
|
||||
let contents = fs::read_to_string(config.file_path)?;
|
||||
|
||||
for line in search(&config.query, &contents) {
|
||||
println! ("{line}");
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
3
projects/io_project/src/main.rs
Normal file
3
projects/io_project/src/main.rs
Normal file
@@ -0,0 +1,3 @@
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
}
|
||||
Reference in New Issue
Block a user