1use crate::proto::etcdserverpb;
2
3#[derive(thiserror::Error, Debug)]
4pub enum Error {
5 #[error("io error: {0}")]
6 IOError(#[from] std::io::Error),
7 #[error("invalid URI: {0}")]
8 InvalidURI(#[from] http::uri::InvalidUri),
9 #[error("gRPC transport error: {0}")]
10 Transport(#[from] tonic::transport::Error),
11 #[error("response failed, status: {0}")]
12 Response(#[from] tonic::Status),
13 #[error("channel closed")]
14 ChannelClosed,
15 #[error("failed to create watch")]
16 CreateWatch,
17 #[error("unexpected watch event: {0}")]
18 WatchEvent(String),
19 #[error("failed to keep alive lease")]
20 KeepAliveLease,
21 #[error("watch channel send error: {0}")]
22 WatchChannelSend(#[from] tokio::sync::mpsc::error::SendError<etcdserverpb::WatchRequest>),
23 #[error("watch event exhausted")]
24 WatchEventExhausted,
25 #[error("invalid metadata token: {0}")]
26 InvalidMetadataToken(String),
27 #[error("parse metadata token: {0}")]
28 ParseMetadataToken(String),
29 #[error("poison error: {0}")]
30 PoisonError(String),
31 #[error("execute failed")]
32 ExecuteFailed,
33}