aredis/command/
decrby.rs

1// Copyright 2022 tison <wander4096@gmail.com>.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15use crate::command::{args_to_bytes, Command};
16
17pub struct DecrBy {
18    key: Vec<u8>,
19    decrement: i64,
20}
21
22impl DecrBy {
23    pub fn new(key: Vec<u8>, decrement: i64) -> Self {
24        DecrBy { key, decrement }
25    }
26}
27
28impl Command for DecrBy {
29    fn as_bytes(&self) -> Vec<u8> {
30        args_to_bytes(vec![
31            "DECRBY".as_bytes(),
32            self.key.as_slice(),
33            self.decrement.to_string().as_bytes(),
34        ])
35    }
36}