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§
Sourcefn write_args<W>(&self, out: &mut W)
fn write_args<W>(&self, out: &mut W)
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§
Sourcefn to_args(&self) -> Vec<Vec<u8>>
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.
Sourcefn describe_numeric_behavior(&self) -> NumericBehavior
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).
Sourcefn is_single_arg(&self) -> bool
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 f32
impl ToArgs for f32
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for f64
impl ToArgs for f64
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for i8
impl ToArgs for i8
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for i16
impl ToArgs for i16
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for i32
impl ToArgs for i32
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for i64
impl ToArgs for i64
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for isize
impl ToArgs for isize
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for u16
impl ToArgs for u16
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for u32
impl ToArgs for u32
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for u64
impl ToArgs for u64
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for usize
impl ToArgs for usize
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroI8
impl ToArgs for NonZeroI8
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroI16
impl ToArgs for NonZeroI16
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroI32
impl ToArgs for NonZeroI32
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroI64
impl ToArgs for NonZeroI64
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroIsize
impl ToArgs for NonZeroIsize
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroU8
impl ToArgs for NonZeroU8
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroU16
impl ToArgs for NonZeroU16
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroU32
impl ToArgs for NonZeroU32
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroU64
impl ToArgs for NonZeroU64
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
Source§impl ToArgs for NonZeroUsize
impl ToArgs for NonZeroUsize
fn write_args<W>(&self, out: &mut W)
fn describe_numeric_behavior(&self) -> NumericBehavior
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
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
fn write_args<W>(&self, out: &mut W)
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
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
fn write_args<W>(&self, out: &mut W)
fn is_single_arg(&self) -> bool
Source§impl<T: ToArgs + Hash + Eq + Ord, V: ToArgs> ToArgs for HashMap<T, V>
impl<T: ToArgs + Hash + Eq + Ord, V: ToArgs> ToArgs for HashMap<T, V>
fn write_args<W>(&self, out: &mut W)
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
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