use proc_macro2::Span;
use syn::Error as SynError;
#[derive(Debug)]
pub enum MacroError {
Syn(SynError),
NoEndpointsConfigured { span: Span },
}
impl MacroError {
pub fn into_compile_error(self) -> proc_macro2::TokenStream {
match self {
MacroError::Syn(err) => err.to_compile_error(),
MacroError::NoEndpointsConfigured { span } => {
SynError::new(span, "at least one endpoint must be defined").to_compile_error()
}
}
}
}
impl From<SynError> for MacroError {
fn from(err: SynError) -> Self {
MacroError::Syn(err)
}
}
pub type MacroResult<T> = std::result::Result<T, MacroError>;