Skip to content

Commit 54df763

Browse files
committed
feat: add get/set reserved bytes to c api
1 parent 8ffcc3c commit 54df763

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

bindings/c/include/libsql.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ int libsql_load_extension(libsql_connection_t conn,
107107
const char *entry_point,
108108
const char **out_err_msg);
109109

110+
int libsql_set_reserved_bytes(libsql_connection_t conn, int32_t reserved_bytes, const char **out_err_msg);
111+
112+
int libsql_get_reserved_bytes(libsql_connection_t conn, int32_t *reserved_bytes, const char **out_err_msg);
113+
110114
int libsql_reset(libsql_connection_t conn, const char **out_err_msg);
111115

112116
void libsql_disconnect(libsql_connection_t conn);

bindings/c/src/lib.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,41 @@ pub unsafe extern "C" fn libsql_load_extension(
549549
0
550550
}
551551

552+
#[no_mangle]
553+
pub unsafe extern "C" fn libsql_set_reserved_bytes(
554+
conn: libsql_connection_t,
555+
reserved_bytes: i32,
556+
out_err_msg: *mut *const std::ffi::c_char,
557+
) -> std::ffi::c_int {
558+
if conn.is_null() {
559+
set_err_msg("Null connection".to_string(), out_err_msg);
560+
return 1;
561+
}
562+
let conn = conn.get_ref();
563+
if let Err(err) = conn.set_reserved_bytes(reserved_bytes) {
564+
set_err_msg(err.to_string(), out_err_msg);
565+
}
566+
0
567+
}
568+
569+
#[no_mangle]
570+
pub unsafe extern "C" fn libsql_get_reserved_bytes(
571+
conn: libsql_connection_t,
572+
reserved_bytes: *mut i32,
573+
out_err_msg: *mut *const std::ffi::c_char,
574+
) -> std::ffi::c_int {
575+
if conn.is_null() {
576+
set_err_msg("Null connection".to_string(), out_err_msg);
577+
return 1;
578+
}
579+
let conn = conn.get_ref();
580+
match conn.get_reserved_bytes() {
581+
Ok(v) => *reserved_bytes = v,
582+
Err(err) => set_err_msg(err.to_string(), out_err_msg),
583+
}
584+
0
585+
}
586+
552587
#[no_mangle]
553588
pub unsafe extern "C" fn libsql_reset(
554589
conn: libsql_connection_t,

0 commit comments

Comments
 (0)