pub trait FromValue: Sized {
type Intermediate: TryFrom<Value, Error = FromValueError> + Into<Self>;
// Provided methods
fn from_value(v: Value) -> Self { ... }
fn from_value_opt(v: Value) -> Result<Self, FromValueError> { ... }
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError> { ... }
}
Expand description
Implement this trait to convert a value to some type.
The FromRow
trait requires an ability to rollback this conversion to an original Value
instance. Thats the reason why there is the Intermediate
type – consider implementing
Into<Value>
for your Intermediate
type if you want FromRow
to work with your type.
Required Associated Types§
type Intermediate: TryFrom<Value, Error = FromValueError> + Into<Self>
Provided Methods§
Sourcefn from_value(v: Value) -> Self
fn from_value(v: Value) -> Self
Will panic if could not convert v
to Self
.
Sourcefn from_value_opt(v: Value) -> Result<Self, FromValueError>
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
Will return Err(Error::FromValueError(v))
if could not convert v
to Self
.
Sourcefn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
Will return Err(Error::FromValueError(v))
if v
is not convertible to Self
.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl FromValue for bool
impl FromValue for bool
type Intermediate = ParseIrOpt<bool>
Source§impl FromValue for f32
impl FromValue for f32
type Intermediate = ParseIrOpt<f32>
Source§impl FromValue for f64
impl FromValue for f64
type Intermediate = ParseIrOpt<f64>
Source§impl FromValue for i8
impl FromValue for i8
type Intermediate = ParseIrOpt<i8>
Source§impl FromValue for i16
impl FromValue for i16
type Intermediate = ParseIrOpt<i16>
Source§impl FromValue for i32
impl FromValue for i32
type Intermediate = ParseIrOpt<i32>
Source§impl FromValue for i64
impl FromValue for i64
type Intermediate = ParseIrOpt<i64>
Source§impl FromValue for i128
impl FromValue for i128
type Intermediate = ParseIrOpt<i128>
Source§impl FromValue for isize
impl FromValue for isize
type Intermediate = ParseIrOpt<isize>
Source§impl FromValue for u8
impl FromValue for u8
type Intermediate = ParseIrOpt<u8>
Source§impl FromValue for u16
impl FromValue for u16
type Intermediate = ParseIrOpt<u16>
Source§impl FromValue for u32
impl FromValue for u32
type Intermediate = ParseIrOpt<u32>
Source§impl FromValue for u64
impl FromValue for u64
type Intermediate = ParseIrOpt<u64>
Source§impl FromValue for u128
impl FromValue for u128
type Intermediate = ParseIrOpt<u128>
Source§impl FromValue for usize
impl FromValue for usize
type Intermediate = ParseIrOpt<usize>
Source§impl FromValue for Duration
impl FromValue for Duration
type Intermediate = ParseIrOpt<Duration>
Source§impl FromValue for BigDecimal
impl FromValue for BigDecimal
type Intermediate = ParseIr<BigDecimal>
Source§impl FromValue for NaiveDateTime
impl FromValue for NaiveDateTime
type Intermediate = ParseIr<NaiveDateTime>
Source§impl FromValue for PrimitiveDateTime
impl FromValue for PrimitiveDateTime
Source§impl FromValue for Time
Converts a MySQL TIME
value to a time::Time
.
Note: time::Time
only allows for time values in the 00:00:00 - 23:59:59 range.
If you’re expecting TIME
values in MySQL’s TIME
value range of -838:59:59 - 838:59:59,
use time::Duration instead.
impl FromValue for Time
Converts a MySQL TIME
value to a time::Time
.
Note: time::Time
only allows for time values in the 00:00:00 - 23:59:59 range.
If you’re expecting TIME
values in MySQL’s TIME
value range of -838:59:59 - 838:59:59,
use time::Duration instead.