ydb 0.15.0

Crate contains generated low-level grpc code from YDB API protobuf, used as base for ydb crate
Documentation
use std::collections::HashMap;

use crate::errors::YdbResult;
use crate::grpc_wrapper::raw_query_service::stream::ExecuteQueryStream;
use crate::types::Value;

use super::exec::{
    client_begin_stream, transaction_begin_stream, CallOptions, ClientExecContext,
    TransactionExecContext,
};

pub(crate) enum ExecCoreRef<'a> {
    Client(&'a mut ClientExecContext),
    Transaction(&'a mut TransactionExecContext),
}

impl ExecCoreRef<'_> {
    pub(crate) async fn begin_stream(
        &mut self,
        text: String,
        params: HashMap<String, Value>,
        opts: CallOptions,
        concurrent_result_sets: bool,
    ) -> YdbResult<ExecuteQueryStream> {
        match self {
            ExecCoreRef::Client(ctx) => {
                client_begin_stream(ctx, text, params, opts, concurrent_result_sets).await
            }
            ExecCoreRef::Transaction(ctx) => {
                transaction_begin_stream(ctx, text, params, opts, concurrent_result_sets).await
            }
        }
    }
}