rust top-level property

Language rust
final

Implementation

final rust = Language(
  id: "rust",
  refs: {},
  name: "Rust",
  aliases: ["rs"],
  keywords: {
    "\$pattern": "[a-zA-Z]\\w*!?",
    "type": [
      "i8",
      "i16",
      "i32",
      "i64",
      "i128",
      "isize",
      "u8",
      "u16",
      "u32",
      "u64",
      "u128",
      "usize",
      "f32",
      "f64",
      "str",
      "char",
      "bool",
      "Box",
      "Option",
      "Result",
      "String",
      "Vec"
    ],
    "keyword": [
      "abstract",
      "as",
      "async",
      "await",
      "become",
      "box",
      "break",
      "const",
      "continue",
      "crate",
      "do",
      "dyn",
      "else",
      "enum",
      "extern",
      "false",
      "final",
      "fn",
      "for",
      "if",
      "impl",
      "in",
      "let",
      "loop",
      "macro",
      "match",
      "mod",
      "move",
      "mut",
      "override",
      "priv",
      "pub",
      "ref",
      "return",
      "self",
      "Self",
      "static",
      "struct",
      "super",
      "trait",
      "true",
      "try",
      "type",
      "typeof",
      "unsafe",
      "unsized",
      "use",
      "virtual",
      "where",
      "while",
      "yield"
    ],
    "literal": ["true", "false", "Some", "None", "Ok", "Err"],
    "built_in": [
      "drop ",
      "Copy",
      "Send",
      "Sized",
      "Sync",
      "Drop",
      "Fn",
      "FnMut",
      "FnOnce",
      "ToOwned",
      "Clone",
      "Debug",
      "PartialEq",
      "PartialOrd",
      "Eq",
      "Ord",
      "AsRef",
      "AsMut",
      "Into",
      "From",
      "Default",
      "Iterator",
      "Extend",
      "IntoIterator",
      "DoubleEndedIterator",
      "ExactSizeIterator",
      "SliceConcatExt",
      "ToString",
      "assert!",
      "assert_eq!",
      "bitflags!",
      "bytes!",
      "cfg!",
      "col!",
      "concat!",
      "concat_idents!",
      "debug_assert!",
      "debug_assert_eq!",
      "env!",
      "panic!",
      "file!",
      "format!",
      "format_args!",
      "include_bytes!",
      "include_str!",
      "line!",
      "local_data_key!",
      "module_path!",
      "option_env!",
      "print!",
      "println!",
      "select!",
      "stringify!",
      "try!",
      "unimplemented!",
      "unreachable!",
      "vec!",
      "write!",
      "writeln!",
      "macro_rules!",
      "assert_ne!",
      "debug_assert_ne!"
    ]
  },
  illegal: "</",
  contains: [
    C_LINE_COMMENT_MODE,
    Mode(
      scope: "comment",
      begin: "/\\*",
      end: "\\*/",
      contains: [
        ModeSelfReference(),
        Mode(
          scope: "doctag",
          begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
          end: "(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",
          excludeBegin: true,
          relevance: 0,
        ),
        Mode(
          begin:
              "[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
        ),
      ],
    ),
    Mode(
      scope: "string",
      begin: "b?\"",
      end: "\"",
      illegal: null,
      contains: [
        BACKSLASH_ESCAPE,
      ],
    ),
    Mode(
      className: "string",
      variants: [
        Mode(
          begin: "b?r(#*)\"(.|\\n)*?\"\\1(?!#)",
        ),
        Mode(
          begin: "b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'",
        ),
      ],
    ),
    Mode(
      className: "symbol",
      begin: "'[a-zA-Z_][a-zA-Z0-9_]*",
    ),
    Mode(
      className: "number",
      variants: [
        Mode(
          begin: "\\b0b([01_]+)([ui](8|16|32|64|128|size)|f(32|64))?",
        ),
        Mode(
          begin: "\\b0o([0-7_]+)([ui](8|16|32|64|128|size)|f(32|64))?",
        ),
        Mode(
          begin: "\\b0x([A-Fa-f0-9_]+)([ui](8|16|32|64|128|size)|f(32|64))?",
        ),
        Mode(
          begin:
              "\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)([ui](8|16|32|64|128|size)|f(32|64))?",
        ),
      ],
      relevance: 0,
    ),
    Mode(
      begin: ["fn", "\\s+", "[a-zA-Z_]\\w*"],
      className: {"1": "keyword", "3": "title.function"},
    ),
    Mode(
      className: "meta",
      begin: "#!?\\[",
      end: "\\]",
      contains: [
        Mode(
          className: "string",
          begin: "\"",
          end: "\"",
        ),
      ],
    ),
    Mode(
      begin: ["let", "\\s+", "(?:mut\\s+)?", "[a-zA-Z_]\\w*"],
      className: {"1": "keyword", "3": "keyword", "4": "variable"},
    ),
    Mode(
      begin: ["for", "\\s+", "[a-zA-Z_]\\w*", "\\s+", "in"],
      className: {"1": "keyword", "3": "variable", "5": "keyword"},
    ),
    Mode(
      begin: ["type", "\\s+", "[a-zA-Z_]\\w*"],
      className: {"1": "keyword", "3": "title.class"},
    ),
    Mode(
      begin: ["(?:trait|enum|struct|union|impl|for)", "\\s+", "[a-zA-Z_]\\w*"],
      className: {"1": "keyword", "3": "title.class"},
    ),
    Mode(
      begin: "[a-zA-Z]\\w*::",
      keywords: {
        "keyword": "Self",
        "built_in": [
          "drop ",
          "Copy",
          "Send",
          "Sized",
          "Sync",
          "Drop",
          "Fn",
          "FnMut",
          "FnOnce",
          "ToOwned",
          "Clone",
          "Debug",
          "PartialEq",
          "PartialOrd",
          "Eq",
          "Ord",
          "AsRef",
          "AsMut",
          "Into",
          "From",
          "Default",
          "Iterator",
          "Extend",
          "IntoIterator",
          "DoubleEndedIterator",
          "ExactSizeIterator",
          "SliceConcatExt",
          "ToString",
          "assert!",
          "assert_eq!",
          "bitflags!",
          "bytes!",
          "cfg!",
          "col!",
          "concat!",
          "concat_idents!",
          "debug_assert!",
          "debug_assert_eq!",
          "env!",
          "panic!",
          "file!",
          "format!",
          "format_args!",
          "include_bytes!",
          "include_str!",
          "line!",
          "local_data_key!",
          "module_path!",
          "option_env!",
          "print!",
          "println!",
          "select!",
          "stringify!",
          "try!",
          "unimplemented!",
          "unreachable!",
          "vec!",
          "write!",
          "writeln!",
          "macro_rules!",
          "assert_ne!",
          "debug_assert_ne!"
        ],
        "type": [
          "i8",
          "i16",
          "i32",
          "i64",
          "i128",
          "isize",
          "u8",
          "u16",
          "u32",
          "u64",
          "u128",
          "usize",
          "f32",
          "f64",
          "str",
          "char",
          "bool",
          "Box",
          "Option",
          "Result",
          "String",
          "Vec"
        ]
      },
    ),
    Mode(
      className: "punctuation",
      begin: "->",
    ),
    Mode(
      className: "title.function.invoke",
      relevance: 0,
      begin: "\\b(?!let\\b)[a-zA-Z]\\w*(?=\\s*\\()",
    ),
  ],
);