1use std::io;
2
3#[derive(Debug)]
5#[non_exhaustive]
6pub struct IncompleteBucketMap {
7 pub tier: String,
9 pub covered: u64,
11 pub expected: u64,
13}
14
15#[derive(thiserror::Error, Debug)]
17#[non_exhaustive]
18pub enum Error {
19 #[error("manager has been closed")]
21 Closed,
22 #[error("no online instances available")]
24 Unreachable,
25 #[error("instance {0} is not available")]
27 InstanceUnavailable(String),
28 #[error(
30 "bucket map for tier {} covers {} of {} buckets",
31 .0.tier, .0.covered, .0.expected
32 )]
33 IncompleteBucketMap(Box<IncompleteBucketMap>),
34 #[error("instance address is invalid: {0}")]
36 InvalidAddress(String),
37 #[error("instance port is invalid")]
39 InvalidPort,
40 #[error("uuid is invalid: {0}")]
42 InvalidUuid(#[from] uuid::Error),
43 #[error("postgres protocol error: {0}")]
45 Postgres(#[from] pg::Error),
46 #[error("postgres pool error: {0}")]
48 PostgresPool(#[from] pgpool::PoolError),
49 #[error("io error: {0}")]
51 IO(#[from] io::Error),
52}