Skip to main content

Rust extractor

The Rust extractor maps tree-sitter Rust CST nodes to canonical concepts. It detects structural changes at the item level: functions, structs, enums, traits, and their members.

Detected concepts

Example

Two versions of a Rust module. One renames a function and adds a struct field:
Running differens old.rs new.rs:

Known limitations

  • Macro expansion is not followed. The extractor works on the surface AST, so code generated by macros (derive, proc macros) is invisible to the diff.
  • impl blocks are matched to their type, but orphan impls (impl blocks in separate files) require cross-file correlation to be active.
  • Attribute changes (#[derive(...)], #[cfg(...)]) are reported at the item level, not as separate edit actions.