INNER CODE UNIT · Rust

collect_dependencies

dontpanic92/OpenPAL3 · crosscom/ccidl-rs/src/lib.rs:244

fn collect_dependencies(
    path: &Path,
    visited: &mut HashSet<PathBuf>,
    dependencies: &mut Vec<PathBuf>,
) -> Result<(), Error> {
    let path = path.canonicalize().map_err(|source| Error::Io {
        path: path.to_path_buf(),
        source,
    })?;
    if !visited.insert(path.clone()) {
        return Ok(());
    }

    dependencies.push(path.clone());
    let unit = parse_file(&path)?;
    let source_dir = path.parent().unwrap_or_else(|| Path::new(""));
    for import in unit.imports {
        collect_dependencies(&source_dir.join(import.file_name), visited, dependencies)?;

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…