in src/main.rs [121:168]
fn walk_builder_with_file_set(dirs: Vec<&str>, file_set: Option<FileSet>) -> Result<WalkBuilder> {
ensure!(!dirs.is_empty(), "must provide at least one path to walk!");
let mut builder = WalkBuilder::new(dirs[0]);
for dir in &dirs[1..] {
builder.add(dir);
}
if let Some(file_set) = file_set {
use crate::FileSet::*;
match file_set {
Extensions(e) => {
let mut override_builder = OverrideBuilder::new(".");
for ext in e {
override_builder
.add(&format!("*.{}", ext))
.context("Unable to register extension with directory walker")?;
}
builder.overrides(
override_builder
.build()
.context("Unable to register extensions with directory walker")?,
);
}
Glob {
matches,
case_insensitive,
} => {
let mut override_builder = OverrideBuilder::new(".");
// Case sensitivity needs to be added before the patterns are.
if case_insensitive {
override_builder
.case_insensitive(true)
.context("Unable to toggle case sensitivity")?;
}
for file in matches {
override_builder
.add(&file)
.context("Unable to register glob with directory walker")?;
}
builder.overrides(
override_builder
.build()
.context("Unable to register glob with directory walker")?,
);
}
}
}
Ok(builder)
}