pub async fn process_files(&mut self, directory: &str) -> anyhow::Result<()> {
        for file_path in Self::load_file_paths(directory) {
            let Ok(new_selectors) = Selectors::load(&file_path).await.inspect_err(|e| {
                eprintln!("Error parsing file {file_path:?}: {e:?}");
            }) else {
                continue;
            };
            self.merge(new_selectors);
        }
        Ok(())
    }
Analyses all the JSON files, looking for 'abi' entries, and then computing the selectors for them.
core/bin/selector_generator/src/app.rs