[][src]Trait redis_asio::FromRedisValue

pub trait FromRedisValue: Sized {
    fn from_redis_value(value: &RedisValue) -> RedisResult<Self>;

    fn from_redis_u8(_: u8) -> Option<Self> { ... }
}

Trait interface requires to implement method to convert RedisValue into base type.

Example

use redis_asio::{RedisResult, RedisError, RedisErrorKind, RedisValue,
                 FromRedisValue, from_redis_value};

#[derive(PartialEq, Debug)]
struct ClientStruct{
    data: String,
}

impl FromRedisValue for ClientStruct {
    fn from_redis_value(value: &RedisValue) -> RedisResult<Self> {
        match value {
            RedisValue::BulkString(data) => {
                let data = String::from_utf8(data.clone())
                    .map_err(|err|
                        RedisError::new(RedisErrorKind::ParseError,
                                        "Cannot parse".to_string()))?;
                    Ok(ClientStruct {data})
            }
            _ => Err(RedisError::new(RedisErrorKind::ParseError,
                     "Cannot parse".to_string()))
        }
    }
}

let redis_value = RedisValue::BulkString(b"some data".to_vec());
let origin = ClientStruct {data: "some data".to_string()};
assert_eq!(origin, from_redis_value::<ClientStruct>(&redis_value).unwrap());

Required methods

Loading content...

Provided methods

fn from_redis_u8(_: u8) -> Option<Self>

Loading content...

Implementations on Foreign Types

impl FromRedisValue for u8[src]

impl FromRedisValue for String[src]

impl<T: FromRedisValue> FromRedisValue for Vec<T>[src]

impl<K: FromRedisValue + Eq + Hash, V: FromRedisValue> FromRedisValue for HashMap<K, V>[src]

impl<T1, T2> FromRedisValue for (T1, T2) where
    T1: FromRedisValue + Debug,
    T2: FromRedisValue + Debug
[src]

impl FromRedisValue for i8[src]

impl FromRedisValue for i16[src]

impl FromRedisValue for u16[src]

impl FromRedisValue for i32[src]

impl FromRedisValue for u32[src]

impl FromRedisValue for i64[src]

impl FromRedisValue for u64[src]

impl FromRedisValue for isize[src]

impl FromRedisValue for usize[src]

Loading content...

Implementors

impl FromRedisValue for RedisValue[src]

Loading content...