#![allow(unused)]
use clap::Parser;
use indicatif::{HumanDuration, ProgressBar, ProgressStyle};
use log::{info, warn};
#[derive(Parser)]
struct Cli {
pattern: String,
#[clap(parse(from_os_str))]
path: std::path::PathBuf,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
env_logger::init();
let args = Cli::parse();
let content = std::fs::read_to_string(&args.path)
.expect("could not read file");
println!("args: {:?}, {:?}", args.pattern, args.path);
grrs_cheng::find_matches(&content, &args.pattern, &mut std::io::stdout());
foo1();
Ok(())
}
#[test]
fn find_a_match() {
let mut result = Vec::new();
grrs_cheng::find_matches("lorem ipsum\ndolor sit amet", "lorem", &mut result);
assert_eq!(result, b"lorem ipsum\n");
}
fn foo() -> Result<(), Box<dyn std::error::Error>> {
let content = std::fs::read_to_string("test.txt")?;
println!("file content: {}", content);
Ok(())
}
fn foo1() {
let pb = indicatif::ProgressBar::new(100);
for i in 0..100 {
pb.inc(1);
}
pb.finish_with_message("done");
}