rusqlite/
version.rs

1use crate::ffi;
2use std::ffi::CStr;
3
4/// Returns the SQLite version as an integer; e.g., `3016002` for version
5/// 3.16.2.
6///
7/// See [`sqlite3_libversion_number()`](https://www.sqlite.org/c3ref/libversion.html).
8#[inline]
9#[must_use]
10pub fn version_number() -> i32 {
11    unsafe { ffi::sqlite3_libversion_number() }
12}
13
14/// Returns the SQLite version as a string; e.g., `"3.16.2"` for version 3.16.2.
15///
16/// See [`sqlite3_libversion()`](https://www.sqlite.org/c3ref/libversion.html).
17///
18/// # Panics
19///
20/// Panics when version is not valid UTF-8.
21#[inline]
22#[must_use]
23pub fn version() -> &'static str {
24    let cstr = unsafe { CStr::from_ptr(ffi::sqlite3_libversion()) };
25    cstr.to_str()
26        .expect("SQLite version string is not valid UTF8 ?!")
27}