Skip to main content

sqlite_vector_rs/
lib.rs

1pub mod arrow_io;
2pub mod distance;
3pub mod index;
4pub mod json;
5pub mod scalar;
6pub mod types;
7pub mod vtab;
8
9#[cfg(feature = "loadable_extension")]
10use sqlite3_ext::*;
11
12/// Entry point for the loadable SQLite extension.
13#[cfg(feature = "loadable_extension")]
14#[sqlite3_ext_main(persistent)]
15fn sqlite3_extension_init(db: &Connection) -> Result<()> {
16    use sqlite3_ext::vtab::Module;
17    let module = sqlite3_ext::vtab::StandardModule::<vtab::VectorTable<'_>>::new()
18        .with_update()
19        .with_transactions()
20        .with_find_function();
21    db.create_module("vector", module, ())?;
22    scalar::register_scalar_functions(db)?;
23    Ok(())
24}
25
26/// Register the extension on a rusqlite connection (library mode).
27#[cfg(feature = "library")]
28pub fn register(conn: &rusqlite::Connection) -> std::result::Result<(), rusqlite::Error> {
29    todo!("implement library-mode registration")
30}