From 600927d6fcb671081b9bbfe19eea8c36ee8cc96c Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Mon, 7 Jul 2025 09:32:56 -0400 Subject: [PATCH] aya-log-ebpf: use destructuring --- aya-log-ebpf-macros/src/expand.rs | 33 ++++++++++++++++++------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/aya-log-ebpf-macros/src/expand.rs b/aya-log-ebpf-macros/src/expand.rs index 5eeff672..7227fb02 100644 --- a/aya-log-ebpf-macros/src/expand.rs +++ b/aya-log-ebpf-macros/src/expand.rs @@ -69,22 +69,27 @@ impl Parse for LogArgs { } pub(crate) fn log(args: LogArgs, level: Option) -> Result { - let ctx = args.ctx; - let target = match args.target { + let LogArgs { + ctx, + target, + level: level_expr, + format_string, + formatting_args, + } = args; + let target = match target { Some(t) => quote! { #t }, None => quote! { module_path!() }, }; - let lvl: TokenStream = if let Some(l) = level { - l - } else if let Some(l) = args.level { - quote! { #l } - } else { - return Err(Error::new( - args.format_string.span(), - "missing `level` argument: try passing an `aya_log_ebpf::Level` value", - )); + let level = match level { + Some(l) => l, + None => { + let l = level_expr.ok_or(Error::new( + format_string.span(), + "missing `level` argument: try passing an `aya_log_ebpf::Level` value", + ))?; + quote! { #l } + } }; - let format_string = args.format_string; let format_string_val = format_string.value(); let fragments = parse(&format_string_val).map_err(|e| { @@ -101,7 +106,7 @@ pub(crate) fn log(args: LogArgs, level: Option) -> Result values.push(quote!(#s)), Fragment::Parameter(p) => { - let arg = match args.formatting_args { + let arg = match formatting_args { Some(ref args) => args[arg_i].clone(), None => return Err(Error::new(format_string.span(), "no arguments provided")), }; @@ -153,7 +158,7 @@ pub(crate) fn log(args: LogArgs, level: Option) -> Result