pub trait ToRedisArgs: Sized {
    // Required method
    fn write_redis_args<W>(&self, out: &mut W)
       where W: RedisWrite + ?Sized;

    // Provided methods
    fn to_redis_args(&self) -> Vec<Vec<u8>> { ... }
    fn describe_numeric_behavior(&self) -> NumericBehavior { ... }
    fn is_single_arg(&self) -> bool { ... }
}
Expand description

Used to convert a value into one or multiple redis argument strings. Most values will produce exactly one item but in some cases it might make sense to produce more than one.

Required Methods§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

This writes the value into a vector of bytes. Each item is a single argument. Most items generate a single item.

The exception to this rule currently are vectors of items.

Provided Methods§

fn to_redis_args(&self) -> Vec<Vec<u8>>

This converts the value into a vector of bytes. Each item is a single argument. Most items generate a vector of a single item.

The exception to this rule currently are vectors of items.

fn describe_numeric_behavior(&self) -> NumericBehavior

Returns an information about the contained value with regards to it’s numeric behavior in a redis context. This is used in some high level concepts to switch between different implementations of redis functions (for instance INCR vs INCRBYFLOAT).

fn is_single_arg(&self) -> bool

Returns an indiciation if the value contained is exactly one argument. It returns false if it’s zero or more than one. This is used in some high level functions to intelligently switch between GET and MGET variants.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl ToRedisArgs for bool

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

impl ToRedisArgs for f32

§

impl ToRedisArgs for f64

§

impl ToRedisArgs for i8

§

impl ToRedisArgs for i16

§

impl ToRedisArgs for i32

§

impl ToRedisArgs for i64

§

impl ToRedisArgs for isize

§

impl ToRedisArgs for u8

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

impl ToRedisArgs for u16

§

impl ToRedisArgs for u32

§

impl ToRedisArgs for u64

§

impl ToRedisArgs for usize

§

impl ToRedisArgs for String

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

impl ToRedisArgs for NonZeroI8

§

impl ToRedisArgs for NonZeroI16

§

impl ToRedisArgs for NonZeroI32

§

impl ToRedisArgs for NonZeroI64

§

impl ToRedisArgs for NonZeroIsize

§

impl ToRedisArgs for NonZeroU8

§

impl ToRedisArgs for NonZeroU16

§

impl ToRedisArgs for NonZeroU32

§

impl ToRedisArgs for NonZeroU64

§

impl ToRedisArgs for NonZeroUsize

§

impl<'a> ToRedisArgs for &'a str

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

impl<'a, T> ToRedisArgs for &'a [T; 0]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 1]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 2]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 3]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 4]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 5]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 6]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 7]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 8]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 9]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 10]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 11]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 12]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 13]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 14]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 15]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 16]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 17]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 18]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 19]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 20]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 21]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 22]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 23]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 24]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 25]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 26]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 27]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 28]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 29]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 30]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 31]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T; 32]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<'a, T> ToRedisArgs for &'a [T]
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<T> ToRedisArgs for Option<T>
where T: ToRedisArgs,

§

impl<T> ToRedisArgs for &T
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<T> ToRedisArgs for BTreeSet<T>
where T: ToRedisArgs + Hash + Eq + Ord,

@note: Redis cannot store empty sets so the application has to check whether the set is empty and if so, not attempt to use that result

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<T> ToRedisArgs for Vec<T>
where T: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<T, S> ToRedisArgs for HashSet<T, S>
where T: ToRedisArgs + Hash + Eq, S: BuildHasher + Default,

@note: Redis cannot store empty sets so the application has to check whether the set is empty and if so, not attempt to use that result

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<T, V> ToRedisArgs for BTreeMap<T, V>
where T: ToRedisArgs + Hash + Eq + Ord, V: ToRedisArgs,

this flattens BTreeMap into something that goes well with HMSET @note: Redis cannot store empty sets so the application has to check whether the set is empty and if so, not attempt to use that result

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

§

impl<T, V> ToRedisArgs for HashMap<T, V>
where T: ToRedisArgs + Hash + Eq + Ord, V: ToRedisArgs,

§

fn write_redis_args<W>(&self, out: &mut W)
where W: RedisWrite + ?Sized,

§

fn is_single_arg(&self) -> bool

Implementors§