1 个不稳定版本
0.0.10 | 2022年1月2日 |
---|---|
0.0.9 |
|
0.0.3 |
|
在数据库接口中排名1934
每月下载量27
38KB
916 行
rust-resp-protocol
REDis序列化协议
安装
将 resp-protocol
添加到 Cargo.toml
[dependencies]
resp-protocol = "0.0.10"
用法
use resp_protocol;
类型
- 简单字符串
- 错误
- 整数
- 批量字符串
- 数组
简单字符串
示例
值
"+OK\r\n"
构建
use resp_protocol::SimpleString;
let simple_string: SimpleString = SimpleString::new(b"OK");
解析
use resp_protocol::SimpleString;
let string: &str = "+OK\r\n";
let simple_string: SimpleString = SimpleString::parse(string.as_bytes(), &mut 0, &string.len()).unwrap();
错误
示例
值
"-ERROR\r\n"
构建
use resp_protocol::Error;
let error: Error = Error::new(b"ERROR");
解析
use resp_protocol::Error;
let string: &str = "-ERROR\r\n";
let error: Error = Error::parse(string.as_bytes(), &mut 0, &string.len()).unwrap();
整数
示例
值
":100\r\n"
构建
use resp_protocol::Integer;
let integer: Integer = Integer::new(-100i64);
解析
use resp_protocol::Integer;
let string: &str = ":-100\r\n";
let integer: Integer = Integer::parse(string.as_bytes(), &mut 0, &string.len()).unwrap();
批量字符串
示例
值
"$6\r\nfoobar\r\n"
构建
use resp_protocol::BulkString;
let bulk_string: BulkString = BulkString::new(b"foobar");
解析
use resp_protocol::BulkString;
let string: &str = "$6\r\nfoobar\r\n";
let bulk_string: BulkString = BulkString::parse(string.as_bytes(), &mut 0, &string.len()).unwrap();
数组
示例
值
"*0\r\n" // empty array
"*2\r\n$3\r\nfoo\r\n$3\r\nbar\r\n" // bulk strings array
"*2\r\n:1\r\n$6\r\nfoobar\r\n" // mixed types array
构建
use resp_procotol::{Array, ArrayBuilder, RespType, Integer, BulkString};
let mut array_builder: ArrayBuilder = ArrayBuilder::new();
array_builder.insert(RespType::Integer(Integer::new(100)));
array_builder.insert(RespType::BulkString(BulkString::new(b"foobar")));
let array: Array = array_builder.build();
println!("{:?}", array); // Array(b"*2\r\n:100\r\n$6\r\nfoobar\r\n")
解析
use resp_protocol::Array;
let string = "*2\r\n$3\r\nfoo\r\n$3\r\nbar\r\n";
let array = Array::parse(string.as_bytes(), &mut 0, &string.len()).unwrap();
println!("{:?}", array); // Array(b"*2\r\n$3\r\nfoo\r\n$3\r\nbar\r\n")
依赖项
~170KB