stepflow_serde/
errors.rs

1use stepflow::data::VarId;
2use stepflow::step::StepId;
3use stepflow::action::ActionId;
4use stepflow::SessionId;
5use stepflow::object::IdError;
6use stepflow::Error;
7
8#[derive(Debug)]
9pub enum SerdeError<T> {
10  Error(Error),
11  MissingRootStep,
12  InvalidFormat(T),
13}
14
15impl<T> From<Error> for SerdeError<T> {
16  fn from(err: Error) -> Self {
17    SerdeError::Error(err)
18  }
19}
20
21macro_rules! from_id_error {
22  ($id_type:ident) => {
23    impl<T> From<IdError<$id_type>> for SerdeError<T> {
24      fn from(err: IdError<$id_type>) -> Self {
25        SerdeError::Error(Error::$id_type(err))
26      }
27    }
28  };
29}
30
31from_id_error!(VarId);
32from_id_error!(StepId);
33from_id_error!(ActionId);
34from_id_error!(SessionId);