#[repr(u8)]
#[derive(Debug, PartialEq)]
pub enum UniResponse {
Success = 0,
ValidateError = 1,
AuthError = 2,
Timeout = 3,
Conflict = 4,
KeyError = 5,
Duplicate = 11,
CheckError = 12,
CodeError = 13,
MsgError = 14,
WriteError = 15,
ReadError = 16,
SendError = 17,
ResponseError = 18,
}
impl UniResponse {
pub fn from_bytes(res_data: &[u8]) -> Self {
match res_data[0] {
0 => UniResponse::Success,
1 => UniResponse::ValidateError,
2 => UniResponse::AuthError,
3 => UniResponse::Timeout,
4 => UniResponse::Conflict,
5 => UniResponse::KeyError,
11 => UniResponse::Duplicate,
12 => UniResponse::CheckError,
13 => UniResponse::CodeError,
14 => UniResponse::MsgError,
15 => UniResponse::WriteError,
16 => UniResponse::ReadError,
17 => UniResponse::SendError,
18 => UniResponse::ResponseError,
_ => panic!("转换命令处理结果枚举失败"),
}
}
pub fn to_bytes(self) -> [u8; 1] {
[self as u8]
}
}
impl std::fmt::Display for UniResponse {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
UniResponse::Success => write!(f, "成功"),
UniResponse::ValidateError => write!(f, "命令数据验证错误"),
UniResponse::AuthError => write!(f, "身份验证错误"),
UniResponse::Timeout => write!(f, "请求超时"),
UniResponse::Conflict => write!(f, "被冲突的新命令取代"),
UniResponse::KeyError => write!(f, "提取键错误"),
UniResponse::Duplicate => write!(f, "命令已执行成功"),
UniResponse::CheckError => write!(f, "命令无法应用到聚合"),
UniResponse::CodeError => write!(f, "序列化错误"),
UniResponse::MsgError => write!(f, "消息处理错误"),
UniResponse::WriteError => write!(f, "写入事件流错误"),
UniResponse::ReadError => write!(f, "读取事件流错误"),
UniResponse::SendError => write!(f, "写入命令流错误"),
UniResponse::ResponseError => write!(f, "命令结果反馈通道意外关闭"),
}
}
}