// SPDX-FileCopyrightText: 2025 Slatian
//
// SPDX-License-Identifier: LGPL-3.0-only

//! Rusqlite (SQLite) integration for criterium.
//!
//! [Rusqlite] is a crate that make sqlite useable from within Rust.
//! To use criterium with rusqlite, enable the `rusqlite` flag, it is off by default.
//!
//! [Rusqlite]: rusqlite
//!
//! # Traits to implement on your criteria
//!
//! * [AssembleRusqliteQuery] or [TryAssembleRusqliteQuery] for criteria that match against items in a database schema.
//! * [ToRusqliteSingleField] for criteria that match against a single field in a database of a known type, but not connected to any specific schema.

mod assemble_query;
mod assembly_context;
mod query;
mod single_field;
mod try_assemble_query;

pub mod assembler;

pub use crate::rusqlite::assemble_query::AssembleRusqliteQuery;
pub use crate::rusqlite::assembly_context::AssemblyContext;
pub use crate::rusqlite::query::InvertableRusqliteQuery;
pub use crate::rusqlite::query::RusqliteQuery;
pub use crate::rusqlite::single_field::ToRusqliteSingleField;
pub use crate::rusqlite::try_assemble_query::TryAssembleRusqliteQuery;
