sqlite3_ext 0.2.1

Build loadable extensions for SQLite using Rust
Documentation
# Release History and Changes

## Unreleased

## 2026-05-19 (0.2.1)

**New features:**

- Users of `UnsafePtr` are now required to call `FunctionOptions::set_read_subtype` and/or `FunctionOptions::set_return_subtype` as appropriate. SQLite 3.45.0 added some optimizations that *may* discard subtype information if they are not used. Consider migrating `PassedRef` instead, if possible.
- `FunctionOptions::set_n_args` can now accept values up to 32767, although attempting to use values higher than the limit (currently 1000 by default) will cause the function registration to fail.

**Bug fixes:**

- Replace `i8` -> `c_char` for all C strings, by @h7x4.
- Fix compilation on Windows, by @arianfarid.

## 2026-03-23 (0.2.0)

**Breaking changes:**

- `VTab` must be `Sized`. Also, `VTabFunctionList`'s generic parameter must be `Sized`, which is normally the `VTab`.
- `VTab::Disconnect` and `VTab::destroy` now return a `DisconnectResult`, allowing you to recover the `VTab` if the disconnection fails because the table is still in use.
- `VTabCursor` methods now receive `&mut self` instead of `&self`.
- `VTabCursor` and `VTabTransaction` no longer take a lifetime parameter. This has no change in functionality but makes implementations cleaner.
- User-defined functions now receive `&mut Context` instead of `&Context`.
- `Context::aux_data` now returns `&T` instead of `&mut T`. `Context::aux_data_mut` allows retrieving a `&mut T`. Both methods now return a `Result` to differentiate missing data from incorrect `T` type.
- `DistinctMode` is now a struct instead of an enum. This allows supporting the new return value provided by SQLite 3.39.0.

**New features:**

- `Connection::create_scalar_function_object` is an alternative to `Connection::create_scalar_function` which allows using a lifetime smaller than `'static`.
- `impl From<&str> for Error` allows easily setting arbitrary error messages.
- `QueryResult::is_empty` and `Blob::is_empty` as shorthand for `len() == 0`.