Skip to content

Commit 0885484

Browse files
committed
add APIs to get/set reserved bytes
1 parent a57ad4a commit 0885484

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

libsql-sys/src/connection.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,31 @@ impl<W: Wal> Connection<W> {
385385
};
386386
Ok(counter)
387387
}
388+
389+
fn reserved_bytes(&self, reserve: Option<i32>) -> Result<i32, std::ffi::c_int> {
390+
let mut reserve_value = reserve.unwrap_or(0) as std::ffi::c_int;
391+
let rc = unsafe {
392+
libsql_ffi::sqlite3_file_control(
393+
self.handle(),
394+
"main\0".as_ptr() as *const _,
395+
libsql_ffi::SQLITE_FCNTL_RESERVE_BYTES,
396+
&mut reserve_value as *mut _ as *mut _,
397+
)
398+
};
399+
if rc != libsql_ffi::SQLITE_OK {
400+
return Err(rc);
401+
}
402+
Ok(reserve_value as i32)
403+
}
404+
405+
pub fn set_reserved_bytes(&self, reserved_bytes: i32) -> Result<(), std::ffi::c_int> {
406+
self.reserved_bytes(Some(reserved_bytes))?;
407+
Ok(())
408+
}
409+
410+
pub fn get_reserved_bytes(&self) -> Result<i32, std::ffi::c_int> {
411+
self.reserved_bytes(None)
412+
}
388413
}
389414
// pub struct Connection<'a> {
390415
// pub conn: *mut crate::ffi::sqlite3,

0 commit comments

Comments
 (0)