sqlx_core_oldapi/mssql/
error.rs1use std::error::Error as StdError;
2use std::fmt::{self, Debug, Display, Formatter};
3
4use crate::error::DatabaseError;
5use crate::mssql::protocol::error::Error;
6
7pub struct MssqlDatabaseError(pub(crate) Error);
9
10impl Debug for MssqlDatabaseError {
11 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
12 f.debug_struct("MssqlDatabaseError")
13 .field("message", &self.0.message)
14 .field("number", &self.0.number)
15 .field("state", &self.0.state)
16 .field("class", &self.0.class)
17 .field("server", &self.0.server)
18 .field("procedure", &self.0.procedure)
19 .field("line", &self.0.line)
20 .finish()
21 }
22}
23
24impl Display for MssqlDatabaseError {
25 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
26 if self.0.line > 1 {
27 write!(f, "On line {}: ", self.0.line)?;
28 }
29 write!(f, "{}", self.message())
30 }
31}
32
33impl StdError for MssqlDatabaseError {}
34
35impl DatabaseError for MssqlDatabaseError {
36 #[inline]
37 fn message(&self) -> &str {
38 &self.0.message
39 }
40
41 #[doc(hidden)]
42 fn as_error(&self) -> &(dyn StdError + Send + Sync + 'static) {
43 self
44 }
45
46 #[doc(hidden)]
47 fn as_error_mut(&mut self) -> &mut (dyn StdError + Send + Sync + 'static) {
48 self
49 }
50
51 #[doc(hidden)]
52 fn into_error(self: Box<Self>) -> Box<dyn StdError + Send + Sync + 'static> {
53 self
54 }
55}