pub mod param;
use crate::error::Result;
use crate::protocol::command::ColumnDefinition;
use crate::protocol::response::OkPayloadBytes;
use crate::protocol::{BinaryRowPayload, TextRowPayload};
pub trait RowDecoder<'a> {
type Output;
fn decode_row(&mut self, row: BinaryRowPayload<'a>) -> Result<Self::Output>;
}
pub trait BinaryResultSetHandler {
fn no_result_set(&mut self, ok: OkPayloadBytes) -> Result<()>;
fn resultset_start(&mut self, cols: &[ColumnDefinition<'_>]) -> Result<()>;
fn row(&mut self, cols: &[ColumnDefinition<'_>], row: BinaryRowPayload<'_>) -> Result<()>;
fn resultset_end(&mut self, eof: OkPayloadBytes) -> Result<()>;
}
pub trait TextResultSetHandler {
fn no_result_set(&mut self, ok: OkPayloadBytes) -> Result<()>;
fn resultset_start(&mut self, cols: &[ColumnDefinition<'_>]) -> Result<()>;
fn row(&mut self, cols: &[ColumnDefinition<'_>], row: TextRowPayload<'_>) -> Result<()>;
fn resultset_end(&mut self, eof: OkPayloadBytes) -> Result<()>;
}
#[cfg(test)]
mod param_test;