# error.rs - source
Source of the Rust file `src/error.rs`.
Keywords: rust, rustlang, rust-lang

    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

    use std::fmt::Display;

    #[derive(Debug)]
    pub struct Error {
    	message: String
    }

    impl Error {
    	pub fn new(what: &str) -> Error {
    		Error { message: String::from(what) }
    	}
    }

    impl From<std::io::Error> for Error {
    	fn from(err: std::io::Error) -> Self {
    		Error { message: err.to_string() }
    	}
    }

    impl From<serialport::Error> for Error {
    	fn from(err: serialport::Error) -> Self {
    		Error { message: err.to_string() }
    	}
    }

    impl From<&str> for Error {
    	fn from(msg: &str) -> Self {
    		Error::new(msg)
    	}
    }

    impl From<String> for Error {
    	fn from(msg: String) -> Self {
    		Error { message: msg }
    	}
    }

    impl From<Error> for String {
    	fn from(err: Error) -> Self {
    		err.message
    	}
    }

    impl Display for Error {
    	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    		write!(f, "{}", self.message)
    	}
    }