|
@@ -1,9 +1,10 @@
|
|
|
-use crate::{db::Db, dispatcher, error::Error, value::Value};
|
|
|
+use crate::{commands, db::Db, dispatcher, error::Error, value::Value};
|
|
|
+use bytes::Bytes;
|
|
|
use std::convert::TryInto;
|
|
|
use std::time::SystemTime;
|
|
|
use std::time::UNIX_EPOCH;
|
|
|
|
|
|
-fn do_time(_db: &Db, _args: &[Value]) -> Result<Value, Error> {
|
|
|
+fn do_time(_db: &Db, _args: &[Bytes]) -> Result<Value, Error> {
|
|
|
let now = SystemTime::now();
|
|
|
let since_the_epoch = now.duration_since(UNIX_EPOCH).expect("Time went backwards");
|
|
|
let seconds = format!("{}", since_the_epoch.as_secs());
|
|
@@ -12,7 +13,7 @@ fn do_time(_db: &Db, _args: &[Value]) -> Result<Value, Error> {
|
|
|
Ok(vec![seconds.as_str(), millis.as_str()].into())
|
|
|
}
|
|
|
|
|
|
-fn do_command(_db: &Db, _args: &[Value]) -> Result<Value, Error> {
|
|
|
+fn do_command(_db: &Db, _args: &[Bytes]) -> Result<Value, Error> {
|
|
|
let now = SystemTime::now();
|
|
|
let since_the_epoch = now.duration_since(UNIX_EPOCH).expect("Time went backwards");
|
|
|
let in_ms: i128 =
|
|
@@ -20,27 +21,24 @@ fn do_command(_db: &Db, _args: &[Value]) -> Result<Value, Error> {
|
|
|
Ok(format!("{}", in_ms).as_str().into())
|
|
|
}
|
|
|
|
|
|
-fn get(db: &Db, args: &[Value]) -> Result<Value, Error> {
|
|
|
- db.get(&args[1])
|
|
|
-}
|
|
|
-
|
|
|
-fn set(db: &Db, args: &[Value]) -> Result<Value, Error> {
|
|
|
- db.set(&args[1], &args[2])
|
|
|
-}
|
|
|
-
|
|
|
dispatcher! {
|
|
|
command {
|
|
|
do_command,
|
|
|
["random" "loading" "stale"],
|
|
|
1,
|
|
|
},
|
|
|
+ incr {
|
|
|
+ commands::string::incr,
|
|
|
+ ["write" "denyoom" "fast"],
|
|
|
+ 2,
|
|
|
+ },
|
|
|
get {
|
|
|
- get,
|
|
|
+ commands::string::get,
|
|
|
["random" "loading" "stale"],
|
|
|
2,
|
|
|
},
|
|
|
set {
|
|
|
- set,
|
|
|
+ commands::string::set,
|
|
|
["random" "loading" "stale"],
|
|
|
-3,
|
|
|
},
|