]>
luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/rust.min.js
1 /*! `rust` grammar compiled for Highlight.js 11.11.1 */
2 (()=>{var e
=(()=>{"use strict";return e
=>{
3 const t
=e
.regex
,n
=/(r#)?/,a
=t
.concat(n
,e
.UNDERSCORE_IDENT_RE
),i
=t
.concat(n
,e
.IDENT_RE
),s
={
4 className:"title.function.invoke",relevance:0,
5 begin:t
.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i
,t
.lookahead(/\s*\(/))
6 },r
="([ui](8|16|32|64|128|size)|f(32|64))?",l
=["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!","eprintln!","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!"],o
=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"]
7 ;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e
.IDENT_RE
+"!?",type:o
,
8 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","union","unsafe","unsized","use","virtual","where","while","yield"],
9 literal:["true","false","Some","None","Ok","Err"],built_in:l
},illegal:"</",
10 contains:[e
.C_LINE_COMMENT_MODE
,e
.COMMENT("/\\*","\\*/",{contains:["self"]
11 }),e
.inherit(e
.QUOTE_STRING_MODE
,{begin:/b?"/,illegal:null}),{
12 className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",
13 variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{
14 scope:"char.escape",match:/\\('|\w
|x
\w
{2}|u
\w
{4}|U
\w
{8})/}]}]},{
15 className:"number",variants:[{begin:"\\b0b([01_]+)"+r
},{begin:"\\b0o([0-7_]+)"+r
16 },{begin:"\\b0x([A-Fa-f0-9_]+)"+r
},{
17 begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+r
}],relevance:0},{
18 begin:[/fn/,/\s+/,a
],className:{1:"keyword",3:"title.function"}},{
19 className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",
20 begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{
21 begin:[/let/,/\s+/,/(?:mut\s+)?/,a],className:{1:"keyword
",3:"keyword
",
22 4:"variable
"}},{begin:[/for/,/\s+/,a,/\s+/,/in/],className:{1:"keyword
",
23 3:"variable
",5:"keyword
"}},{begin:[/type/,/\s+/,a],className:{1:"keyword
",
24 3:"title
.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,a],
25 className:{1:"keyword
",3:"title
.class"}},{begin:e.IDENT_RE+"::",keywords:{
26 keyword:"Self
",built_in:l,type:o}},{className:"punctuation
",begin:"->"},s]}}})()
27 ;hljs.registerLanguage("rust
",e)})();