pub fn trusted_relayer(args: TokenStream, input: TokenStream) -> TokenStream {
let input_clone: proc_macro2::TokenStream = input.clone().into();
if is_impl_block(&input_clone) {
if args.is_empty() {
process_impl_block_guard_only(input)
} else {
process_impl_block(args, input)
}
} else {
if !args.is_empty() {
return syn::Error::new(
proc_macro2::Span::call_site(),
"`#[trusted_relayer]` on methods does not accept arguments",
)
.to_compile_error()
.into();
}
process_fn(input)
}
}
Why do we need the
elsebranch withprocess_fn? Bothprocess_impl_blockandprocess_impl_block_guard_onlyalready inject guards into all methods marked with#[trusted_relayer]inside the impl block.