pub fn process_dir<P: AsRef<Path>, F>( dir: P, action: &mut F, ) -> Result<(), SoarError>where F: FnMut(&Path) -> Result<(), SoarError>,