<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language
[
<!ENTITY rustIdent "(?:[a-zA-Z_]|[^[:ascii:]])(?:\w|[^[:ascii:]])*">
<!ENTITY rustIntSuf "(?:[iu](?:8|16|32|64|128|size)?)?">
<!ENTITY commonEscape "(?:[trn0'"\\]|x[0-9a-fA-F]{2})">
<!ENTITY unicodeEscape "u\{(?:[0-9a-fA-F]_*){1,6}\}">
<!ENTITY hexadecimal_octal_binary "\b0(?:x[0-9a-fA-F_]+|o[0-7_]+|b[01_]+)&rustIntSuf;\b">
<!ENTITY float_decimal "\b[0-9][0-9_]*(?:(?:\.[0-9][0-9_]*)?(?:[eE][\+\-]?[0-9_]+)?(?:f32|f64)?|&rustIntSuf;)\b">
<!ENTITY scope1 "&rustIdent;::">
<!ENTITY scope2 "::(?=[^\s\:])">
]>
<language name="Rust" alternativeNames="RS" version="15" kateversion="5.0" section="Sources" extensions="*.rs" mimetype="text/rust" indenter="cstyle" priority="15" license="MIT" author="The Rust Project Developers">
<highlighting>
<list name="fn">
<item>fn</item>
</list>
<list name="type">
<item>type</item>
</list>
<list name="keywords">
<item>abstract</item>
<item>alignof</item>
<item>as</item>
<item>async</item>
<item>await</item>
<item>become</item>
<item>box</item>
<item>const</item>
<item>crate</item>
<item>default</item>
<item>do</item>
<item>dyn</item>
<item>enum</item>
<item>extern</item>
<item>final</item>
<item>impl</item>
<item>in</item>
<item>let</item>
<item>macro</item>
<item>mod</item>
<item>move</item>
<item>mut</item>
<item>offsetof</item>
<item>override</item>
<item>priv</item>
<item>proc</item>
<item>pub</item>
<item>pure</item>
<item>ref</item>
<item>sizeof</item>
<item>static</item>
<item>struct</item>
<item>super</item>
<item>trait</item>
<item>try</item>
<item>typeof</item>
<item>union</item>
<item>unsafe</item>
<item>unsized</item>
<item>use</item>
<item>virtual</item>
<item>where</item>
<item>yield</item>
</list>
<list name="controlflow">
<item>break</item>
<item>continue</item>
<item>else</item>
<item>for</item>
<item>if</item>
<item>loop</item>
<item>match</item>
<item>return</item>
<item>while</item>
</list>
<list name="traits">
<item>Add</item>
<item>AddAssign</item>
<item>Alloc</item>
<item>Any</item>
<item>AsMut</item>
<item>AsRef</item>
<item>Binary</item>
<item>BitAnd</item>
<item>BitAndAssign</item>
<item>BitOr</item>
<item>BitOrAssign</item>
<item>BitXor</item>
<item>BitXorAssign</item>
<item>Borrow</item>
<item>BorrowMut</item>
<item>BuildHasher</item>
<item>Clone</item>
<item>CoerceUnsized</item>
<item>Copy</item>
<item>Debug</item>
<item>Default</item>
<item>Deref</item>
<item>DerefMut</item>
<item>DispatchFromDyn</item>
<item>Display</item>
<item>Div</item>
<item>DivAssign</item>
<item>DoubleEndedIterator</item>
<item>Drop</item>
<item>Eq</item>
<item>ExactSizeIterator</item>
<item>Extend</item>
<item>FixedSizeArray</item>
<item>Fn</item>
<item>FnBox</item>
<item>FnMut</item>
<item>FnOnce</item>
<item>From</item>
<item>FromIterator</item>
<item>FromStr</item>
<item>FusedIterator</item>
<item>Future</item>
<item>Generator</item>
<item>GlobalAlloc</item>
<item>Hash</item>
<item>Hasher</item>
<item>Index</item>
<item>IndexMut</item>
<item>Into</item>
<item>IntoIterator</item>
<item>Iterator</item>
<item>LowerExp</item>
<item>LowerHex</item>
<item>Mul</item>
<item>MulAssign</item>
<item>Neg</item>
<item>Not</item>
<item>Octal</item>
<item>Ord</item>
<item>PartialEq</item>
<item>PartialOrd</item>
<item>Pointer</item>
<item>Product</item>
<item>RangeBounds</item>
<item>Rem</item>
<item>RemAssign</item>
<item>Send</item>
<item>Shl</item>
<item>ShlAssign</item>
<item>Shr</item>
<item>ShrAssign</item>
<item>Sized</item>
<item>SliceIndex</item>
<item>Step</item>
<item>Sub</item>
<item>SubAssign</item>
<item>Sum</item>
<item>Sync</item>
<item>TrustedLen</item>
<item>Try</item>
<item>TryFrom</item>
<item>TryInto</item>
<item>Unpin</item>
<item>Unsize</item>
<item>UpperExp</item>
<item>UpperHex</item>
<item>Write</item>
<item>AsSlice</item>
<item>BufRead</item>
<item>CharExt</item>
<item>Decodable</item>
<item>Encodable</item>
<item>Error</item>
<item>FromPrimitive</item>
<item>IteratorExt</item>
<item>MultiSpan</item>
<item>MutPtrExt</item>
<item>Pattern</item>
<item>PtrExt</item>
<item>Rand</item>
<item>Read</item>
<item>RefUnwindSafe</item>
<item>Seek</item>
<item>SliceConcatExt</item>
<item>SliceExt</item>
<item>Str</item>
<item>StrExt</item>
<item>TDynBenchFn</item>
<item>Termination</item>
<item>ToOwned</item>
<item>ToSocketAddrs</item>
<item>ToString</item>
<item>UnwindSafe</item>
</list>
<list name="types">
<item>bool</item>
<item>isize</item>
<item>usize</item>
<item>i8</item>
<item>i16</item>
<item>i32</item>
<item>i64</item>
<item>i128</item>
<item>u8</item>
<item>u16</item>
<item>u32</item>
<item>u64</item>
<item>u128</item>
<item>f32</item>
<item>f64</item>
<item>char</item>
<item>str</item>
<item>Option</item>
<item>Result</item>
<item>Self</item>
<item>Box</item>
<item>Vec</item>
<item>String</item>
<item>Path</item>
<item>PathBuf</item>
</list>
<list name="ctypes">
<item>c_float</item>
<item>c_double</item>
<item>c_void</item>
<item>FILE</item>
<item>fpos_t</item>
<item>DIR</item>
<item>dirent</item>
<item>c_char</item>
<item>c_schar</item>
<item>c_uchar</item>
<item>c_short</item>
<item>c_ushort</item>
<item>c_int</item>
<item>c_uint</item>
<item>c_long</item>
<item>c_ulong</item>
<item>size_t</item>
<item>ptrdiff_t</item>
<item>clock_t</item>
<item>time_t</item>
<item>c_longlong</item>
<item>c_ulonglong</item>
<item>intptr_t</item>
<item>uintptr_t</item>
<item>off_t</item>
<item>dev_t</item>
<item>ino_t</item>
<item>pid_t</item>
<item>mode_t</item>
<item>ssize_t</item>
</list>
<list name="self">
<item>self</item>
</list>
<list name="constants">
<item>true</item>
<item>false</item>
<item>Some</item>
<item>None</item>
<item>Ok</item>
<item>Err</item>
<item>Success</item>
<item>Failure</item>
<item>Cons</item>
<item>Nil</item>
<item>MAX</item>
<item>REPLACEMENT_CHARACTER</item>
<item>UNICODE_VERSION</item>
<item>DIGITS</item>
<item>EPSILON</item>
<item>INFINITY</item>
<item>MANTISSA_DIGITS</item>
<item>MAX_10_EXP</item>
<item>MAX_EXP</item>
<item>MIN</item>
<item>MIN_10_EXP</item>
<item>MIN_EXP</item>
<item>MIN_POSITIVE</item>
<item>NAN</item>
<item>NEG_INFINITY</item>
<item>RADIX</item>
<item>MAIN_SEPARATOR</item>
<item>ONCE_INIT</item>
<item>UNIX_EPOCH</item>
</list>
<list name="cconstants">
<item>EXIT_FAILURE</item>
<item>EXIT_SUCCESS</item>
<item>RAND_MAX</item>
<item>EOF</item>
<item>SEEK_SET</item>
<item>SEEK_CUR</item>
<item>SEEK_END</item>
<item>_IOFBF</item>
<item>_IONBF</item>
<item>_IOLBF</item>
<item>BUFSIZ</item>
<item>FOPEN_MAX</item>
<item>FILENAME_MAX</item>
<item>L_tmpnam</item>
<item>TMP_MAX</item>
<item>O_RDONLY</item>
<item>O_WRONLY</item>
<item>O_RDWR</item>
<item>O_APPEND</item>
<item>O_CREAT</item>
<item>O_EXCL</item>
<item>O_TRUNC</item>
<item>S_IFIFO</item>
<item>S_IFCHR</item>
<item>S_IFBLK</item>
<item>S_IFDIR</item>
<item>S_IFREG</item>
<item>S_IFMT</item>
<item>S_IEXEC</item>
<item>S_IWRITE</item>
<item>S_IREAD</item>
<item>S_IRWXU</item>
<item>S_IXUSR</item>
<item>S_IWUSR</item>
<item>S_IRUSR</item>
<item>F_OK</item>
<item>R_OK</item>
<item>W_OK</item>
<item>X_OK</item>
<item>STDIN_FILENO</item>
<item>STDOUT_FILENO</item>
<item>STDERR_FILENO</item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
<DetectSpaces/>
<keyword String="fn" attribute="Keyword" context="Function"/>
<keyword String="type" attribute="Keyword" context="Type"/>
<keyword String="self" attribute="Self" context="#stay"/>
<keyword String="keywords" attribute="Keyword" context="#stay"/>
<keyword String="controlflow" attribute="Control Flow" context="#stay"/>
<keyword String="types" attribute="Type" context="#stay"/>
<keyword String="ctypes" attribute="CType" context="#stay"/>
<keyword String="constants" attribute="Constant" context="#stay"/>
<keyword String="cconstants" attribute="CConstant" context="#stay"/>
<keyword String="traits" attribute="Trait" context="#stay"/>
<IncludeRules context="FindComments"/>
<RegExpr String="&hexadecimal_octal_binary;|&float_decimal;" attribute="Number" context="#stay"/>
<RegExpr String="\b0(?:b[01_]*[^01_]|o[0-7_]*[^0-7_]|x[0-9a-fA-F_]*[^0-9a-fA-F_])\w*&rustIntSuf;\b" attribute="Error" context="#stay"/>
<Detect2Chars char="#" char1="[" attribute="Attribute" context="Attribute" beginRegion="Attribute"/>
<StringDetect String="#![" attribute="Attribute" context="Attribute" beginRegion="Attribute"/>
<RegExpr String="&scope1;|&scope2;" attribute="Scope"/>
<RegExpr String="&rustIdent;!" attribute="Macro"/>
<RegExpr String="'&rustIdent;(?!')" attribute="Lifetime"/>
<DetectChar char="{" attribute="Symbol" context="#stay" beginRegion="Brace" />
<DetectChar char="}" attribute="Symbol" context="#stay" endRegion="Brace" />
<RegExpr String="b?r(#*)"" attribute="String" context="RawString"/>
<Detect2Chars char="b" char1=""" attribute="String" context="ByteString"/>
<DetectChar char=""" attribute="String" context="String"/>
<RegExpr String="b'(?=(?:[^'\\]|\\&commonEscape;)')" attribute="Character" context="Character"/>
<DetectChar char="'" attribute="Character" context="Character"/>
<DetectChar char="[" attribute="Normal Text" context="#stay" beginRegion="Bracket" />
<DetectChar char="]" attribute="Normal Text" context="#stay" endRegion="Bracket" />
<RegExpr String="r#(?=&rustIdent;)" attribute="Raw Identifier" context="#stay"/>
<AnyChar String=";,.@~:$?=><&-+|*!/^%" attribute="Symbol" context="#stay"/>
<DetectIdentifier/>
</context>
<context attribute="Attribute" lineEndContext="#stay" name="Attribute">
<DetectChar char="]" attribute="Attribute" context="#pop" endRegion="Attribute"/>
<IncludeRules context="Normal"/>
</context>
<context attribute="Definition" lineEndContext="#stay" name="Function">
<DetectSpaces/>
<AnyChar String="(<" attribute="Normal Text" context="#pop" lookAhead="true"/>
<IncludeRules context="FindComments"/>
</context>
<context attribute="Definition" lineEndContext="#stay" name="Type">
<DetectSpaces/>
<AnyChar String="=<;" attribute="Normal Text" context="#pop" lookAhead="true"/>
<IncludeRules context="FindComments"/>
</context>
<context attribute="String" lineEndContext="#stay" name="String">
<DetectChar char="\" attribute="CharEscape" context="CharEscapeWithUnicode"/>
<DetectChar attribute="String" context="#pop" char="""/>
</context>
<context attribute="String" lineEndContext="#stay" name="ByteString">
<DetectChar char="\" attribute="CharEscape" context="CharEscape"/>
<DetectChar attribute="String" context="#pop" char="""/>
</context>
<context attribute="String" lineEndContext="#stay" name="RawString">
<StringDetect String=""%1" attribute="String" context="#pop" dynamic="true"/>
</context>
<context attribute="Character" lineEndContext="#pop" name="Character" fallthrough="true" fallthroughContext="#pop">
<RegExpr String="[^'\\](?=')" attribute="Character" context="#stay"/>
<RegExpr String="\\(?:&unicodeEscape;|&commonEscape;)(?=')" attribute="CharEscape" context="#stay"/>
<DetectChar attribute="Character" context="#pop" char="'"/>
<RegExpr String="(?:\\.|[^'\\])[^']*(?='(?:[\d\s!"#$%&'\(\)\*\+,\-\./:;<\=>\?@\[\\\]\^`\{\|\}~[:cntrl:]]|$))" attribute="Error" context="#stay"/>
</context>
<context attribute="CharEscape" lineEndContext="#pop" name="CharEscape">
<RegExpr String="&commonEscape;" attribute="CharEscape" context="#pop"/>
<RegExpr String="." attribute="Error" context="#pop"/>
</context>
<context attribute="CharEscape" lineEndContext="#pop" name="CharEscapeWithUnicode">
<RegExpr String="&unicodeEscape;" attribute="CharEscape" context="#pop"/>
<IncludeRules context="CharEscape"/>
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="FindComments">
<Detect2Chars char="/" char1="/" attribute="Comment" context="Commentar 1"/>
<Detect2Chars char="/" char1="*" attribute="Comment" context="Commentar 2" beginRegion="Comment"/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
<DetectSpaces/>
<IncludeRules context="##Comments" />
</context>
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
<DetectSpaces/>
<Detect2Chars char="/" char1="*" attribute="Comment" context="Commentar 2" beginRegion="Comment"/>
<Detect2Chars char="*" char1="/" attribute="Comment" context="#pop" endRegion="Comment"/>
<IncludeRules context="##Comments" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="0"/>
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="0"/>
<itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="0"/>
<itemData name="Self" defStyleNum="dsKeyword" spellChecking="0"/>
<itemData name="Type" defStyleNum="dsDataType" spellChecking="0"/>
<itemData name="Trait" defStyleNum="dsBuiltIn" spellChecking="0"/>
<itemData name="CType" defStyleNum="dsDataType" spellChecking="0"/>
<itemData name="Constant" defStyleNum="dsConstant" spellChecking="0"/>
<itemData name="CConstant" defStyleNum="dsConstant" spellChecking="0"/>
<itemData name="Definition" defStyleNum="dsNormal" spellChecking="0"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Scope" defStyleNum="dsPreprocessor" spellChecking="0"/>
<itemData name="Number" defStyleNum="dsDecVal" spellChecking="0"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="CharEscape" defStyleNum="dsSpecialChar" spellChecking="0"/>
<itemData name="Character" defStyleNum="dsChar" spellChecking="0"/>
<itemData name="Macro" defStyleNum="dsPreprocessor" spellChecking="0"/>
<itemData name="Symbol" defStyleNum="dsOperator" spellChecking="0"/>
<itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="0"/>
<itemData name="Lifetime" defStyleNum="dsOthers" spellChecking="0"/>
<itemData name="Raw Identifier" defStyleNum="dsAnnotation" spellChecking="0"/>
<itemData name="Error" defStyleNum="dsError" spellChecking="0"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="//" position="afterwhitespace" />
<comment name="multiLine" start="/*" end="*/" region="Comment"/>
</comments>
<keywords casesensitive="1" />
</general>
</language>