mapuche_embedded/cmd/
hvals.rs1use crate::Frame;
2
3use crate::cmd::Invalid;
4use crate::rocks::client::RocksClient;
5use crate::rocks::hash::HashCommand;
6
7use serde::{Deserialize, Serialize};
8
9use crate::rocks::Result as RocksResult;
10use crate::utils::resp_invalid_arguments;
11
12#[derive(Serialize, Deserialize, Debug, Clone)]
13pub struct Hvals {
14 key: String,
15 valid: bool,
16}
17
18impl Hvals {
19 pub fn new(key: impl ToString) -> Hvals {
20 Hvals {
21 key: key.to_string(),
22 valid: true,
23 }
24 }
25
26 pub fn key(&self) -> &str {
28 &self.key
29 }
30
31 pub async fn execute(&self, client: &RocksClient) -> RocksResult<Frame> {
32 if !self.valid {
33 return Ok(resp_invalid_arguments());
34 }
35 HashCommand::new(client)
36 .hgetall(&self.key, false, true)
37 .await
38 }
39}
40
41impl Invalid for Hvals {
42 fn new_invalid() -> Hvals {
43 Hvals {
44 key: "".to_owned(),
45 valid: false,
46 }
47 }
48}