ferriorm_runtime/
filter.rs1#[derive(Debug, Clone, Default)]
12pub struct StringFilter {
13 pub equals: Option<String>,
14 pub not: Option<String>,
15 pub contains: Option<String>,
16 pub starts_with: Option<String>,
17 pub ends_with: Option<String>,
18 pub r#in: Option<Vec<String>>,
19 pub not_in: Option<Vec<String>>,
20 pub mode: Option<QueryMode>,
21}
22
23#[derive(Debug, Clone, Default)]
25pub struct NullableStringFilter {
26 pub equals: Option<Option<String>>,
28 pub not: Option<Option<String>>,
29 pub contains: Option<String>,
30 pub starts_with: Option<String>,
31 pub ends_with: Option<String>,
32 pub r#in: Option<Vec<String>>,
33 pub not_in: Option<Vec<String>>,
34 pub mode: Option<QueryMode>,
35}
36
37#[derive(Debug, Clone, Default)]
39pub struct IntFilter {
40 pub equals: Option<i32>,
41 pub not: Option<i32>,
42 pub gt: Option<i32>,
43 pub gte: Option<i32>,
44 pub lt: Option<i32>,
45 pub lte: Option<i32>,
46 pub r#in: Option<Vec<i32>>,
47 pub not_in: Option<Vec<i32>>,
48}
49
50#[derive(Debug, Clone, Default)]
52pub struct BigIntFilter {
53 pub equals: Option<i64>,
54 pub not: Option<i64>,
55 pub gt: Option<i64>,
56 pub gte: Option<i64>,
57 pub lt: Option<i64>,
58 pub lte: Option<i64>,
59 pub r#in: Option<Vec<i64>>,
60 pub not_in: Option<Vec<i64>>,
61}
62
63#[derive(Debug, Clone, Default)]
65pub struct FloatFilter {
66 pub equals: Option<f64>,
67 pub not: Option<f64>,
68 pub gt: Option<f64>,
69 pub gte: Option<f64>,
70 pub lt: Option<f64>,
71 pub lte: Option<f64>,
72}
73
74#[derive(Debug, Clone, Default)]
76pub struct BoolFilter {
77 pub equals: Option<bool>,
78 pub not: Option<bool>,
79}
80
81#[derive(Debug, Clone, Default)]
83pub struct DateTimeFilter {
84 pub equals: Option<chrono::DateTime<chrono::Utc>>,
85 pub not: Option<chrono::DateTime<chrono::Utc>>,
86 pub gt: Option<chrono::DateTime<chrono::Utc>>,
87 pub gte: Option<chrono::DateTime<chrono::Utc>>,
88 pub lt: Option<chrono::DateTime<chrono::Utc>>,
89 pub lte: Option<chrono::DateTime<chrono::Utc>>,
90 pub r#in: Option<Vec<chrono::DateTime<chrono::Utc>>>,
91}
92
93#[derive(Debug, Clone)]
95pub struct EnumFilter<E: Clone> {
96 pub equals: Option<E>,
97 pub not: Option<E>,
98 pub r#in: Option<Vec<E>>,
99 pub not_in: Option<Vec<E>>,
100}
101
102impl<E: Clone> Default for EnumFilter<E> {
103 fn default() -> Self {
104 Self {
105 equals: None,
106 not: None,
107 r#in: None,
108 not_in: None,
109 }
110 }
111}
112
113#[derive(Debug, Clone, Copy, PartialEq, Eq)]
115pub enum QueryMode {
116 Default,
117 Insensitive,
118}