Trait postgres::types::FromSql
[−]
[src]
pub trait FromSql { fn from_sql(
ty: &Type,
raw: &[u8]
) -> Result<Self, Box<Error + 'static + Send + Sync>>; fn accepts(ty: &Type) -> bool; fn from_sql_null(
ty: &Type
) -> Result<Self, Box<Error + 'static + Send + Sync>> { ... } fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>> { ... } }
A trait for types that can be created from a Postgres value.
Types
The following implementations are provided by this crate, along with the corresponding Postgres types:
Rust type | Postgres type(s) |
---|---|
bool |
BOOL |
i8 |
"char" |
i16 |
SMALLINT, SMALLSERIAL |
i32 |
INT, SERIAL |
u32 |
OID |
i64 |
BIGINT, BIGSERIAL |
f32 |
REAL |
f64 |
DOUBLE PRECISION |
String |
VARCHAR, CHAR(n), TEXT, CITEXT, NAME, UNKNOWN |
Vec<u8> |
BYTEA |
HashMap<String, Option<String>> |
HSTORE |
In addition, some implementations are provided for types in third party
crates. These are disabled by default; to opt into one of these
implementations, activate the Cargo feature corresponding to the crate's
name prefixed by with-
. For example, the with-serde_json
feature enables
the implementation for the serde_json::Value
type.
Rust type | Postgres type(s) |
---|---|
serialize::json::Json |
JSON, JSONB |
serde_json::Value |
JSON, JSONB |
time::Timespec |
TIMESTAMP, TIMESTAMP WITH TIME ZONE |
chrono::NaiveDateTime |
TIMESTAMP |
chrono::DateTime<Utc> |
TIMESTAMP WITH TIME ZONE |
chrono::DateTime<Local> |
TIMESTAMP WITH TIME ZONE |
chrono::DateTime<FixedOffset> |
TIMESTAMP WITH TIME ZONE |
chrono::NaiveDate |
DATE |
chrono::NaiveTime |
TIME |
eui48::MacAddress |
MACADDR |
uuid::Uuid |
UUID |
bit_vec::BitVec |
BIT, VARBIT |
eui48::MacAddress |
MACADDR |
Nullability
In addition to the types listed above, FromSql
is implemented for
Option<T>
where T
implements FromSql
. An Option<T>
represents a
nullable Postgres value.
Arrays
FromSql
is implemented for Vec<T>
where T
implements FromSql
, and
corresponds to one-dimensional Postgres arrays.
Required Methods
fn from_sql(
ty: &Type,
raw: &[u8]
) -> Result<Self, Box<Error + 'static + Send + Sync>>
ty: &Type,
raw: &[u8]
) -> Result<Self, Box<Error + 'static + Send + Sync>>
Creates a new value of this type from a buffer of data of the specified
Postgres Type
in its binary format.
The caller of this method is responsible for ensuring that this type
is compatible with the Postgres Type
.
fn accepts(ty: &Type) -> bool
Determines if a value of this type can be created from the specified
Postgres Type
.
Provided Methods
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>
Creates a new value of this type from a NULL
SQL value.
The caller of this method is responsible for ensuring that this type
is compatible with the Postgres Type
.
The default implementation returns
Err(Box::new(WasNull))
.
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
A convenience function that delegates to from_sql
and from_sql_null
depending on the
value of raw
.
Implementors
impl FromSql for i16
impl FromSql for i8
impl FromSql for f64
impl FromSql for f32
impl FromSql for String
impl FromSql for bool
impl<T> FromSql for Option<T> where
T: FromSql,impl FromSql for i32
impl FromSql for i64
impl FromSql for u32
impl<T> FromSql for Date<T> where
T: FromSql,impl<T> FromSql for Timestamp<T> where
T: FromSql,impl FromSql for HashMap<String, Option<String>, RandomState>
impl<T> FromSql for Vec<T> where
T: FromSql,impl FromSql for Vec<u8>