summaryrefslogtreecommitdiffstats
path: root/src/bindgen/reserved.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/bindgen/reserved.rs91
1 files changed, 91 insertions, 0 deletions
diff --git a/src/bindgen/reserved.rs b/src/bindgen/reserved.rs
new file mode 100644
index 0000000..4983f99
--- /dev/null
+++ b/src/bindgen/reserved.rs
@@ -0,0 +1,91 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/// Taken from `https://en.cppreference.com/w/cpp/keyword`
+/// Some experimental keywords were filtered out and the resulting list was
+/// sorted using a rust program.
+const RESERVED_KEYWORDS: &[&str] = &[
+ "alignas",
+ "alignof",
+ "auto",
+ "bool",
+ "break",
+ "case",
+ "catch",
+ "char",
+ "char16_t",
+ "char32_t",
+ "char8_t",
+ "class",
+ "const",
+ "const_cast",
+ "consteval",
+ "constexpr",
+ "continue",
+ "decltype",
+ "default",
+ "delete",
+ "do",
+ "double",
+ "dynamic_cast",
+ "else",
+ "enum",
+ "explicit",
+ "export",
+ "extern",
+ "false",
+ "float",
+ "for",
+ "friend",
+ "goto",
+ "if",
+ "inline",
+ "int",
+ "long",
+ "mutable",
+ "namespace",
+ "new",
+ "noexcept",
+ "nullptr",
+ "operator",
+ "private",
+ "protected",
+ "public",
+ "register",
+ "reinterpret_cast",
+ "return",
+ "short",
+ "signed",
+ "sizeof",
+ "static",
+ "static_assert",
+ "static_cast",
+ "struct",
+ "switch",
+ "template",
+ "this",
+ "thread_local",
+ "throw",
+ "true",
+ "try",
+ "typedef",
+ "typename",
+ "union",
+ "unsigned",
+ "using",
+ "virtual",
+ "void",
+ "volatile",
+ "wchar_t",
+ "while",
+];
+
+pub fn escape(rust_identifier: &mut String) {
+ if RESERVED_KEYWORDS
+ .binary_search(&rust_identifier.as_ref())
+ .is_ok()
+ {
+ rust_identifier.push('_');
+ }
+}