Trait tokio_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.
Implementations on Foreign Types
impl FromSql for NaiveTime[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<NaiveTime, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<NaiveTime, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for u32[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<u32, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<u32, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for Uuid[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<Uuid, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<Uuid, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for f32[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<f32, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<f32, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for i32[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<i32, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<i32, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for bool[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<bool, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<bool, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for Vec<u8>[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<Vec<u8>, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<Vec<u8>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for BitVec<u32>[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<BitVec<u32>, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<BitVec<u32>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for MacAddress[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<MacAddress, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<MacAddress, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for DateTime<FixedOffset>[src]
fn from_sql(
type_: &Type,
raw: &[u8]
) -> Result<DateTime<FixedOffset>, Box<Error + 'static + Send + Sync>>[src]
type_: &Type,
raw: &[u8]
) -> Result<DateTime<FixedOffset>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for HashMap<String, Option<String>, RandomState>[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<HashMap<String, Option<String>, RandomState>, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<HashMap<String, Option<String>, RandomState>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for NaiveDate[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<NaiveDate, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<NaiveDate, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for i8[src]
fn from_sql(&Type, raw: &[u8]) -> Result<i8, Box<Error + 'static + Send + Sync>>[src]
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for DateTime<Local>[src]
fn from_sql(
type_: &Type,
raw: &[u8]
) -> Result<DateTime<Local>, Box<Error + 'static + Send + Sync>>[src]
type_: &Type,
raw: &[u8]
) -> Result<DateTime<Local>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for f64[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<f64, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<f64, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for Bbox<f64>[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<Bbox<f64>, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<Bbox<f64>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for Value[src]
fn from_sql(
ty: &Type,
raw: &[u8]
) -> Result<Value, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: &[u8]
) -> Result<Value, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for Point<f64>[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<Point<f64>, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<Point<f64>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl<T> FromSql for Option<T> where
T: FromSql, [src]
T: FromSql,
fn from_sql(
ty: &Type,
raw: &[u8]
) -> Result<Option<T>, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: &[u8]
) -> Result<Option<T>, Box<Error + 'static + Send + Sync>>
fn from_sql_null(&Type) -> Result<Option<T>, Box<Error + 'static + Send + Sync>>[src]
fn accepts(ty: &Type) -> bool[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for NaiveDateTime[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<NaiveDateTime, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<NaiveDateTime, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for String[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<String, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<String, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for Timespec[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<Timespec, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<Timespec, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for Json[src]
fn from_sql(
ty: &Type,
raw: &[u8]
) -> Result<Json, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: &[u8]
) -> Result<Json, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for LineString<f64>[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<LineString<f64>, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<LineString<f64>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl<T> FromSql for Vec<T> where
T: FromSql, [src]
T: FromSql,
fn from_sql(
ty: &Type,
raw: &[u8]
) -> Result<Vec<T>, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: &[u8]
) -> Result<Vec<T>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for i16[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<i16, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<i16, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for i64[src]
fn from_sql(
&Type,
raw: &[u8]
) -> Result<i64, Box<Error + 'static + Send + Sync>>[src]
&Type,
raw: &[u8]
) -> Result<i64, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>
impl FromSql for DateTime<Utc>[src]
fn from_sql(
type_: &Type,
raw: &[u8]
) -> Result<DateTime<Utc>, Box<Error + 'static + Send + Sync>>[src]
type_: &Type,
raw: &[u8]
) -> Result<DateTime<Utc>, Box<Error + 'static + Send + Sync>>
fn accepts(ty: &Type) -> bool[src]
fn from_sql_null(ty: &Type) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
fn from_sql_nullable(
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>[src]
ty: &Type,
raw: Option<&[u8]>
) -> Result<Self, Box<Error + 'static + Send + Sync>>