sheave_client/
invalid_uri.rs

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
use std::{
    error::Error,
    fmt::{
        Display,
        Formatter,
        Result as FormatResult
    },
    io::{
        Error as IOError,
        ErrorKind
    }
};

/// An error that an URI in the command line option is invalid.
#[derive(Debug)]
pub struct InvalidUri(String);

impl Display for InvalidUri {
    fn fmt(&self, f: &mut Formatter<'_>) -> FormatResult {
        writeln!(f, "URI is invalid: {}", self.0)
    }
}

impl Error for InvalidUri {}

/// A utility function of constructing an `InvalidUri` error.
pub fn invalid_uri(message: String) -> IOError {
    IOError::new(
        ErrorKind::InvalidData,
        InvalidUri(message)
    )
}