From d52677eed8311302b20d399a023533324e130c5e Mon Sep 17 00:00:00 2001 From: alemi Date: Tue, 24 Sep 2024 03:15:05 +0200 Subject: [PATCH] feat: option to force inline inner fn --- macro/src/attrs.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/macro/src/attrs.rs b/macro/src/attrs.rs index 12ac108..5cd99ff 100644 --- a/macro/src/attrs.rs +++ b/macro/src/attrs.rs @@ -4,6 +4,7 @@ pub(crate) struct AttrsOptions { pub(crate) package: String, pub(crate) class: String, pub(crate) exception: Option, + pub(crate) inline: bool, } impl AttrsOptions { @@ -13,6 +14,7 @@ impl AttrsOptions { let mut package = None; let mut class = None; let mut exception = None; + let mut inline = false; for attr in attrs { match what_next { @@ -23,6 +25,7 @@ impl AttrsOptions { "class" => what_next = WhatNext::Class, "exception" => what_next = WhatNext::Exception, "ptr" => {}, // accepted for backwards compatibility + "inline" => inline = true, _ => return Err(syn::Error::new(Span::call_site(), "unexpected attribute on macro: {attr}")), } } @@ -51,7 +54,7 @@ impl AttrsOptions { let Some(package) = package else { return Err(syn::Error::new(Span::call_site(), "missing required attribute 'package'")) }; let Some(class) = class else { return Err(syn::Error::new(Span::call_site(), "missing required attribute 'class'")) }; - Ok(Self { package, class, exception }) + Ok(Self { package, class, exception, inline }) } }