mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-11-14 04:37:00 +00:00
style: Remove implement entirely
This commit is contained in:
2 files changed
-41
No files matched your search
@@ -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<TokenStream> {
|
||||
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<Path> {
|
||||
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())
|
||||
}
|
||||
@@ -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::<ItemFn, _>(args, input, refutable::refutable)
|
||||
}
|
||||
|
||||
#[proc_macro_attribute]
|
||||
pub fn implement(args: TokenStream, input: TokenStream) -> TokenStream {
|
||||
attribute_macro::<ItemFn, _>(args, input, implement::implement)
|
||||
}
|
||||
|
||||
#[proc_macro_attribute]
|
||||
pub fn config_example_generator(args: TokenStream, input: TokenStream) -> TokenStream {
|
||||
attribute_macro::<ItemStruct, _>(args, input, config::example_generator)
|
||||
|
||||
Reference in new issue
Block a user