diff options
| author | Max Audron <audron@cocaine.farm> | 2021-06-05 15:09:30 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2021-06-05 15:10:53 +0200 |
| commit | ea3a5aae2448cdfbd8f83eff0cc04e7825f39078 (patch) | |
| tree | 399ffdc87adb85bd67e9ad7549360922b31c265f /macros/src/lib.rs | |
| parent | fix jb remote urls (diff) | |
add privmsg macro
Diffstat (limited to 'macros/src/lib.rs')
| -rw-r--r-- | macros/src/lib.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 222f14d..5ccf1bb 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -156,3 +156,23 @@ pub fn catinator(tokens: TokenStream) -> TokenStream { return gen.into(); } +#[proc_macro] +pub fn privmsg(tokens: TokenStream) -> TokenStream { + use crate::macro_types::privmsg::Item; + let item = parse_macro_input!(tokens as Item); + + let msg = item.msg; + let func = item.func; + + let gen = quote! { + match &#msg.command { + Command::PRIVMSG(target, text) => { + #func + + Ok(()) + } + _ => Ok(()), + } + }; + return gen.into(); +} |
