From 158bcae00dbe2af50e51468ad003fb594a858e6d Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Mon, 26 Feb 2024 19:00:42 -0500 Subject: changes --- matrix-macros/src/lib.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'matrix-macros') diff --git a/matrix-macros/src/lib.rs b/matrix-macros/src/lib.rs index 8099fd6..b12d30b 100644 --- a/matrix-macros/src/lib.rs +++ b/matrix-macros/src/lib.rs @@ -1,16 +1,15 @@ use proc_macro::TokenStream; -use syn::{ItemFn, parse::Parse, Token, LitBool, LitInt}; +use syn::{ItemFn, parse::Parse, Token, LitInt}; use quote::quote; struct NativeFuncParams { arity: LitInt, - variadic: LitBool, + variadic: Option, } impl Parse for NativeFuncParams { fn parse(input: syn::parse::ParseStream) -> syn::Result { let arity = input.parse()?; - input.parse::()?; let variadic = input.parse()?; Ok(Self { arity , variadic }) } @@ -22,7 +21,7 @@ pub fn native_func(input: TokenStream, annotated_item: TokenStream) -> TokenStre let input: NativeFuncParams = syn::parse(input).unwrap(); let arity = input.arity; - let variadic = input.variadic; + let variadic = input.variadic.is_some(); let visibility = itemfn.vis; let block = itemfn.block; @@ -43,7 +42,11 @@ pub fn native_func(input: TokenStream, annotated_item: TokenStream) -> TokenStre name: ::std::rc::Rc::from( #name_str ), arity: #arity, variadic: #variadic, - fun: ::matrix::chunk::InnerFunction::Native(Box::new(|#inputs| #output #block)) + fun: ::matrix::chunk::InnerFunction::Native( + ::std::rc::Rc::new( + |#inputs| #output #block + ) + ) }) } }; -- cgit v1.2.3-freya