|| A Rust wrapper for mozStorage.
mozStorage wraps the SQLite C API with support for XPCOM data structures,
asynchronous statement execution, cleanup on shutdown, and connection
cloning that propagates attached databases, pragmas, functions, and
temporary entities. It also collects timing and memory usage stats for
telemetry, and supports detailed statement logging. Additionally, mozStorage
makes it possible to use the same connection handle from JS and native
(C++ and Rust) code.
Most mozStorage objects, like connections, statements, result rows,
and variants, are thread-safe. Each connection manages a background
thread that can be used to execute statements asynchronously, without
blocking the main thread.
This crate provides a thin wrapper to make mozStorage easier to use
from Rust. It only wraps the synchronous API, so you can either manage
the entire connection from a background thread, or use the `moz_task`
crate to dispatch tasks to the connection's async thread. Executing
synchronous statements on the main thread is not supported, and will
assert in debug builds.