From a7a420b5d7c4ab61a940c116cb38250c57e3b158 Mon Sep 17 00:00:00 2001 From: Adrian DC Date: Sat, 11 Jul 2026 13:02:40 +0200 Subject: [PATCH 1/2] feat(macros)!: return '-109 / MissingParameter' if parameters missing Signed-off-by: Adrian DC --- microscpi-macros/src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/microscpi-macros/src/lib.rs b/microscpi-macros/src/lib.rs index 9f21bbe..81d2674 100644 --- a/microscpi-macros/src/lib.rs +++ b/microscpi-macros/src/lib.rs @@ -107,7 +107,11 @@ impl CommandDefinition { quote! { #command_id => { - if args.len() != #arg_count { + let args_len = args.len(); + if args_len == 0 && #arg_count > 0 { + Err(::microscpi::Error::MissingParameter) + } + else if args_len != #arg_count { Err(::microscpi::Error::UnexpectedNumberOfParameters) } else { From 2ca04354e75a65fd3067a5461c00f3514ad6f860 Mon Sep 17 00:00:00 2001 From: Adrian DC Date: Sat, 11 Jul 2026 13:02:40 +0200 Subject: [PATCH 2/2] feat(macros)!: return '-108 / ParameterNotAllowed' if parameters not allowed Signed-off-by: Adrian DC --- microscpi-macros/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/microscpi-macros/src/lib.rs b/microscpi-macros/src/lib.rs index 81d2674..a401f94 100644 --- a/microscpi-macros/src/lib.rs +++ b/microscpi-macros/src/lib.rs @@ -111,6 +111,9 @@ impl CommandDefinition { if args_len == 0 && #arg_count > 0 { Err(::microscpi::Error::MissingParameter) } + else if args_len > 0 && #arg_count == 0 { + Err(::microscpi::Error::ParameterNotAllowed) + } else if args_len != #arg_count { Err(::microscpi::Error::UnexpectedNumberOfParameters) }