diff options
Diffstat (limited to 'src/bindgen/reserved.rs')
-rw-r--r-- | src/bindgen/reserved.rs | 91 |
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('_'); + } +} |