fn remove_sources(sources: &[String], all_files: Vec<String>) -> Vec<String> {
    let canonical_sources = sources
        .iter()
        .map(|s| canonicalize(s))
        .collect::<BTreeSet<_>>();
    all_files
        .into_iter()
        .filter(|d| !canonical_sources.contains(&canonicalize(d)))
        .collect_vec()
}
/// Remove the target Move files from the list of files.
Remove the target Move files from the list of files.
Remove the target Move files from the list of files .
fn remove_sources(sources: &[String], all_files: Vec<String>) -> Vec<String> {
    let canonical_sources = sources
        .iter()
        .map(|s| canonicalize(s))
        .collect::<BTreeSet<_>>();
    all_files
        .into_iter()
        .filter(|d| !canonical_sources.contains(&canonicalize(d)))
        .collect_vec()
}
fn remove_sources ( sources : & [ String ] , all_files : Vec < String > ) -> Vec < String > { let canonical_sources = sources . iter ( ) . map ( | s | canonicalize ( s ) ) . collect :: < BTreeSet < _ > > ( ) ; all_files . into_iter ( ) . filter ( | d | ! canonical_sources . contains ( & canonicalize ( d ) ) ) . collect_vec ( ) }
Remove the target Move files from the list of files.
Remove the target Move files from the list of files .
sources
&[String]
all_files
Vec<String>