#![allow(dead_code)]
use beyond_resp::{RespCodec, RespError, Value, Version};
use bytes::{Bytes, BytesMut};
use tokio_util::codec::{Decoder, Encoder};
pub fn parse(wire: &[u8]) -> Value {
let mut codec = RespCodec::resp2();
let mut buf = BytesMut::from(wire);
codec
.decode(&mut buf)
.expect("decode error")
.expect("incomplete frame")
}
pub fn parse3(wire: &[u8]) -> Value {
let mut codec = RespCodec::resp3();
let mut buf = BytesMut::from(wire);
codec
.decode(&mut buf)
.expect("decode error")
.expect("incomplete frame")
}
pub fn parse_err(wire: &[u8]) -> RespError {
let mut codec = RespCodec::resp2();
let mut buf = BytesMut::from(wire);
codec.decode(&mut buf).expect_err("expected error, got Ok")
}
pub fn wire2(value: &Value) -> Bytes {
encode(value, Version::Resp2)
}
pub fn wire3(value: &Value) -> Bytes {
encode(value, Version::Resp3)
}
fn encode(value: &Value, version: Version) -> Bytes {
let mut codec = RespCodec::new(version);
let mut buf = BytesMut::new();
codec.encode(value, &mut buf).unwrap();
buf.freeze()
}