From a82b39d1001fb6cb8d6e1cc824028aa08c7ed6de Mon Sep 17 00:00:00 2001 From: Kamen Mladenov Date: Wed, 22 Jan 2025 11:53:08 +0200 Subject: feat(guests_macro): Implement args_divide_grouped Use it in multiple zkVMs, simplifying codebase --- zkvms/nexus/wrapper_macro/src/lib.rs | 6 ++---- zkvms/risc0/wrapper_macro/src/lib.rs | 5 ++--- zkvms/sp1/wrapper_macro/src/lib.rs | 5 ++--- zkvms/zkm/wrapper_macro/src/lib.rs | 6 ++---- 4 files changed, 8 insertions(+), 14 deletions(-) (limited to 'zkvms') diff --git a/zkvms/nexus/wrapper_macro/src/lib.rs b/zkvms/nexus/wrapper_macro/src/lib.rs index 21bf1bb..54ea2e9 100644 --- a/zkvms/nexus/wrapper_macro/src/lib.rs +++ b/zkvms/nexus/wrapper_macro/src/lib.rs @@ -2,15 +2,13 @@ use proc_macro::TokenStream; #[path = "../../../../guests_macro/src/parse_fn.rs"] mod parse_fn; -use crate::parse_fn::{ split_fn, args_split, args_divide, group_streams }; +use crate::parse_fn::{ split_fn, args_split, args_divide_grouped }; #[proc_macro] pub fn make_wrapper(item: TokenStream) -> TokenStream { let (name, args, ret) = split_fn(&item); - let (patterns, types) = args_divide(&args); - let ts_patterns = group_streams(&patterns); - let ts_types = group_streams(&types); + let (ts_patterns, ts_types) = args_divide_grouped(&args); let mut out = TokenStream::new(); out.extend(format!("let {} = read_private_input::<{}>().unwrap();", ts_patterns, ts_types).parse::()); diff --git a/zkvms/risc0/wrapper_macro/src/lib.rs b/zkvms/risc0/wrapper_macro/src/lib.rs index eb24c33..67aaad6 100644 --- a/zkvms/risc0/wrapper_macro/src/lib.rs +++ b/zkvms/risc0/wrapper_macro/src/lib.rs @@ -2,7 +2,7 @@ use proc_macro::TokenStream; #[path = "../../../../guests_macro/src/parse_fn.rs"] mod parse_fn; -use crate::parse_fn::{ split_fn, args_split, args_divide, group_streams }; +use crate::parse_fn::{ split_fn, args_split, args_divide_grouped }; #[proc_macro] pub fn make_wrapper(item: TokenStream) -> TokenStream { @@ -14,8 +14,7 @@ pub fn make_wrapper(item: TokenStream) -> TokenStream { out.extend(format!("let {} = read();", arg).parse::()); } - let (patterns, _) = args_divide(&args); - let ts_patterns = group_streams(&patterns); + let (ts_patterns, _) = args_divide_grouped(&args); out.extend(format!("commit(&zkp::{}{});", name, ts_patterns).parse::()); diff --git a/zkvms/sp1/wrapper_macro/src/lib.rs b/zkvms/sp1/wrapper_macro/src/lib.rs index eb24c33..67aaad6 100644 --- a/zkvms/sp1/wrapper_macro/src/lib.rs +++ b/zkvms/sp1/wrapper_macro/src/lib.rs @@ -2,7 +2,7 @@ use proc_macro::TokenStream; #[path = "../../../../guests_macro/src/parse_fn.rs"] mod parse_fn; -use crate::parse_fn::{ split_fn, args_split, args_divide, group_streams }; +use crate::parse_fn::{ split_fn, args_split, args_divide_grouped }; #[proc_macro] pub fn make_wrapper(item: TokenStream) -> TokenStream { @@ -14,8 +14,7 @@ pub fn make_wrapper(item: TokenStream) -> TokenStream { out.extend(format!("let {} = read();", arg).parse::()); } - let (patterns, _) = args_divide(&args); - let ts_patterns = group_streams(&patterns); + let (ts_patterns, _) = args_divide_grouped(&args); out.extend(format!("commit(&zkp::{}{});", name, ts_patterns).parse::()); diff --git a/zkvms/zkm/wrapper_macro/src/lib.rs b/zkvms/zkm/wrapper_macro/src/lib.rs index 86594e6..57b9d24 100644 --- a/zkvms/zkm/wrapper_macro/src/lib.rs +++ b/zkvms/zkm/wrapper_macro/src/lib.rs @@ -2,15 +2,13 @@ use proc_macro::TokenStream; #[path = "../../../../guests_macro/src/parse_fn.rs"] mod parse_fn; -use crate::parse_fn::{ split_fn, args_split, args_divide, group_streams }; +use crate::parse_fn::{ split_fn, args_split, args_divide_grouped }; #[proc_macro] pub fn make_wrapper(item: TokenStream) -> TokenStream { let (name, args, ret) = split_fn(&item); - let (patterns, types) = args_divide(&args); - let ts_patterns = group_streams(&patterns); - let ts_types = group_streams(&types); + let (ts_patterns, ts_types) = args_divide_grouped(&args); let mut out = TokenStream::new(); // NOTE: The first read returns public data, the second returns private -- cgit v1.2.3