From c56b08c24e83f65ddee762b54f8d865079d58ce9 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Wed, 7 May 2025 12:37:38 +0300 Subject: [PATCH] proc: expose: fix output match statement --- proc/src/proc_command.rs | 4 +++- proc/src/proc_expose.rs | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/proc/src/proc_command.rs b/proc/src/proc_command.rs index ac1e2a9..8b16dec 100644 --- a/proc/src/proc_command.rs +++ b/proc/src/proc_command.rs @@ -92,7 +92,9 @@ impl ToTokens for CommandVariant { out.append(Group::new(Delimiter::Parenthesis, { let mut out = TokenStream2::new(); for arg in args.iter() { - if let FnArg::Typed(PatType { attrs, pat, colon_token, ty }) = arg { + if let FnArg::Typed(PatType { + attrs, pat, colon_token, ty + }) = arg { out.append(LitStr::new( &format!("{}", quote! { #ty }), Span::call_site() diff --git a/proc/src/proc_expose.rs b/proc/src/proc_expose.rs index bf7ae58..9315f2e 100644 --- a/proc/src/proc_expose.rs +++ b/proc/src/proc_expose.rs @@ -81,7 +81,7 @@ impl ToTokens for ExposeImpl { ], _ => vec![], }; - let values = variants.values(); + let values = variants.iter().map(|(k, v)|ExposeArm(k.clone(), v.clone())); let trait_impl = quote! { impl ::tengri::dsl::Context<#t> for #target { fn get (&self, dsl: &::tengri::dsl::Value) -> Option<#t> { @@ -97,6 +97,9 @@ impl ToTokens for ExposeImpl { out.append(token); } } + //if exposed.len() > 0 { + //panic!("{}", quote! {#out}); + //} } } @@ -122,9 +125,12 @@ impl ToTokens for ExposeArm { })); out.append(Punct::new('=', Joint)); out.append(Punct::new('>', Alone)); + out.append(Ident::new("self", Span::call_site())); + out.append(Punct::new('.', Alone)); for token in quote! { #value } { out.append(token); } + out.append(Group::new(Delimiter::Parenthesis, TokenStream2::new())); } }