Skip to main content

ToArgs

Trait ToArgs 

Source
pub trait ToArgs: Sized {
    // Required method
    fn write_args<W>(&self, out: &mut W)
       where W: ?Sized + Write;

    // Provided methods
    fn to_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§

Source

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

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§

Source

fn to_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.

Source

fn describe_numeric_behavior(&self) -> NumericBehavior

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

Source

fn is_single_arg(&self) -> bool

Returns an indication 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.

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 ToArgs for &str

Source§

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

Source§

impl ToArgs for bool

Source§

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

Source§

impl ToArgs for f32

Source§

impl ToArgs for f64

Source§

impl ToArgs for i8

Source§

impl ToArgs for i16

Source§

impl ToArgs for i32

Source§

impl ToArgs for i64

Source§

impl ToArgs for isize

Source§

impl ToArgs for u8

Source§

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

Source§

impl ToArgs for u16

Source§

impl ToArgs for u32

Source§

impl ToArgs for u64

Source§

impl ToArgs for usize

Source§

impl ToArgs for String

Source§

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

Source§

impl ToArgs for NonZeroI8

Source§

impl ToArgs for NonZeroI16

Source§

impl ToArgs for NonZeroI32

Source§

impl ToArgs for NonZeroI64

Source§

impl ToArgs for NonZeroIsize

Source§

impl ToArgs for NonZeroU8

Source§

impl ToArgs for NonZeroU16

Source§

impl ToArgs for NonZeroU32

Source§

impl ToArgs for NonZeroU64

Source§

impl ToArgs for NonZeroUsize

Source§

impl<T: ToArgs + Hash + Eq + Ord> ToArgs for BTreeSet<T>

@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

Source§

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

Source§

fn is_single_arg(&self) -> bool

Source§

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

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

Source§

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

Source§

fn is_single_arg(&self) -> bool

Source§

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

Source§

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

Source§

fn is_single_arg(&self) -> bool

Source§

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

@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

Source§

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

Source§

fn is_single_arg(&self) -> bool

Source§

impl<T: ToArgs> ToArgs for &[T]

Source§

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

Source§

fn is_single_arg(&self) -> bool

Source§

impl<T: ToArgs> ToArgs for Option<T>

Source§

impl<T: ToArgs> ToArgs for &T

Source§

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

Source§

fn is_single_arg(&self) -> bool

Source§

impl<T: ToArgs> ToArgs for Vec<T>

Source§

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

Source§

fn is_single_arg(&self) -> bool

Source§

impl<T: ToArgs, const N: usize> ToArgs for &[T; N]

Source§

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

Source§

fn is_single_arg(&self) -> bool

Implementors§