canic/ops/ext/sharding/
mod.rs1pub mod assign;
2pub mod hrw;
3pub mod policy;
4
5pub use {assign::*, policy::*};
6
7use crate::{
8 Error, ThisError,
9 ops::{OpsError, ext::ExtensionError},
10};
11
12#[derive(Debug, ThisError)]
18pub enum ShardingError {
19 #[error("shard pool not found: {0}")]
20 PoolNotFound(String),
21
22 #[error("shard cap reached")]
23 ShardCapReached,
24
25 #[error("shard creation blocked: {0}")]
26 ShardCreationBlocked(String),
27
28 #[error("sharding disabled")]
29 ShardingDisabled,
30
31 #[error("tenant '{0}' not found")]
32 TenantNotFound(String),
33}
34
35impl From<ShardingError> for Error {
36 fn from(err: ShardingError) -> Self {
37 OpsError::ExtensionError(ExtensionError::ShardingError(err)).into()
38 }
39}