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 Count => "COUNT",
65 Create => "CREATE",
66 Database => "DATABASE",
67 Default => "DEFAULT",
68 Define => "DEFINE",
69 Delete => "DELETE",
70 Descending => "DESCENDING",
71 Diff => "DIFF",
72 Dimension => "DIMENSION",
73 Distance => "DISTANCE",
74 DocIdsCache => "DOC_IDS_CACHE",
75 DocIdsOrder => "DOC_IDS_ORDER",
76 DocLengthsCache => "DOC_LENGTHS_CACHE",
77 DocLengthsOrder => "DOC_LENGTHS_ORDER",
78 Drop => "DROP",
79 Duplicate => "DUPLICATE",
80 Efc => "EFC",
81 Edgengram => "EDGENGRAM",
82 Event => "EVENT",
83 Else => "ELSE",
84 End => "END",
85 Enforced => "ENFORCED",
86 Exclude => "EXCLUDE",
87 Exists => "EXISTS",
88 Expired => "EXPIRED",
89 Explain => "EXPLAIN",
90 Expunge => "EXPUNGE",
91 ExtendCandidates => "EXTEND_CANDIDATES",
92 False => "false",
93 Fetch => "FETCH",
94 Field => "FIELD",
95 Fields => "FIELDS",
96 Filters => "FILTERS",
97 Flexible => "FLEXIBLE",
98 For => "FOR",
99 From => "FROM",
100 Full => "FULL",
101 Function => "FUNCTION",
102 Functions => "FUNCTIONS",
103 Grant => "GRANT",
104 Graphql => "GRAPHQL",
105 Group => "GROUP",
106 Headers => "HEADERS",
107 Highlights => "HIGHLIGHTS",
108 Hnsw => "HNSW",
109 Ignore => "IGNORE",
110 Include => "INCLUDE",
111 Index => "INDEX",
112 Info => "INFO",
113 Insert => "INSERT",
114 Into => "INTO",
115 If => "IF",
116 Is => "IS",
117 Issuer => "ISSUER",
118 Jwt => "JWT",
119 Jwks => "JWKS",
120 Key => "KEY",
121 KeepPrunedConnections => "KEEP_PRUNED_CONNECTIONS",
122 Kill => "KILL",
123 Let => "LET",
124 Limit => "LIMIT",
125 Live => "LIVE",
126 Lowercase => "LOWERCASE",
127 Lm => "LM",
128 M => "M",
129 M0 => "M0",
130 Mapper => "MAPPER",
131 Middleware => "MIDDLEWARE",
132 Merge => "MERGE",
133 Model => "MODEL",
134 MTree => "MTREE",
135 MTreeCache => "MTREE_CACHE",
136 Namespace => "NAMESPACE",
137 Ngram => "NGRAM",
138 No => "NO",
139 NoIndex => "NOINDEX",
140 None => "NONE",
141 Null => "NULL",
142 Numeric => "NUMERIC",
143 Omit => "OMIT",
144 On => "ON",
145 Only => "ONLY",
146 Option => "OPTION",
147 Order => "ORDER",
148 Original => "ORIGINAL",
149 Overwrite => "OVERWRITE",
150 Parallel => "PARALLEL",
151 Param => "PARAM",
152 Passhash => "PASSHASH",
153 Password => "PASSWORD",
154 Patch => "PATCH",
155 Permissions => "PERMISSIONS",
156 PostingsCache => "POSTINGS_CACHE",
157 PostingsOrder => "POSTINGS_ORDER",
158 Punct => "PUNCT",
159 Purge => "PURGE",
160 Range => "RANGE",
161 Readonly => "READONLY",
162 Rebuild => "REBUILD",
163 Reference => "REFERENCE",
164 Refresh => "REFRESH",
165 Regex => "REGEX",
166 Relate => "RELATE",
167 Relation => "RELATION",
168 Remove => "REMOVE",
169 Replace => "REPLACE",
170 Return => "RETURN",
171 Revoke => "REVOKE",
172 Revoked => "REVOKED",
173 Roles => "ROLES",
174 Root => "ROOT",
175 Schemafull => "SCHEMAFULL",
176 Schemaless => "SCHEMALESS",
177 Scope => "SCOPE",
178 Search => "SEARCH",
179 Select => "SELECT",
180 Session => "SESSION",
181 Set => "SET",
182 Show => "SHOW",
183 Signin => "SIGNIN",
184 Signup => "SIGNUP",
185 Since => "SINCE",
186 Sleep => "SLEEP",
187 Snowball => "SNOWBALL",
188 Split => "SPLIT",
189 Start => "START",
190 Structure => "STRUCTURE",
191 Table => "TABLE",
192 Tables => "TABLES",
193 TempFiles => "TEMPFILES",
194 TermsCache => "TERMS_CACHE",
195 TermsOrder => "TERMS_ORDER",
196 Then => "THEN",
197 Throw => "THROW",
198 Timeout => "TIMEOUT",
199 Tokenizers => "TOKENIZERS",
200 Token => "TOKEN",
201 To => "TO",
202 Transaction => "TRANSACTION",
203 True => "true",
204 Type => "TYPE",
205 Unique => "UNIQUE",
206 Unset => "UNSET",
207 Update => "UPDATE",
208 Upsert => "UPSERT",
209 Uppercase => "UPPERCASE",
210 Url => "URL",
211 Use => "USE",
212 User => "USER",
213 Value => "VALUE",
214 Values => "VALUES",
215 Version => "VERSION",
216 Vs => "VS",
217 When => "WHEN",
218 Where => "WHERE",
219 With => "WITH",
220 AllInside => "ALLINSIDE",
221 AndKw => "ANDKW",
222 AnyInside => "ANYINSIDE",
223 Inside => "INSIDE",
224 Intersects => "INTERSECTS",
225 NoneInside => "NONEINSIDE",
226 NotInside => "NOTINSIDE",
227 OrKw => "OR",
228 Outside => "OUTSIDE",
229 Not => "NOT",
230 And => "AND",
231 Collate => "COLLATE",
232 ContainsAll => "CONTAINSALL",
233 ContainsAny => "CONTAINSANY",
234 ContainsNone => "CONTAINSNONE",
235 ContainsNot => "CONTAINSNOT",
236 Contains => "CONTAINS",
237 In => "IN",
238 Out => "OUT",
239 Normal => "NORMAL",
240
241 Any => "ANY",
242 Array => "ARRAY",
243 Geometry => "GEOMETRY",
244 Record => "RECORD",
245 Future => "FUTURE",
246 Bool => "BOOL",
247 Bytes => "BYTES",
248 Datetime => "DATETIME",
249 Decimal => "DECIMAL",
250 Duration => "DURATION",
251 Float => "FLOAT",
252 Fn => "fn",
253 Int => "INT",
254 Number => "NUMBER",
255 Object => "OBJECT",
256 String => "STRING",
257 Uuid => "UUID",
258 Ulid => "ULID",
259 Rand => "RAND",
260 References => "REFERENCES",
261 Feature => "FEATURE",
262 Line => "LINE",
263 Point => "POINT",
264 Polygon => "POLYGON",
265 MultiPoint => "MULTIPOINT",
266 MultiLine => "MULTILINE",
267 MultiPolygon => "MULTIPOLYGON",
268 Collection => "COLLECTION",
269
270 FN => "fn",
271 ML => "ml",
272
273 Get => "GET",
274 Post => "POST",
275 Put => "PUT",
276 Trace => "TRACE",
277}
278
279pub(crate) use keyword_t;