@@ -57,18 +57,18 @@ pub extern "C" fn xOpen(
5757 let rc = unsafe {
5858 ( orig_methods. xOpen . unwrap ( ) ) ( vfs, db_file, wal_name, no_shm_mode, max_size, methods, wal)
5959 } ;
60- if rc != ffi:: SQLITE_OK {
60+ if rc != ffi:: SQLITE_OK as i32 {
6161 return rc;
6262 }
6363
6464 if !is_regular ( vfs) {
6565 tracing:: error!( "Bottomless WAL is currently only supported for regular VFS" ) ;
66- return ffi:: SQLITE_CANTOPEN ;
66+ return ffi:: SQLITE_CANTOPEN as i32 ;
6767 }
6868
6969 if is_local ( ) {
7070 tracing:: info!( "Running in local-mode only, without any replication" ) ;
71- return ffi:: SQLITE_OK ;
71+ return ffi:: SQLITE_OK as i32 ;
7272 }
7373
7474 let runtime = match tokio:: runtime:: Builder :: new_current_thread ( )
@@ -78,7 +78,7 @@ pub extern "C" fn xOpen(
7878 Ok ( runtime) => runtime,
7979 Err ( e) => {
8080 tracing:: error!( "Failed to initialize async runtime: {}" , e) ;
81- return ffi:: SQLITE_CANTOPEN ;
81+ return ffi:: SQLITE_CANTOPEN as i32 ;
8282 }
8383 } ;
8484
@@ -88,7 +88,7 @@ pub extern "C" fn xOpen(
8888 Ok ( path) => path,
8989 Err ( e) => {
9090 tracing:: error!( "Failed to parse the main database path: {}" , e) ;
91- return ffi:: SQLITE_CANTOPEN ;
91+ return ffi:: SQLITE_CANTOPEN as i32 ;
9292 }
9393 }
9494 } ;
@@ -98,12 +98,12 @@ pub extern "C" fn xOpen(
9898 Ok ( repl) => repl,
9999 Err ( e) => {
100100 tracing:: error!( "Failed to initialize replicator: {}" , e) ;
101- return ffi:: SQLITE_CANTOPEN ;
101+ return ffi:: SQLITE_CANTOPEN as i32 ;
102102 }
103103 } ;
104104
105105 let rc = block_on ! ( runtime, try_restore( & mut replicator) ) ;
106- if rc != ffi:: SQLITE_OK {
106+ if rc != ffi:: SQLITE_OK as i32 {
107107 return rc;
108108 }
109109
@@ -114,7 +114,7 @@ pub extern "C" fn xOpen(
114114 let context_ptr = Box :: into_raw ( Box :: new ( context) ) as * mut c_void ;
115115 unsafe { ( * ( * wal) ) . pMethodsData = context_ptr } ;
116116
117- ffi:: SQLITE_OK
117+ ffi:: SQLITE_OK as i32
118118}
119119
120120fn get_orig_methods ( wal : * mut Wal ) -> & ' static libsql_wal_methods {
@@ -138,7 +138,7 @@ pub extern "C" fn xClose(
138138 let orig_methods = get_orig_methods ( wal) ;
139139 let methods_data = unsafe { ( * wal) . pMethodsData as * mut replicator:: Context } ;
140140 let rc = unsafe { ( orig_methods. xClose . unwrap ( ) ) ( wal, db, sync_flags, n_buf, z_buf) } ;
141- if rc != ffi:: SQLITE_OK {
141+ if rc != ffi:: SQLITE_OK as i32 {
142142 return rc;
143143 }
144144 if !is_local ( ) && !methods_data. is_null ( ) {
@@ -194,7 +194,7 @@ pub extern "C" fn xUndo(
194194) -> i32 {
195195 let orig_methods = get_orig_methods ( wal) ;
196196 let rc = unsafe { ( orig_methods. xUndo . unwrap ( ) ) ( wal, func, ctx) } ;
197- if is_local ( ) || rc != ffi:: SQLITE_OK {
197+ if is_local ( ) || rc != ffi:: SQLITE_OK as i32 {
198198 return rc;
199199 }
200200
@@ -207,7 +207,7 @@ pub extern "C" fn xUndo(
207207 ) ;
208208 ctx. replicator . rollback_to_frame ( last_valid_frame) ;
209209
210- ffi:: SQLITE_OK
210+ ffi:: SQLITE_OK as i32
211211}
212212
213213pub extern "C" fn xSavepoint ( wal : * mut Wal , wal_data : * mut u32 ) {
@@ -218,7 +218,7 @@ pub extern "C" fn xSavepoint(wal: *mut Wal, wal_data: *mut u32) {
218218pub extern "C" fn xSavepointUndo ( wal : * mut Wal , wal_data : * mut u32 ) -> i32 {
219219 let orig_methods = get_orig_methods ( wal) ;
220220 let rc = unsafe { ( orig_methods. xSavepointUndo . unwrap ( ) ) ( wal, wal_data) } ;
221- if is_local ( ) || rc != ffi:: SQLITE_OK {
221+ if is_local ( ) || rc != ffi:: SQLITE_OK as i32 {
222222 return rc;
223223 }
224224
@@ -231,7 +231,7 @@ pub extern "C" fn xSavepointUndo(wal: *mut Wal, wal_data: *mut u32) -> i32 {
231231 ) ;
232232 ctx. replicator . rollback_to_frame ( last_valid_frame) ;
233233
234- ffi:: SQLITE_OK
234+ ffi:: SQLITE_OK as i32
235235}
236236
237237pub extern "C" fn xFrames (
@@ -253,7 +253,7 @@ pub extern "C" fn xFrames(
253253 // supported by bottomless storage.
254254 if let Err ( e) = ctx. replicator . set_page_size ( page_size as usize ) {
255255 tracing:: error!( "{}" , e) ;
256- return ffi:: SQLITE_IOERR_WRITE ;
256+ return ffi:: SQLITE_IOERR_WRITE as i32 ;
257257 }
258258 let frame_count = ffi:: PageHdrIter :: new ( page_headers, page_size as usize ) . count ( ) ;
259259 if size_after != 0 {
@@ -273,11 +273,11 @@ pub extern "C" fn xFrames(
273273 sync_flags,
274274 )
275275 } ;
276- if is_local ( ) || rc != ffi:: SQLITE_OK {
276+ if is_local ( ) || rc != ffi:: SQLITE_OK as i32 {
277277 return rc;
278278 }
279279
280- ffi:: SQLITE_OK
280+ ffi:: SQLITE_OK as i32
281281}
282282
283283extern "C" fn always_wait ( _busy_param : * mut c_void ) -> i32 {
@@ -307,9 +307,9 @@ pub extern "C" fn xCheckpoint(
307307 ** In order to avoid autocheckpoint on close (that's too often),
308308 ** checkpoint attempts weaker than TRUNCATE are ignored.
309309 */
310- if emode < ffi:: SQLITE_CHECKPOINT_TRUNCATE {
310+ if emode < ffi:: SQLITE_CHECKPOINT_TRUNCATE as i32 {
311311 tracing:: trace!( "Ignoring a checkpoint request weaker than TRUNCATE" ) ;
312- return ffi:: SQLITE_OK ;
312+ return ffi:: SQLITE_OK as i32 ;
313313 }
314314 /* If there's no busy handler, let's provide a default one,
315315 ** since we auto-upgrade the passive checkpoint
@@ -335,14 +335,14 @@ pub extern "C" fn xCheckpoint(
335335 )
336336 } ;
337337
338- if is_local ( ) || rc != ffi:: SQLITE_OK {
338+ if is_local ( ) || rc != ffi:: SQLITE_OK as i32 {
339339 return rc;
340340 }
341341
342342 let ctx = get_replicator_context ( wal) ;
343343 if ctx. replicator . commits_in_current_generation ( ) == 0 {
344344 tracing:: debug!( "No commits happened in this generation, not snapshotting" ) ;
345- return ffi:: SQLITE_OK ;
345+ return ffi:: SQLITE_OK as i32 ;
346346 }
347347
348348 let last_known_frame = ctx. replicator . last_known_frame ( ) ;
@@ -352,7 +352,7 @@ pub extern "C" fn xCheckpoint(
352352 ctx. replicator. wait_until_committed( last_known_frame)
353353 ) {
354354 tracing:: error!( "Failed to finalize replication: {}" , e) ;
355- return ffi:: SQLITE_IOERR_WRITE ;
355+ return ffi:: SQLITE_IOERR_WRITE as i32 ;
356356 }
357357
358358 ctx. replicator . new_generation ( ) ;
@@ -363,10 +363,10 @@ pub extern "C" fn xCheckpoint(
363363 "Failed to snapshot the main db file during checkpoint: {}" ,
364364 e
365365 ) ;
366- return ffi:: SQLITE_IOERR_WRITE ;
366+ return ffi:: SQLITE_IOERR_WRITE as i32 ;
367367 }
368368
369- ffi:: SQLITE_OK
369+ ffi:: SQLITE_OK as i32
370370}
371371
372372pub extern "C" fn xCallback ( wal : * mut Wal ) -> i32 {
@@ -416,42 +416,42 @@ async fn try_restore(replicator: &mut replicator::Replicator) -> i32 {
416416 replicator. new_generation ( ) ;
417417 if let Err ( e) = replicator. snapshot_main_db_file ( ) . await {
418418 tracing:: error!( "Failed to snapshot the main db file: {}" , e) ;
419- return ffi:: SQLITE_CANTOPEN ;
419+ return ffi:: SQLITE_CANTOPEN as i32 ;
420420 }
421421 // Restoration process only leaves the local WAL file if it was
422422 // detected to be newer than its remote counterpart.
423423 if let Err ( e) = replicator. maybe_replicate_wal ( ) . await {
424424 tracing:: error!( "Failed to replicate local WAL: {}" , e) ;
425- return ffi:: SQLITE_CANTOPEN ;
425+ return ffi:: SQLITE_CANTOPEN as i32 ;
426426 }
427427 }
428428 Ok ( replicator:: RestoreAction :: ReuseGeneration ( gen) ) => {
429429 replicator. set_generation ( gen) ;
430430 }
431431 Err ( e) => {
432432 tracing:: error!( "Failed to restore the database: {}" , e) ;
433- return ffi:: SQLITE_CANTOPEN ;
433+ return ffi:: SQLITE_CANTOPEN as i32 ;
434434 }
435435 }
436436
437- ffi:: SQLITE_OK
437+ ffi:: SQLITE_OK as i32
438438}
439439
440440pub extern "C" fn xPreMainDbOpen ( _methods : * mut libsql_wal_methods , path : * const c_char ) -> i32 {
441441 if is_local ( ) {
442442 tracing:: info!( "Running in local-mode only, without any replication" ) ;
443- return ffi:: SQLITE_OK ;
443+ return ffi:: SQLITE_OK as i32 ;
444444 }
445445
446446 if path. is_null ( ) {
447- return ffi:: SQLITE_OK ;
447+ return ffi:: SQLITE_OK as i32 ;
448448 }
449449 let path = unsafe {
450450 match std:: ffi:: CStr :: from_ptr ( path) . to_str ( ) {
451451 Ok ( path) => path,
452452 Err ( e) => {
453453 tracing:: error!( "Failed to parse the main database path: {}" , e) ;
454- return ffi:: SQLITE_CANTOPEN ;
454+ return ffi:: SQLITE_CANTOPEN as i32 ;
455455 }
456456 }
457457 } ;
@@ -464,23 +464,23 @@ pub extern "C" fn xPreMainDbOpen(_methods: *mut libsql_wal_methods, path: *const
464464 Ok ( runtime) => runtime,
465465 Err ( e) => {
466466 tracing:: error!( "Failed to initialize async runtime: {}" , e) ;
467- return ffi:: SQLITE_CANTOPEN ;
467+ return ffi:: SQLITE_CANTOPEN as i32 ;
468468 }
469469 } ;
470470
471471 let options = match replicator:: Options :: from_env ( ) {
472472 Ok ( options) => options,
473473 Err ( e) => {
474474 tracing:: error!( "Failed to parse replicator options: {}" , e) ;
475- return ffi:: SQLITE_CANTOPEN ;
475+ return ffi:: SQLITE_CANTOPEN as i32 ;
476476 }
477477 } ;
478478 let replicator = block_on ! ( runtime, replicator:: Replicator :: with_options( path, options) ) ;
479479 let mut replicator = match replicator {
480480 Ok ( repl) => repl,
481481 Err ( e) => {
482482 tracing:: error!( "Failed to initialize replicator: {}" , e) ;
483- return ffi:: SQLITE_CANTOPEN ;
483+ return ffi:: SQLITE_CANTOPEN as i32 ;
484484 }
485485 } ;
486486 block_on ! ( runtime, try_restore( & mut replicator) )
@@ -561,7 +561,7 @@ pub mod static_init {
561561 if orig_methods. is_null ( ) { }
562562 let methods = crate :: bottomless_methods ( orig_methods) ;
563563 let rc = unsafe { libsql_wal_methods_register ( methods) } ;
564- if rc != crate :: ffi:: SQLITE_OK {
564+ if rc != crate :: ffi:: SQLITE_OK as i32 {
565565 let _box = unsafe { Box :: from_raw ( methods as * mut libsql_wal_methods ) } ;
566566 tracing:: warn!( "Failed to instantiate bottomless WAL methods" ) ;
567567 }
0 commit comments