Add binding to sqlite3_is_interrupted

This commit is contained in:
gwenn 2024-03-10 10:17:03 +01:00
parent f884961d35
commit a29fed8512
2 changed files with 21 additions and 0 deletions

View File

@ -375,6 +375,11 @@ impl InnerConnection {
pub fn release_memory(&self) -> Result<()> {
self.decode_result(unsafe { ffi::sqlite3_db_release_memory(self.db) })
}
#[cfg(feature = "modern_sqlite")] // 3.41.0
pub fn is_interrupted(&self) -> bool {
unsafe { ffi::sqlite3_is_interrupted(self.db) == 1 }
}
}
impl Drop for InnerConnection {

View File

@ -1037,6 +1037,12 @@ impl Connection {
pub fn is_readonly(&self, db_name: DatabaseName<'_>) -> Result<bool> {
self.db.borrow().db_readonly(db_name)
}
/// Determine whether or not an interrupt is currently in effect
#[cfg(feature = "modern_sqlite")] // 3.41.0
pub fn is_interrupted(&self) -> bool {
self.db.borrow().is_interrupted()
}
}
impl fmt::Debug for Connection {
@ -2206,4 +2212,14 @@ mod test {
assert_eq!((v1.as_str(), v2), (name, age));
Ok(())
}
#[test]
#[cfg(feature = "modern_sqlite")]
fn test_is_interrupted() -> Result<()> {
let db = Connection::open_in_memory()?;
assert!(!db.is_interrupted());
db.get_interrupt_handle().interrupt();
assert!(db.is_interrupted());
Ok(())
}
}