Overview

This is a simple crate that lets us scan one or all crates in the current workspace.

We can also use it to scan a vendored crate.

This helps us search a crate directly for trait, fn, struct, enum, type names, and macro defs.

This crate uses the rust-analyzer API to perform the heavy lifting.

Usage

I typically use it like this:

Cargo.toml [build-dependencies] scan-crate-for-typedefs = "0.6.0"

``rust //this is thebuild.rs` file for one of the most // stable crates in the workspace:

use scancratefor_typedefs::*;

fn main() -> std::io::Result<()> {

let typemap = PersistentWorkspaceTypeMap::new_with_path("..")?;

Ok(())

} ```

Then, all we have to do is build the project and we get a rust-workspace-typemap.json at the top-level

I typically parse the output of cargo build to find types which cannot be found.

Next, I scan the index contained within file to figure out which crate they belong to.