#[async_trait::async_trait]
pub trait Read: std::fmt::Debug + Send + Sync {
async fn create_read_session(
&self,
req: crate::write::generated::gapic_storage::model::CreateReadSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::write::generated::gapic_storage::model::ReadSession>>;
async fn read_rows(
&self,
req: crate::write::generated::gapic_storage::model::ReadRowsRequest,
options: crate::RequestOptions,
) -> crate::Result<
google_cloud_gax::streaming::ResponseStream<
crate::write::generated::gapic_storage::model::ReadRowsResponse,
>,
>;
async fn split_read_stream(
&self,
req: crate::write::generated::gapic_storage::model::SplitReadStreamRequest,
options: crate::RequestOptions,
) -> crate::Result<
crate::Response<crate::write::generated::gapic_storage::model::SplitReadStreamResponse>,
>;
}
#[async_trait::async_trait]
impl<T: super::Read> Read for T {
async fn create_read_session(
&self,
req: crate::write::generated::gapic_storage::model::CreateReadSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::write::generated::gapic_storage::model::ReadSession>>
{
T::create_read_session(self, req, options).await
}
async fn read_rows(
&self,
req: crate::write::generated::gapic_storage::model::ReadRowsRequest,
options: crate::RequestOptions,
) -> crate::Result<
google_cloud_gax::streaming::ResponseStream<
crate::write::generated::gapic_storage::model::ReadRowsResponse,
>,
> {
T::read_rows(self, req, options).await
}
async fn split_read_stream(
&self,
req: crate::write::generated::gapic_storage::model::SplitReadStreamRequest,
options: crate::RequestOptions,
) -> crate::Result<
crate::Response<crate::write::generated::gapic_storage::model::SplitReadStreamResponse>,
> {
T::split_read_stream(self, req, options).await
}
}
#[async_trait::async_trait]
pub trait BigQueryWrite: std::fmt::Debug + Send + Sync {
async fn create_write_stream(
&self,
req: crate::write::generated::gapic_storage::model::CreateWriteStreamRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::write::generated::gapic_storage::model::WriteStream>>;
fn append_rows(
&self,
options: crate::RequestOptions,
) -> (
google_cloud_gax::streaming::RequestSender<
crate::write::generated::gapic_storage::model::AppendRowsRequest,
>,
google_cloud_gax::streaming::ResponseStream<
crate::write::generated::gapic_storage::model::AppendRowsResponse,
>,
);
async fn get_write_stream(
&self,
req: crate::write::generated::gapic_storage::model::GetWriteStreamRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::write::generated::gapic_storage::model::WriteStream>>;
async fn finalize_write_stream(
&self,
req: crate::write::generated::gapic_storage::model::FinalizeWriteStreamRequest,
options: crate::RequestOptions,
) -> crate::Result<
crate::Response<crate::write::generated::gapic_storage::model::FinalizeWriteStreamResponse>,
>;
async fn batch_commit_write_streams(
&self,
req: crate::write::generated::gapic_storage::model::BatchCommitWriteStreamsRequest,
options: crate::RequestOptions,
) -> crate::Result<
crate::Response<
crate::write::generated::gapic_storage::model::BatchCommitWriteStreamsResponse,
>,
>;
async fn flush_rows(
&self,
req: crate::write::generated::gapic_storage::model::FlushRowsRequest,
options: crate::RequestOptions,
) -> crate::Result<
crate::Response<crate::write::generated::gapic_storage::model::FlushRowsResponse>,
>;
}
#[async_trait::async_trait]
impl<T: super::BigQueryWrite> BigQueryWrite for T {
async fn create_write_stream(
&self,
req: crate::write::generated::gapic_storage::model::CreateWriteStreamRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::write::generated::gapic_storage::model::WriteStream>>
{
T::create_write_stream(self, req, options).await
}
fn append_rows(
&self,
options: crate::RequestOptions,
) -> (
google_cloud_gax::streaming::RequestSender<
crate::write::generated::gapic_storage::model::AppendRowsRequest,
>,
google_cloud_gax::streaming::ResponseStream<
crate::write::generated::gapic_storage::model::AppendRowsResponse,
>,
) {
T::append_rows(self, options)
}
async fn get_write_stream(
&self,
req: crate::write::generated::gapic_storage::model::GetWriteStreamRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::write::generated::gapic_storage::model::WriteStream>>
{
T::get_write_stream(self, req, options).await
}
async fn finalize_write_stream(
&self,
req: crate::write::generated::gapic_storage::model::FinalizeWriteStreamRequest,
options: crate::RequestOptions,
) -> crate::Result<
crate::Response<crate::write::generated::gapic_storage::model::FinalizeWriteStreamResponse>,
> {
T::finalize_write_stream(self, req, options).await
}
async fn batch_commit_write_streams(
&self,
req: crate::write::generated::gapic_storage::model::BatchCommitWriteStreamsRequest,
options: crate::RequestOptions,
) -> crate::Result<
crate::Response<
crate::write::generated::gapic_storage::model::BatchCommitWriteStreamsResponse,
>,
> {
T::batch_commit_write_streams(self, req, options).await
}
async fn flush_rows(
&self,
req: crate::write::generated::gapic_storage::model::FlushRowsRequest,
options: crate::RequestOptions,
) -> crate::Result<
crate::Response<crate::write::generated::gapic_storage::model::FlushRowsResponse>,
> {
T::flush_rows(self, req, options).await
}
}