pub enum Value {
Show 14 variants
Nil,
Int(i64),
BulkString(Bytes),
Array(Vec<Result<Value>>),
SimpleString(String),
Okay,
Map(Vec<(Value, Value)>),
Attribute {
data: Box<Value>,
attributes: Vec<(Value, Value)>,
},
Set(Vec<Value>),
Double(f64),
Boolean(bool),
VerbatimString {
format: VerbatimFormat,
text: String,
},
BigNumber(BigInt),
Push {
kind: PushKind,
data: Vec<Value>,
},
}Expand description
Internal low-level valkey value enum.
Variants§
Nil
A nil response from the server.
Int(i64)
An integer response. Note that there are a few situations in which redis actually returns a string for an integer which is why this library generally treats integers and strings the same for all numeric responses.
BulkString(Bytes)
An arbitrary binary data, usually represents a binary-safe string.
Array(Vec<Result<Value>>)
A response containing an array with more data. This is generally used by redis to express nested structures.
SimpleString(String)
A simple string response, without line breaks and not binary safe.
Okay
A status response which represents the string “OK”.
Map(Vec<(Value, Value)>)
Unordered key,value list from the server. Use as_map_iter function.
Attribute
Attribute value from the server. Client will give data instead of whole Attribute type.
Fields
Set(Vec<Value>)
Unordered set value from the server.
Double(f64)
A floating number response from the server.
Boolean(bool)
A boolean response from the server.
VerbatimString
First String is format and other is the string
Fields
format: VerbatimFormatText’s format type
BigNumber(BigInt)
Very large number that out of the range of the signed 64 bit numbers
Push
Push data from the server.
Implementations§
Source§impl Value
Values are generally not used directly unless you are using the
more low level functionality in the library. For the most part
this is hidden with the help of the FromValue trait.
impl Value
Values are generally not used directly unless you are using the
more low level functionality in the library. For the most part
this is hidden with the help of the FromValue trait.
While on the redis protocol there is an error type this is already separated at an early point so the value only holds the remaining types.
Sourcepub fn looks_like_cursor(&self) -> bool
pub fn looks_like_cursor(&self) -> bool
Checks if the return value looks like it fulfils the cursor protocol. That means the result is an array item of length two with the first one being a cursor and the second an array response.
Sourcepub fn as_sequence(&self) -> Option<&Vec<Result<Value>>>
pub fn as_sequence(&self) -> Option<&Vec<Result<Value>>>
Returns an &Vec<Result<Value>> if self is an Array
Sourcepub fn as_plain_sequence(&self) -> Option<&[Value]>
pub fn as_plain_sequence(&self) -> Option<&[Value]>
Returns an &[Value] if self is compatible with a plain sequence type (Set or Nil).
Sourcepub fn into_sequence(self) -> Result<Vec<Result<Value>>, Value>
pub fn into_sequence(self) -> Result<Vec<Result<Value>>, Value>
Returns a Vec<Result<Value>> if self is compatible with a sequence type,
otherwise returns Err(self).
Sourcepub fn as_map_iter(&self) -> Option<MapIter<'_>>
pub fn as_map_iter(&self) -> Option<MapIter<'_>>
Returns an iterator of (&Value, &Value) if self is a Map type
Sourcepub fn into_map_iter(self) -> Result<OwnedMapIter, Value>
pub fn into_map_iter(self) -> Result<OwnedMapIter, Value>
Returns an iterator of (Value, Value) if self is a Map type.
If not, returns Err(self).
Sourcepub fn extract_error(self) -> Result<Self>
pub fn extract_error(self) -> Result<Self>
Extracts a server error from the value, if present.
If the value contains an Err element in an array, this function returns it as an Err(Error).
Otherwise, it wraps the value in Ok.
If there are multiple errors (e.g., within an array or map), only the first encountered error is returned.
This function is useful for extracting errors from values that may contain errors.
Trait Implementations§
Source§impl FromValue for Value
impl FromValue for Value
Source§fn from_value(v: &Value) -> Result<Value>
fn from_value(v: &Value) -> Result<Value>
Value this attempts to convert it into the given
destination type. If that fails because it’s not compatible an
appropriate error is generated.Source§fn from_owned_value(v: Value) -> Result<Self>
fn from_owned_value(v: Value) -> Result<Self>
Value this attempts to convert it into the given
destination type. If that fails because it’s not compatible an
appropriate error is generated.Source§fn from_values(items: &[Value]) -> Result<Vec<Self>>
fn from_values(items: &[Value]) -> Result<Vec<Self>>
from_value but constructs a vector of objects
from another vector of values. This primarily exists internally
to customize the behavior for vectors of tuples.Source§fn from_result_values(items: &[Result<Value>]) -> Result<Vec<Self>>
fn from_result_values(items: &[Result<Value>]) -> Result<Vec<Self>>
from_values but for array elements that are Result<Value>.
Propagates the first Err found, then converts each Ok(Value).Source§fn from_owned_values(items: Vec<Value>) -> Result<Vec<Self>>
fn from_owned_values(items: Vec<Value>) -> Result<Vec<Self>>
from_values, but takes a Vec<Value> instead
of a &[Value].Source§impl Routable for Value
impl Routable for Value
impl StructuralPartialEq for Value
Auto Trait Implementations§
impl !Freeze for Value
impl !RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnsafeUnpin for Value
impl !UnwindSafe for Value
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more