aboutsummaryrefslogtreecommitdiff
path: root/zkvms
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-04-07 16:40:44 +0300
committerKamen Mladenov <kamen@syndamia.com>2025-04-07 17:41:20 +0300
commit155f57775782c6b1f874ef39c40f07bc2edfb385 (patch)
tree11bc3d14c702284875bfb18a8c71d66e6f69e589 /zkvms
parent3ea60f8a8eaf45cfd574afa008ef93e07350be7f (diff)
downloadzkVMs-benchmarks-155f57775782c6b1f874ef39c40f07bc2edfb385.tar
zkVMs-benchmarks-155f57775782c6b1f874ef39c40f07bc2edfb385.tar.gz
zkVMs-benchmarks-155f57775782c6b1f874ef39c40f07bc2edfb385.zip
feat(zkvms/sp1): Update to use FunctionDefinition
Diffstat (limited to 'zkvms')
-rw-r--r--zkvms/sp1/wrapper_macro/src/lib.rs34
1 files changed, 17 insertions, 17 deletions
diff --git a/zkvms/sp1/wrapper_macro/src/lib.rs b/zkvms/sp1/wrapper_macro/src/lib.rs
index 14dcfad..53965c2 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::{args_divide_grouped, args_split, split_fn};
+use crate::parse_fn::FunctionDefinition;
/// Create a body, which reads all inputs, stores them in variables, then
/// commits the ones, defined as public in `default_public_input.toml` to the
@@ -32,26 +32,26 @@ use crate::parse_fn::{args_divide_grouped, args_split, split_fn};
/// ```
#[proc_macro]
pub fn make_wrapper(item: TokenStream) -> TokenStream {
- let (name, args, ret) = split_fn(&item);
- let args_split = args_split(&args);
+ let fd = FunctionDefinition::new(&item);
- let mut out = TokenStream::new();
- for arg in args_split {
- out.extend(format!("let {} = read();", arg).parse::<TokenStream>());
- }
+ let args = fd
+ .arguments()
+ .into_iter()
+ .map(|x| format!("let {x} = read();"))
+ .collect::<String>();
- let public_inputs = toml::from_str::<toml::Table>(include_str!(concat!(
- env!("INPUTS_DIR"),
- "/default_public_input.toml"
- )))
- .unwrap();
- for input in public_inputs.keys() {
- out.extend(format!("commit(&{});", input).parse::<TokenStream>());
- }
+ let mut out = TokenStream::new();
+ out.extend(args.parse::<TokenStream>());
- let (ts_patterns, _) = args_divide_grouped(&args);
+ let commits = fd
+ .public_patterns()
+ .clone()
+ .into_iter()
+ .map(|x| format!("commit(&{x});"))
+ .collect::<String>();
+ out.extend(commits.parse::<TokenStream>());
- out.extend(format!("commit(&zkp::{}{});", name, ts_patterns).parse::<TokenStream>());
+ out.extend(format!("commit(&zkp::{}({}));", fd.name, fd.grouped_patterns()).parse::<TokenStream>());
let mut block = TokenStream::new();
block.extend(format!("{{ {} }}", out).parse::<TokenStream>());