This crate allows the user to represent state in the database using Rust enums. This is achieved
through a proc macro. First the macro looks at your chosen sql_type, and then it devises a
corresponding Rust type. The mapping is as follows:
| SQL | Rust |
|---|---|
SmallInt |
i16 |
Integer |
i32 |
Int |
i32 |
BigInt |
i64 |
VarChar |
String |
Text |
String |
The macro then generates three impls: a FromSql impl, an ToSql impl and a
TryFrom impl, which allow conversion between the Sql type an the enum (FromSql and ToSql),
and from the Rust type into the enum (TryInto).
//!
Usage
extern crate diesel;
use DbEnum;
use SmallInt;
Alternatively you can use strings, with will be cast to lowercase. (e.g. Status::Ready will be
stored as "ready" in the database):