Crate diesel_mysql_spatial
source · [−]Expand description
Diesel MySQL Spatial is an extension to Diesel that provides support for the MySQL flavour of OpenGIS spatial data types and the associated SQL functions.
Declaring your schema
The types in diesel_mysql_spatial::sql_types may be used in Diesel table! macros.
If you use the diesel.toml file for automatic schema generation, you need to add the
module to the import_types list:
[print_schema]
# Add types from `diesel_mysql_spatial` like `LineString`
import_types = ["diesel::sql_types::*", "diesel_mysql_spatial::sql_types::*"]Constructing a query
This crate provides Diesel DSL functions for most spatial SQL functions.
They live in the dsl module.
use diesel_mysql_spatial::dsl::ST_IsValid;
let valid_districts = districts.select(area).filter(ST_IsValid(area));Serializing and Deserializing
Diesel MySQL Spatial maps “Rust types” defined in the data_types module (e.g.
diesel_mysql_spatial::data_types::Point) to and from “SQL types” (e.g.
diesel_mysql_spatial::sql_types::Point). The latter types are only used to represent a
SQL type. You should only put the structs in data_types into your Queryable structs.
Modules
Structs that represent the Rust equivalent of spatial SQL types
Re-exports helper types and functions for SQL expressions
MySQL specific spatial functions for use in SQL expressions
Helper types that represent return types of spatial functions
Spatial SQL types which may be used in table definitions
Enums
The error type for (de-)serialization and conversion errors of spatial datatypes.