findit_cli/
run_func.rs

1use std::io::Write;
2
3use crate::{
4    cli_args::CliArgs, errors::FindItError, filter::make_filters, quick_ref::show_syntax_help,
5    walker::Walker,
6};
7
8/// # Errors
9///
10/// Will return `Err` if anything goes wrong.
11pub fn run<W: Write + 'static>(args: &CliArgs, writer: W) -> Result<(), FindItError> {
12    if args.help_syntax {
13        show_syntax_help();
14    } else {
15        let walker = Walker::try_from(args)?;
16        let mut stepper = make_filters(args, writer)?;
17        walker.walk(&mut stepper)?;
18    }
19    Ok(())
20}