MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / main

Function main

examples/rust/bindings/simple_usage.rs:13–134  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

11use std::error::Error;
12
13fn main() -> Result<(), Box<dyn Error>> {
14 println!("=== GraphLite Simple Usage Example ===\n");
15
16 // Step 1: Initialize GraphLite with a database path
17 // This single line handles all internal component setup
18 println!("1. Initializing database...");
19 let coordinator = QueryCoordinator::from_path("./example_db")
20 .map_err(|e| format!("Failed to initialize database: {}", e))?;
21 println!(" ✓ Database initialized\n");
22
23 // Step 2: Create a session
24 // Sessions track user context and graph/schema preferences
25 println!("2. Creating session...");
26 let session_id = coordinator
27 .create_simple_session("example_user")
28 .map_err(|e| format!("Failed to create session: {}", e))?;
29 println!(" ✓ Session created: {}\n", session_id);
30
31 // Step 3: Validate and analyze queries before execution
32 println!("3. Validating and analyzing queries...");
33
34 let test_query = "MATCH (n:Person) RETURN n.name";
35
36 // Validate query syntax
37 println!(" → Validating query...");
38 match coordinator.validate_query(test_query) {
39 Ok(_) => println!(" ✓ Query is valid"),
40 Err(e) => println!(" ✗ Query validation failed: {}", e),
41 }
42
43 // Check if query is valid (convenience method)
44 if coordinator.is_valid_query(test_query) {
45 println!(" ✓ Query syntax check passed");
46 }
47
48 // Analyze query
49 println!(" → Analyzing query...");
50 match coordinator.analyze_query(test_query) {
51 Ok(info) => {
52 println!(" ✓ Query type: {:?}", info.query_type);
53 println!(" ✓ Read-only: {}", info.is_read_only);
54 }
55 Err(e) => println!(" ✗ Query analysis failed: {}", e),
56 }
57
58 // Test with an invalid query
59 println!(" → Testing invalid query...");
60 let invalid_query = "MATCH (n RETURN n";
61 if !coordinator.is_valid_query(invalid_query) {
62 println!(" ✓ Correctly detected invalid query");
63 }
64
65 // Explain query execution plan
66 println!(" → Explaining query execution plan...");
67 match coordinator.explain_query(test_query) {
68 Ok(plan) => {
69 println!(" ✓ {}", plan.summary());
70 println!(" Query Plan:\n{}", plan.format_tree());

Callers

nothing calls this directly

Calls 8

create_simple_sessionMethod · 0.80
validate_queryMethod · 0.80
is_valid_queryMethod · 0.80
analyze_queryMethod · 0.80
explain_queryMethod · 0.80
process_queryMethod · 0.80
iterMethod · 0.45
close_sessionMethod · 0.45

Tested by

no test coverage detected