use tcvectordb::{enums::ReadConsistency, VectorDBClient};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("Testing VectorDB connection...");
let client = VectorDBClient::new(
"http://10.15.181.72:80",
"root",
"12322",
ReadConsistency::EventualConsistency,
30,
)?;
println!("Client created successfully");
match client.list_databases().await {
Ok(databases) => {
println!("✅ Connection successful!");
println!("Found {} databases:", databases.len());
for db in databases {
println!(" - {}", db.name());
}
}
Err(e) => {
println!("❌ Connection failed: {}", e);
if let Some(diagnosis) = e.diagnose_http_error() {
println!("\nDiagnosis:\n{}", diagnosis);
}
return Err(e.into());
}
}
let test_db_name = "test_db";
match client.create_database_if_not_exists(test_db_name).await {
Ok(db) => {
println!("✅ Database '{}' created successfully", db.name());
match client.drop_database(test_db_name).await {
Ok(_) => println!("✅ Test database cleaned up"),
Err(e) => println!("⚠️ Warning: {}", e),
}
}
Err(e) => {
println!("❌ Failed to create database: {}", e);
return Err(e.into());
}
}
println!("🎉 All tests passed!");
Ok(())
}