aboutsummaryrefslogtreecommitdiff
path: root/zkvms_host_io/input_macros/src
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-02-03 12:08:47 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-02-03 12:08:47 +0200
commit600b7efa6d8a8f23a86de786cf7de79b4f8c5d0e (patch)
tree1148fb0c45343122bd57f88230e16db810213b82 /zkvms_host_io/input_macros/src
parent0004e5127eb7d919b3db08b3f24c4b79843f69d6 (diff)
downloadzkVMs-benchmarks-600b7efa6d8a8f23a86de786cf7de79b4f8c5d0e.tar
zkVMs-benchmarks-600b7efa6d8a8f23a86de786cf7de79b4f8c5d0e.tar.gz
zkVMs-benchmarks-600b7efa6d8a8f23a86de786cf7de79b4f8c5d0e.zip
feat(zkvms_host_io): Make Output type contain public inputs
Diffstat (limited to 'zkvms_host_io/input_macros/src')
-rw-r--r--zkvms_host_io/input_macros/src/lib.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/zkvms_host_io/input_macros/src/lib.rs b/zkvms_host_io/input_macros/src/lib.rs
index f313a1e..5184192 100644
--- a/zkvms_host_io/input_macros/src/lib.rs
+++ b/zkvms_host_io/input_macros/src/lib.rs
@@ -14,7 +14,22 @@ fn get_types() -> (TokenStream, TokenStream) {
#[proc_macro]
pub fn generate_output_type_input_struct(_: TokenStream) -> TokenStream {
let (args, ret) = get_types();
- let output_type = format!("pub type Output = {};", ret).to_string();
+ let (patterns, types) = args_divide(&args);
+
+ let mut patterns = patterns
+ .iter()
+ .map(|x| x.to_string());
+ let public_inputs = toml::from_str::<toml::Table>(
+ include_str!(concat!(env!("INPUTS_DIR"), "/default_public_input.toml"))
+ )
+ .unwrap();
+ let mut commitment = String::new();
+ for input in public_inputs.keys() {
+ if let Some(index) = patterns.clone().position(|x| x == *input) {
+ commitment += &format!("{}, ", types[index]);
+ }
+ }
+ let output_type = format!("pub type Output = ({} {});", commitment, ret).to_string();
let all_args = args_split(&args);