google-cloud-gax

Google Cloud Platform gRPC retry library.

crates.io

Installation

[dependencies] google-cloud-gax = 0.2.0

Usage

```rust use googlecloudgax::invoke::invoke_reuse;

pub async fn createsession( &mut self, req: CreateSessionRequest, opt: Option, ) -> Result, Status> { let mut retrysetting = Client::getcallsetting(opt); let database = &req.database; let token = self.get_token().await?;

// retry gRPC call
return invoke_reuse(
    |spanner_client| async {
        let request = create_request(format!("database={}", database), &token, req.clone());
        spanner_client
            .create_session(request)
            .await
            .map_err(|e| (e, spanner_client))
    },
    &mut self.spanner_client,
    &mut retry_setting,
)
.await;

}) ```