Trait mysql_async::prelude::FromValue
[−]
[src]
pub trait FromValue { type Intermediate: ConvIr<Self>; fn from_value(v: Value) -> Self { ... } fn from_value_opt(v: Value) -> Result<Self, FromValueError> { ... } fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError> { ... } }
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 i8
[src]
type Intermediate = ParseIr<i8>
fn from_value(v: Value) -> i8
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for i16
[src]
type Intermediate = ParseIr<i16>
fn from_value(v: Value) -> i16
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for Vec<u8>
[src]
type Intermediate = BytesIr
fn from_value(v: Value) -> Vec<u8>
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for isize
[src]
type Intermediate = ParseIr<isize>
fn from_value(v: Value) -> isize
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for i64
[src]
type Intermediate = ParseIr<i64>
fn from_value(v: Value) -> i64
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for Duration
[src]
type Intermediate = ParseIr<Duration>
fn from_value(v: Value) -> Duration
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for bool
[src]
type Intermediate = ParseIr<bool>
fn from_value(v: Value) -> bool
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for u64
[src]
type Intermediate = ParseIr<u64>
fn from_value(v: Value) -> u64
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for Value
[src]
type Intermediate = JsonIr
fn from_value(v: Value) -> Self
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for u16
[src]
type Intermediate = ParseIr<u16>
fn from_value(v: Value) -> u16
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for String
[src]
type Intermediate = StringIr
fn from_value(v: Value) -> String
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for u32
[src]
type Intermediate = ParseIr<u32>
fn from_value(v: Value) -> u32
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for usize
[src]
type Intermediate = ParseIr<usize>
fn from_value(v: Value) -> usize
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for f32
[src]
type Intermediate = ParseIr<f32>
fn from_value(v: Value) -> f32
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for f64
[src]
type Intermediate = ParseIr<f64>
fn from_value(v: Value) -> f64
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[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]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for i32
[src]
type Intermediate = ParseIr<i32>
fn from_value(v: Value) -> i32
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
impl FromValue for u8
[src]
type Intermediate = ParseIr<u8>
fn from_value(v: Value) -> u8
[src]
fn from_value_opt(v: Value) -> Result<Self, FromValueError>
[src]
fn get_intermediate(v: Value) -> Result<Self::Intermediate, FromValueError>
[src]
Implementors
impl FromValue for Uuid type Intermediate = UuidIr;
impl FromValue for NaiveTime type Intermediate = ParseIr<NaiveTime>;
impl FromValue for mysql_async::time::Duration type Intermediate = ParseIr<Duration>;
impl FromValue for NaiveDateTime type Intermediate = ParseIr<NaiveDateTime>;
impl FromValue for Timespec type Intermediate = ParseIr<Timespec>;
impl FromValue for mysql_async::Value type Intermediate = Value;
impl<T> FromValue for Deserialized<T> where
T: DeserializeOwned, type Intermediate = DeserializedIr<T>;impl FromValue for NaiveDate type Intermediate = ParseIr<NaiveDate>;