Skip to content

Commit

Permalink
Add support for discovering <dir>/mod.rs mods
Browse files Browse the repository at this point in the history
  • Loading branch information
acheronfail committed Apr 23, 2023
1 parent 46cab83 commit fae108c
Showing 1 changed file with 16 additions and 11 deletions.
27 changes: 16 additions & 11 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,25 +131,30 @@ fn source_file_names<P: AsRef<Path>>(dir: P) -> Result<Vec<String>> {

for entry in fs::read_dir(dir)? {
let entry = entry?;
if !entry.file_type()?.is_file() {
continue;
}

let file_name = entry.file_name();
if file_name == "mod.rs" || file_name == "lib.rs" || file_name == "main.rs" {
continue;
}

let path = Path::new(&file_name);
if path.extension() == Some(OsStr::new("rs")) {
match file_name.into_string() {
Ok(mut utf8) => {
let path = entry.path();
let file_type = entry.file_type()?;

let is_file_mod = file_type.is_file() && path.extension() == Some(OsStr::new("rs"));
let is_dir_mod = file_type.is_dir() && path.join("mod.rs").exists();
if !(is_file_mod || is_dir_mod) {
continue;
}

match file_name.into_string() {
Ok(mut utf8) => {
if is_file_mod {
utf8.truncate(utf8.len() - ".rs".len());
names.push(utf8);
}
Err(non_utf8) => {
failures.push(non_utf8);
}
names.push(utf8);
}
Err(non_utf8) => {
failures.push(non_utf8);
}
}
}
Expand Down

0 comments on commit fae108c

Please sign in to comment.