aboutsummaryrefslogtreecommitdiff
path: root/guests_macro/src/parse_fn.rs
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-02-03 12:52:50 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-02-03 12:52:50 +0200
commit6155820b9436acaac824cb02015225ba5de26921 (patch)
treed659a6e94d44fd33fdd0fd6b45b63c681462948b /guests_macro/src/parse_fn.rs
parent6bfa6d957104249bcc1dbb4084200f9a5b7c983c (diff)
downloadzkVMs-benchmarks-6155820b9436acaac824cb02015225ba5de26921.tar
zkVMs-benchmarks-6155820b9436acaac824cb02015225ba5de26921.tar.gz
zkVMs-benchmarks-6155820b9436acaac824cb02015225ba5de26921.zip
feat: Move some public input parsing logic to parse_fn
Diffstat (limited to 'guests_macro/src/parse_fn.rs')
-rw-r--r--guests_macro/src/parse_fn.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/guests_macro/src/parse_fn.rs b/guests_macro/src/parse_fn.rs
index 00be250..0e57879 100644
--- a/guests_macro/src/parse_fn.rs
+++ b/guests_macro/src/parse_fn.rs
@@ -130,6 +130,17 @@ pub fn args_divide(item: &TokenStream) -> (Vec<TokenStream>, Vec<TokenStream>) {
}
/// Input: "(p1 : t1, p2: t2, ...)"
+/// Output: vec![p1, p2, ...], vec![t1, t2, ...]
+pub fn args_divide_public(item: &TokenStream, public: &Vec<&String>) -> (Vec<TokenStream>, Vec<TokenStream>) {
+ let (patterns, types) = args_divide(item);
+ patterns
+ .into_iter()
+ .zip(types.into_iter())
+ .filter(|(p, _)| public.iter().any(|x| p.to_string() == **x))
+ .unzip()
+}
+
+/// Input: "(p1 : t1, p2: t2, ...)"
/// Output: "(p1, p2, ...)", "(t1, t2, ...)"
pub fn args_divide_grouped(item: &TokenStream) -> (TokenStream, TokenStream) {
let (patterns, types) = args_divide(&item);