use crate::{db::session::sql::SqlStatementResult, value::Value};
#[derive(Debug)]
pub(in crate::db::session::sql) struct SqlProjectionPayload {
columns: Vec<String>,
rows: Vec<Vec<Value>>,
row_count: u32,
}
impl SqlProjectionPayload {
#[must_use]
pub(in crate::db::session::sql) const fn new(
columns: Vec<String>,
rows: Vec<Vec<Value>>,
row_count: u32,
) -> Self {
Self {
columns,
rows,
row_count,
}
}
#[must_use]
pub(in crate::db::session::sql) fn into_parts(self) -> (Vec<String>, Vec<Vec<Value>>, u32) {
(self.columns, self.rows, self.row_count)
}
#[must_use]
pub(in crate::db::session::sql) fn into_statement_result(self) -> SqlStatementResult {
SqlStatementResult::Projection {
columns: self.columns,
rows: self.rows,
row_count: self.row_count,
}
}
}