type-crawler 0.1.0

A tool to scan C/C++ types using libclang
Documentation
#[cfg(test)]
mod tests {
    use type_crawler::{Env, EnvOptions, TypeCrawler, TypeKind};

    #[test]
    fn test_virtual() {
        let crawler = TypeCrawler::new(Env::new(EnvOptions::default())).unwrap();
        let types = crawler.parse_file("tests/class/virtual.hpp").unwrap();
        assert_eq!(types.len(), 1);

        let TypeKind::Class(virtual_class) = types.get("VirtualClass").unwrap() else {
            panic!("Expected Class type");
        };
        assert!(virtual_class.is_class());

        assert_eq!(virtual_class.size(), 16);
        assert_eq!(virtual_class.alignment(), 8);

        assert_eq!(virtual_class.fields().len(), 1);
        assert_eq!(virtual_class.fields()[0].name(), Some("x"));
        assert_eq!(virtual_class.fields()[0].offset_bytes(), 8);
        assert_eq!(virtual_class.fields()[0].kind(), &TypeKind::S32);
    }
}