#[cfg(not(any(
feature = "strict-postgres",
feature = "strict-mysql",
feature = "strict-sqlite"
)))]
pub type RullstDatabase = sqlx::Any;
#[cfg(feature = "strict-postgres")]
pub type RullstDatabase = sqlx::Postgres;
#[cfg(all(feature = "strict-mysql", not(feature = "strict-postgres")))]
pub type RullstDatabase = sqlx::MySql;
#[cfg(all(
feature = "strict-sqlite",
not(feature = "strict-postgres"),
not(feature = "strict-mysql")
))]
pub type RullstDatabase = sqlx::Sqlite;
pub trait QueryResultExt {
fn get_last_insert_id(&self) -> i64;
}
#[cfg(not(any(
feature = "strict-postgres",
feature = "strict-mysql",
feature = "strict-sqlite"
)))]
impl QueryResultExt for sqlx::any::AnyQueryResult {
fn get_last_insert_id(&self) -> i64 {
self.last_insert_id().unwrap_or(0)
}
}
#[cfg(feature = "strict-postgres")]
impl QueryResultExt for sqlx::postgres::PgQueryResult {
fn get_last_insert_id(&self) -> i64 {
0
}
}
#[cfg(all(feature = "strict-mysql", not(feature = "strict-postgres")))]
impl QueryResultExt for sqlx::mysql::MySqlQueryResult {
fn get_last_insert_id(&self) -> i64 {
self.last_insert_id() as i64
}
}
#[cfg(all(
feature = "strict-sqlite",
not(feature = "strict-postgres"),
not(feature = "strict-mysql")
))]
impl QueryResultExt for sqlx::sqlite::SqliteQueryResult {
fn get_last_insert_id(&self) -> i64 {
self.last_insert_rowid()
}
}