lib: improve base example
Build and test / build-dynamic-library (push) Successful in 48s
Build and test / build-static-library (push) Successful in 50s
Build and test / test (push) Successful in 59s
Build and test / check (push) Failing after 1m9s

This commit is contained in:
2026-05-07 01:59:27 +09:00
parent b6394f4e2b
commit 4b3b9ee3c5
+6 -15
View File
@@ -1,18 +1,15 @@
use sqlite3_ext::{
function::{Context, FunctionOptions},
*,
Connection, FromValue, Result, ValueRef, ValueType,
function::Context,
sqlite3_ext_fn, sqlite3_ext_main,
};
fn add(a: i32, b: i32) -> i32 {
a + b
}
#[sqlite3_ext_fn(n_args = 2, deterministic)]
fn add_sqlite(ctx: &mut Context, args: &mut [&mut ValueRef]) -> Result<()> {
if args.len() != 2 {
return Err(sqlite3_ext::Error::Module(
"myadd requires exactly 2 arguments".to_string(),
));
}
if args[0].value_type() != ValueType::Integer || args[1].value_type() != ValueType::Integer {
return Err(sqlite3_ext::Error::Module(
"myadd requires both arguments to be an integer".to_string(),
@@ -28,13 +25,7 @@ fn add_sqlite(ctx: &mut Context, args: &mut [&mut ValueRef]) -> Result<()> {
#[sqlite3_ext_main(persistent)]
fn init(db: &Connection) -> Result<()> {
db.create_scalar_function(
"myadd",
&FunctionOptions::default()
.set_n_args(2)
.set_deterministic(true),
add_sqlite,
)?;
db.create_scalar_function("myadd", &ADD_SQLITE_OPTS, add_sqlite)?;
Ok(())
}
@@ -42,7 +33,7 @@ fn init(db: &Connection) -> Result<()> {
#[cfg(all(test, feature = "static"))]
mod test {
use super::*;
use sqlite3_ext::Error;
use sqlite3_ext::{Database, Error, FallibleIterator, FallibleIteratorMut};
fn setup() -> Result<Database> {
let conn = Database::open(":memory:")?;