use thiserror::Error;
#[derive(Debug, Error)]
pub enum A2aError {
#[error("invalid state transition: {from:?} -> {to:?}")]
InvalidTransition {
from: crate::task::TaskState,
to: crate::task::TaskState,
},
#[error("invalid message-state transition: {from:?} -> {to:?}")]
InvalidMessageTransition {
from: crate::message::MsgState,
to: crate::message::MsgState,
},
#[error("claim conflict: {0}")]
ClaimConflict(String),
#[error("serde error: {0}")]
Serde(String),
}
impl From<serde_json::Error> for A2aError {
fn from(e: serde_json::Error) -> Self {
A2aError::Serde(e.to_string())
}
}
pub type A2aResult<T> = std::result::Result<T, A2aError>;