drizzle_core/builder/
states.rs1use super::{
4 ExecutableState, GroupByAllowed, GroupByApplied, HavingAllowed, JoinAllowed, LimitAllowed,
5 OffsetAllowed, OrderByAllowed, WhereAllowed,
6};
7
8#[derive(Debug, Clone, Copy, Default)]
14pub struct SelectInitial;
15
16#[derive(Debug, Clone, Copy, Default)]
18pub struct SelectFromSet;
19
20#[derive(Debug, Clone, Copy, Default)]
22pub struct SelectJoinSet;
23
24#[derive(Debug, Clone, Copy, Default)]
26pub struct SelectWhereSet;
27
28#[derive(Debug, Clone, Copy, Default)]
30pub struct SelectGroupSet;
31
32#[derive(Debug, Clone, Copy, Default)]
34pub struct SelectOrderSet;
35
36#[derive(Debug, Clone, Copy, Default)]
38pub struct SelectLimitSet;
39
40#[derive(Debug, Clone, Copy, Default)]
42pub struct SelectOffsetSet;
43
44#[derive(Debug, Clone, Copy, Default)]
46pub struct SelectSetOpSet;
47
48impl ExecutableState for SelectFromSet {}
49impl ExecutableState for SelectWhereSet {}
50impl ExecutableState for SelectLimitSet {}
51impl ExecutableState for SelectOffsetSet {}
52impl ExecutableState for SelectOrderSet {}
53impl ExecutableState for SelectGroupSet {}
54impl ExecutableState for SelectJoinSet {}
55impl ExecutableState for SelectSetOpSet {}
56
57impl WhereAllowed for SelectFromSet {}
58impl WhereAllowed for SelectJoinSet {}
59
60impl GroupByAllowed for SelectFromSet {}
61impl GroupByAllowed for SelectJoinSet {}
62impl GroupByAllowed for SelectWhereSet {}
63
64impl OrderByAllowed for SelectFromSet {}
65impl OrderByAllowed for SelectJoinSet {}
66impl OrderByAllowed for SelectWhereSet {}
67impl OrderByAllowed for SelectGroupSet {}
68impl LimitAllowed for SelectFromSet {}
72impl LimitAllowed for SelectJoinSet {}
73impl LimitAllowed for SelectWhereSet {}
74impl LimitAllowed for SelectGroupSet {}
75impl LimitAllowed for SelectOrderSet {}
76impl LimitAllowed for SelectSetOpSet {}
77
78impl OffsetAllowed for SelectFromSet {}
79impl OffsetAllowed for SelectLimitSet {}
80impl OffsetAllowed for SelectSetOpSet {}
81
82impl JoinAllowed for SelectFromSet {}
83impl JoinAllowed for SelectJoinSet {}
84
85impl HavingAllowed for SelectGroupSet {}
86
87impl GroupByApplied for SelectGroupSet {}
88impl GroupByApplied for SelectOrderSet {}
89impl GroupByApplied for SelectLimitSet {}
90impl GroupByApplied for SelectOffsetSet {}
91impl GroupByApplied for SelectSetOpSet {}
92
93#[doc(hidden)]
94pub trait AsCteState {}
95
96impl AsCteState for SelectFromSet {}
97impl AsCteState for SelectJoinSet {}
98impl AsCteState for SelectWhereSet {}
99impl AsCteState for SelectGroupSet {}
100impl AsCteState for SelectOrderSet {}
101impl AsCteState for SelectLimitSet {}
102impl AsCteState for SelectOffsetSet {}
103
104#[derive(Debug, Clone, Copy, Default)]
110pub struct InsertInitial;
111
112#[derive(Debug, Clone, Copy, Default)]
114pub struct InsertValuesSet;
115
116#[derive(Debug, Clone, Copy, Default)]
118pub struct InsertReturningSet;
119
120#[derive(Debug, Clone, Copy, Default)]
122pub struct InsertOnConflictSet;
123
124#[derive(Debug, Clone, Copy, Default)]
126pub struct InsertDoUpdateSet;
127
128impl ExecutableState for InsertValuesSet {}
129impl ExecutableState for InsertReturningSet {}
130impl ExecutableState for InsertOnConflictSet {}
131impl ExecutableState for InsertDoUpdateSet {}
132
133#[derive(Debug, Clone, Copy, Default)]
139pub struct DeleteInitial;
140
141#[derive(Debug, Clone, Copy, Default)]
143pub struct DeleteWhereSet;
144
145#[derive(Debug, Clone, Copy, Default)]
147pub struct DeleteReturningSet;
148
149impl ExecutableState for DeleteInitial {}
150impl ExecutableState for DeleteWhereSet {}
151impl ExecutableState for DeleteReturningSet {}
152
153#[derive(Debug, Clone, Copy, Default)]
159pub struct UpdateInitial;
160
161#[derive(Debug, Clone, Copy, Default)]
163pub struct UpdateSetClauseSet;
164
165#[derive(Debug, Clone, Copy, Default)]
167pub struct UpdateWhereSet;
168
169#[derive(Debug, Clone, Copy, Default)]
171pub struct UpdateReturningSet;
172
173impl ExecutableState for UpdateSetClauseSet {}
174impl ExecutableState for UpdateWhereSet {}
175impl ExecutableState for UpdateReturningSet {}