1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Every unsafe operation inside an `unsafe fn` must sit in an explicit
// `unsafe {}` block, so each one is an acknowledged hazard rather than riding
// on the function-level `unsafe`. See the safety contract in `sqlite::ffi`.
//! # Crate layout
//!
//! Modules are gated behind features so consumers only pay for what they
//! ask for. See the `[features]` table in Cargo.toml for the full list.
//! In short:
//!
//! - `core` is always available (pure-Rust geometry, EWKB I/O, function
//! catalog, no SQLite or Diesel deps).
//! - `sqlite` adds [`crate::sqlite::register_functions`] for in-process
//! registration against a `*mut sqlite3` connection.
//! - `sqlite-extension` further adds the `#[no_mangle]` C entry points so
//! the cdylib build is loadable via SQLite's `load_extension`.
//! - `diesel` adds backend-agnostic types
//! ([`Geometry`](crate::diesel::Geometry),
//! [`Geography`](crate::diesel::Geography)) plus
//! [`GeometryExpressionMethods`](crate::diesel::GeometryExpressionMethods).
//! - `diesel-sqlite` / `diesel-postgres` add the backend-specific impls.
//!
//! Diesel users typically import via the prelude:
//! `use sqlitegis::prelude::*;` (re-exported from
//! [`crate::diesel::prelude`]).
pub use ;
pub use prelude;