1macro_rules! keyword {
2 ($($name:ident => $value:tt),* $(,)?) => {
3
4 #[repr(u8)]
5 #[derive(Clone, Copy, Eq, PartialEq, Hash, Debug)]
6 #[non_exhaustive] pub enum Keyword{
7 $($name,)*
8 }
9
10 impl Keyword{
11 pub fn as_str(&self) -> &'static str{
12 match self{
13 $(Keyword::$name => $value,)*
14 }
15 }
16 }
17
18 macro_rules! keyword_t {
19 $(($value) => {
20 $crate::syn::token::Keyword::$name
21 };)*
22 }
23 };
24}
25
26keyword! {
27 Access => "ACCESS",
28 After => "AFTER",
29 Algorithm => "ALGORITHM",
30 All => "ALL",
31 Alter => "ALTER",
32 Always => "ALWAYS",
33 Analyze => "ANALYZE",
34 Analyzer => "ANALYZER",
35 Api => "API",
36 As => "AS",
37 Ascending => "ASCENDING",
38 Ascii => "ASCII",
39 Assert => "ASSERT",
40 At => "AT",
41 Authenticate => "AUTHENTICATE",
42 Auto => "AUTO",
43 Bearer => "BEARER",
44 Before => "BEFORE",
45 Begin => "BEGIN",
46 Blank => "BLANK",
47 Reject => "REJECT",
48 Bm25 => "BM25",
49 Break => "BREAK",
50 By => "BY",
51 Camel => "CAMEL",
52 Cancel => "CANCEL",
53 Cascade => "CASCADE",
54 ChangeFeed => "CHANGEFEED",
55 Changes => "CHANGES",
56 Capacity => "CAPACITY",
57 Class => "CLASS",
58 Comment => "COMMENT",
59 Commit => "COMMIT",
60 Concurrently => "CONCURRENTLY",
61 Config => "CONFIG",
62 Content => "CONTENT",
63 Continue => "CONTINUE",
64 Create => "CREATE",
65 Database => "DATABASE",
66 Default => "DEFAULT",
67 Define => "DEFINE",
68 Delete => "DELETE",
69 Descending => "DESCENDING",
70 Diff => "DIFF",
71 Dimension => "DIMENSION",
72 Distance => "DISTANCE",
73 DocIdsCache => "DOC_IDS_CACHE",
74 DocIdsOrder => "DOC_IDS_ORDER",
75 DocLengthsCache => "DOC_LENGTHS_CACHE",
76 DocLengthsOrder => "DOC_LENGTHS_ORDER",
77 Drop => "DROP",
78 Duplicate => "DUPLICATE",
79 Efc => "EFC",
80 Edgengram => "EDGENGRAM",
81 Event => "EVENT",
82 Else => "ELSE",
83 End => "END",
84 Enforced => "ENFORCED",
85 Exclude => "EXCLUDE",
86 Exists => "EXISTS",
87 Expired => "EXPIRED",
88 Explain => "EXPLAIN",
89 Expunge => "EXPUNGE",
90 ExtendCandidates => "EXTEND_CANDIDATES",
91 False => "false",
92 Fetch => "FETCH",
93 Field => "FIELD",
94 Fields => "FIELDS",
95 Filters => "FILTERS",
96 Flexible => "FLEXIBLE",
97 For => "FOR",
98 From => "FROM",
99 Full => "FULL",
100 Function => "FUNCTION",
101 Functions => "FUNCTIONS",
102 Grant => "GRANT",
103 Graphql => "GRAPHQL",
104 Group => "GROUP",
105 Headers => "HEADERS",
106 Highlights => "HIGHLIGHTS",
107 Hnsw => "HNSW",
108 Ignore => "IGNORE",
109 Include => "INCLUDE",
110 Index => "INDEX",
111 Info => "INFO",
112 Insert => "INSERT",
113 Into => "INTO",
114 If => "IF",
115 Is => "IS",
116 Issuer => "ISSUER",
117 Jwt => "JWT",
118 Jwks => "JWKS",
119 Key => "KEY",
120 KeepPrunedConnections => "KEEP_PRUNED_CONNECTIONS",
121 Kill => "KILL",
122 Let => "LET",
123 Limit => "LIMIT",
124 Live => "LIVE",
125 Lowercase => "LOWERCASE",
126 Lm => "LM",
127 M => "M",
128 M0 => "M0",
129 Mapper => "MAPPER",
130 Middleware => "MIDDLEWARE",
131 Merge => "MERGE",
132 Model => "MODEL",
133 MTree => "MTREE",
134 MTreeCache => "MTREE_CACHE",
135 Namespace => "NAMESPACE",
136 Ngram => "NGRAM",
137 No => "NO",
138 NoIndex => "NOINDEX",
139 None => "NONE",
140 Null => "NULL",
141 Numeric => "NUMERIC",
142 Omit => "OMIT",
143 On => "ON",
144 Only => "ONLY",
145 Option => "OPTION",
146 Order => "ORDER",
147 Original => "ORIGINAL",
148 Overwrite => "OVERWRITE",
149 Parallel => "PARALLEL",
150 Param => "PARAM",
151 Passhash => "PASSHASH",
152 Password => "PASSWORD",
153 Patch => "PATCH",
154 Permissions => "PERMISSIONS",
155 PostingsCache => "POSTINGS_CACHE",
156 PostingsOrder => "POSTINGS_ORDER",
157 Punct => "PUNCT",
158 Purge => "PURGE",
159 Range => "RANGE",
160 Readonly => "READONLY",
161 Rebuild => "REBUILD",
162 Reference => "REFERENCE",
163 Refresh => "REFRESH",
164 Relate => "RELATE",
165 Relation => "RELATION",
166 Remove => "REMOVE",
167 Replace => "REPLACE",
168 Return => "RETURN",
169 Revoke => "REVOKE",
170 Revoked => "REVOKED",
171 Roles => "ROLES",
172 Root => "ROOT",
173 Schemafull => "SCHEMAFULL",
174 Schemaless => "SCHEMALESS",
175 Scope => "SCOPE",
176 Search => "SEARCH",
177 Select => "SELECT",
178 Session => "SESSION",
179 Set => "SET",
180 Show => "SHOW",
181 Signin => "SIGNIN",
182 Signup => "SIGNUP",
183 Since => "SINCE",
184 Sleep => "SLEEP",
185 Snowball => "SNOWBALL",
186 Split => "SPLIT",
187 Start => "START",
188 Structure => "STRUCTURE",
189 Table => "TABLE",
190 Tables => "TABLES",
191 TempFiles => "TEMPFILES",
192 TermsCache => "TERMS_CACHE",
193 TermsOrder => "TERMS_ORDER",
194 Then => "THEN",
195 Throw => "THROW",
196 Timeout => "TIMEOUT",
197 Tokenizers => "TOKENIZERS",
198 Token => "TOKEN",
199 To => "TO",
200 Transaction => "TRANSACTION",
201 True => "true",
202 Type => "TYPE",
203 Unique => "UNIQUE",
204 Unset => "UNSET",
205 Update => "UPDATE",
206 Upsert => "UPSERT",
207 Uppercase => "UPPERCASE",
208 Url => "URL",
209 Use => "USE",
210 User => "USER",
211 Value => "VALUE",
212 Values => "VALUES",
213 Version => "VERSION",
214 Vs => "VS",
215 When => "WHEN",
216 Where => "WHERE",
217 With => "WITH",
218 AllInside => "ALLINSIDE",
219 AndKw => "ANDKW",
220 AnyInside => "ANYINSIDE",
221 Inside => "INSIDE",
222 Intersects => "INTERSECTS",
223 NoneInside => "NONEINSIDE",
224 NotInside => "NOTINSIDE",
225 OrKw => "OR",
226 Outside => "OUTSIDE",
227 Not => "NOT",
228 And => "AND",
229 Collate => "COLLATE",
230 ContainsAll => "CONTAINSALL",
231 ContainsAny => "CONTAINSANY",
232 ContainsNone => "CONTAINSNONE",
233 ContainsNot => "CONTAINSNOT",
234 Contains => "CONTAINS",
235 In => "IN",
236 Out => "OUT",
237 Normal => "NORMAL",
238
239 Any => "ANY",
240 Array => "ARRAY",
241 Geometry => "GEOMETRY",
242 Record => "RECORD",
243 Future => "FUTURE",
244 Bool => "BOOL",
245 Bytes => "BYTES",
246 Datetime => "DATETIME",
247 Decimal => "DECIMAL",
248 Duration => "DURATION",
249 Float => "FLOAT",
250 Fn => "fn",
251 Int => "INT",
252 Number => "NUMBER",
253 Object => "OBJECT",
254 String => "STRING",
255 Uuid => "UUID",
256 Ulid => "ULID",
257 Rand => "RAND",
258 References => "REFERENCES",
259 Feature => "FEATURE",
260 Line => "LINE",
261 Point => "POINT",
262 Polygon => "POLYGON",
263 MultiPoint => "MULTIPOINT",
264 MultiLine => "MULTILINE",
265 MultiPolygon => "MULTIPOLYGON",
266 Collection => "COLLECTION",
267
268 FN => "fn",
269 ML => "ml",
270
271 Get => "GET",
272 Post => "POST",
273 Put => "PUT",
274 Trace => "TRACE",
275}
276
277pub(crate) use keyword_t;