ydb 0.13.1

Crate contains generated low-level grpc code from YDB API protobuf, used as base for ydb crate
Documentation
use ydb_grpc::ydb_proto::{
    status_ids::StatusCode,
    table::{ReadRowsRequest, ReadRowsResponse},
};

use crate::{
    grpc::proto_issues_to_ydb_issues,
    grpc_wrapper::{
        raw_errors::RawError,
        raw_table_service::value::{RawResultSet, RawTypedValue},
    },
    YdbIssue,
};

pub(crate) struct RawReadRowsRequest {
    pub session_id: String,
    pub path: String,
    pub keys: RawTypedValue,
    pub columns: Vec<String>,
}

impl From<RawReadRowsRequest> for ReadRowsRequest {
    fn from(value: RawReadRowsRequest) -> Self {
        Self {
            session_id: value.session_id,
            path: value.path,
            keys: Some(value.keys.into()),
            columns: value.columns,
        }
    }
}

pub(crate) struct RawReadRowsResponse {
    pub status: StatusCode,
    pub issues: Vec<YdbIssue>,
    pub result_set: RawResultSet,
}

impl TryFrom<ReadRowsResponse> for RawReadRowsResponse {
    type Error = RawError;

    fn try_from(value: ReadRowsResponse) -> Result<Self, Self::Error> {
        Ok(Self {
            status: value.status(),
            issues: proto_issues_to_ydb_issues(value.issues),
            result_set: value.result_set.unwrap_or_default().try_into()?,
        })
    }
}