named_derive 0.1.2

A package that just creates a derive macro called name to save me 10 seconds from having to copy and paste code. Figuring out how to use this took 30 minites. Amazing waste of time.
Documentation
use proc_macro::TokenStream;
use quote::quote;
use syn;

#[proc_macro_derive(Named)]
pub fn my_macro_here_derive(input: TokenStream) -> TokenStream { 
    let ast = syn::parse(input).unwrap();
    impl_named_macro(&ast)
}

fn impl_named_macro(ast: &syn::DeriveInput) -> TokenStream {
    let name = &ast.ident;
    let gen = quote! {
        impl Named for #name<'a> {
            fn set_name(&mut self, new_name:&str){
                self.name = new_name;
            }
            fn get_name(&self) -> &'a str{
                self.name
            }
        }
    };
    gen.into()
}

trait Named {
	fn set_name(&mut self, new_name:&str);
	fn get_name(&self) -> &str;
}