Skip to main content

stasis/domain/
errors.rs

1use std::error::Error;
2use std::fmt::{Display, Formatter};
3
4pub type Result<T> = std::result::Result<T, StasisError>;
5
6#[derive(Debug)]
7pub enum StasisError {
8    InvalidAgentId(String),
9    InvalidName(String),
10    InvalidSystemPrompt,
11    AgentAlreadyExists(String),
12    AgentNotFound(String),
13    PortFailure(String),
14}
15
16impl Display for StasisError {
17    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
18        match self {
19            Self::InvalidAgentId(id) => write!(f, "invalid agent id: {id}"),
20            Self::InvalidName(name) => write!(f, "invalid agent name: {name}"),
21            Self::InvalidSystemPrompt => write!(f, "system prompt must not be empty"),
22            Self::AgentAlreadyExists(id) => write!(f, "agent already exists: {id}"),
23            Self::AgentNotFound(id) => write!(f, "agent not found: {id}"),
24            Self::PortFailure(message) => write!(f, "port failure: {message}"),
25        }
26    }
27}
28
29impl Error for StasisError {}