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