1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
pub use std::error::Error as ErrorInterface;
#[ macro_export ]
macro_rules! err
{
( $msg : expr ) =>
{
$crate::BasicError::new( $msg )
};
( $msg : expr, $( $arg : expr ),+ ) =>
{
$crate::BasicError::new( format!( $msg, $( $arg ),+ ) )
};
}
#[ derive( core::fmt::Debug, core::clone::Clone, core::cmp::PartialEq ) ]
pub struct BasicError
{
msg : String,
}
impl BasicError
{
pub fn new< Msg : Into< String > >( msg : Msg ) -> BasicError
{
BasicError { msg : msg.into() }
}
pub fn msg( &self ) -> &String
{
&self.msg
}
}
impl core::fmt::Display for BasicError
{
fn fmt(&self, f: &mut core::fmt::Formatter< '_ >) -> core::fmt::Result
{
write!( f, "{}", self.msg )
}
}
impl ErrorInterface for BasicError
{
fn description( &self ) -> &str
{
&self.msg
}
}