Skip to main content

grate_limiter/
error.rs

1use thiserror::Error;
2
3/// All errors produced by grate-limiter.
4#[derive(Debug, Error)]
5pub enum Error {
6    /// The requested capability does not exist.
7    #[error("unknown capability: {0}")]
8    UnknownCapability(String),
9
10    /// The referenced provider does not exist.
11    #[error("unknown provider: {0}")]
12    UnknownProvider(String),
13
14    /// No providers are available for the requested capability.
15    #[error("no available providers for capability: {0}")]
16    NoAvailableProviders(String),
17
18    /// Provider referenced in capability is not registered.
19    #[error("capability '{capability}' references unregistered provider '{provider}'")]
20    ProviderNotRegistered {
21        capability: String,
22        provider: String,
23    },
24
25    /// Invalid configuration value.
26    #[error("invalid config: {0}")]
27    InvalidConfig(String),
28}
29
30/// Result type alias for grate-limiter operations.
31pub type Result<T> = std::result::Result<T, Error>;