Expand description
herolib-code: Code analysis and parsing utilities for Rust source files.
This crate provides tools for analyzing Rust codebases, extracting structured information about code elements such as enums, structs, and their methods.
§Features
- Directory Walking: Recursively discover Rust source files in a directory
- Source Parsing: Parse Rust files using the
syncrate - Code Structure Extraction: Extract enums, structs, methods with documentation
§Example
use herolib_code::parser::CodebaseParser;
// Parse a Rust codebase
let parser = CodebaseParser::new();
let codebase = parser.parse_directory("./src").unwrap();
// Iterate over discovered structs
for struct_info in &codebase.structs {
println!("Found struct: {}", struct_info.name);
if let Some(doc) = &struct_info.doc_comment {
println!(" Documentation: {}", doc);
}
for field in &struct_info.fields {
if let Some(name) = &field.name {
println!(" Field: {} ({})", name, field.ty);
}
}
for method in &struct_info.methods {
println!(" Method: {}", method.name);
}
}
// Iterate over discovered enums
for enum_info in &codebase.enums {
println!("Found enum: {}", enum_info.name);
for variant in &enum_info.variants {
println!(" Variant: {}", variant.name);
}
}§Modules
parser: Main parsing functionality for analyzing Rust source code
Re-exports§
pub use parser::CodeBase;pub use parser::CodebaseParser;pub use parser::EnumInfo;pub use parser::EnumVariant;pub use parser::FieldInfo;pub use parser::FileInfo;pub use parser::MethodInfo;pub use parser::ParameterInfo;pub use parser::ParseError;pub use parser::ParseResult;pub use parser::Receiver;pub use parser::StructInfo;pub use parser::Visibility;pub use parser::WalkerConfig;
Modules§
- parser
- Parser module for analyzing Rust source code.