use rusqlite::Connection;
use rusqlite::functions::FunctionFlags;
use tracing::debug;
use utiles_core::tile_type::tiletype_str;
pub(super) fn add_function_ut_tiletype(db: &Connection) -> rusqlite::Result<()> {
debug!("Adding ut_tiletype function");
db.create_scalar_function(
"ut_tiletype",
1,
FunctionFlags::SQLITE_UTF8 | FunctionFlags::SQLITE_DETERMINISTIC,
move |ctx| {
assert_eq!(ctx.len(), 1, "called with unexpected number of arguments");
let blob = ctx.get_raw(0).as_blob()?;
let tt = tiletype_str(blob);
Ok(tt)
},
)
}