1use std::error::Error as StdError;
2use std::fmt::{Display, Formatter};
3
4#[derive(Debug)]
6pub enum Error<R, P> {
7 Request(R),
9 Provider(P), NotImplemented,
13}
14
15impl<R: Display, P: Display> Display for Error<R, P> {
16 fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), std::fmt::Error> {
17 match self {
18 Self::Request(e) => write!(f, "error requesting data: {}", e),
19 Self::Provider(e) => write!(f, "provider specific error: {}", e),
20 Self::NotImplemented => write!(f, "not implemented by this provider"),
21 }
22 }
23}
24
25impl<R: StdError, P: StdError> StdError for Error<R, P> {}