sqlitegis 0.1.4

SQLiteGIS: PostGIS-style spatial functions for SQLite in pure Rust.
Documentation
#![doc = include_str!("../README.md")]
#![deny(missing_docs)]
// 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`.
#![deny(unsafe_op_in_unsafe_fn)]
//! # 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 mod core;
#[doc(inline)]
pub use core::error::{Result, SqliteGisError};

#[cfg(feature = "sqlite")]
pub mod sqlite;

#[cfg(feature = "diesel")]
pub mod diesel;

#[cfg(feature = "diesel")]
pub use diesel::prelude;