Enum RedisValue
pub enum RedisValue {
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§
§impl Value
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.
pub 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.
pub fn as_sequence(&self) -> Option<&[Value]>
pub fn as_sequence(&self) -> Option<&[Value]>
Returns an &[Value]
if self
is compatible with a sequence type
pub 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)
.
pub 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
pub 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)
.
pub fn extract_error(self) -> Result<Value, RedisError>
pub fn extract_error(self) -> Result<Value, RedisError>
If value contains a server error, return it as an Err. Otherwise wrap the value in Ok.
Trait Implementations§
§impl FromRedisValue for Value
impl FromRedisValue for Value
§fn from_redis_value(v: &Value) -> Result<Value, RedisError>
fn from_redis_value(v: &Value) -> Result<Value, RedisError>
Value
this attempts to convert it into the given
destination type. If that fails because it’s not compatible an
appropriate error is generated.§fn from_owned_redis_value(v: Value) -> Result<Value, RedisError>
fn from_owned_redis_value(v: Value) -> Result<Value, RedisError>
Value
this attempts to convert it into the given
destination type. If that fails because it’s not compatible an
appropriate error is generated.§fn from_redis_values(items: &[Value]) -> Result<Vec<Self>, RedisError>
fn from_redis_values(items: &[Value]) -> Result<Vec<Self>, RedisError>
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.§fn from_owned_redis_values(items: Vec<Value>) -> Result<Vec<Self>, RedisError>
fn from_owned_redis_values(items: Vec<Value>) -> Result<Vec<Self>, RedisError>
from_redis_values
, but takes a Vec<Value>
instead
of a &[Value]
.§fn from_byte_vec(_vec: &[u8]) -> Option<Vec<Self>>
fn from_byte_vec(_vec: &[u8]) -> Option<Vec<Self>>
§fn from_owned_byte_vec(_vec: Vec<u8>) -> Result<Vec<Self>, RedisError>
fn from_owned_byte_vec(_vec: Vec<u8>) -> Result<Vec<Self>, RedisError>
§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 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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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