sqlx_core_oldapi/mssql/
error.rs

1use std::error::Error as StdError;
2use std::fmt::{self, Debug, Display, Formatter};
3
4use crate::error::DatabaseError;
5use crate::mssql::protocol::error::Error;
6
7/// An error returned from the MSSQL database.
8pub 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}