From 0310b4b2c54453cbbe23273de8b4a83c6210eb53 Mon Sep 17 00:00:00 2001 From: timedout Date: Fri, 26 Jun 2026 06:33:53 +0100 Subject: [PATCH] style: Remove `implement` entirely --- src/macros/implement.rs | 35 ----------------------------------- src/macros/mod.rs | 6 ------ 2 files changed, 41 deletions(-) delete mode 100644 src/macros/implement.rs diff --git a/src/macros/implement.rs b/src/macros/implement.rs deleted file mode 100644 index 7acc12d29..000000000 --- a/src/macros/implement.rs +++ /dev/null @@ -1,35 +0,0 @@ -use proc_macro::{Span, TokenStream}; -use quote::quote; -use syn::{Error, ItemFn, Meta, Path}; -use utils::get_named_generics; - -use crate::{Result, utils}; - -pub(super) fn implement(item: ItemFn, args: &[Meta]) -> Result { - let generics = get_named_generics(args, "generics")?; - let receiver = get_receiver(args)?; - let params = get_named_generics(args, "params")?; - let input = item; - let out = quote! { - impl #generics #receiver #params { - #input - } - }; - - Ok(out.into()) -} - -fn get_receiver(args: &[Meta]) -> Result { - let receiver = &args.first().ok_or_else(|| { - Error::new(Span::call_site().into(), "Missing required argument to receiver") - })?; - - let Meta::Path(receiver) = receiver else { - return Err(Error::new( - Span::call_site().into(), - "First argument is not path to receiver", - )); - }; - - Ok(receiver.clone()) -} diff --git a/src/macros/mod.rs b/src/macros/mod.rs index 906188275..843cd4e82 100644 --- a/src/macros/mod.rs +++ b/src/macros/mod.rs @@ -2,7 +2,6 @@ mod admin; mod build_info; mod config; mod debug; -mod implement; mod refutable; mod utils; @@ -35,11 +34,6 @@ pub fn refutable(args: TokenStream, input: TokenStream) -> TokenStream { attribute_macro::(args, input, refutable::refutable) } -#[proc_macro_attribute] -pub fn implement(args: TokenStream, input: TokenStream) -> TokenStream { - attribute_macro::(args, input, implement::implement) -} - #[proc_macro_attribute] pub fn config_example_generator(args: TokenStream, input: TokenStream) -> TokenStream { attribute_macro::(args, input, config::example_generator)