custom Debug for Reason (#151)
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
|
#[derive(PartialEq, Eq, Clone, Copy)]
|
||||||
pub struct Reason(u32);
|
pub struct Reason(u32);
|
||||||
|
|
||||||
impl Reason {
|
impl Reason {
|
||||||
@@ -56,6 +56,39 @@ impl From<Reason> for u32 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl fmt::Debug for Reason {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
let name = match self.0 {
|
||||||
|
0 => "NO_ERROR",
|
||||||
|
1 => "PROTOCOL_ERROR",
|
||||||
|
2 => "INTERNAL_ERROR",
|
||||||
|
3 => "FLOW_CONTROL_ERROR",
|
||||||
|
4 => "SETTINGS_TIMEOUT",
|
||||||
|
5 => "STREAM_CLOSED",
|
||||||
|
6 => "FRAME_SIZE_ERROR",
|
||||||
|
7 => "REFUSED_STREAM",
|
||||||
|
8 => "CANCEL",
|
||||||
|
9 => "COMPRESSION_ERROR",
|
||||||
|
10 => "CONNECT_ERROR",
|
||||||
|
11 => "ENHANCE_YOUR_CALM",
|
||||||
|
12 => "INADEQUATE_SECURITY",
|
||||||
|
13 => "HTTP_1_1_REQUIRED",
|
||||||
|
other => return f.debug_tuple("Reason")
|
||||||
|
.field(&Hex(other))
|
||||||
|
.finish(),
|
||||||
|
};
|
||||||
|
f.write_str(name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Hex(u32);
|
||||||
|
|
||||||
|
impl fmt::Debug for Hex {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
fmt::LowerHex::fmt(&self.0, f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl fmt::Display for Reason {
|
impl fmt::Display for Reason {
|
||||||
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
||||||
write!(fmt, "{}", self.description())
|
write!(fmt, "{}", self.description())
|
||||||
|
|||||||
Reference in New Issue
Block a user