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 OrderByAllowed for SelectSetOpSet {}
69
70impl LimitAllowed for SelectFromSet {}
71impl LimitAllowed for SelectJoinSet {}
72impl LimitAllowed for SelectWhereSet {}
73impl LimitAllowed for SelectGroupSet {}
74impl LimitAllowed for SelectOrderSet {}
75impl LimitAllowed for SelectSetOpSet {}
76
77impl OffsetAllowed for SelectFromSet {}
78impl OffsetAllowed for SelectLimitSet {}
79impl OffsetAllowed for SelectSetOpSet {}
80
81impl JoinAllowed for SelectFromSet {}
82impl JoinAllowed for SelectJoinSet {}
83
84impl HavingAllowed for SelectGroupSet {}
85
86impl GroupByApplied for SelectGroupSet {}
87impl GroupByApplied for SelectOrderSet {}
88impl GroupByApplied for SelectLimitSet {}
89impl GroupByApplied for SelectOffsetSet {}
90impl GroupByApplied for SelectSetOpSet {}
91
92#[doc(hidden)]
93pub trait AsCteState {}
94
95impl AsCteState for SelectFromSet {}
96impl AsCteState for SelectJoinSet {}
97impl AsCteState for SelectWhereSet {}
98impl AsCteState for SelectGroupSet {}
99impl AsCteState for SelectOrderSet {}
100impl AsCteState for SelectLimitSet {}
101impl AsCteState for SelectOffsetSet {}
102
103#[derive(Debug, Clone, Copy, Default)]
109pub struct InsertInitial;
110
111#[derive(Debug, Clone, Copy, Default)]
113pub struct InsertValuesSet;
114
115#[derive(Debug, Clone, Copy, Default)]
117pub struct InsertReturningSet;
118
119#[derive(Debug, Clone, Copy, Default)]
121pub struct InsertOnConflictSet;
122
123#[derive(Debug, Clone, Copy, Default)]
125pub struct InsertDoUpdateSet;
126
127impl ExecutableState for InsertValuesSet {}
128impl ExecutableState for InsertReturningSet {}
129impl ExecutableState for InsertOnConflictSet {}
130impl ExecutableState for InsertDoUpdateSet {}
131
132#[derive(Debug, Clone, Copy, Default)]
138pub struct DeleteInitial;
139
140#[derive(Debug, Clone, Copy, Default)]
142pub struct DeleteWhereSet;
143
144#[derive(Debug, Clone, Copy, Default)]
146pub struct DeleteReturningSet;
147
148impl ExecutableState for DeleteInitial {}
149impl ExecutableState for DeleteWhereSet {}
150impl ExecutableState for DeleteReturningSet {}
151
152#[derive(Debug, Clone, Copy, Default)]
158pub struct UpdateInitial;
159
160#[derive(Debug, Clone, Copy, Default)]
162pub struct UpdateSetClauseSet;
163
164#[derive(Debug, Clone, Copy, Default)]
166pub struct UpdateWhereSet;
167
168#[derive(Debug, Clone, Copy, Default)]
170pub struct UpdateReturningSet;
171
172impl ExecutableState for UpdateSetClauseSet {}
173impl ExecutableState for UpdateWhereSet {}
174impl ExecutableState for UpdateReturningSet {}