aboutsummaryrefslogtreecommitdiff
path: root/macros/src/lib.rs
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2021-06-05 15:09:30 +0200
committerMax Audron <audron@cocaine.farm>2021-06-05 15:10:53 +0200
commitea3a5aae2448cdfbd8f83eff0cc04e7825f39078 (patch)
tree399ffdc87adb85bd67e9ad7549360922b31c265f /macros/src/lib.rs
parentfix jb remote urls (diff)
add privmsg macro
Diffstat (limited to 'macros/src/lib.rs')
-rw-r--r--macros/src/lib.rs20
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();
+}