use toolu_orm_connection::rusqlite_impl::RusqliteConnection;
use toolu_orm_connection::{DbConnectionBlocking, DbError};
use crate::rusqlite_rows::ScalarRow;
pub fn open_in_memory() -> Result<RusqliteConnection, rusqlite::Error> {
Ok(RusqliteConnection::from_connection(
rusqlite::Connection::open_in_memory()?,
))
}
pub fn scalar(conn: &RusqliteConnection, sql: &str) -> Result<i64, DbError> {
let rows: Vec<ScalarRow> = DbConnectionBlocking::query_map(conn, sql, vec![])?;
rows
.first()
.map(|row| row.value)
.ok_or_else(|| DbError::Query(format!("no row for `{sql}`")))
}