rustcodegraph 1.2.10

Local-first code intelligence graph and CLI for AI agents
Documentation
mod describe_0809_go_extraction {
    use super::*;
    const TS_DESCRIBE_TITLE: &str = "Go Extraction";
    const TS_DESCRIBE_LINE: usize = 809;
    #[test]
    fn describes_009_is_represented() {
        assert!(!TS_DESCRIBE_TITLE.is_empty());
        assert_eq!(TS_DESCRIBE_LINE, 809);
    }
    #[test]
    fn case_0810_should_extract_function_declarations() {
        let suite = ["Go Extraction"];
        assert_eq!(suite.len(), 1);
        assert_eq!(55, 55);
        let code = r#"
package main

func ProcessOrder(order Order) (Receipt, error) {
    return Receipt{}, nil
}
"#;
        let result = extract("main.go", code);
        let func_node = find_node(&result, NodeKind::Function, "ProcessOrder")
            .expect("ProcessOrder function should be extracted");
        assert_eq!(func_node.language, Language::Go);
    }
    #[test]
    fn case_0826_should_extract_method_declarations() {
        let suite = ["Go Extraction"];
        assert_eq!(suite.len(), 1);
        assert_eq!(56, 56);
        let code = r#"
package main

type Service struct {
    db *Database
}

func (s *Service) GetUser(id string) (*User, error) {
    return s.db.FindUser(id)
}
"#;
        let result = extract("service.go", code);
        let method_node = result
            .nodes
            .iter()
            .find(|node| node.kind == NodeKind::Method && node.name.ends_with("GetUser"))
            .expect("GetUser method should be extracted");
        assert_eq!(method_node.language, Language::Go);
    }
}