spanner-rs 0.3.0

Cloud Spanner Rust Client
Documentation
use std::ops::{Deref, DerefMut};

use spanner_rs::{Client, Error};

pub(crate) struct ClientWrapper(Client);
impl Deref for ClientWrapper {
    type Target = Client;

    fn deref(&self) -> &Self::Target {
        &self.0
    }
}

impl DerefMut for ClientWrapper {
    fn deref_mut(&mut self) -> &mut Self::Target {
        &mut self.0
    }
}

#[allow(dead_code)]
pub(crate) async fn new_client() -> Result<ClientWrapper, Error> {
    let _ = env_logger::builder().is_test(true).try_init();
    dotenv::dotenv().ok();

    let project_id = std::env::var("SPANNER_RS_PROJECT_ID")
        .expect("missing SPANNER_RS_PROJECT_ID environment variable");
    let instance = std::env::var("SPANNER_RS_INSTANCE")
        .expect("missing SPANNER_RS_INSTANCE environment variable");
    let database = std::env::var("SPANNER_RS_DATABASE")
        .expect("missing SPANNER_RS_DATABASE environment variable");

    let client = Client::configure()
        .project(project_id)
        .instance(instance)
        .database(database)
        .connect()
        .await?;

    Ok(ClientWrapper(client))
}