diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2025-02-03 12:52:50 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-02-03 12:52:50 +0200 |
| commit | 6155820b9436acaac824cb02015225ba5de26921 (patch) | |
| tree | d659a6e94d44fd33fdd0fd6b45b63c681462948b /guests_macro/src/parse_fn.rs | |
| parent | 6bfa6d957104249bcc1dbb4084200f9a5b7c983c (diff) | |
| download | zkVMs-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.rs | 11 |
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); |
