use cassandra_cpp::*;
use std::fs;
#[tokio::main]
async fn main() -> Result<()> {
let col_name = "keyspace_name";
let contact_points = "127.0.0.1";
let tls_ca_certificate_path = "ca/certificate/path";
let cert =
fs::read_to_string(tls_ca_certificate_path).expect("Failed to open certificate file");
let mut ssl = cassandra_cpp::Ssl::default();
ssl.add_trusted_cert(cert)?;
ssl.set_verify_flags(&[cassandra_cpp::SslVerifyFlag::PEER_IDENTITY]);
let mut cluster = Cluster::default();
cluster.set_contact_points(contact_points).unwrap();
cluster.set_load_balance_round_robin();
cluster.set_ssl(ssl);
let session = cluster.connect().await?;
let result = session
.execute("SELECT keyspace_name FROM system_schema.keyspaces;")
.await
.unwrap();
println!("{}", result);
let mut iter = result.iter();
while let Some(row) = iter.next() {
let col: String = row.get_by_name(col_name).unwrap();
println!("ks name = {}", col);
}
Ok(())
}