#include "rust_crate_map.h" void iter_module_map(const mod_entry* map, void (*fn)(const mod_entry* entry, void *cookie), void *cookie) { for (const mod_entry* cur = map; cur->name; cur++) { fn(cur, cookie); } } void iter_crate_map(const cratemap* map, void (*fn)(const mod_entry* map, void *cookie), void *cookie) { // First iterate this crate iter_module_map(map->entries, fn, cookie); // Then recurse on linked crates // FIXME (#2673) this does double work in diamond-shaped deps. could // keep a set of visited addresses, if it turns out to be actually // slow for (size_t i = 0; map->children[i]; i++) { iter_crate_map(map->children[i], fn, cookie); } } // // Local Variables: // mode: C++ // fill-column: 78; // indent-tabs-mode: nil // c-basic-offset: 4 // buffer-file-coding-system: utf-8-unix // End: //