java_class_parser 0.0.2

provides a way of easily parsing and analyzing java classes
Documentation
use std::path::Path;
use java_class_parser::inheritance::inspect;
use java_class_parser::JavaClassParser;

#[test]
fn parse_jar() {
    let parser = JavaClassParser::from(itest_common::jar_file());
    let class = parser
        .find("com/example/Square")
        .expect("couldn't get square");
    let super_class = parser
        .find_super(&class)
        .expect("Square should have a super class that's on the classpath");
    assert_eq!(super_class.this(), "com/example/Rectangle");
    assert!(
        matches!(parser.find_super(&super_class), Err(_)),
        "Rectangle should have no available super class"
    );

    let inheritance = inspect(&class, &parser).expect("couldn't create graph");
    let parents = inheritance
        .inherits(class.this())
        .expect("couldn't get parents")
        .into_iter()
        .map(|(class, _)| class.this().to_fqname_buf())
        .collect::<Vec<_>>()
        ;
    assert_eq!(parents, ["com/example/Rectangle", "com/example/Shape"]);
}

#[test]
fn get_java_install() {
    let java_home = java_locator::locate_java_home().unwrap();
    println!("java_home: {:?}", Path::new(&java_home));
}