Determine which parts of the C codebase use Rust-defined C symbols. Use this when you want to understand which C code files may be impacted by changes to a Rust FFI crate.
Compile a list of all C-visible symbols defined in a given Rust FFI crate or file (e.g. an extern "C" fn annotated with #[unsafe(no_mangle)] or a type definition).
Then determine which parts of the C codebase use these symbols.
<path>: Path to the Rust crate or file.<path 1> <path 2>: Multiple Rust crates/files.If the path doesn't start with src/, assume it to be in the src/redisearch_rs/c_entrypoint directory. E.g. numeric_range_tree_ffi becomes src/redisearch_rs/numeric_range_tree_ffi.
If the path points to a directory, review the documentation of all Rust files in that directory.
extern "C" fn annotated with #[unsafe(no_mangle)] or type definitions).
You can use the corresponding auto-generated header file in src/redisearch_rs/headers, if it helps.Emit a report that lists, for each symbol, the following information:
Each *_ffi Rust crate has a corresponding auto-generated header file in src/redisearch_rs/headers, created by the build.rs script via cbindgen.
The auto-generated header file includes all the FFI symbols defined by the Rust crate, no matter the sub-module they are defined in.