pslink_shared/apirequests/
general.rs

1//! The more generic request datatypes
2use std::ops::Deref;
3
4use serde::{Deserialize, Serialize};
5/// Filter one column according to the containing string.
6#[derive(Clone, Deserialize, Serialize, Debug, Default)]
7pub struct Filter {
8    pub sieve: String,
9}
10
11impl Deref for Filter {
12    type Target = String;
13
14    fn deref(&self) -> &Self::Target {
15        &self.sieve
16    }
17}
18
19/// Possible order directions
20#[derive(Clone, Deserialize, Serialize, PartialEq, Eq, Debug)]
21pub enum Ordering {
22    Ascending,
23    Descending,
24}
25
26/// An operation on a column
27#[derive(Clone, Deserialize, Serialize, Debug)]
28pub struct Operation<T, V> {
29    pub column: T,
30    pub value: V,
31}
32
33/// To differentiate between creating a new record and editing.
34#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, Eq)]
35pub enum EditMode {
36    Create,
37    Edit,
38}
39
40impl Default for EditMode {
41    fn default() -> Self {
42        Self::Create
43    }
44}
45
46/// When a message is sent between client and server (like for a dialog).
47#[derive(Clone, Deserialize, Serialize, Debug)]
48pub struct Message {
49    pub message: String,
50}
51
52/// Send a message on success and also one on error.
53#[derive(Clone, Deserialize, Serialize, Debug)]
54pub enum Status {
55    Success(Message),
56    Error(Message),
57}