/// List of Rust Keywords and Prelude items.
///
/// These are prohibited as item names.
///
/// See <https://doc.rust-lang.org/reference/keywords.html> and <https://doc.rust-lang.org/std/prelude/index.html>.
const RUST_KEYWORDS: &[&str] = &[
    "abstract",
    "as",
    "AsMut",
    "AsRef",
    "async",
    "await",
    "become",
    "box",
    "Box",
    "break",
    "Clone",
    "const",
    "continue",
    "Copy",
    "crate",
    "Default",
    "do",
    "DoubleEndedIterator",
    "drop",
    "Drop",
    "dyn",
    "else",
    "enum",
    "Eq",
    "Err",
    "ExactSizeIterator",
    "Extend",
    "extern",
    "false",
    "final",
    "fn",
    "Fn",
    "FnMut",
    "FnOnce",
    "for",
    "From",
    "FromIterator",
    "if",
    "impl",
    "in",
    "Into",
    "IntoIterator",
    "Iterator",
    "let",
    "loop",
    "macro_rules",
    "macro",
    "match",
    "mod",
    "move",
    "mut",
    "None",
    "Ok",
    "Option",
    "Ord",
    "override",
    "PartialEq",
    "PartialOrd",
    "priv",
    "pub",
    "ref",
    "Result",
    "return",
    "self",
    "Self",
    "Send",
    "Sized",
    "Some",
    "static",
    "String",
    "struct",
    "super",
    "Sync",
    "ToOwned",
    "ToString",
    "trait",
    "true",
    "try",
    "TryFrom",
    "TryInto",
    "type",
    "typeof",
    "union",
    "Unpin",
    "unsafe",
    "unsized",
    "use",
    "Vec",
    "virtual",
    "where",
    "while",
    "yield",
];

pub fn is_rust_keyword(s: &str) -> bool {
    RUST_KEYWORDS.contains(&s)
}
