google-cloud-bigquery 0.19.0

Google Cloud Client Libraries for Rust - BigQuery
Documentation
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Code generated by sidekick. DO NOT EDIT.

/// A dyn-compatible, crate-private version of [super::Read].
#[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>,
    >;
}

/// All implementations of [super::Read] also implement [Read].
#[async_trait::async_trait]
impl<T: super::Read> Read for T {
    /// Forwards the call to the implementation provided by `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
    }

    /// Forwards the call to the implementation provided by `T`.
    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
    }

    /// Forwards the call to the implementation provided by `T`.
    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
    }
}

/// A dyn-compatible, crate-private version of [super::BigQueryWrite].
#[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>,
    >;
}

/// All implementations of [super::BigQueryWrite] also implement [BigQueryWrite].
#[async_trait::async_trait]
impl<T: super::BigQueryWrite> BigQueryWrite for T {
    /// Forwards the call to the implementation provided by `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
    }

    /// Forwards the call to the implementation provided by `T`.
    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)
    }

    /// Forwards the call to the implementation provided by `T`.
    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
    }

    /// Forwards the call to the implementation provided by `T`.
    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
    }

    /// Forwards the call to the implementation provided by `T`.
    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
    }

    /// Forwards the call to the implementation provided by `T`.
    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
    }
}