Crate herolib_code

Crate herolib_code 

Source
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 syn crate
  • 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.