use std::sync::Arc;
use futures::executor::block_on;
use futures::prelude::*;
use google_cloud_rust_raw::bigtable::v2::{bigtable::ReadRowsRequest, bigtable_grpc::BigtableClient};
use grpcio::{ChannelBuilder, ChannelCredentials, EnvBuilder};
async fn async_main() {
let table = "projects/mozilla-rust-sdk-dev/instances/mozilla-rust-sdk/tables/prezzy";
let endpoint = "bigtable.googleapis.com:443";
let env = Arc::new(EnvBuilder::new().build());
let creds = ChannelCredentials::google_default_credentials().unwrap();
let chan = ChannelBuilder::new(env.clone())
.max_send_message_len(1 << 28)
.max_receive_message_len(1 << 28)
.set_credentials(creds)
.connect(&endpoint);
let client = BigtableClient::new(chan);
let mut req = ReadRowsRequest::new();
req.table_name = table.to_string();
let mut stream = match client.read_rows(&req) {
Ok(s) => s,
Err(e) => {
println!("Error: {:?}", e);
return;
}
};
while let (Some(row), s) = stream.into_future().await {
stream = s;
dbg!(&row);
row.map_err(|e| dbg!(e)).expect("Failure");
}
}
fn main() {
block_on(async_main())
}