Skip to content

frostu8/macrotk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

macrotk

An extensible macro toolkit for Rust.

I got tired of writing the same functions for handling parameters to macros, specifically attribute macros. It turns out that I was so right about being tired of it that you can just write a macro for it. Yep, now we're going full macroception.

This has actually already been done before, but it's old, and I wanted to try out writing something like it.

use syn::{parse_macro_input, LitStr};

use macrotk::{meta::Meta, FromMeta};

use proc_macro::TokenStream;

#[derive(FromMeta)]
struct MacroMeta {
    something: LitStr,
    otherthing: LitStr,
}

#[proc_macro_attribute]
pub fn cool_macro(attr: TokenStream, item: TokenStream) -> TokenStream {
    let attr = parse_macro_input!(attr as Meta<MacroMeta>);

    // now we can just use these fields!
    let something = &attr.something;
    let otherthing = &attr.something;
    
    // ... do stuff ...

    item
}

About

Macro toolkit for Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages