Docs / languages / rust · Edit on GitHub

Rust

Tier 1 plugin for Rust source. Extracts modules, traits, structs, enums, impl blocks, attributes, and call graph edges.

Implementation

Plugin cratecrates/rgctl-lang-rust (RustPlugin)
Grammartree-sitter-rust
Extensions.rs
Discoverrgctl discover . -l rust -e target --with-cfg
CFG / taintEnabled

Tree-sitter node kinds: function_item, struct_item, enum_item, impl_item, use_declaration.

What is extracted

Nodes

  • Function — free functions and methods
  • Struct, Enum, Trait (via impl/class kinds)
  • Importuse declarations (module graph)

Edges

EdgeMeaning
CALLSFunction and method calls
IMPLEMENTSTrait implementations
ANNOTATEDWITHAttributes (#[derive], #[test], …)
INSTANTIATESStruct/enum construction
Importuse path relations

Verification

Fixturergctl-tests/ecommerce-rust
Example corpusexample/rust (-l rust)
Smoke scriptrgctl-tests/gql-verification-smoke/verify-extraction-gql-rust.sh

GQL verification queries

Fixture probes

ProbeGQL
Module graph (Import)MATCH (n:Import) RETURN n LIMIT 10000
Trait heritage (IMPLEMENTS)MATCH (a)-[:IMPLEMENTS]->(b) RETURN a,b LIMIT 10000
Attributes (ANNOTATEDWITH)MATCH (a)-[:ANNOTATEDWITH]->(b) RETURN a,b LIMIT 10000
Instantiation (INSTANTIATES)MATCH (a)-[:INSTANTIATES]->(b) RETURN a,b LIMIT 10000
Call resolution (CALLS)MATCH (a)-[:CALLS]->(b) RETURN a,b LIMIT 10000

Example smoke (example/rust)

ProbeGQL
Import (scale)MATCH (n:Import) RETURN n LIMIT 10000
IMPLEMENTS (scale)MATCH (a)-[:IMPLEMENTS]->(b) RETURN a,b LIMIT 10000
CALLS (scale)MATCH (a)-[:CALLS]->(b) RETURN a,b LIMIT 10000

Related

  • Languages index
  • Openspec: rust-module-graph, rust-trait-heritage, rust-attributes, rust-call-resolution