syntaqlite_syntax/sqlite/
cflags.rs1#[repr(u32)]
17#[derive(Debug, Clone, Copy, PartialEq, Eq)]
18pub enum SqliteSyntaxFlag {
19 OmitAltertable = 0,
21 OmitAnalyze = 1,
23 OmitAttach = 2,
25 OmitAutoincrement = 3,
27 OmitCast = 4,
29 OmitCompoundSelect = 5,
31 OmitCte = 6,
33 OmitExplain = 7,
35 OmitForeignKey = 8,
37 OmitGeneratedColumns = 9,
39 OmitPragma = 10,
41 OmitReindex = 11,
43 OmitReturning = 12,
45 OmitSubquery = 13,
47 OmitTempdb = 14,
49 OmitTrigger = 15,
51 OmitVacuum = 16,
53 OmitView = 17,
55 OmitVirtualtable = 18,
57 OmitWindowfunc = 19,
59 EnableOrderedSetAggregates = 20,
61 EnableUpdateDeleteLimit = 21,
63}
64
65impl SqliteSyntaxFlag {
66 const ALL: &'static [Self] = &[
67 Self::OmitAltertable,
68 Self::OmitAnalyze,
69 Self::OmitAttach,
70 Self::OmitAutoincrement,
71 Self::OmitCast,
72 Self::OmitCompoundSelect,
73 Self::OmitCte,
74 Self::OmitExplain,
75 Self::OmitForeignKey,
76 Self::OmitGeneratedColumns,
77 Self::OmitPragma,
78 Self::OmitReindex,
79 Self::OmitReturning,
80 Self::OmitSubquery,
81 Self::OmitTempdb,
82 Self::OmitTrigger,
83 Self::OmitVacuum,
84 Self::OmitView,
85 Self::OmitVirtualtable,
86 Self::OmitWindowfunc,
87 Self::EnableOrderedSetAggregates,
88 Self::EnableUpdateDeleteLimit,
89 ];
90
91 const NAMES: &'static [&'static str] = &[
92 "SQLITE_OMIT_ALTERTABLE",
93 "SQLITE_OMIT_ANALYZE",
94 "SQLITE_OMIT_ATTACH",
95 "SQLITE_OMIT_AUTOINCREMENT",
96 "SQLITE_OMIT_CAST",
97 "SQLITE_OMIT_COMPOUND_SELECT",
98 "SQLITE_OMIT_CTE",
99 "SQLITE_OMIT_EXPLAIN",
100 "SQLITE_OMIT_FOREIGN_KEY",
101 "SQLITE_OMIT_GENERATED_COLUMNS",
102 "SQLITE_OMIT_PRAGMA",
103 "SQLITE_OMIT_REINDEX",
104 "SQLITE_OMIT_RETURNING",
105 "SQLITE_OMIT_SUBQUERY",
106 "SQLITE_OMIT_TEMPDB",
107 "SQLITE_OMIT_TRIGGER",
108 "SQLITE_OMIT_VACUUM",
109 "SQLITE_OMIT_VIEW",
110 "SQLITE_OMIT_VIRTUALTABLE",
111 "SQLITE_OMIT_WINDOWFUNC",
112 "SQLITE_ENABLE_ORDERED_SET_AGGREGATES",
113 "SQLITE_ENABLE_UPDATE_DELETE_LIMIT",
114 ];
115
116 pub fn name(self) -> &'static str {
118 Self::NAMES[self as usize]
119 }
120
121 pub fn from_name(s: &str) -> Option<Self> {
125 Self::ALL.iter().copied().find(|f| f.name() == s)
126 }
127}