nostr_android_signer/
error.rs1use std::{fmt, io};
4
5use nostr::{event, key};
6use tonic::Status;
7
8#[derive(Debug)]
10pub enum Error {
11 IO(io::Error),
13 Transport(tonic::transport::Error),
15 Status(Status),
17 Keys(key::Error),
19 Event(event::Error),
21 Timeout,
23}
24
25impl std::error::Error for Error {}
26
27impl fmt::Display for Error {
28 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
29 match self {
30 Self::IO(e) => e.fmt(f),
31 Self::Transport(e) => e.fmt(f),
32 Self::Status(status) => f.write_str(status.message()),
33 Self::Keys(e) => e.fmt(f),
34 Self::Event(e) => e.fmt(f),
35 Self::Timeout => f.write_str("Timeout"),
36 }
37 }
38}
39
40impl From<io::Error> for Error {
41 fn from(e: io::Error) -> Self {
42 Self::IO(e)
43 }
44}
45
46impl From<tonic::transport::Error> for Error {
47 fn from(e: tonic::transport::Error) -> Self {
48 Self::Transport(e)
49 }
50}
51
52impl From<Status> for Error {
53 fn from(s: Status) -> Self {
54 Self::Status(s)
55 }
56}
57
58impl From<key::Error> for Error {
59 fn from(e: key::Error) -> Self {
60 Self::Keys(e)
61 }
62}
63
64impl From<event::Error> for Error {
65 fn from(e: event::Error) -> Self {
66 Self::Event(e)
67 }
68}