1use std::{error::Error, fmt};
2
3#[derive(Debug, PartialEq, Clone, Copy)]
5pub enum MorseError {
6 InvalidChar,
7 InvalidMorseSequence,
8 InvalidBinary,
9}
10
11impl fmt::Display for MorseError {
12 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13 match self {
14 MorseError::InvalidChar => write!(f, "Invalid char"),
15 MorseError::InvalidMorseSequence => write!(f, "Invalid Morse sequence "),
16 MorseError::InvalidBinary => write!(f, "Invalid binary "),
17 }
18 }
19}
20
21impl Error for MorseError {
22 fn source(&self) -> Option<&(dyn Error + 'static)> {
23 None
24 }
25
26 fn description(&self) -> &str {
27 "description() is deprecated; use Display"
28 }
29
30 fn cause(&self) -> Option<&dyn Error> {
31 self.source()
32 }
33}
34
35pub type MorseResult<T> = Result<T, MorseError>;