MGET returns a flat array

next
Sayan Nandan 3 years ago
parent 35755f8033
commit db68453eab

@ -194,6 +194,26 @@ where
ret
})
}
/// Write the simple query header `*1\n` to the stream
fn write_flat_array_length<'r, 's>(
&'r mut self,
len: usize,
) -> Pin<Box<dyn Future<Output = IoResult<()>> + Send + 's>>
where
'r: 's,
Self: Send + 's,
{
Box::pin(async move {
let mv_self = self;
let ret: IoResult<()> = {
mv_self.write_response(&[b'_'][..]).await?;
mv_self.write_response(len.to_string().into_bytes()).await?;
mv_self.write_response(&[b'\n'][..]).await?;
Ok(())
};
ret
})
}
/// Wraps around the `write_response` used to differentiate between a
/// success response and an error response
fn close_conn_with_error<'r, 's>(

@ -41,6 +41,7 @@ where
Strm: AsyncReadExt + AsyncWriteExt + Unpin + Send + Sync,
{
crate::err_if_len_is!(act, con, == 0);
con.write_flat_array_length(act.len() - 1).await?;
let mut keys = act.into_iter().skip(1);
while let Some(key) = keys.next() {
let res: Option<Bytes> = {

Loading…
Cancel
Save