1#![doc = include_str!("../README.md")]
2#![warn(clippy::large_stack_arrays)]
4#![warn(clippy::arithmetic_side_effects)]
5#![warn(clippy::expect_used)]
6#![warn(clippy::unwrap_used)]
7#![warn(clippy::indexing_slicing)]
8#![warn(clippy::panic)]
9#![warn(clippy::todo)]
10#![warn(clippy::unimplemented)]
11#![warn(clippy::unreachable)]
12#![warn(clippy::missing_panics_doc)]
13#![warn(clippy::allow_attributes_without_reason)]
14#![warn(clippy::cognitive_complexity)]
15
16pub mod api;
17pub mod error;
18pub mod ffi;
19
20#[cfg(feature = "api")]
21pub use api::sqlite::Sqlite;
22
23pub fn version() -> (i32, i32, i32) {
25 let version = unsafe { ffi::sqlite3_libversion_number() };
27
28 let major = (version / 1_000_000) % 1000;
30 let minor = (version / 1_000) % 1000;
31 let patch = version % 1000;
32 (major, minor, patch)
33}
34
35#[test]
37fn assert_version() {
38 let version = version();
39 assert_eq!(version, (3, 49, 1), "Invalid SQLite version");
40}