From eea0f86c97a6c3d12848c223632749fd3a2b5695 Mon Sep 17 00:00:00 2001 From: Sayan Nandan Date: Wed, 26 May 2021 11:39:16 +0530 Subject: [PATCH] Upgrade skytable client driver version --- Cargo.lock | 76 ++- cli/src/runner.rs | 2 +- libsky/src/lib.rs | 2 +- server/src/tests/kvengine.rs | 910 +++++++++++++++++------------------ sky-bench/src/main.rs | 28 +- sky-macros/src/lib.rs | 4 +- 6 files changed, 526 insertions(+), 496 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 27080e18..3244bfd5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -58,9 +58,9 @@ checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" [[package]] name = "cc" -version = "1.0.67" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" +checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787" [[package]] name = "cfg-if" @@ -97,6 +97,17 @@ dependencies = [ "yaml-rust", ] +[[package]] +name = "clipboard-win" +version = "4.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4ea1881992efc993e4dc50a324cdbd03216e41bdc8385720ff47efc9bd2ca8" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + [[package]] name = "crossterm" version = "0.19.0" @@ -179,6 +190,26 @@ dependencies = [ "termcolor", ] +[[package]] +name = "error-code" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5115567ac25674e0043e472be13d14e537f37ea8aa4bdc4aef0c89add1db1ff" +dependencies = [ + "libc", + "str-buf", +] + +[[package]] +name = "fd-lock" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0010f02effd88c702318c5dde0463206be67495d0b4d906ba7c0a8f166cc7f06" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "foreign-types" version = "0.3.2" @@ -194,16 +225,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "fs_extra" version = "1.2.0" @@ -306,9 +327,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ "cfg-if", "libc", @@ -374,9 +395,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.94" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" +checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36" [[package]] name = "libsky" @@ -620,9 +641,9 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" +checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" dependencies = [ "unicode-xid", ] @@ -724,14 +745,15 @@ checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" [[package]] name = "rustyline" -version = "8.0.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e1b597fcd1eeb1d6b25b493538e5aa19629eb08932184b85fef931ba87e893" +checksum = "fbd4eaf7a7738f76c98e4f0395253ae853be3eb018f7b0bb57fe1b6c17e31874" dependencies = [ "bitflags", "cfg-if", + "clipboard-win", "dirs-next", - "fs2", + "fd-lock", "libc", "log", "memchr", @@ -882,7 +904,7 @@ dependencies = [ [[package]] name = "skytable" version = "0.2.3" -source = "git+https://github.com/skytable/client-rust?branch=next#7ce1d2b371a0dba96c0c0c8cf1aa2ca911c225e4" +source = "git+https://github.com/skytable/client-rust?branch=next#f36d7567ccae39a512d581d7f0d205c88db82b63" dependencies = [ "bytes", "tokio", @@ -900,6 +922,12 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" +[[package]] +name = "str-buf" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d44a3643b4ff9caf57abcee9c2c621d6c03d9135e0d8b589bd9afb5992cb176a" + [[package]] name = "strsim" version = "0.8.0" @@ -1024,9 +1052,9 @@ checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" [[package]] name = "vcpkg" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d" +checksum = "025ce40a007e1907e58d5bc1a594def78e5573bb0b1160bc389634e8f12e4faa" [[package]] name = "vec_map" diff --git a/cli/src/runner.rs b/cli/src/runner.rs index 6c56ec22..73fc7f6c 100644 --- a/cli/src/runner.rs +++ b/cli/src/runner.rs @@ -106,7 +106,7 @@ impl Runner { } pub async fn run_query(&mut self, unescaped_items: &str) { let query = libsky::turn_into_query(unescaped_items); - match self.con.run_simple_query(query).await { + match self.con.run_simple_query(&query).await { Ok(resp) => match resp { Response::InvalidResponse => { println!("ERROR: The server sent an invalid response"); diff --git a/libsky/src/lib.rs b/libsky/src/lib.rs index 85d39fc9..5552cab2 100644 --- a/libsky/src/lib.rs +++ b/libsky/src/lib.rs @@ -53,7 +53,7 @@ pub fn split_into_args(q: &str) -> Vec { pub fn turn_into_query(q: &str) -> Query { let mut query = Query::new(); split_into_args(q).into_iter().for_each(|arg| { - query.arg(arg); + query.push(arg); }); query } diff --git a/server/src/tests/kvengine.rs b/server/src/tests/kvengine.rs index 8becfb1c..e5824028 100644 --- a/server/src/tests/kvengine.rs +++ b/server/src/tests/kvengine.rs @@ -38,57 +38,57 @@ mod __private { use skytable::{Element, Query, RespCode, Response}; /// Test a HEYA query: The server should return HEY! async fn test_heya() { - query.arg("heya"); - let resp = con.run_simple_query(query).await.unwrap(); + query.push("heya"); + let resp = con.run_simple_query(&query).await.unwrap(); assert_eq!(resp, Response::Item(Element::String("HEY!".to_owned()))); } /// Test a GET query: for a non-existing key async fn test_get_single_nil() { - query.arg("get"); - query.arg("x"); - let resp = con.run_simple_query(query).await.unwrap(); + query.push("get"); + query.push("x"); + let resp = con.run_simple_query(&query).await.unwrap(); assert_eq!(resp, Response::Item(Element::RespCode(RespCode::NotFound))); } /// Test a GET query: for an existing key async fn test_get_single_okay() { - query.arg("set"); - query.arg("x"); - query.arg("100"); - let resp = con.run_simple_query(query).await.unwrap(); + query.push("set"); + query.push("x"); + query.push("100"); + let resp = con.run_simple_query(&query).await.unwrap(); assert_eq!(resp, Response::Item(Element::RespCode(RespCode::Okay))); let mut query = Query::new(); - query.arg("get"); - query.arg("x"); - let resp = con.run_simple_query(query).await.unwrap(); + query.push("get"); + query.push("x"); + let resp = con.run_simple_query(&query).await.unwrap(); assert_eq!(resp, Response::Item(Element::String("100".to_owned()))); } /// Test a GET query with an incorrect number of arguments async fn test_get_syntax_error() { - query.arg("get"); + query.push("get"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); let mut query = Query::new(); - query.arg("get"); - query.arg("x"); - query.arg("y"); + query.push("get"); + query.push("x"); + query.push("y"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } /// Test a SET query: SET a non-existing key, which should return code: 0 async fn test_set_single_okay() { - query.arg("sEt"); - query.arg("x"); - query.arg("100"); + query.push("sEt"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); } @@ -96,39 +96,39 @@ mod __private { /// Test a SET query: SET an existing key, which should return code: 2 async fn test_set_single_overwrite_error() { // first set the key - query.arg("set"); - query.arg("x"); - query.arg("100"); + query.push("set"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // attempt the same thing again let mut query = Query::new(); - query.arg("set"); - query.arg("x"); - query.arg("200"); + query.push("set"); + query.push("x"); + query.push("200"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::OverwriteError)) ); } /// Test a SET query with incorrect number of arugments async fn test_set_syntax_error() { - query.arg("set"); - query.arg("x"); + query.push("set"); + query.push("x"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); let mut query = Query::new(); - query.arg("set"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("set"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -136,20 +136,20 @@ mod __private { /// Test an UPDATE query: which should return code: 0 async fn test_update_single_okay() { // first set the key - query.arg("set"); - query.arg("x"); - query.arg("100"); + query.push("set"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // attempt to update it let mut query = Query::new(); - query.arg("update"); - query.arg("x"); - query.arg("200"); + query.push("update"); + query.push("x"); + query.push("200"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); } @@ -157,39 +157,39 @@ mod __private { /// Test an UPDATE query: which should return code: 1 async fn test_update_single_nil() { // attempt to update it - query.arg("update"); - query.arg("x"); - query.arg("200"); + query.push("update"); + query.push("x"); + query.push("200"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::NotFound)) ); } async fn test_update_syntax_error() { - query.arg("update"); - query.arg("x"); + query.push("update"); + query.push("x"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); let mut query = Query::new(); - query.arg("update"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("update"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } /// Test a DEL query: which should return int 0 async fn test_del_single_zero() { - query.arg("del"); - query.arg("x"); + query.push("del"); + query.push("x"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(0)) ); } @@ -197,19 +197,19 @@ mod __private { /// Test a DEL query: which should return int 1 async fn test_del_single_one() { // first set the key - query.arg("set"); - query.arg("x"); - query.arg("100"); + query.push("set"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // now delete it let mut query = Query::new(); - query.arg("del"); - query.arg("x"); + query.push("del"); + query.push("x"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(1)) ); } @@ -217,34 +217,34 @@ mod __private { /// Test a DEL query: which should return the number of keys deleted async fn test_del_multiple() { // first set the keys - query.arg("mset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); // now delete them let mut query = Query::new(); - query.arg("del"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("del"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); } /// Test a DEL query with an incorrect number of arguments async fn test_del_syntax_error() { - query.arg("del"); + query.push("del"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -252,35 +252,35 @@ mod __private { /// Test an EXISTS query async fn test_exists_multiple() { // first set the keys - query.arg("mset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); // now check if they exist let mut query = Query::new(); - query.arg("exists"); - query.arg("x"); - query.arg("y"); - query.arg("z"); - query.arg("a"); + query.push("exists"); + query.push("x"); + query.push("y"); + query.push("z"); + query.push("a"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); } /// Test an EXISTS query with an incorrect number of arguments async fn test_exists_syntax_error() { - query.arg("exists"); + query.push("exists"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -288,25 +288,25 @@ mod __private { /// Test an MGET query on a single existing key async fn test_mget_multiple_okay() { // first set the keys - query.arg("mset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); // now get them let mut query = Query::new(); - query.arg("mget"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("mget"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::Array(vec![ Element::String("100".to_owned()), Element::String("200".to_owned()), @@ -318,26 +318,26 @@ mod __private { /// Test an MGET query with different outcomes async fn test_mget_multiple_mixed() { // first set the keys - query.arg("mset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); let mut query = Query::new(); - query.arg("mget"); - query.arg("x"); - query.arg("y"); - query.arg("a"); - query.arg("z"); - query.arg("b"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mget"); + query.push("x"); + query.push("y"); + query.push("a"); + query.push("z"); + query.push("b"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::Array(vec![ Element::String("100".to_owned()), Element::String("200".to_owned()), @@ -350,9 +350,9 @@ mod __private { /// Test an MGET query with an incorrect number of arguments async fn test_mget_syntax_error() { - query.arg("mget"); + query.push("mget"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -360,11 +360,11 @@ mod __private { /// Test an MSET query with a single non-existing key async fn test_mset_single_okay() { // first set the keys - query.arg("mset"); - query.arg("x"); - query.arg("100"); + query.push("mset"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(1)) ); } @@ -372,15 +372,15 @@ mod __private { /// Test an MSET query with non-existing keys async fn test_mset_multiple_okay() { // first set the keys - query.arg("mset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); } @@ -388,49 +388,49 @@ mod __private { /// Test an MSET query with a mixed set of outcomes async fn test_mset_multiple_mixed() { // first set the keys - query.arg("mset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); // now try to set them again with just another new key let mut query = Query::new(); - query.arg("mset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - query.arg("a"); - query.arg("apple"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + query.push("a"); + query.push("apple"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(1)) ); } /// Test an MSET query with the wrong number of arguments async fn test_mset_syntax_error_args_one() { - query.arg("mset"); + query.push("mset"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } async fn test_mset_syntax_error_args_three() { - query.arg("mset"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("mset"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -438,21 +438,21 @@ mod __private { /// Test an MUPDATE query with a single non-existing key async fn test_mupdate_single_okay() { // first set the key - query.arg("mset"); - query.arg("x"); - query.arg("100"); + query.push("mset"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(1)) ); // now attempt to update it // first set the keys let mut query = Query::new(); - query.arg("mupdate"); - query.arg("x"); - query.arg("200"); + query.push("mupdate"); + query.push("x"); + query.push("200"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(1)) ); } @@ -460,50 +460,50 @@ mod __private { /// Test an MUPDATE query with a mixed set of outcomes async fn test_mupdate_multiple_mixed() { // first set the keys - query.arg("mset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); // now try to update them with just another new key let mut query = Query::new(); - query.arg("mupdate"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - query.arg("a"); - query.arg("apple"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("mupdate"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + query.push("a"); + query.push("apple"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); } /// Test an MUPDATE query with the wrong number of arguments async fn test_mupdate_syntax_error_args_one() { - query.arg("mupdate"); + query.push("mupdate"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } async fn test_mupdate_syntax_error_args_three() { - query.arg("mupdate"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("mupdate"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -511,11 +511,11 @@ mod __private { /// Test an SSET query: which should return code: 0 async fn test_sset_single_okay() { // first set the keys - query.arg("sset"); - query.arg("x"); - query.arg("100"); + query.push("sset"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); } @@ -523,20 +523,20 @@ mod __private { /// Test an SSET query: which should return code: 2 async fn test_sset_single_overwrite_error() { // first set the keys - query.arg("set"); - query.arg("x"); - query.arg("100"); + query.push("set"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // now attempt to overwrite it let mut query = Query::new(); - query.arg("sset"); - query.arg("x"); - query.arg("100"); + query.push("sset"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::OverwriteError)) ); } @@ -544,15 +544,15 @@ mod __private { /// Test an SSET query: which should return code: 0 async fn test_sset_multiple_okay() { // first set the keys - query.arg("sset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("sset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); } @@ -560,50 +560,50 @@ mod __private { /// Test an SSET query: which should return code: 2 async fn test_sset_multiple_overwrite_error() { // first set the keys - query.arg("sset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("sset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // now attempt to sset again with just one new extra key let mut query = Query::new(); - query.arg("sset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("b"); - query.arg("bananas"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("sset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("b"); + query.push("bananas"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::OverwriteError)) ); } /// Test an SSET query with the wrong number of arguments async fn test_sset_syntax_error_args_one() { - query.arg("sset"); + query.push("sset"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } async fn test_sset_syntax_error_args_three() { - query.arg("sset"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("sset"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -611,31 +611,31 @@ mod __private { /// Test an SUPDATE query: which should return code: 0 async fn test_supdate_single_okay() { // set the key - query.arg("sset"); - query.arg("x"); - query.arg("100"); + query.push("sset"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // update it let mut query = Query::new(); - query.arg("supdate"); - query.arg("x"); - query.arg("200"); + query.push("supdate"); + query.push("x"); + query.push("200"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); } /// Test an SUPDATE query: which should return code: 1 async fn test_supdate_single_nil() { - query.arg("supdate"); - query.arg("x"); - query.arg("200"); + query.push("supdate"); + query.push("x"); + query.push("200"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::NotFound)) ); } @@ -643,91 +643,91 @@ mod __private { /// Test an SUPDATE query: which should return code: 0 async fn test_supdate_multiple_okay() { // first set the keys - query.arg("sset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("sset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // now update all of them let mut query = Query::new(); - query.arg("supdate"); - query.arg("x"); - query.arg("200"); - query.arg("y"); - query.arg("300"); - query.arg("z"); - query.arg("400"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("supdate"); + query.push("x"); + query.push("200"); + query.push("y"); + query.push("300"); + query.push("z"); + query.push("400"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); } async fn test_supdate_multiple_nil() { // no keys exist, so we get a nil - query.arg("supdate"); - query.arg("x"); - query.arg("200"); - query.arg("y"); - query.arg("300"); - query.arg("z"); - query.arg("400"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("supdate"); + query.push("x"); + query.push("200"); + query.push("y"); + query.push("300"); + query.push("z"); + query.push("400"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::NotFound)) ); } /// Test an SUPDATE query with the wrong number of arguments async fn test_supdate_syntax_error_args_one() { - query.arg("mupdate"); + query.push("mupdate"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } async fn test_supdate_syntax_error_args_three() { - query.arg("mupdate"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("mupdate"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } /// Test an SDEL query: which should return nil async fn test_sdel_single_nil() { - query.arg("sdel"); - query.arg("x"); + query.push("sdel"); + query.push("x"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::NotFound)) ); } /// Test an SDEL query: which should return okay async fn test_sdel_single_okay() { - query.arg("sset"); - query.arg("x"); - query.arg("100"); + query.push("sset"); + query.push("x"); + query.push("100"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); let mut query = Query::new(); - query.arg("sdel"); - query.arg("x"); + query.push("sdel"); + query.push("x"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); } @@ -735,45 +735,45 @@ mod __private { /// Test an SDEL query: which should return okay async fn test_sdel_multiple_okay() { // first set the keys - query.arg("sset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("sset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // now delete them let mut query = Query::new(); - query.arg("sdel"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("sdel"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); } async fn test_sdel_multiple_nil() { - query.arg("sdel"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("sdel"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::NotFound)) ); } /// Test an SDEL query with an incorrect number of arguments async fn test_sdel_syntax_error() { - query.arg("sdel"); + query.push("sdel"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -781,33 +781,33 @@ mod __private { /// Test a `DBSIZE` query async fn test_dbsize() { // first set the keys - query.arg("sset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("sset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // now check the size let mut query = Query::new(); - query.arg("dbsize"); + query.push("dbsize"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); } /// Test `DBSIZE` with an incorrect number of arguments async fn test_dbsize_syntax_error() { - query.arg("dbsize"); - query.arg("iroegjoeijgor"); - query.arg("roigjoigjj094"); + query.push("dbsize"); + query.push("iroegjoeijgor"); + query.push("roigjoigjj094"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -815,41 +815,41 @@ mod __private { /// Test `FLUSHDB` async fn test_flushdb_okay() { // first set the keys - query.arg("sset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("sset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // now flush the database let mut query = Query::new(); - query.arg("flushdb"); + query.push("flushdb"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // now check the size let mut query = Query::new(); - query.arg("dbsize"); + query.push("dbsize"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(0)) ); } /// Test `FLUSHDB` with an incorrect number of arguments async fn test_flushdb_syntax_error() { - query.arg("flushdb"); - query.arg("x"); - query.arg("y"); - query.arg("z"); + query.push("flushdb"); + query.push("x"); + query.push("y"); + query.push("z"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -858,48 +858,48 @@ mod __private { /// /// `USET` almost always returns okay for the correct number of key(s)/value(s) async fn test_uset_all_okay() { - query.arg("uset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("uset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); // now that the keys already exist, do it all over again let mut query = Query::new(); - query.arg("uset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("uset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(3)) ); } /// Test `USET` with an incorrect number of arguments async fn test_uset_syntax_error_args_one() { - query.arg("uset"); + query.push("uset"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } async fn test_uset_syntax_error_args_three() { - query.arg("uset"); - query.arg("one"); - query.arg("two"); - query.arg("three"); + query.push("uset"); + query.push("one"); + query.push("two"); + query.push("three"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } @@ -907,90 +907,90 @@ mod __private { /// Test `KEYLEN` async fn test_keylen() { // first set the key - query.arg("set"); - query.arg("x"); - query.arg("helloworld"); + query.push("set"); + query.push("x"); + query.push("helloworld"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Okay)) ); // now check for the length let mut query = Query::new(); - query.arg("keylen"); - query.arg("x"); + query.push("keylen"); + query.push("x"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(10)) ); } /// Test `KEYLEN` with an incorrect number of arguments async fn test_keylen_syntax_error_args_one() { - query.arg("keylen"); + query.push("keylen"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } async fn test_keylen_syntax_error_args_two() { - query.arg("keylen"); - query.arg("x"); - query.arg("y"); + query.push("keylen"); + query.push("x"); + query.push("y"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } async fn test_mksnap_disabled() { - query.arg("mksnap"); + query.push("mksnap"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ErrorString( "err-snapshot-disabled".to_owned() ))) ); } async fn test_mksnap_sanitization() { - query.arg("mksnap"); - query.arg("/var/omgcrazysnappy"); + query.push("mksnap"); + query.push("/var/omgcrazysnappy"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ErrorString( "err-invalid-snapshot-name".to_owned() ))) ); let mut query = Query::new(); - query.arg("mksnap"); - query.arg("../omgbacktoparent"); + query.push("mksnap"); + query.push("../omgbacktoparent"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ErrorString( "err-invalid-snapshot-name".to_owned() ))) ); } async fn test_lskeys_default() { - query.arg("uset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - query.arg("a"); - query.arg("apples"); - query.arg("b"); - query.arg("burgers"); - query.arg("c"); - query.arg("carrots"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("uset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + query.push("a"); + query.push("apples"); + query.push("b"); + query.push("burgers"); + query.push("c"); + query.push("carrots"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(6)) ); // now get 'em let mut query = Query::new(); - query.arg("lskeys"); - let ret = con.run_simple_query(query).await.unwrap(); + query.push("lskeys"); + let ret = con.run_simple_query(&query).await.unwrap(); // don't forget that the keys returned are arranged according to their hashes let ret_should_have: Vec = vec!["a", "b", "c", "x", "y", "z"] .into_iter() @@ -1004,27 +1004,27 @@ mod __private { } } async fn test_lskeys_custom_limit() { - query.arg("uset"); - query.arg("x"); - query.arg("100"); - query.arg("y"); - query.arg("200"); - query.arg("z"); - query.arg("300"); - query.arg("a"); - query.arg("apples"); - query.arg("b"); - query.arg("burgers"); - query.arg("c"); - query.arg("carrots"); - assert_eq!( - con.run_simple_query(query).await.unwrap(), + query.push("uset"); + query.push("x"); + query.push("100"); + query.push("y"); + query.push("200"); + query.push("z"); + query.push("300"); + query.push("a"); + query.push("apples"); + query.push("b"); + query.push("burgers"); + query.push("c"); + query.push("carrots"); + assert_eq!( + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::UnsignedInt(6)) ); let mut query = Query::new(); - query.arg("lskeys"); - query.arg("1000"); - let ret = con.run_simple_query(query).await.unwrap(); + query.push("lskeys"); + query.push("1000"); + let ret = con.run_simple_query(&query).await.unwrap(); // don't forget that the keys returned are arranged according to their hashes let ret_should_have: Vec = vec!["a", "b", "c", "x", "y", "z"] .into_iter() @@ -1038,19 +1038,19 @@ mod __private { } } async fn test_lskeys_wrongtype() { - query.arg("lskeys"); - query.arg("abcdefg"); + query.push("lskeys"); + query.push("abcdefg"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::Wrongtype)) ); } async fn test_lskeys_syntax_error() { - query.arg("lskeys"); - query.arg("abcdefg"); - query.arg("hijklmn"); + query.push("lskeys"); + query.push("abcdefg"); + query.push("hijklmn"); assert_eq!( - con.run_simple_query(query).await.unwrap(), + con.run_simple_query(&query).await.unwrap(), Response::Item(Element::RespCode(RespCode::ActionError)) ); } diff --git a/sky-bench/src/main.rs b/sky-bench/src/main.rs index 8dd7546b..a0ffe010 100644 --- a/sky-bench/src/main.rs +++ b/sky-bench/src/main.rs @@ -196,7 +196,9 @@ mod benchtool { .map(|_| ran_string(8, &mut rand)) .collect(); let set_packs: Vec> = (0..num) - .map(|idx| libsky::into_raw_query(&format!("SET {} {}", keys[idx], values[idx]))) + .map(|idx| { + libsky::into_raw_query(&format!("SET {} {}", keys[idx], values[idx])) + }) .collect(); set_packs.into_iter().for_each(|packet| { np.execute(packet); @@ -321,9 +323,9 @@ mod benchtool { let mut connection = Connection::new(host, port)?; // test heya let mut query = Query::new(); - query.arg("heya"); + query.push("heya"); if !connection - .run_simple_query(query) + .run_simple_query(&query) .unwrap() .eq(&Response::Item(Element::String("HEY!".to_owned()))) { @@ -332,31 +334,31 @@ mod benchtool { let key = ran_string(65536, &mut rng); let value = ran_string(65536, &mut rng); let mut query = Query::new(); - query.arg("set"); - query.arg(&key); - query.arg(&value); + query.push("set"); + query.push(&key); + query.push(&value); if !connection - .run_simple_query(query) + .run_simple_query(&query) .unwrap() .eq(&Response::Item(Element::RespCode(RespCode::Okay))) { return Err("SET test failed".into()); } let mut query = Query::new(); - query.arg("get"); - query.arg(&key); + query.push("get"); + query.push(&key); if !connection - .run_simple_query(query) + .run_simple_query(&query) .unwrap() .eq(&Response::Item(Element::String(value.to_owned()))) { return Err("GET test failed".into()); } let mut query = Query::new(); - query.arg("del"); - query.arg(&key); + query.push("del"); + query.push(&key); if !connection - .run_simple_query(query) + .run_simple_query(&query) .unwrap() .eq(&Response::Item(Element::UnsignedInt(1))) { diff --git a/sky-macros/src/lib.rs b/sky-macros/src/lib.rs index 7c879dae..3d4d0b93 100644 --- a/sky-macros/src/lib.rs +++ b/sky-macros/src/lib.rs @@ -67,9 +67,9 @@ fn parse_dbtest(mut input: syn::ItemFn) -> Result { let mut query = skytable::Query::new(); #body { - let mut __flush__ = skytable::Query::new(); __flush__.arg("flushdb"); + let mut __flush__ = skytable::Query::from("flushdb"); std::assert_eq!( - con.run_simple_query(__flush__).await.unwrap(), + con.run_simple_query(&__flush__).await.unwrap(), skytable::Response::Item(skytable::Element::RespCode(skytable::RespCode::Okay)) ); }