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 {}