systemprompt_models/services/providers/
error.rs1use thiserror::Error;
11
12#[derive(Debug, Error)]
13pub enum ProviderRegistryError {
14 #[error("provider registry declares provider name '{name}' more than once")]
15 DuplicateProvider { name: String },
16
17 #[error("provider registry entry '{name}' has an empty endpoint")]
18 EmptyEndpoint { name: String },
19
20 #[error(
21 "provider registry entry '{provider}' endpoint '{endpoint}' is not permitted: {reason}"
22 )]
23 BlockedEndpoint {
24 provider: String,
25 endpoint: String,
26 reason: String,
27 },
28
29 #[error(
30 "provider registry entry '{provider}' endpoint '{endpoint}' names a Google Cloud project literally; \
31 the project is derived from the service account in its secret — write `projects/{{project}}`"
32 )]
33 LiteralProjectInEndpoint { provider: String, endpoint: String },
34
35 #[error("provider registry model id or alias '{id}' is declared more than once")]
36 DuplicateModel { id: String },
37
38 #[error("provider registry model '{id}' has an empty id")]
39 EmptyModelId { id: String },
40
41 #[error("embedded default provider catalog failed to parse: {0}")]
42 InvalidDefaultCatalog(String),
43
44 #[error("embedded Vertex rate card failed to parse: {0}")]
45 InvalidVertexRateCard(String),
46}
47
48pub type ProviderRegistryResult<T> = Result<T, ProviderRegistryError>;