diff --git a/src/lib.rs b/src/lib.rs index 4f3da03..a71dbca 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -161,7 +161,7 @@ pub const NO_PARAMS: &[&dyn ToSql] = &[]; #[macro_export] macro_rules! params { () => { - (&[] as &[&dyn $crate::ToSql]) + &[] as &[&dyn $crate::ToSql] }; ($($param:expr),+ $(,)?) => { &[$(&$param as &dyn $crate::ToSql),+] as &[&dyn $crate::ToSql] @@ -198,12 +198,12 @@ macro_rules! params { #[macro_export] macro_rules! named_params { () => { - (&[] as &[(&str, &dyn $crate::ToSql)]) + &[] as &[(&str, &dyn $crate::ToSql)] }; // Note: It's a lot more work to support this as part of the same macro as // `params!`, unfortunately. ($($param_name:literal: $param_val:expr),+ $(,)?) => { - (&[$(($param_name, &$param_val as &dyn $crate::ToSql)),+] as &[(&str, &dyn $crate::ToSql)]) + &[$(($param_name, &$param_val as &dyn $crate::ToSql)),+] as &[(&str, &dyn $crate::ToSql)] }; } diff --git a/src/params.rs b/src/params.rs index c1087e1..f3b851b 100644 --- a/src/params.rs +++ b/src/params.rs @@ -172,8 +172,11 @@ pub trait Params: Sealed { impl Sealed for [&dyn ToSql; 0] {} impl Params for [&dyn ToSql; 0] { #[inline] - fn bind_in(self, _: &mut Statement<'_>) -> Result<()> { - Ok(()) + fn bind_in(self, stmt: &mut Statement<'_>) -> Result<()> { + // Note: Can't just return `Ok(())` — `Statement::bind_parameters` + // checks that the right number of params were passed too. + // TODO: we should have tests for `Error::InvalidParameterCount`... + stmt.bind_parameters(crate::params![]) } }