From 5cfa194a49f9cb83ca82e5c1578618e3279e7a75 Mon Sep 17 00:00:00 2001 From: Yury Yarashevich Date: Fri, 24 Nov 2023 00:02:26 +0100 Subject: [PATCH 1/2] Added missing SingleArgCollection for &[T: SingleArg]. --- src/resp/to_args.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/resp/to_args.rs b/src/resp/to_args.rs index e157d6e..613a05a 100644 --- a/src/resp/to_args.rs +++ b/src/resp/to_args.rs @@ -452,6 +452,8 @@ impl SingleArgCollection> for CommandArgs {} impl SingleArgCollection for [T; N] where T: SingleArg {} +impl SingleArgCollection for &[T] where T: SingleArg {} + impl SingleArgCollection for Vec where T: SingleArg {} impl SingleArgCollection for SmallVec @@ -499,6 +501,13 @@ where { } +impl KeyValueArgsCollection for &[(K, V)] +where + K: SingleArg, + V: SingleArg, +{ +} + impl KeyValueArgsCollection for (K, V) where K: SingleArg, From 4af1732bc1c919f4bbfad7c25a211a511a7d1461 Mon Sep 17 00:00:00 2001 From: Yury Yarashevich Date: Sat, 25 Nov 2023 20:09:47 +0100 Subject: [PATCH 2/2] Added unit tests to verify slices can be used as SingleArgCollection. --- src/tests/command_args.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/tests/command_args.rs b/src/tests/command_args.rs index adb017b..d550e5c 100644 --- a/src/tests/command_args.rs +++ b/src/tests/command_args.rs @@ -37,6 +37,11 @@ async fn key_value_collection() -> Result<()> { let len = client.hset("key", items).await?; assert_eq!(2, len); + client.del("key").await?; + let items = [("field1", "value1"), ("field2", "value2")]; + let len = client.hset("key", items.as_slice()).await?; + assert_eq!(2, len); + client.close().await?; Ok(()) @@ -58,6 +63,11 @@ async fn set_collection() -> Result<()> { let len = client.sadd("key", items).await?; assert_eq!(2, len); + client.del("key").await?; + let items = ["member1", "member2"]; + let len = client.sadd("key", items.as_slice()).await?; + assert_eq!(2, len); + client.del("key").await?; let items = vec!["member1", "member2"]; let len = client.sadd("key", items).await?;