rquickjs_extra_sqlite/
lib.rs1use rquickjs::{
2 function::{Async, Func},
3 module::{Declarations, Exports, ModuleDef},
4 Class, Ctx, Result,
5};
6use rquickjs_extra_utils::module::export_default;
7
8pub use self::argument::Argument;
9pub use self::database::Database;
10pub use self::open::{open, OpenOptions};
11pub use self::statement::Statement;
12pub use self::value::Value;
13
14mod argument;
15mod database;
16mod open;
17mod statement;
18mod value;
19
20pub struct SqliteModule;
21
22impl ModuleDef for SqliteModule {
23 fn declare(declare: &Declarations) -> Result<()> {
24 declare.declare(stringify!(Database))?;
25 declare.declare("open")?;
26 declare.declare("default")?;
27
28 Ok(())
29 }
30
31 fn evaluate<'js>(ctx: &Ctx<'js>, exports: &Exports<'js>) -> Result<()> {
32 export_default(ctx, exports, |default| {
33 Class::<Database>::define(default)?;
34
35 default.set("open", Func::from(Async(open::open)))?;
36
37 Ok(())
38 })?;
39 Ok(())
40 }
41}