cassandra-cpp 0.15.1

A Cassandra CQL driver, built on top of the DataStax C++ driver for performance and functionality.
Documentation
use cassandra_cpp::*;
use std::fs;

fn main() {
    let query = stmt!("SELECT keyspace_name FROM system_schema.keyspaces;");
    let col_name = "keyspace_name";
    let contact_points = "127.0.0.1";
    let tls_ca_certificate_path = "ca/certificate/path";

    let ca_cert = match fs::read_to_string(tls_ca_certificate_path) {
        Ok(cert) => {
            println!("Read in certificate file");
            cert
        }
        Err(e) => {
            panic!("Failed to open certificate file. Error: {}", e);
        }
    };

    let mut ssl = cassandra_cpp::Ssl::default();

    match cassandra_cpp::Ssl::add_trusted_cert(&mut ssl, &ca_cert) {
        Ok(_o) => {
            println!("Added trusted certificate");
        }
        Err(e) => {
            panic!("Failed to add trusted certificate. Error: {}", e);
        }
    }

    println!("Set verification level");
    let verify_level = vec![cassandra_cpp::SslVerifyFlag::PEER_IDENTITY];
    cassandra_cpp::Ssl::set_verify_flags(&mut ssl, &verify_level);

    let mut cluster = Cluster::default();
    cluster.set_contact_points(contact_points).unwrap();
    cluster.set_load_balance_round_robin();

    println!("Adding SSL to cluster");
    cluster.set_ssl(&mut ssl);

    match cluster.connect() {
        Ok(ref mut session) => {
            let result = session.execute(&query).wait().unwrap();
            println!("{}", result);
            for row in result.iter() {
                let col: String = row.get_by_name(col_name).unwrap();
                println!("ks name = {}", col);
            }
        }
        err => println!("{:?}", err),
    }
}