use rawsql::Loader;
use crate::{DbError, error::DbResult};
pub(crate) trait SqlDatabase {
fn get_loader(&self) -> &Loader;
#[allow(dead_code)]
fn binder(&self, param_number: usize) -> String {
format!("${param_number}")
}
fn get_query<'a>(&'a self, name: &'a str) -> DbResult<&'a str> {
get_query(self.get_loader(), name)
}
}
pub(super) fn get_query<'a>(loader: &'a Loader, name: &'a str) -> DbResult<&'a str> {
loader
.get(name)
.map(String::as_str)
.ok_or_else(|| DbError::DatabaseError(format!("{name} SQL query can't be found")))
}