1use std::error::Error;
15use std::{fmt, result};
16
17use glob;
18
19pub type Result<T> = result::Result<T, JavaLocatorError>;
20
21#[derive(Debug)]
22pub struct JavaLocatorError {
23 description: String,
24}
25
26impl JavaLocatorError {
27 pub(crate) fn new(description: String) -> JavaLocatorError {
28 JavaLocatorError { description }
29 }
30}
31
32impl fmt::Display for JavaLocatorError {
33 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
34 write!(f, "{}", self.description)
35 }
36}
37
38impl Error for JavaLocatorError {
39 fn description(&self) -> &str {
40 self.description.as_str()
41 }
42}
43
44impl From<std::io::Error> for JavaLocatorError {
45 fn from(err: std::io::Error) -> JavaLocatorError {
46 JavaLocatorError {
47 description: format!("{:?}", err),
48 }
49 }
50}
51
52impl From<std::str::Utf8Error> for JavaLocatorError {
53 fn from(err: std::str::Utf8Error) -> JavaLocatorError {
54 JavaLocatorError {
55 description: format!("{:?}", err),
56 }
57 }
58}
59
60impl From<glob::PatternError> for JavaLocatorError {
61 fn from(err: glob::PatternError) -> JavaLocatorError {
62 JavaLocatorError {
63 description: format!("{:?}", err),
64 }
65 }
66}