pub enum Value {
Null,
NullArray,
String(String),
Error(String),
Integer(i64),
Bulk(String),
BufBulk(Vec<u8>),
Array(Vec<Value>),
}
Expand description
Represents a RESP value, see Redis Protocol specification.
Variants§
Null
Null bulk reply, $-1\r\n
NullArray
Null array reply, *-1\r\n
String(String)
For Simple Strings the first byte of the reply is “+”.
Error(String)
For Errors the first byte of the reply is “-”.
Integer(i64)
For Integers the first byte of the reply is “:”.
Bulk(String)
For Bulk Strings the first byte of the reply is “$”.
BufBulk(Vec<u8>)
For Bulk
Array(Vec<Value>)
For Arrays the first byte of the reply is “*”.
Implementations§
Source§impl Value
impl Value
Sourcepub fn is_null(&self) -> bool
pub fn is_null(&self) -> bool
Returns true
if the value is a Null
or NullArray
. Returns false
otherwise.
§Examples
assert_eq!(Value::Null.is_null(), true);
assert_eq!(Value::NullArray.is_null(), true);
assert_eq!(Value::Integer(123).is_null(), false);
Sourcepub fn is_error(&self) -> bool
pub fn is_error(&self) -> bool
Returns true
if the value is a Error
. Returns false
otherwise.
§Examples
assert_eq!(Value::Null.is_error(), false);
assert_eq!(Value::Error("".to_string()).is_error(), true);
Sourcepub fn encode(&self) -> Vec<u8> ⓘ
pub fn encode(&self) -> Vec<u8> ⓘ
Encode the value to RESP binary buffer.
§Examples
let val = Value::String("OK正".to_string());
assert_eq!(val.encode(), vec![43, 79, 75, 230, 173, 163, 13, 10]);
Sourcepub fn to_encoded_string(&self) -> Result<String, Error>
pub fn to_encoded_string(&self) -> Result<String, Error>
Encode the value to RESP string.
§Examples
let val = Value::String("OK正".to_string());
assert_eq!(val.to_encoded_string().unwrap(), "+OK正\r\n");
Sourcepub fn to_beautify_string(&self) -> String
pub fn to_beautify_string(&self) -> String
Encode the value to beautify formated string.
§Examples
assert_eq!(Value::Null.to_beautify_string(), "(Null)");
assert_eq!(Value::NullArray.to_beautify_string(), "(Null Array)");
assert_eq!(Value::String("OK".to_string()).to_beautify_string(), "OK");
assert_eq!(Value::Error("Err".to_string()).to_beautify_string(), "(Error) Err");
assert_eq!(Value::Integer(123).to_beautify_string(), "(Integer) 123");
assert_eq!(Value::Bulk("Bulk String".to_string()).to_beautify_string(), "\"Bulk String\"");
assert_eq!(Value::BufBulk(vec![]).to_beautify_string(), "(Empty Buffer)");
assert_eq!(Value::BufBulk(vec![0, 100]).to_beautify_string(), "(Buffer) 00 64");
assert_eq!(Value::Array(vec![]).to_beautify_string(), "(Empty Array)");
A full formated example:
1) (Null)
2) (Null Array)
3) OK
4) (Error) Err
5) (Integer) 123
6) \"Bulk String\"
7) (Empty Array)
8) (Buffer) 00 64
9) 1) (Empty Array)
2) (Integer) 123
3) \"Bulk String\"
10) 1) (Null)
2) (Null Array)
3) OK
4) (Error) Err
5) (Integer) 123
6) \"Bulk String\"
7) (Empty Array)
8) (Buffer) 00 64
9) 1) (Empty Array)
2) (Integer) 123
3) \"Bulk String\"
11) (Null)
12) 1) (Null)
2) (Null Array)
3) OK
4) (Error) Err
5) (Integer) 123
6) \"Bulk String\"
7) (Empty Array)
8) (Buffer) 00 64
9) 1) (Empty Array)
2) (Integer) 123
3) \"Bulk String\"
10) 1) (Null)
2) (Null Array)
3) OK
4) (Error) Err
5) (Integer) 123
6) \"Bulk String\"
7) (Empty Array)
8) (Buffer) 00 64
9) 1) (Empty Array)
2) (Integer) 123
3) \"Bulk String\"
11) (Null)
13) (Null)
Trait Implementations§
impl Eq for Value
impl Send for Value
impl StructuralPartialEq for Value
impl Sync for Value
Auto Trait Implementations§
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
Mutably borrows from an owned value. Read more