1use std::error::Error;
6use std::fmt;
7
8#[derive(Debug)]
10pub struct DexError {
11 pub message: String,
13}
14
15impl DexError {
16 pub fn new(msg: &str) -> DexError {
18 DexError { message: msg.to_string() }
19 }
20}
21
22impl fmt::Display for DexError {
24 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
25 write!(f,"{}", self.message)
26 }
27}
28
29impl Error for DexError {
31 fn description(&self) -> &str {
32 &self.message
33 }
34}
35
36#[cfg(test)]
37mod tests {
38 use super::*;
39
40 #[test]
41 fn test_new() {
42 let error = DexError::new("test message");
43 assert_eq!(error.message, "test message");
44 }
45
46 #[test]
47 fn test_display() {
48 let error = DexError::new("test message");
49 assert_eq!(error.to_string(), "test message");
50 }
51
52 #[test]
53 fn test_description() {
54 let error = DexError::new("test message");
55 assert_eq!(error.description(), "test message");
56 }
57}