use rusqlite::Connection;
#[cfg(feature = "opfs")]
use sqlite_wasm_vfs::sahpool::{install as install_opfs_sahpool, OpfsSAHPoolCfg};
use crate::db::{bootstrap, DbResult, DucConnection};
#[cfg(feature = "opfs")]
pub(crate) async fn open_file_opfs(name: &str) -> DbResult<DucConnection> {
install_opfs_sahpool::<rusqlite::ffi::WasmOsCallback>(&OpfsSAHPoolCfg::default(), true)
.await
.map_err(|e| DbError::Opfs(format!("{e:?}")))?;
let conn = Connection::open(name)?;
bootstrap::bootstrap(&conn)?;
Ok(DucConnection(conn))
}
pub(crate) fn open_memory() -> DbResult<DucConnection> {
let conn = Connection::open_in_memory()?;
bootstrap::bootstrap(&conn)?;
Ok(DucConnection(conn))
}