aboutsummaryrefslogtreecommitdiff
path: root/zkvms/zkm/wrapper_macro/src/lib.rs
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-02-10 14:29:15 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-02-10 14:29:15 +0200
commit1cb88615eaa0b6a37d42d99c59ad1e23c5d5aa7a (patch)
tree55944e6d38a0e4b717577c74632cafd649cc6994 /zkvms/zkm/wrapper_macro/src/lib.rs
parent10fb5333c341445303205bc25fb121630a99b27b (diff)
downloadzkVMs-benchmarks-1cb88615eaa0b6a37d42d99c59ad1e23c5d5aa7a.tar
zkVMs-benchmarks-1cb88615eaa0b6a37d42d99c59ad1e23c5d5aa7a.tar.gz
zkVMs-benchmarks-1cb88615eaa0b6a37d42d99c59ad1e23c5d5aa7a.zip
docs(zkvms/zkm): Add detailed documentation comments
Diffstat (limited to 'zkvms/zkm/wrapper_macro/src/lib.rs')
-rw-r--r--zkvms/zkm/wrapper_macro/src/lib.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/zkvms/zkm/wrapper_macro/src/lib.rs b/zkvms/zkm/wrapper_macro/src/lib.rs
index 4bb580c..216d3d8 100644
--- a/zkvms/zkm/wrapper_macro/src/lib.rs
+++ b/zkvms/zkm/wrapper_macro/src/lib.rs
@@ -4,6 +4,29 @@ use proc_macro::TokenStream;
mod parse_fn;
use crate::parse_fn::{ split_fn, args_split, args_divide_public, args_divide_grouped, group_streams };
+/// Create a body, which reads all public and private inputs, stores them in
+/// variables, then executes the guest entrypoint function with those arguments
+/// and commits its output.
+///
+/// `default_public_input.toml` shows which variables are public.
+///
+/// # Usage
+///
+/// Inside ZKM's guest (excluding the `entrypoint_expr` call):
+///
+/// ```rust
+/// make_wrapper!{fn main(...) -> ...}
+/// ```
+///
+/// # Example output
+///
+/// ```rust
+/// {
+/// let (...) : (...) = read(); // Public inputs
+/// let (...) : (...) = read(); // Private inputs
+/// commit::<...>(&zkp::main(..., ..., ...));
+/// }
+/// ```
#[proc_macro]
pub fn make_wrapper(item: TokenStream) -> TokenStream {
let (name, args, ret) = split_fn(&item);