lambda_runtime_errors_derive/
lib.rs1use proc_macro2::TokenStream;
2use quote::quote;
3use synstructure::decl_derive;
4
5decl_derive!([LambdaErrorExt, attributes()] => lambda_error_derive);
6
7fn lambda_error_derive(s: synstructure::Structure) -> TokenStream {
8 let name = format!("{}", s.ast().ident);
9
10 let err_impl = s.gen_impl(quote! {
11 use lambda_runtime_errors::LambdaErrorExt;
12
13 gen impl LambdaErrorExt for @Self {
14 fn error_type(&self) -> &str {
15 #name
16 }
17 }
18 });
19
20 (quote! {
21 #err_impl
22 })
23}