Skip to content

Commit 857f8eb

Browse files
committed
Manuall impl Show for SqlState
The derive'd impl generates an incredibly bad implementation. cc rust-lang/rust#20856
1 parent 72a7544 commit 857f8eb

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/error.rs

+11-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use types::Type;
1313
macro_rules! make_errors {
1414
($($code:expr => $error:ident),+) => (
1515
/// SQLSTATE error codes
16-
#[derive(PartialEq, Eq, Clone, Show)]
16+
#[derive(PartialEq, Eq, Clone)]
1717
#[allow(missing_docs)]
1818
pub enum SqlState {
1919
$($error,)+
@@ -41,6 +41,16 @@ macro_rules! make_errors {
4141
}
4242
}
4343
}
44+
45+
impl fmt::Show for SqlState {
46+
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
47+
let s = match *self {
48+
$(SqlState::$error => stringify!($error),)+
49+
SqlState::Unknown(ref s) => return write!(fmt, "Unknown({:?})", s),
50+
};
51+
fmt.write_str(s)
52+
}
53+
}
4454
)
4555
}
4656

0 commit comments

Comments
 (0)