Skip to main content

bamboo_server/session_app/
errors.rs

1//! Error types for session use cases.
2
3/// Errors that can occur when loading a session.
4#[derive(Debug, thiserror::Error)]
5pub enum SessionLoadError {
6    #[error("session not found: {0}")]
7    NotFound(String),
8    #[error("storage error: {0}")]
9    StorageError(String),
10}
11
12/// Errors that can occur when saving a session.
13#[derive(Debug, thiserror::Error)]
14pub enum SessionSaveError {
15    #[error("storage error: {0}")]
16    StorageError(String),
17}
18
19/// Errors from the chat use case.
20#[derive(Debug, thiserror::Error)]
21pub enum ChatError {
22    #[error("session load failed: {0}")]
23    LoadFailed(#[from] SessionLoadError),
24    #[error("session save failed: {0}")]
25    SaveFailed(#[from] SessionSaveError),
26    #[error("invalid model: {0}")]
27    InvalidModel(String),
28}
29
30/// Errors from the execute preparation use case.
31#[derive(Debug, thiserror::Error)]
32pub enum ExecutePreparationError {
33    #[error("session not found: {0}")]
34    NotFound(String),
35    #[error("session load failed: {0}")]
36    LoadFailed(#[from] SessionLoadError),
37    #[error("session save failed: {0}")]
38    SaveFailed(#[from] SessionSaveError),
39    #[error("invalid model: model is required")]
40    ModelRequired,
41    #[error("invalid image fallback configuration: {0}")]
42    ImageFallbackError(String),
43}
44
45/// Errors from the respond use case.
46#[derive(Debug, thiserror::Error)]
47pub enum RespondError {
48    #[error("session not found: {0}")]
49    NotFound(String),
50    #[error("session load failed: {0}")]
51    LoadFailed(#[from] SessionLoadError),
52    #[error("session save failed: {0}")]
53    SaveFailed(#[from] SessionSaveError),
54    #[error("no pending question waiting for response")]
55    NoPendingQuestion,
56    #[error("invalid response: {0}")]
57    InvalidResponse(String),
58}