diff --git a/microscpi-macros/src/lib.rs b/microscpi-macros/src/lib.rs index 9f21bbe..a401f94 100644 --- a/microscpi-macros/src/lib.rs +++ b/microscpi-macros/src/lib.rs @@ -107,7 +107,14 @@ 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 > 0 && #arg_count == 0 { + Err(::microscpi::Error::ParameterNotAllowed) + } + else if args_len != #arg_count { Err(::microscpi::Error::UnexpectedNumberOfParameters) } else {