Skip to main content

systemprompt_files/services/upload/
error.rs

1//! File-upload error types.
2//!
3//! Copyright (c) systemprompt.io — Business Source License 1.1.
4//! See <https://systemprompt.io> for licensing details.
5
6use thiserror::Error;
7
8use super::FileValidationError;
9use crate::error::FilesError;
10
11#[derive(Debug, Error)]
12pub enum FileUploadError {
13    #[error("File persistence is disabled")]
14    PersistenceDisabled,
15
16    #[error("Validation failed: {0}")]
17    Validation(#[from] FileValidationError),
18
19    #[error("Failed to decode base64: {0}")]
20    Base64Decode(#[from] base64::DecodeError),
21
22    #[error("IO error: {0}")]
23    Io(#[from] std::io::Error),
24
25    #[error("Storage error: {0}")]
26    Storage(#[from] systemprompt_traits::FileStorageError),
27
28    #[error("Database error: {0}")]
29    Database(#[source] FilesError),
30
31    #[error("Base64 input too large: encoded size {encoded_size} bytes exceeds limit")]
32    Base64TooLarge { encoded_size: usize },
33
34    #[error("Path validation failed: {0}")]
35    PathValidation(String),
36}