pub enum Value {
Show 15 variants
Nil,
Int(i64),
BulkString(Vec<u8>),
Array(Vec<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>,
},
ServerError(ServerError),
}
Expand description
Internal low-level redis 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(Vec<u8>)
An arbitrary binary data, usually represents a binary-safe string.
Array(Vec<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: VerbatimFormat
Text’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.
ServerError(ServerError)
Represents an error message 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 FromRedisValue
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 FromRedisValue
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<&[Value]>
pub fn as_sequence(&self) -> Option<&[Value]>
Returns an &[Value]
if self
is compatible with a sequence type
Sourcepub fn into_sequence(self) -> Result<Vec<Value>, Value>
pub fn into_sequence(self) -> Result<Vec<Value>, Value>
Returns a Vec<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 compatible with 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 compatible with a map type.
If not, returns Err(self)
.
Sourcepub fn extract_error(self) -> RedisResult<Self>
pub fn extract_error(self) -> RedisResult<Self>
If value contains a server error, return it as an Err. Otherwise wrap the value in Ok.
Trait Implementations§
Source§impl FromRedisValue for Value
impl FromRedisValue for Value
Source§fn from_redis_value(v: &Value) -> RedisResult<Value>
fn from_redis_value(v: &Value) -> RedisResult<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_redis_value(v: Value) -> RedisResult<Self>
fn from_owned_redis_value(v: Value) -> RedisResult<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_redis_values(items: &[Value]) -> RedisResult<Vec<Self>>
fn from_redis_values(items: &[Value]) -> RedisResult<Vec<Self>>
from_redis_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_owned_redis_values(items: Vec<Value>) -> RedisResult<Vec<Self>>
fn from_owned_redis_values(items: Vec<Value>) -> RedisResult<Vec<Self>>
from_redis_values
, but takes a Vec<Value>
instead
of a &[Value]
.