1use serde::{Deserialize, Serialize};
2use std::collections::HashSet;
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5#[serde(untagged)]
6pub enum Response {
7 List { values: Vec<String> },
8 Set { values: HashSet<String> },
9 Err { error: Error },
10 AffectedKeys { affected_keys: u64 },
11 Count { count: u64 },
12 StringValue { value: String },
13 IntValue { value: i64 },
14 BooleanValue { value: bool },
15}
16
17impl Response {
18 pub fn to_json(&self) -> serde_json::Result<String> {
19 serde_json::to_string(self)
20 }
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24pub enum Error {
25 UnknownCommand,
26 UnknownKey,
27 IncompatibleDataType,
28 NotInteger,
29 TimeWentBackwards,
30}