上文,我们直接通过println!将取得—回复打印在了终端上,这种方便我们调试,但有且只有这么一个优点。在数据最终显示的时候,我们需要数据展示更加人性化。
代码如下:
pub fn display(&self) -> String {match self {Reply::Status(s) => format!("{}\n", s),Reply::Error(s) => format!("{}\n", s),Reply::Int(s) => format!("{}\n", s),Reply::Bulk(opt) => {if let Some(s) = opt {format!("\"{}”\n", s)} else {format!("NULL\n")}}Reply::MultiBulk(opt) => {if let Some(reply_vec) = opt {if reply_vec.len() == 0 {format!("Empty\n")} else {let mut res = String::new();for reply in reply_vec.iter() {res = res + &reply.display()}res}} else {format!("NULL\n")}}}}
这里主要是将回复数据—-> 字符串。
