systemprompt_extension/
error.rs1use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum LoaderError {
7 #[error("Extension '{extension}' requires dependency '{dependency}' which is not registered")]
8 MissingDependency {
9 extension: String,
10 dependency: String,
11 },
12
13 #[error("Extension with ID '{0}' is already registered")]
14 DuplicateExtension(String),
15
16 #[error("Failed to initialize extension '{extension}': {message}")]
17 InitializationFailed { extension: String, message: String },
18
19 #[error("Failed to install schema for extension '{extension}': {message}")]
20 SchemaInstallationFailed { extension: String, message: String },
21
22 #[error("Migration failed for extension '{extension}': {message}")]
23 MigrationFailed { extension: String, message: String },
24
25 #[error("Configuration validation failed for extension '{extension}': {message}")]
26 ConfigValidationFailed { extension: String, message: String },
27
28 #[error("Extension '{extension}' uses reserved API path '{path}'")]
29 ReservedPathCollision { extension: String, path: String },
30
31 #[error("Extension '{extension}' has invalid base path '{path}': must start with /api/")]
32 InvalidBasePath { extension: String, path: String },
33
34 #[error("Circular dependency detected: {chain}")]
35 CircularDependency { chain: String },
36}
37
38#[derive(Debug, Error)]
39pub enum ConfigError {
40 #[error("Configuration key '{0}' not found")]
41 NotFound(String),
42
43 #[error("Invalid configuration value for '{key}': {message}")]
44 InvalidValue { key: String, message: String },
45
46 #[error("Failed to parse configuration: {0}")]
47 ParseError(String),
48
49 #[error("Schema validation failed: {0}")]
50 SchemaValidation(String),
51}