Skip to content

Commit 8ffcc3c

Browse files
committed
feat: expose set/get reserved bytes to public API
1 parent 1cfc940 commit 8ffcc3c

File tree

5 files changed

+42
-0
lines changed

5 files changed

+42
-0
lines changed

libsql/src/connection.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,14 @@ pub(crate) trait Conn {
3939

4040
async fn reset(&self);
4141

42+
fn set_reserved_bytes(&self, _reserved_bytes: i32) -> Result<()> {
43+
Err(crate::Error::ReservedBytesNotSupported)
44+
}
45+
46+
fn get_reserved_bytes(&self) -> Result<i32> {
47+
Err(crate::Error::ReservedBytesNotSupported)
48+
}
49+
4250
fn enable_load_extension(&self, _onoff: bool) -> Result<()> {
4351
Err(crate::Error::LoadExtensionNotSupported)
4452
}
@@ -230,6 +238,14 @@ impl Connection {
230238
self.conn.reset().await
231239
}
232240

241+
pub fn set_reserved_bytes(&self, reserved_bytes: i32) -> Result<()> {
242+
self.conn.set_reserved_bytes(reserved_bytes)
243+
}
244+
245+
pub fn get_reserved_bytes(&self) -> Result<i32> {
246+
self.conn.get_reserved_bytes()
247+
}
248+
233249
/// Enable loading SQLite extensions from SQL queries and Rust API.
234250
///
235251
/// See [`load_extension`](Connection::load_extension) documentation for more details.

libsql/src/errors.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ pub enum Error {
6161
Sync(crate::BoxError),
6262
#[error("WAL frame insert conflict")]
6363
WalConflict,
64+
#[error("Reserved bytes not supported")]
65+
ReservedBytesNotSupported,
6466
}
6567

6668
#[cfg(feature = "hrana")]

libsql/src/local/impls.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ impl Conn for LibsqlConnection {
8181

8282
async fn reset(&self) {}
8383

84+
fn set_reserved_bytes(&self, reserved_bytes: i32) -> Result<()> {
85+
self.conn.set_reserved_bytes(reserved_bytes)
86+
}
87+
88+
fn get_reserved_bytes(&self) -> Result<i32> {
89+
self.conn.get_reserved_bytes()
90+
}
91+
8492
fn enable_load_extension(&self, onoff: bool) -> Result<()> {
8593
self.conn.enable_load_extension(onoff)
8694
}

libsql/src/replication/connection.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,14 @@ impl Conn for RemoteConnection {
542542
}
543543

544544
async fn reset(&self) {}
545+
546+
fn set_reserved_bytes(&self, reserved_bytes: i32) -> Result<()> {
547+
self.local.set_reserved_bytes(reserved_bytes)
548+
}
549+
550+
fn get_reserved_bytes(&self) -> Result<i32> {
551+
self.local.get_reserved_bytes()
552+
}
545553
}
546554

547555
pub struct ColumnMeta {

libsql/src/sync/connection.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,4 +189,12 @@ impl Conn for SyncedConnection {
189189
}
190190

191191
async fn reset(&self) {}
192+
193+
fn set_reserved_bytes(&self, reserved_bytes: i32) -> Result<()> {
194+
self.local.set_reserved_bytes(reserved_bytes)
195+
}
196+
197+
fn get_reserved_bytes(&self) -> Result<i32> {
198+
self.local.get_reserved_bytes()
199+
}
192200
}

0 commit comments

Comments
 (0)