[−][src]Trait mysql_async::prelude::FromValue
Implement this trait to convert value to something.
FromRow
requires ability to cheaply rollback FromValue
conversion. This ability is
provided via Intermediate
associated type.
Example implementation:
ⓘThis example is not tested
#[derive(Debug)] pub struct StringIr { bytes: Vec<u8>, } impl ConvIr<String> for StringIr { fn new(v: Value) -> MyResult<StringIr> { match v { Value::Bytes(bytes) => match from_utf8(&*bytes) { Ok(_) => Ok(StringIr { bytes: bytes }), Err(_) => Err(Error::FromValueError(Value::Bytes(bytes))), }, v => Err(Error::FromValueError(v)), } } fn commit(self) -> String { unsafe { String::from_utf8_unchecked(self.bytes) } } fn rollback(self) -> Value { Value::Bytes(self.bytes) } } impl FromValue for String { type Intermediate = StringIr; }
Associated Types
type Intermediate: ConvIr<Self>
Provided methods
fn from_value(v: Value) -> Self
Will panic if could not convert v
to Self
.
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
Will return Err(Error::FromValueError(v))
if could not convert v
to Self
.
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
Will return Err(Error::FromValueError(v))
if v
is not convertible to Self
.
Implementations on Foreign Types
impl FromValue for f64
[src]
type Intermediate = ParseIr<f64>
fn from_value(v: Value) -> f64
[src]
impl FromValue for Duration
[src]
type Intermediate = ParseIr<Duration>
fn from_value(v: Value) -> Duration
[src]
impl FromValue for NaiveDate
[src]
type Intermediate = ParseIr<NaiveDate>
fn from_value(v: Value) -> NaiveDate
[src]
impl FromValue for f32
[src]
type Intermediate = ParseIr<f32>
fn from_value(v: Value) -> f32
[src]
impl FromValue for i32
[src]
type Intermediate = ParseIr<i32>
fn from_value(v: Value) -> i32
[src]
impl FromValue for Value
[src]
type Intermediate = JsonIr
impl FromValue for BigUint
[src]
type Intermediate = ParseIr<BigUint>
fn from_value(v: Value) -> BigUint
[src]
impl FromValue for Timespec
[src]
type Intermediate = ParseIr<Timespec>
fn from_value(v: Value) -> Timespec
[src]
impl FromValue for i8
[src]
type Intermediate = ParseIr<i8>
fn from_value(v: Value) -> i8
[src]
impl FromValue for Vec<u8>
[src]
type Intermediate = BytesIr
fn from_value(v: Value) -> Vec<u8>
[src]
impl<T> FromValue for Option<T> where
T: FromValue,
[src]
T: FromValue,
type Intermediate = OptionIr<<T as FromValue>::Intermediate>
fn from_value(v: Value) -> Option<T>
[src]
impl FromValue for String
[src]
type Intermediate = StringIr
fn from_value(v: Value) -> String
[src]
impl FromValue for u8
[src]
type Intermediate = ParseIr<u8>
fn from_value(v: Value) -> u8
[src]
impl FromValue for BigInt
[src]
type Intermediate = ParseIr<BigInt>
fn from_value(v: Value) -> BigInt
[src]
impl FromValue for u128
[src]
type Intermediate = ParseIr<u128>
fn from_value(v: Value) -> u128
[src]
impl FromValue for NaiveTime
[src]
type Intermediate = ParseIr<NaiveTime>
fn from_value(v: Value) -> NaiveTime
[src]
impl FromValue for usize
[src]
type Intermediate = ParseIr<usize>
fn from_value(v: Value) -> usize
[src]
impl FromValue for Decimal
[src]
type Intermediate = ParseIr<Decimal>
fn from_value(v: Value) -> Decimal
[src]
impl FromValue for i64
[src]
type Intermediate = ParseIr<i64>
fn from_value(v: Value) -> i64
[src]
impl FromValue for u32
[src]
type Intermediate = ParseIr<u32>
fn from_value(v: Value) -> u32
[src]
impl FromValue for isize
[src]
type Intermediate = ParseIr<isize>
fn from_value(v: Value) -> isize
[src]
impl FromValue for i16
[src]
type Intermediate = ParseIr<i16>
fn from_value(v: Value) -> i16
[src]
impl FromValue for u64
[src]
type Intermediate = ParseIr<u64>
fn from_value(v: Value) -> u64
[src]
impl FromValue for bool
[src]
type Intermediate = ParseIr<bool>
fn from_value(v: Value) -> bool
[src]
impl FromValue for Duration
[src]
type Intermediate = ParseIr<Duration>
fn from_value(v: Value) -> Duration
[src]
impl FromValue for NaiveDateTime
[src]
type Intermediate = ParseIr<NaiveDateTime>
fn from_value(v: Value) -> NaiveDateTime
[src]
impl FromValue for i128
[src]
type Intermediate = ParseIr<i128>
fn from_value(v: Value) -> i128
[src]
impl FromValue for u16
[src]
type Intermediate = ParseIr<u16>
fn from_value(v: Value) -> u16
[src]
impl FromValue for Uuid
[src]
type Intermediate = UuidIr
impl FromValue for BigDecimal
[src]
type Intermediate = ParseIr<BigDecimal>
fn from_value(v: Value) -> BigDecimal
[src]
Implementors
impl FromValue for mysql_async::Value
[src]
type Intermediate = Value
fn from_value(v: Value) -> Value
[src]
fn from_value_opt(v: Value) -> Result<Value, FromValueError>
[src]
impl<T> FromValue for Deserialized<T> where
T: DeserializeOwned,
[src]
T: DeserializeOwned,