diff --git a/Cargo.lock b/Cargo.lock index 013979b19c0aa..3fbb162e736c9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -194,11 +194,11 @@ corasick version = " -1 +0 . -1 +7 . -0 +20 " source = @@ -226,7 +226,7 @@ index checksum = " -0f2135563fb5c609d2b2b87c1e8ce7bc41b0b45430fa9661f457981503dd5bf0 +cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac " dependencies = @@ -25477,80 +25477,9 @@ version " 1 . -9 -. -4 -" -source -= -" -registry -+ -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -crates -. -io -- -index -" -checksum -= -" -12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29 -" -dependencies -= -[ -" -aho -- -corasick -" -" -memchr -" -" -regex -- -automata -" -" -regex -- -syntax -" -] -[ -[ -package -] -] -name -= -" -regex -- -automata -" -version -= -" -0 -. -3 -. 7 +. +1 " source = @@ -25578,7 +25507,7 @@ index checksum = " -49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629 +48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733 " dependencies = @@ -25614,9 +25543,9 @@ version " 0 . -7 +6 . -5 +28 " source = @@ -25644,7 +25573,7 @@ index checksum = " -dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da +456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848 " [ [ diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml index bdb29b39ca707..245b639e61854 100644 --- a/supply-chain/audits.toml +++ b/supply-chain/audits.toml @@ -42936,53 +42936,6 @@ trusted . regex - -automata -] -] -criteria -= -" -safe -- -to -- -deploy -" -user -- -id -= -189 -# -Andrew -Gallant -( -BurntSushi -) -start -= -" -2019 -- -02 -- -25 -" -end -= -" -2024 -- -09 -- -20 -" -[ -[ -trusted -. -regex -- syntax ] ] diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock index ea1aae591155c..97dd6fd8901a2 100644 --- a/supply-chain/imports.lock +++ b/supply-chain/imports.lock @@ -55,53 +55,6 @@ Gallant [ publisher . -aho -- -corasick -] -] -version -= -" -1 -. -1 -. -0 -" -when -= -" -2023 -- -09 -- -18 -" -user -- -id -= -189 -user -- -login -= -" -BurntSushi -" -user -- -name -= -" -Andrew -Gallant -" -[ -[ -publisher -. anstyle ] ] @@ -2754,98 +2707,6 @@ Gallant publisher . regex -] -] -version -= -" -1 -. -9 -. -4 -" -when -= -" -2023 -- -08 -- -26 -" -user -- -id -= -189 -user -- -login -= -" -BurntSushi -" -user -- -name -= -" -Andrew -Gallant -" -[ -[ -publisher -. -regex -- -automata -] -] -version -= -" -0 -. -3 -. -7 -" -when -= -" -2023 -- -08 -- -26 -" -user -- -id -= -189 -user -- -login -= -" -BurntSushi -" -user -- -name -= -" -Andrew -Gallant -" -[ -[ -publisher -. -regex - syntax ] @@ -2892,53 +2753,6 @@ Gallant [ publisher . -regex -- -syntax -] -] -version -= -" -0 -. -7 -. -5 -" -when -= -" -2023 -- -08 -- -26 -" -user -- -id -= -189 -user -- -login -= -" -BurntSushi -" -user -- -name -= -" -Andrew -Gallant -" -[ -[ -publisher -. rust_cascade ] ] diff --git a/third_party/rust/aho-corasick/.cargo-checksum.json b/third_party/rust/aho-corasick/.cargo-checksum.json index b54f2a35a61dc..b7d75c2d23321 100644 --- a/third_party/rust/aho-corasick/.cargo-checksum.json +++ b/third_party/rust/aho-corasick/.cargo-checksum.json @@ -18,7 +18,7 @@ toml " : " -55608b09e18c96a0c245d8af2546e63bb4576fa378c1f2ce38c7909f3b225007 +c9b1b15e299ba4e6ed0d6f25cde30b26b13b6068a7fbd980000c37bca19b0104 " " DESIGN @@ -27,7 +27,7 @@ md " : " -59c960e1b73b1d7fb41e4df6c0c1b1fcf44dd2ebc8a349597a7d0595f8cb5130 +64ff45ea2a89d4c32b29af91acb7743a861fcac417cb94fde8e6559405d603b2 " " LICENSE @@ -45,7 +45,7 @@ md " : " -afc4d559a98cf190029af0bf320fc0022725e349cd2a303aac860254e28f3c53 +5999e5768f5da8ab9b50c016766b5185b4c79936c56bef6d311ddcb0a38c4b94 " " UNLICENSE @@ -72,7 +72,7 @@ rs " : " -c699c07df70be45c666e128509ad571a7649d2073e4ae16ac1efd6793c9c6890 +b92c9a65c4ee8029ff5a710aa1514caf838e73072c177dff5375463769f0b1ce " " src @@ -83,105 +83,97 @@ rs " : " -22258a3e118672413119f8f543a9b912cce954e63524575c0ebfdf9011f9c2dd +931af0aad03079bc4f6400d573fce832ce1edeeaf196815a16750d57b54b2183 " " src / -dfa +buffer . rs " : " -c495d615545981e1d0a4174bf0a6ab87fd81c30c7d4527acf2d64a56323bdc36 +dae7ee7c1f846ca9cf115ba4949484000e1837b4fb7311f8d8c9a35011c9c26f " " src / -lib +byte_frequencies . rs " : " -2a92d5c5e930f2d306508802e8a929135e1f41c9f5f8deda8f7eb98947179dd2 +2fb85b381c038c1e44ce94294531cdcd339dca48b1e61f41455666e802cbbc9e " " src / -macros +classes . rs " : " -c6c52ae05b24433cffaca7b78b3645d797862c5d5feffddf9f54909095ed6e05 +99a53a2ed8eea8c13699def90e31dfdff9d0b90572b1db3cb534e3396e7a0ed0 " " src / -nfa -/ -contiguous +dfa . rs " : " -aeb6ee5fd80eea04decbc4b46aa27d1ab270b78d416a644da25b7934f009ee66 +25e4455b3e179a7e192108d05f3683993456b36e3ebed99f827558c52525b7e6 " " src / -nfa -/ -mod +error . rs " : " -ee7b3109774d14bbad5239c16bb980dd6b8185ec136d94fbaf2f0dc27d5ffa15 +d34c2c9c815df5d9dedc46b4b3ce109cd2cee07825de643f0c574ec960367beb " " src / -nfa -/ -noncontiguous +lib . rs " : " -de94f02b04efd8744fb096759a8897c22012b0e0ca3ace161fd87c71befefe04 +7a47d4c87f83e0e7ddf0777a71e4858904e73477ce18404cb89e656070e86aef " " src / -packed -/ -api +nfa . rs " : " -160d3b10823316f7b0924e13c3afd222c8a7db5c0a00432401f311ef27d6a1b7 +3b817b4aa85540e8c0d35aff7ed7cfbab70ec7d2aaa779d63b4f5369bff31ce1 " " src / packed / -ext +api . rs " : " -66be06fde8558429da23a290584d4b9fae665bf64c2578db4fe5f5f3ee864869 +df42e7500c94c9de1ac44145a0dd99ea02047e6bba229da12f2575337beebcf0 " " src @@ -194,7 +186,7 @@ rs " : " -0020cd6f07ba5c8955923a9516d7f758864260eda53a6b6f629131c45ddeec62 +ad2f8e18996737347a1181a4457387276d139315bcabfc5e34494af0c0319701 " " src @@ -207,7 +199,7 @@ rs " : " -1e3a289a730c141fc30b295811e372d046c6619c7fd670308299b889a06c7673 +3abf3835d4c4f8a43753c52936a894d819f713f233fc046e19de5ef95200dcce " " src @@ -220,7 +212,7 @@ rs " : " -403146eb1d838a84601d171393542340513cd1ee7ff750f2372161dd47746586 +ad7d4533f96aed336e29c5553657ae57b0d733ace9c707a6cf4d08d8fc6edee5 " " src @@ -235,7 +227,7 @@ md " : " -3a43194b64e221543d885176aba3beb1224a927385a20eca842daf6b0ea2f342 +b4b83fb5afafbbea6cb76fe70f49cc8ced888f682d98abe5ea5773e95d9ec2b0 " " src @@ -244,13 +236,13 @@ packed / teddy / -builder +compile . rs " : " -720735ea6c7ff92b081426513e6e82feed24a922849297bb538d28f7b8129f81 +aad40b3f93d2c388b409b31fb2795d414a365237789d5b1a7510d97ceb8ce260 " " src @@ -259,13 +251,13 @@ packed / teddy / -generic +mod . rs " : " -ea252ab05b32cea7dd9d71e332071d243db7dd0362e049252a27e5881ba2bf39 +83b52bd80272970ad17234d0db293d17c1710ec582302bf516b203c8edec037e " " src @@ -274,13 +266,13 @@ packed / teddy / -mod +runtime . rs " : " -17d741f7e2fb9dbac5ba7d1bd4542cf1e35e9f146ace728e23fe6bbed20028b2 +836146e90b320b14fa2c65fe4af7915a41f6fb04408aac5fac731c22ff46adae " " src @@ -293,7 +285,7 @@ rs " : " -8e2f56eb3890ed3876ecb47d3121996e416563127b6430110d7b516df3f83b4b +b8dc4d3281ecd6d0fa2bf7ef16cf292a467dfdce64e470c7921e983bfa60fee2 " " src @@ -306,185 +298,40 @@ rs " : " -6e0400422de015e181c758ef3a4ff517fc8d0481b078a82de00f6e29e9d2e1c8 -" -" -src -/ -tests -. -rs -" -: -" -c68192ab97b6161d0d6ee96fefd80cc7d14e4486ddcd8d1f82b5c92432c24ed5 -" -" -src -/ -transducer -. -rs -" -: -" -02daa33a5d6dac41dcfd67f51df7c0d4a91c5131c781fb54c4de3520c585a6e1 -" -" -src -/ -util -/ -alphabet -. -rs -" -: -" -6dc22658a38deddc0279892035b18870d4585069e35ba7c7e649a24509acfbcc -" -" -src -/ -util -/ -buffer -. -rs -" -: -" -f9e37f662c46c6ecd734458dedbe76c3bb0e84a93b6b0117c0d4ad3042413891 -" -" -src -/ -util -/ -byte_frequencies -. -rs -" -: -" -2fb85b381c038c1e44ce94294531cdcd339dca48b1e61f41455666e802cbbc9e -" -" -src -/ -util -/ -debug -. -rs -" -: -" -ab301ad59aa912529cb97233a54a05914dd3cb2ec43e6fec7334170b97ac5998 -" -" -src -/ -util -/ -error -. -rs -" -: -" -ecccd60e7406305023efcc6adcc826eeeb083ab8f7fbfe3d97469438cd4c4e5c -" -" -src -/ -util -/ -int -. -rs -" -: -" -4ab6dbdba10027ddec2af63a9b28ce4eee30ded0daa5d8eb068b2b55542b6039 +ab3c0535fca5f09198d58cbfae44c292aeb3ce44bc92bca36d30dc72963639fc " " src / -util -/ -mod -. -rs -" -: -" -7ab28d11323ecdbd982087f32eb8bceeee84f1a2583f3aae27039c36d58cf12c -" -" -src -/ -util -/ prefilter . rs " : " -9fa4498f18bf70478b1996c1a013698b626d15f119aa81dbc536673c9f045718 +82a3eb6d5c0c3f10bc8d5f57d55d6d14cf4cf21c475bb5253e1921084063b8d7 " " src / -util -/ -primitives +state_id . rs " : " -f89f3fa1d8db4e37de9ca767c6d05e346404837cade6d063bba68972fafa610b +519ec8c7bf3fa72103d4c561c193759759f535dca924c9853efe630f406d2029 " " src / -util -/ -remapper -. -rs -" -: -" -9f12d911583a325c11806eeceb46d0dfec863cfcfa241aed84d31af73da746e5 -" -" -src -/ -util -/ -search -. -rs -" -: -" -6af803e08b8b8c8a33db100623f1621b0d741616524ce40893d8316897f27ffe -" -" -src -/ -util -/ -special +tests . rs " : " -7d2f9cb9dd9771f59816e829b2d96b1239996f32939ba98764e121696c52b146 +ee9b85f3c27cb2fba5796e5be8019aafecc13ee9a4f614553f2bc8953f51c6de " } " @@ -492,6 +339,6 @@ package " : " -0f2135563fb5c609d2b2b87c1e8ce7bc41b0b45430fa9661f457981503dd5bf0 +cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac " } diff --git a/third_party/rust/aho-corasick/Cargo.toml b/third_party/rust/aho-corasick/Cargo.toml index a80577c29bd93..07d1025d35e7f 100644 --- a/third_party/rust/aho-corasick/Cargo.toml +++ b/third_party/rust/aho-corasick/Cargo.toml @@ -100,18 +100,7 @@ package edition = " -2021 -" -rust -- -version -= -" -1 -. -60 -. -0 +2018 " name = @@ -123,11 +112,11 @@ corasick version = " -1 +0 . -1 +7 . -0 +20 " authors = @@ -154,14 +143,6 @@ corasick - debug " -" -/ -benchmarks -" -" -/ -tmp -" ] autotests = @@ -212,7 +193,7 @@ search text " " -pattern +aho " " multi @@ -252,52 +233,13 @@ aho corasick " [ -package -. -metadata -. -docs -. -rs -] -all -- -features -= -true -rustdoc -- -args -= -[ -" -- -- -cfg -" -" -docsrs -" -" -- -- -generate -- -link -- -to -- -definition -" -] -[ profile . bench ] debug = -2 +true [ profile . @@ -305,7 +247,7 @@ release ] debug = -2 +true [ lib ] @@ -317,23 +259,6 @@ aho_corasick [ dependencies . -log -] -version -= -" -0 -. -4 -. -17 -" -optional -= -true -[ -dependencies -. memchr ] version @@ -345,9 +270,6 @@ version . 0 " -optional -= -true default - features @@ -357,20 +279,7 @@ false dev - dependencies -. -doc -- -comment ] -version -= -" -0 -. -3 -. -3 -" [ features ] @@ -380,38 +289,12 @@ default " std " -" -perf -- -literal -" -] -logging -= -[ -" -dep -: -log -" -] -perf -- -literal -= -[ -" -dep -: -memchr -" ] std = [ " memchr -? / std " diff --git a/third_party/rust/aho-corasick/DESIGN.md b/third_party/rust/aho-corasick/DESIGN.md index 8a2688a6ece43..f896b54c09b69 100644 --- a/third_party/rust/aho-corasick/DESIGN.md +++ b/third_party/rust/aho-corasick/DESIGN.md @@ -150,115 +150,146 @@ Aho - Corasick as -a -noncontiguous +an NFA -. -States -have -their -transitions -represented -sparsely -and -each -state -puts -its +using +dense transitions -in -its -own -separate -allocation -. -Hence +near the -same -" -noncontiguous +root +with +sparse +transitions +elsewhere . -" * Aho - Corasick as a -contiguous -NFA +DFA . -This +( +An NFA +is +slower +to +search +but +cheaper +to +construct +and uses +less +memory +. +) +* +A +DFA +with +pre +- +multiplied +state +identifiers +. +This +saves a -single -allocation -to -represent +multiplication +instruction +in the -transitions +core +search +loop +. +* +A +DFA +with +equivalence +classes of -all -states +bytes +as +the +alphabet +instead +of +the +traditional +256 +- +byte +alphabet . -That -is -transitions -are -laid -out -contiguously +This +shrinks +the +size +of +the +DFA in memory -. -Moreover -states -near +but +adds +an +extra +lookup +in the -starting -state -are -represented -densely -such -that -finding +core +search +loop +to +map the -next -state -ID -takes -a -constant -number -of -instructions +input +byte +to +an +equivalent +class . * -Aho -- -Corasick -as -a -DFA -. -In -this -case -all -states +The +option +to +choose +how +state +identifiers are represented -densely -in -a -transition -table -that -uses +via one -allocation +of +u8 +u16 +u32 +u64 +or +usize +. +This +permits +creating +compact +automatons +when +matching +a +small +number +of +patterns . * Supporting @@ -497,10 +528,7 @@ searches which permit efficient -" -is -prefix -" +is_prefix checks for a @@ -854,7 +882,7 @@ alternative keys in the -trie +automaton . The trick @@ -2008,8 +2036,6 @@ see src / nfa -/ -noncontiguous . rs which @@ -2222,12 +2248,6 @@ failure transitions from S -until -you -reach -the -start -state . ( This @@ -2293,9 +2313,6 @@ typically slower to execute -a -search -with . For example @@ -2613,101 +2630,81 @@ actually choose between using -one -of -two -possible -NFAs -( -noncontiguous -or -contiguous -) +an +NFA or a DFA . By default -a -contiguous +an NFA is used -in -most -circumstances -but -if -the -number -of -patterns -is -small -enough -a -DFA -will -be -used -. -A -contiguous -NFA -is -chosen because it -uses -orders -of -magnitude -less -memory -than -a +typically +strikes +the +best +balance +between +space +usage +and +search +performance +. +But +the DFA -takes -only +option +is +available +for +cases +where a little -longer -to -build -than -a -noncontiguous -NFA +extra +memory and -usually -gets -pretty -close -to +upfront +time +building the -search -speed -of -a -DFA +automaton +is +okay . -( -Callers -can -override -this -automatic -selection -via +For +example the +AhoCorasick +: +: +auto_configure +and AhoCorasickBuilder : : -start_kind -configuration +auto_configure +methods +will +enable +the +DFA +setting +if +there +are +a +small +number +of +patterns . -) # More DFA @@ -3215,136 +3212,125 @@ state identifiers other than -it -imposes -a -smaller -limit -on the -total -number -of -states -in -the -DFA -. -Namely -with -premultiplied -state -identifiers +fact +that you -run -out -of -room -in -your -state -identifier +may +need +to +choose +a +bigger +integer representation -more -rapidly than +you +would +otherwise +. +For +example if -the +you +don +' +t +premultiply +state identifiers -are -just +then +an +automaton +that +uses +u8 +as +a state -indices +identifier +can +hold +up +to +256 +states . -Both -equivalence -classes -and -premultiplication +However +if +they are -always -enabled -. -There -is -a -AhoCorasickBuilder -: -: -byte_classes -configuration -but -disabling -this -just -makes +premultiplied +then it -so -there -are -always +can +only +hold +up +to +floor +( 256 -equivalence -classes -i -. -e +/ +len +( +alphabet +) +) +states . -every -class -corresponds -to -precisely -one -byte +Thus +premultiplication +impacts +how +compact +your +DFA +can +be . -When +In +practice it ' s -disabled -the -equivalence -class -map -itself -is -still -used -. -The -purpose -of -disabling -it -is -when -one +pretty +rare +to +use +u8 +as +a +state +identifier +so +premultiplication is -debugging -the -underlying -automaton -. -It -can -be -easier +usually +a +good +thing to -comprehend -when -it -uses -actual -byte -values -for -its -transitions -instead -of +do +. +Both equivalence classes +and +premultiplication +are +tuneable +parameters +via +the +AhoCorasickBuilder +type +and +both +are +enabled +by +default . # Match @@ -3768,8 +3754,6 @@ in src / nfa -/ -noncontiguous . rs . @@ -3851,8 +3835,7 @@ been found . ) -Most -other +Other implementations of Aho @@ -4056,18 +4039,7 @@ an overlapping search will -return -an -error -( -or panic -when -using -the -infallible -APIs -) . Thus to @@ -4193,6 +4165,23 @@ a single type . +Callers +may +query +whether +the +automaton +supports +overlapping +searches +via +the +AhoCorasick +: +: +supports_overlapping +method +. # Stream searching @@ -4597,6 +4586,20 @@ run at all . +( +See +Automaton +: +: +leftmost_find_at_no_state_imp +in +src +/ +automaton +. +rs +. +) However the current @@ -4606,19 +4609,13 @@ only works in x86_64 +and when SSSE3 or AVX2 are available -or -in -aarch64 -( -using -NEON -) and moreover only diff --git a/third_party/rust/aho-corasick/README.md b/third_party/rust/aho-corasick/README.md index afa2417ae843f..b8c8ceab565cb 100644 --- a/third_party/rust/aho-corasick/README.md +++ b/third_party/rust/aho-corasick/README.md @@ -236,27 +236,27 @@ corasick # # Usage -Run -cargo -add -aho -- -corasick -to -automatically -add +Add this -crate -as -a -dependency -in +to your Cargo . toml -file +: +toml +[ +dependencies +] +aho +- +corasick += +" +0 . +7 +" # # # @@ -298,10 +298,7 @@ use aho_corasick : : -{ AhoCorasick -PatternID -} ; let patterns @@ -344,10 +341,6 @@ new ( patterns ) -. -unwrap -( -) ; let mut @@ -400,35 +393,17 @@ vec ! [ ( -PatternID -: -: -must -( 1 -) 13 18 ) ( -PatternID -: -: -must -( 0 -) 28 33 ) ( -PatternID -: -: -must -( 2 -) 43 50 ) @@ -440,7 +415,6 @@ must # Example : -ASCII case insensitivity This @@ -462,10 +436,7 @@ use aho_corasick : : -{ -AhoCorasick -PatternID -} +AhoCorasickBuilder ; let patterns @@ -501,10 +472,10 @@ Snapple let ac = -AhoCorasick +AhoCorasickBuilder : : -builder +new ( ) . @@ -517,10 +488,6 @@ build ( patterns ) -. -unwrap -( -) ; let mut @@ -573,35 +540,17 @@ vec ! [ ( -PatternID -: -: -must -( 1 -) 13 18 ) ( -PatternID -: -: -must -( 0 -) 28 33 ) ( -PatternID -: -: -must -( 2 -) 43 50 ) @@ -641,7 +590,6 @@ memory first . rust -ignore use aho_corasick : @@ -758,10 +706,6 @@ new ( patterns ) -. -unwrap -( -) ; ac . @@ -1038,10 +982,6 @@ new ( patterns ) -. -unwrap -( -) ; let mat @@ -1114,7 +1054,7 @@ aho_corasick : : { -AhoCorasick +AhoCorasickBuilder MatchKind } ; @@ -1141,10 +1081,10 @@ Samwise let ac = -AhoCorasick +AhoCorasickBuilder : : -builder +new ( ) . @@ -1160,10 +1100,6 @@ build ( patterns ) -. -unwrap -( -) ; let mat @@ -1262,9 +1198,9 @@ version is 1 . -60 +41 . -0 +1 . The current @@ -1398,30 +1334,104 @@ for this library . -* -[ -tmikus -/ -ahocorasick_rs -] -( -https +# +# +# +Future +work +Here +are +some +plans +for +the +future : -/ -/ -github -. -com -/ -tmikus -/ -ahocorasick_rs -) +* +Assuming +the +current +API is +sufficient +I +' +d +like +to +commit +to +it +and +release a -Go -wrapper -for +1 +. +0 +version +of this -library +crate +some +time +in +the +next +6 +- +12 +months +. +* +Support +stream +searching +with +leftmost +match +semantics . +Currently +only +standard +match +semantics +are +supported +. +Getting +this +right +seems +possible +but +is +tricky +since +the +match +state +needs +to +be +propagated +through +multiple +searches +. +( +With +standard +semantics +as +soon +as +a +match +is +seen +the +search +ends +. +) diff --git a/third_party/rust/aho-corasick/src/ahocorasick.rs b/third_party/rust/aho-corasick/src/ahocorasick.rs index 89b4474857844..b776610d2efac 100644 --- a/third_party/rust/aho-corasick/src/ahocorasick.rs +++ b/third_party/rust/aho-corasick/src/ahocorasick.rs @@ -1,120 +1,121 @@ use -core +std : : -{ -fmt +io +; +use +crate : : -Debug -panic +automaton : : -{ -RefUnwindSafe -UnwindSafe -} -} +Automaton ; use -alloc +crate : : -{ -string +buffer : : -String -sync +Buffer +; +use +crate : : -Arc -vec +dfa : : -Vec +{ +self +DFA } ; use crate : : -{ -automaton +error +: +: +Result +; +use +crate : : -{ -self -Automaton -OverlappingState -} -dfa nfa : : { -contiguous -noncontiguous +self +NFA } -util +; +use +crate : : -{ -error +packed +; +use +crate : : -{ -BuildError -MatchError -} prefilter : : +{ Prefilter -primitives +PrefilterState +} +; +use +crate +: +: +state_id : : -{ -PatternID StateID -} -search +; +use +crate : : -{ -Anchored -Input Match -MatchKind -StartKind -} -} -} ; # [ derive ( Clone +Debug ) ] pub struct AhoCorasick +< +S +: +StateID += +usize +> { -aut +imp : -Arc +Imp < -dyn -AcAutomaton +S > -kind -: -AhoCorasickKind -start_kind +match_kind : -StartKind +MatchKind } impl AhoCorasick @@ -133,11 +134,7 @@ I ) - > -Result -< AhoCorasick -BuildError -> where I : @@ -170,12 +167,30 @@ patterns } pub fn -builder +new_auto_configured +< +B +> ( +patterns +: +& +[ +B +] ) - > -AhoCorasickBuilder +AhoCorasick +where +B +: +AsRef +< +[ +u8 +] +> { AhoCorasickBuilder : @@ -183,34 +198,48 @@ AhoCorasickBuilder new ( ) +. +auto_configure +( +patterns +) +. +build +( +patterns +) } } impl +< +S +: +StateID +> AhoCorasick +< +S +> { pub fn is_match < -' -h -I +B : -Into -< -Input +AsRef < -' -h -> +[ +u8 +] > > ( & self -input +haystack : -I +B ) - > @@ -218,36 +247,9 @@ bool { self . -aut -. -try_find -( -& -input -. -into -( -) -. -earliest -( -true -) -) -. -expect +earliest_find ( -" -AhoCorasick -: -: -try_find -is -not -expected -to -fail -" +haystack ) . is_some @@ -256,27 +258,23 @@ is_some } pub fn -find +earliest_find < -' -h -I +B : -Into -< -Input +AsRef < -' -h -> +[ +u8 +] > > ( & self -input +haystack : -I +B ) - > @@ -285,158 +283,188 @@ Option Match > { +let +mut +prestate += +PrefilterState +: +: +new +( self . -try_find +max_pattern_len ( -input ) +) +; +let +mut +start += +self . -expect +imp +. +start_state ( -" -AhoCorasick -: -: -try_find -is -not -expected -to -fail -" ) -} -pub -fn -find_overlapping -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& +; self -input -: -I -state -: +. +imp +. +earliest_find_at +( & mut -OverlappingState -) -{ -self +prestate +haystack . -try_find_overlapping +as_ref ( -input -state ) -. -expect -( -" -AhoCorasick -: -: -try_find_overlapping -is -not -expected -to -fail -" +0 +& +mut +start ) } pub fn -find_iter +find < -' -a -' -h -I +B : -Into -< -Input +AsRef < -' -h -> +[ +u8 +] > > ( & -' -a self -input +haystack : -I +B ) - > -FindIter +Option < -' -a -' -h +Match > { +let +mut +prestate += +PrefilterState +: +: +new +( self . -try_find_iter +max_pattern_len ( -input ) +) +; +self . -expect +imp +. +find_at_no_state +( +& +mut +prestate +haystack +. +as_ref ( -" -AhoCorasick -: -: -try_find_iter -is -not -expected -to -fail -" +) +0 ) } pub fn -find_overlapping_iter +find_iter < ' a ' -h -I +b +B : -Into +? +Sized ++ +AsRef < -Input +[ +u8 +] +> +> +( +& +' +a +self +haystack +: +& +' +b +B +) +- +> +FindIter < ' -h +a +' +b +S > +{ +FindIter +: +: +new +( +self +haystack +. +as_ref +( +) +) +} +pub +fn +find_overlapping_iter +< +' +a +' +b +B +: +? +Sized ++ +AsRef +< +[ +u8 +] > > ( @@ -444,9 +472,12 @@ h ' a self -input +haystack : -I +& +' +b +B ) - > @@ -455,29 +486,21 @@ FindOverlappingIter ' a ' -h +b +S > { +FindOverlappingIter +: +: +new +( self +haystack . -try_find_overlapping_iter +as_ref ( -input ) -. -expect -( -" -AhoCorasick -: -: -try_find_overlapping_iter -is -not -expected -to -fail -" ) } pub @@ -511,28 +534,87 @@ AsRef str > { -self -. -try_replace_all +assert_eq +! ( -haystack replace_with +. +len +( ) +self . -expect +pattern_count ( +) " -AhoCorasick +replace_all +requires +a +replacement +for +every +pattern +\ +in +the +automaton +" +) +; +let +mut +dst += +String : : -try_replace_all -is -not -expected -to -fail -" +with_capacity +( +haystack +. +len +( +) +) +; +self +. +replace_all_with +( +haystack +& +mut +dst +| +mat +_ +dst +| +{ +dst +. +push_str +( +replace_with +[ +mat +. +pattern +( +) +] +. +as_ref +( +) +) +; +true +} ) +; +dst } pub fn @@ -572,26 +654,87 @@ u8 ] > { -self -. -try_replace_all_bytes +assert_eq +! ( -haystack replace_with +. +len +( ) +self . -expect +pattern_count ( +) " -AhoCorasick +replace_all_bytes +requires +a +replacement +for +every +pattern +\ +in +the +automaton +" +) +; +let +mut +dst += +Vec : : -try_replace_all_bytes -should -not -fail -" +with_capacity +( +haystack +. +len +( +) +) +; +self +. +replace_all_with_bytes +( +haystack +& +mut +dst +| +mat +_ +dst +| +{ +dst +. +extend +( +replace_with +[ +mat +. +pattern +( +) +] +. +as_ref +( +) +) +; +true +} ) +; +dst } pub fn @@ -611,6 +754,7 @@ dst & mut String +mut replace_with : F @@ -632,27 +776,91 @@ String > bool { +let +mut +last_match += +0 +; +for +mat +in self . -try_replace_all_with +find_iter ( haystack -dst -replace_with ) +{ +dst . -expect +push_str ( -" -AhoCorasick -: -: -try_replace_all_with -should -not -fail -" +& +haystack +[ +last_match +. +. +mat +. +start +( +) +] +) +; +last_match += +mat +. +end +( +) +; +if +! +replace_with +( +& +mat +& +haystack +[ +mat +. +start +( +) +. +. +mat +. +end +( +) +] +dst +) +{ +break +; +} +; +} +dst +. +push_str +( +& +haystack +[ +last_match +. +. +] ) +; } pub fn @@ -677,6 +885,7 @@ Vec < u8 > +mut replace_with : F @@ -703,39 +912,92 @@ u8 > bool { +let +mut +last_match += +0 +; +for +mat +in self . -try_replace_all_with_bytes +find_iter ( haystack +) +{ dst -replace_with +. +extend +( +& +haystack +[ +last_match +. +. +mat +. +start +( +) +] ) +; +last_match += +mat . -expect +end ( -" -AhoCorasick -: -: -try_replace_all_with_bytes -should -not -fail -" ) -} -# +; +if +! +replace_with +( +& +mat +& +haystack [ -cfg +mat +. +start ( -feature -= -" -std -" ) +. +. +mat +. +end +( +) +] +dst +) +{ +break +; +} +; +} +dst +. +extend +( +& +haystack +[ +last_match +. +. ] +) +; +} pub fn stream_find_iter @@ -744,9 +1006,6 @@ stream_find_iter a R : -std -: -: io : : @@ -768,1183 +1027,1145 @@ StreamFindIter ' a R +S > { -self -. -try_stream_find_iter -( -rdr -) -. -expect -( -" -AhoCorasick +StreamFindIter : : -try_stream_find_iter -should -not -fail -" +new +( +self +rdr ) } -} -impl -AhoCorasick -{ pub fn -try_find -< -' -h -I -: -Into -< -Input +stream_replace_all < -' -h -> -> +R +W +B > ( & self -input +rdr : -I +R +wtr +: +W +replace_with +: +& +[ +B +] ) - > +io +: +: Result < -Option -< -Match +( +) > -MatchError +where +R +: +io +: +: +Read +W +: +io +: +: +Write +B +: +AsRef +< +[ +u8 +] > { -let -input -= -input +assert_eq +! +( +replace_with . -into +len ( ) -; -enforce_anchored_consistency -( self . -start_kind -input -. -get_anchored +pattern_count ( ) +" +stream_replace_all +requires +a +replacement +for +every +pattern +\ +in +the +automaton +" ) -? ; self . -aut +stream_replace_all_with +( +rdr +wtr +| +mat +_ +wtr +| +{ +wtr . -try_find +write_all ( -& -input +replace_with +[ +mat +. +pattern +( +) +] +. +as_ref +( +) +) +} ) } pub fn -try_find_overlapping -< -' -h -I -: -Into -< -Input +stream_replace_all_with < -' -h -> -> +R +W +F > ( & self -input +rdr +: +R +mut +wtr +: +W +mut +replace_with +: +F +) +- +> +io +: +: +Result +< +( +) +> +where +R +: +io : -I -state : +Read +W +: +io +: +: +Write +F +: +FnMut +( +& +Match +& +[ +u8 +] & mut -OverlappingState +W ) - > +io +: +: Result < ( ) -MatchError > { let -input +mut +it = -input -. -into +StreamChunkIter +: +: +new ( +self +rdr ) ; -enforce_anchored_consistency +while +let +Some ( -self -. -start_kind -input +result +) += +it . -get_anchored +next ( ) -) +{ +let +chunk += +result ? ; -self +match +chunk +{ +StreamChunk +: +: +NonMatch +{ +bytes . -aut . -try_find_overlapping -( -& -input -state -) } -pub -fn -try_find_iter -< -' -a -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -a -self -input -: -I -) -- -> -Result -< -FindIter -< -' -a -' -h -> -MatchError += > { -let -input -= -input +wtr . -into +write_all ( +bytes ) +? ; -enforce_anchored_consistency -( -self -. -start_kind -input -. -get_anchored +} +StreamChunk +: +: +Match +{ +bytes +mat +} += +> +{ +replace_with ( -) +& +mat +bytes +& +mut +wtr ) ? ; +} +} +} Ok ( -FindIter -( -self -. -aut -. -try_find_iter ( -input -) -? ) ) } pub fn -try_find_overlapping_iter -< -' -a -' -h -I -: -Into -< -Input -< -' -h -> -> -> +match_kind ( & -' -a self -input -: -I ) - > -Result -< -FindOverlappingIter -< -' -a -' -h -> -MatchError -> +& +MatchKind { -let -input -= -input +self . -into +imp +. +match_kind ( ) -; -enforce_anchored_consistency +} +pub +fn +max_pattern_len ( +& +self +) +- +> +usize +{ self . -start_kind -input +imp . -get_anchored +max_pattern_len ( ) -) -? -; -Ok -( -FindOverlappingIter +} +pub +fn +pattern_count ( +& +self +) +- +> +usize +{ self . -aut +imp . -try_find_overlapping_iter +pattern_count ( -input -) -? -) ) } pub fn -try_replace_all -< -B -> +supports_overlapping ( & self -haystack -: -& -str -replace_with -: -& -[ -B -] ) - > -Result -< -String -MatchError -> -where -B -: -AsRef -< -str -> +bool { -enforce_anchored_consistency -( -self -. -start_kind -Anchored -: -: -No -) -? -; self . -aut +match_kind . -try_replace_all +supports_overlapping ( -haystack -replace_with ) } pub fn -try_replace_all_bytes -< -B -> +supports_stream ( & self -haystack -: -& -[ -u8 -] -replace_with -: -& -[ -B -] ) - > -Result -< -Vec -< -u8 -> -MatchError -> -where -B -: -AsRef -< -[ -u8 -] -> +bool { -enforce_anchored_consistency -( -self -. -start_kind -Anchored -: -: -No -) -? -; self . -aut +match_kind . -try_replace_all_bytes +supports_stream ( -haystack -replace_with ) } pub fn -try_replace_all_with -< -F -> +heap_bytes ( & self -haystack -: -& -str -dst -: -& -mut -String -replace_with -: -F ) - > -Result -< -( -) -MatchError -> -where -F +usize +{ +match +self +. +imp +{ +Imp : -FnMut +: +NFA ( -& -Match -& -str -& -mut -String +ref +nfa ) -- += > -bool -{ -enforce_anchored_consistency -( -self +nfa . -start_kind -Anchored +heap_bytes +( +) +Imp : : -No +DFA +( +ref +dfa ) -? -; -self -. -aut += +> +dfa . -try_replace_all_with +heap_bytes ( -haystack -dst -replace_with ) } -pub -fn -try_replace_all_with_bytes -< -F -> -( -& -self -haystack -: -& +} +} +# [ -u8 +derive +( +Clone +Debug +) ] -dst -: -& -mut -Vec +enum +Imp < -u8 -> -replace_with +S : -F -) -- +StateID > -Result -< +{ +NFA ( +NFA +< +S +> ) -MatchError +DFA +( +DFA +< +S > -where -F +) +} +impl +< +S : -FnMut -( -& -Match -& -[ -u8 -] -& -mut -Vec +StateID +> +Imp < -u8 +S > +{ +fn +match_kind +( +& +self ) - > -bool +& +MatchKind { -enforce_anchored_consistency -( +match +* self -. -start_kind -Anchored +{ +Imp : : -No +NFA +( +ref +nfa ) -? -; -self -. -aut += +> +nfa . -try_replace_all_with_bytes +match_kind ( -haystack -dst -replace_with ) -} -# -[ -cfg +Imp +: +: +DFA ( -feature +ref +dfa +) = -" -std -" +> +dfa +. +match_kind +( ) -] -pub +} +} fn -try_stream_find_iter -< -' -a -R -: -std -: -: -io -: -: -Read -> +start_state ( & -' -a self -rdr -: -R ) - > -Result -< -StreamFindIter -< -' -a -R -> -MatchError -> +S { -enforce_anchored_consistency -( +match +* self -. -start_kind -Anchored +{ +Imp : : -No -) -? -; -self -. -aut -. -try_stream_find_iter +NFA ( -rdr +ref +nfa ) += +> +nfa . -map +start_state ( -StreamFindIter ) -} -# -[ -cfg +Imp +: +: +DFA ( -feature +ref +dfa +) = -" -std -" +> +dfa +. +start_state +( ) -] -pub +} +} fn -try_stream_replace_all -< -R -W -B -> +max_pattern_len ( & self -rdr -: -R -wtr +) +- +> +usize +{ +match +* +self +{ +Imp : -W -replace_with : -& -[ -B -] +NFA +( +ref +nfa ) -- += > -Result -< +nfa +. +max_pattern_len ( ) -std -: -: -io +Imp : : -Error +DFA +( +ref +dfa +) += > -where -R -: -std -: -: -io -: -: -Read -W -: -std -: +dfa +. +max_pattern_len +( +) +} +} +fn +pattern_count +( +& +self +) +- +> +usize +{ +match +* +self +{ +Imp : -io : +NFA +( +ref +nfa +) += +> +nfa +. +pattern_count +( +) +Imp : -Write -B : -AsRef +DFA +( +ref +dfa +) += +> +dfa +. +pattern_count +( +) +} +} +fn +prefilter +( +& +self +) +- +> +Option < -[ -u8 -] +& +dyn +Prefilter > { -enforce_anchored_consistency -( +match +* self -. -start_kind -Anchored +{ +Imp : : -No +NFA +( +ref +nfa ) += +> +nfa . -map_err +prefilter ( -| -e -| -std -: -: -io -: -: -Error +) +Imp : : -new +DFA +( +ref +dfa +) += +> +dfa +. +prefilter ( -std -: -: -io -: -: -ErrorKind -: -: -Other -e ) +} +} +fn +use_prefilter +( +& +self ) -? -; +- +> +bool +{ +let +p += +match self . -aut +prefilter +( +) +{ +None += +> +return +false +Some +( +p +) += +> +p +} +; +! +p . -try_stream_replace_all +looks_for_non_start_of_match ( -rdr -wtr -replace_with ) } # [ -cfg +inline ( -feature -= -" -std -" +always ) ] -pub fn -try_stream_replace_all_with -< -R -W -F -> +overlapping_find_at ( & self -rdr +prestate : -R -wtr +& +mut +PrefilterState +haystack : -W -replace_with +& +[ +u8 +] +at : -F +usize +state_id +: +& +mut +S +match_index +: +& +mut +usize ) - > -Result +Option < -( -) -std -: -: -io -: -: -Error -> -where -R -: -std -: -: -io -: -: -Read -W -: -std -: -: -io -: -: -Write -F -: -FnMut -( -& Match -& -[ -u8 -] -& -mut -W -) -- -> -Result -< -( -) -std -: -: -io -: -: -Error > { -enforce_anchored_consistency -( +match +* self -. -start_kind -Anchored +{ +Imp : : -No +NFA +( +ref +nfa ) += +> +nfa . -map_err +overlapping_find_at ( -| -e -| -std -: -: -io -: -: -Error +prestate +haystack +at +state_id +match_index +) +Imp : : -new +DFA ( -std -: -: -io -: -: -ErrorKind -: -: -Other -e -) +ref +dfa ) -? -; -self -. -aut += +> +dfa . -try_stream_replace_all_with +overlapping_find_at ( -rdr -wtr -replace_with +prestate +haystack +at +state_id +match_index ) } } -impl -AhoCorasick -{ -pub -fn -kind +# +[ +inline ( -& -self +always ) -- -> -AhoCorasickKind -{ -self -. -kind -} -pub +] fn -start_kind +earliest_find_at ( & self +prestate +: +& +mut +PrefilterState +haystack +: +& +[ +u8 +] +at +: +usize +state_id +: +& +mut +S ) - > -StartKind +Option +< +Match +> { +match +* self -. -start_kind -} -pub -fn -match_kind +{ +Imp +: +: +NFA ( -& -self +ref +nfa ) -- += > -MatchKind { -self -. -aut +nfa . -match_kind +earliest_find_at ( +prestate +haystack +at +state_id ) } -pub -fn -min_pattern_len +Imp +: +: +DFA ( -& -self +ref +dfa ) -- += > -usize { -self -. -aut +dfa . -min_pattern_len +earliest_find_at ( +prestate +haystack +at +state_id ) } -pub +} +} +# +[ +inline +( +always +) +] fn -max_pattern_len +find_at_no_state ( & self +prestate +: +& +mut +PrefilterState +haystack +: +& +[ +u8 +] +at +: +usize ) - > -usize +Option +< +Match +> { +match +* self -. -aut -. -max_pattern_len -( -) -} -pub -fn -patterns_len +{ +Imp +: +: +NFA ( -& -self +ref +nfa ) -- += > -usize -{ -self -. -aut +nfa . -patterns_len +find_at_no_state ( +prestate +haystack +at ) -} -pub -fn -memory_usage +Imp +: +: +DFA ( -& -self +ref +dfa ) -- += > -usize -{ -self -. -aut +dfa . -memory_usage +find_at_no_state ( +prestate +haystack +at ) } } -impl -core -: -: -fmt +} +# +[ +derive +( +Debug +) +] +pub +struct +FindIter +< +' +a +' +b +S : -: -Debug -for -AhoCorasick -{ -fn -fmt -( -& -self -f +StateID +> +{ +fsm : & -mut -core -: -: -fmt -: -: -Formatter -) -- +' +a +Imp +< +S > -core -: -: -fmt +prestate : +PrefilterState +haystack : -Result -{ -f -. -debug_tuple -( -" -AhoCorasick -" -) -. -field -( & -self -. -aut -) -. -finish -( -) -} -} -# +' +b [ -derive -( -Debug -) +u8 ] -pub -struct +pos +: +usize +} +impl +< +' +a +' +b +S +: +StateID +> FindIter < ' a ' -h +b +S > +{ +fn +new ( -automaton +ac : +& +' +a +AhoCorasick +< +S +> +haystack : +& +' +b +[ +u8 +] +) +- +> FindIter < ' a ' -h -Arc -< -dyn -AcAutomaton -> +b +S > +{ +let +prestate += +PrefilterState +: +: +new +( +ac +. +max_pattern_len +( +) ) ; +FindIter +{ +fsm +: +& +ac +. +imp +prestate +haystack +pos +: +0 +} +} +} impl < ' a ' -h +b +S +: +StateID > Iterator for @@ -1953,7 +2174,8 @@ FindIter ' a ' -h +b +S > { type @@ -1961,10 +2183,6 @@ Item = Match ; -# -[ -inline -] fn next ( @@ -1979,13 +2197,102 @@ Option Match > { +if self . -0 +pos +> +self . -next +haystack +. +len +( +) +{ +return +None +; +} +let +result += +self +. +fsm +. +find_at_no_state +( +& +mut +self +. +prestate +self +. +haystack +self +. +pos +) +; +let +mat += +match +result +{ +None += +> +return +None +Some +( +mat +) += +> +mat +} +; +if +mat +. +end ( ) += += +self +. +pos +{ +self +. +pos ++ += +1 +; +} +else +{ +self +. +pos += +mat +. +end +( +) +; +} +Some +( +mat +) } } # @@ -2002,86 +2309,259 @@ FindOverlappingIter ' a ' -h -> -( -automaton +b +S : +StateID +> +{ +fsm : -FindOverlappingIter -< +& ' a -' -h -Arc +Imp < -dyn -AcAutomaton -> +S > -) -; +prestate +: +PrefilterState +haystack +: +& +' +b +[ +u8 +] +pos +: +usize +state_id +: +S +match_index +: +usize +} impl < ' a ' -h +b +S +: +StateID > -Iterator -for FindOverlappingIter < ' a ' -h +b +S > { -type -Item -= -Match -; -# -[ -inline -] fn -next +new ( +ac +: & -mut -self +' +a +AhoCorasick +< +S +> +haystack +: +& +' +b +[ +u8 +] ) - > -Option +FindOverlappingIter < -Match +' +a +' +b +S > { -self -. -0 +assert +! +( +ac . -next +supports_overlapping ( ) -} -} -# -[ -cfg -( -feature -= " -std +automaton +does +not +support +overlapping +searches " ) -] +; +let +prestate += +PrefilterState +: +: +new +( +ac +. +max_pattern_len +( +) +) +; +FindOverlappingIter +{ +fsm +: +& +ac +. +imp +prestate +haystack +pos +: +0 +state_id +: +ac +. +imp +. +start_state +( +) +match_index +: +0 +} +} +} +impl +< +' +a +' +b +S +: +StateID +> +Iterator +for +FindOverlappingIter +< +' +a +' +b +S +> +{ +type +Item += +Match +; +fn +next +( +& +mut +self +) +- +> +Option +< +Match +> +{ +let +result += +self +. +fsm +. +overlapping_find_at +( +& +mut +self +. +prestate +self +. +haystack +self +. +pos +& +mut +self +. +state_id +& +mut +self +. +match_index +) +; +match +result +{ +None += +> +return +None +Some +( +m +) += +> +{ +self +. +pos += +m +. +end +( +) +; +Some +( +m +) +} +} +} +} # [ derive @@ -2096,48 +2576,97 @@ StreamFindIter ' a R +S +: +StateID > -( -automaton +{ +it +: +StreamChunkIter +< +' +a +R +S +> +} +impl +< +' +a +R +: +io : : +Read +S +: +StateID +> StreamFindIter < ' a -Arc +R +S +> +{ +fn +new +( +ac +: +& +' +a +AhoCorasick < -dyn -AcAutomaton +S > +rdr +: R -> ) -; -# -[ -cfg +- +> +StreamFindIter +< +' +a +R +S +> +{ +StreamFindIter +{ +it +: +StreamChunkIter +: +: +new ( -feature -= -" -std -" +ac +rdr ) -] +} +} +} impl < ' a R : -std -: -: io : : Read +S +: +StateID > Iterator for @@ -2146,21 +2675,18 @@ StreamFindIter ' a R +S > { type Item = -Result -< -Match -std -: -: io : : -Error +Result +< +Match > ; fn @@ -2174,850 +2700,1271 @@ self > Option < -Result -< -Match -std -: -: io : : -Error +Result +< +Match > > { +loop +{ +match self . -0 +it . next ( ) -} -} -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -AhoCorasickBuilder { -nfa_noncontiguous -: -noncontiguous -: -: -Builder -nfa_contiguous -: -contiguous -: -: -Builder -dfa -: -dfa -: -: -Builder -kind -: -Option -< -AhoCorasickKind +None += > -start_kind -: -StartKind +return +None +Some +( +Err +( +err +) +) += +> +return +Some +( +Err +( +err +) +) +Some +( +Ok +( +StreamChunk +: +: +NonMatch +{ +. +. +} +) +) += +> +{ +} +Some +( +Ok +( +StreamChunk +: +: +Match +{ +mat +. +. +} +) +) += +> +{ +return +Some +( +Ok +( +mat +) +) +; +} +} +} +} +} +# +[ +derive +( +Debug +) +] +struct +StreamChunkIter +< +' +a +R +S +: +StateID +> +{ +fsm +: +& +' +a +Imp +< +S +> +prestate +: +PrefilterState +rdr +: +R +buf +: +Buffer +state_id +: +S +search_pos +: +usize +absolute_pos +: +usize +report_pos +: +usize +pending_match +: +Option +< +Match +> +has_empty_match_at_end +: +bool +} +# +[ +derive +( +Debug +) +] +enum +StreamChunk +< +' +r +> +{ +NonMatch +{ +bytes +: +& +' +r +[ +u8 +] +} +Match +{ +bytes +: +& +' +r +[ +u8 +] +mat +: +Match +} } impl -AhoCorasickBuilder +< +' +a +R +: +io +: +: +Read +S +: +StateID +> +StreamChunkIter +< +' +a +R +S +> { -pub fn new ( +ac +: +& +' +a +AhoCorasick +< +S +> +rdr +: +R +) +- +> +StreamChunkIter +< +' +a +R +S +> +{ +assert +! +( +ac +. +supports_stream +( +) +" +stream +searching +is +only +supported +for +Standard +match +semantics +" +) +; +let +prestate += +if +ac +. +imp +. +use_prefilter +( +) +{ +PrefilterState +: +: +new +( +ac +. +max_pattern_len +( +) +) +} +else +{ +PrefilterState +: +: +disabled +( +) +} +; +let +buf += +Buffer +: +: +new +( +ac +. +imp +. +max_pattern_len +( +) +) +; +let +state_id += +ac +. +imp +. +start_state +( +) +; +StreamChunkIter +{ +fsm +: +& +ac +. +imp +prestate +rdr +buf +state_id +absolute_pos +: +0 +report_pos +: +0 +search_pos +: +0 +pending_match +: +None +has_empty_match_at_end +: +ac +. +is_match +( +" +" +) +} +} +fn +next +( +& +mut +self +) +- +> +Option +< +io +: +: +Result +< +StreamChunk +> +> +{ +loop +{ +if +let +Some +( +mut +mat +) += +self +. +pending_match +. +take +( +) +{ +let +bytes += +& +self +. +buf +. +buffer +( +) +[ +mat +. +start +( +) +. +. +mat +. +end +( +) +] +; +self +. +report_pos += +mat +. +end +( +) +; +mat += +mat +. +increment +( +self +. +absolute_pos +) +; +return +Some +( +Ok +( +StreamChunk +: +: +Match +{ +bytes +mat +} +) +) +; +} +if +self +. +search_pos +> += +self +. +buf +. +len +( +) +{ +if +let +Some +( +end +) += +self +. +unreported +( +) +{ +let +bytes += +& +self +. +buf +. +buffer +( +) +[ +self +. +report_pos +. +. +end +] +; +self +. +report_pos += +end +; +return +Some +( +Ok +( +StreamChunk +: +: +NonMatch +{ +bytes +} +) +) +; +} +if +self +. +buf +. +len +( +) +> += +self +. +buf +. +min_buffer_len +( +) +{ +self +. +report_pos +- += +self +. +buf +. +len +( ) - -> -AhoCorasickBuilder -{ -AhoCorasickBuilder -: -: -default +self +. +buf +. +min_buffer_len +( +) +; +self +. +absolute_pos ++ += +self +. +search_pos +- +self +. +buf +. +min_buffer_len +( +) +; +self +. +search_pos += +self +. +buf +. +min_buffer_len ( ) +; +self +. +buf +. +roll +( +) +; } -pub -fn -build -< -I -P -> +match +self +. +buf +. +fill ( & +mut self -patterns -: -I +. +rdr ) -- -> -Result -< -AhoCorasick -BuildError +{ +Err +( +err +) += > -where -I -: -IntoIterator -< -Item +return +Some +( +Err +( +err +) +) +Ok +( +false +) = -P > -P -: -AsRef +{ +if +self +. +report_pos < -[ -u8 -] -> +self +. +buf +. +len +( +) { let -nfa +bytes = +& self . -nfa_noncontiguous +buf . -build +buffer ( -patterns ) -? +[ +self +. +report_pos +. +. +] ; -let +self +. +report_pos += +self +. +buf +. +len ( -aut -kind ) +; +let +chunk += +StreamChunk +: : +NonMatch +{ +bytes +} +; +return +Some ( -Arc -< -dyn -AcAutomaton -> -AhoCorasickKind +Ok +( +chunk ) -= -match +) +; +} +else +{ +if +! self . -kind +has_empty_match_at_end { +return None +; +} +self +. +has_empty_match_at_end = -> -{ -debug -! +false +; +} +} +Ok ( -" -asked -for -automatic -Aho -- -Corasick -implementation -\ -criteria -: -< -patterns -: +true +) += +> { -: -? } -max -pattern -len -: -{ -: -? } -\ -start -kind -: -{ -: -? } -> -" -nfa +let +result += +self . -patterns_len -( -) -nfa +fsm . -max_pattern_len +earliest_find_at ( -) +& +mut self . -start_kind -) -; +prestate self . -build_auto +buf +. +buffer ( -nfa ) -} -Some -( -AhoCorasickKind -: -: -NoncontiguousNFA +self +. +search_pos +& +mut +self +. +state_id ) +; +match +result +{ +None = > { -debug -! +self +. +search_pos += +self +. +buf +. +len ( -" -forcefully -chose -noncontiguous -NFA -" ) ; -( -Arc -: -: -new -( -nfa -) -AhoCorasickKind -: -: -NoncontiguousNFA -) } Some ( -AhoCorasickKind -: -: -ContiguousNFA +mat ) = > { -debug -! +self +. +state_id += +self +. +fsm +. +start_state ( -" -forcefully -chose -contiguous -NFA -" ) ; -let -cnfa +if +mat +. +end +( +) += += +self +. +search_pos +{ +self +. +search_pos ++ = +1 +; +} +else +{ self . -nfa_contiguous +search_pos += +mat . -build_from_noncontiguous +end ( -& -nfa ) -? ; +} +self +. +pending_match += +Some ( -Arc -: -: -new +mat +. +clone ( -cnfa ) -AhoCorasickKind -: -: -ContiguousNFA ) -} -Some +; +if +self +. +report_pos +< +mat +. +start ( -AhoCorasickKind -: -: -DFA ) -= -> { -debug -! -( -" -forcefully -chose -DFA -" -) -; let -dfa +bytes = +& self . -dfa +buf . -build_from_noncontiguous +buffer ( -& -nfa ) -? -; +[ +self +. +report_pos +. +. +mat +. +start ( -Arc -: -: -new +) +] +; +self +. +report_pos += +mat +. +start ( -dfa ) -AhoCorasickKind +; +let +chunk += +StreamChunk : : -DFA -) -} +NonMatch +{ +bytes } ; +return +Some +( Ok ( -AhoCorasick -{ -aut -kind -start_kind -: -self -. -start_kind -} +chunk +) ) +; +} +} +} +} } fn -build_auto +unreported ( & self -nfa -: -noncontiguous -: -: -NFA ) - > -( -Arc +Option < -dyn -AcAutomaton +usize > -AhoCorasickKind -) { let -try_dfa +end = -! -matches -! -( self . -start_kind -StartKind -: -: -Both -) -& -& -nfa +search_pos . -patterns_len +saturating_sub ( -) -< -= -100 -; -if -try_dfa -{ -match self . -dfa +buf . -build_from_noncontiguous -( -& -nfa -) -{ -Ok +min_buffer_len ( -dfa ) -= -> -{ -debug -! -( -" -chose -a -DFA -" ) ; -return -( -Arc -: -: -new +if +self +. +report_pos +< +end +{ +Some ( -dfa -) -AhoCorasickKind -: -: -DFA +end ) -; } -Err -( -_err -) -= -> -{ -debug -! -( -" -failed -to -build -DFA -trying -something else -: { -} -" -_err -) -; +None } } } -match -self -. -nfa_contiguous -. -build_from_noncontiguous +# +[ +derive ( -& -nfa +Clone +Debug ) +] +pub +struct +AhoCorasickBuilder { -Ok -( +nfa_builder +: nfa -) -= -> -{ -debug -! -( -" -chose -contiguous -NFA -" -) -; -return -( -Arc : : -new -( -nfa -) -AhoCorasickKind +Builder +dfa_builder : +dfa : -ContiguousNFA -) -; -} -# -[ -allow -( -unused_variables -) -] -Err -( -_err -) -= -> -{ -debug -! -( -" -failed -to -build -contiguous -NFA -\ -trying -something -else : -{ -} -" -_err -) -; -} +Builder +dfa +: +bool } -debug -! -( -" -chose -non -- -contiguous -NFA -" -) -; +impl +Default +for +AhoCorasickBuilder +{ +fn +default ( -Arc +) +- +> +AhoCorasickBuilder +{ +AhoCorasickBuilder : : new ( -nfa -) -AhoCorasickKind -: -: -NoncontiguousNFA ) } +} +impl +AhoCorasickBuilder +{ pub fn -match_kind +new ( -& -mut -self -kind -: -MatchKind ) - > -& -mut AhoCorasickBuilder { -self -. -nfa_noncontiguous -. -match_kind -( -kind -) -; -self -. -nfa_contiguous -. -match_kind +AhoCorasickBuilder +{ +nfa_builder +: +nfa +: +: +Builder +: +: +new ( -kind ) -; -self -. +dfa_builder +: dfa -. -match_kind +: +: +Builder +: +: +new ( -kind ) -; -self +dfa +: +false +} } pub fn -start_kind +build +< +I +P +> ( & -mut self -kind +patterns : -StartKind +I ) - > -& -mut -AhoCorasickBuilder -{ -self -. -dfa -. -start_kind -( -kind -) -; -self -. -start_kind +AhoCorasick +where +I +: +IntoIterator +< +Item = -kind -; -self -} -pub -fn -ascii_case_insensitive -( -& -mut -self -yes +P +> +P : -bool -) -- +AsRef +< +[ +u8 +] > -& -mut -AhoCorasickBuilder { self . -nfa_noncontiguous -. -ascii_case_insensitive -( -yes -) -; -self -. -nfa_contiguous -. -ascii_case_insensitive +build_with_size +: +: +< +usize +I +P +> ( -yes +patterns ) -; -self -. -dfa . -ascii_case_insensitive +expect ( -yes +" +usize +state +ID +type +should +always +work +" ) -; -self } pub fn -kind +build_with_size +< +S +I +P +> ( & -mut self -kind +patterns : -Option -< -AhoCorasickKind -> +I ) - > -& -mut -AhoCorasickBuilder -{ -self -. -kind +Result +< +AhoCorasick +< +S +> +> +where +S +: +StateID +I +: +IntoIterator +< +Item = -kind -; -self -} -pub -fn -prefilter -( -& -mut -self -yes +P +> +P : -bool -) -- +AsRef +< +[ +u8 +] > -& -mut -AhoCorasickBuilder { +let +nfa += self . -nfa_noncontiguous +nfa_builder . -prefilter +build ( -yes +patterns ) +? ; -self -. -nfa_contiguous +let +match_kind += +nfa . -prefilter +match_kind ( -yes ) -; -self -. -dfa . -prefilter +clone ( -yes ) ; -self -} -pub -fn -dense_depth -( -& -mut -self -depth -: -usize -) -- -> -& -mut -AhoCorasickBuilder +let +imp += +if +self +. +dfa { +let +dfa += self . -nfa_noncontiguous +dfa_builder . -dense_depth +build ( -depth +& +nfa ) +? ; -self -. -nfa_contiguous -. -dense_depth +Imp +: +: +DFA ( -depth +dfa +) +} +else +{ +Imp +: +: +NFA +( +nfa ) +} ; -self +Ok +( +AhoCorasick +{ +imp +match_kind +} +) } pub fn -byte_classes +auto_configure +< +B +: +AsRef +< +[ +u8 +] +> +> ( & mut self -yes +patterns : -bool +& +[ +B +] ) - > @@ -3025,780 +3972,722 @@ bool mut AhoCorasickBuilder { -self -. -nfa_contiguous +if +patterns . -byte_classes +len ( -yes ) -; +< += +100 +{ self . dfa -. -byte_classes ( -yes +true ) ; -self -} -} -# -[ -non_exhaustive -] -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -AhoCorasickKind -{ -NoncontiguousNFA -ContiguousNFA -DFA -} -trait -AcAutomaton -: -Automaton -+ -Debug -+ -Send -+ -Sync -+ -UnwindSafe -+ -RefUnwindSafe -+ -' -static -{ -} -impl -< -A -> -AcAutomaton -for -A -where -A -: -Automaton -+ -Debug -+ -Send -+ -Sync -+ -UnwindSafe -+ -RefUnwindSafe -+ -' -static -{ -} -impl -crate -: -: -automaton -: -: -private -: -: -Sealed -for -Arc -< -dyn -AcAutomaton -> -{ } -# -[ -doc -( -hidden -) -] -unsafe -impl -Automaton -for -Arc -< -dyn -AcAutomaton -> -{ -# -[ -inline -( -always -) -] -fn -start_state +else +if +patterns +. +len ( -& -self -anchored -: -Anchored ) -- -> -Result < -StateID -MatchError -> += +5000 { -( -* -* self -) . -start_state +dfa ( -anchored +true ) +; } -# -[ -inline -( -always -) -] +self +} +pub fn -next_state +match_kind ( & +mut self -anchored -: -Anchored -sid -: -StateID -byte +kind : -u8 +MatchKind ) - > -StateID +& +mut +AhoCorasickBuilder { -( -* -* self -) . -next_state +nfa_builder +. +match_kind ( -anchored -sid -byte +kind ) +; +self } -# -[ -inline -( -always -) -] +pub fn -is_special +anchored ( & +mut self -sid +yes : -StateID +bool ) - > -bool +& +mut +AhoCorasickBuilder { -( -* -* self -) . -is_special -( -sid -) -} -# -[ -inline +nfa_builder +. +anchored ( -always +yes ) -] +; +self +} +pub fn -is_dead +ascii_case_insensitive ( & +mut self -sid +yes : -StateID +bool ) - > -bool +& +mut +AhoCorasickBuilder { -( -* -* self -) . -is_dead +nfa_builder +. +ascii_case_insensitive ( -sid +yes ) +; +self } -# -[ -inline -( -always -) -] +pub fn -is_match +dense_depth ( & +mut self -sid +depth : -StateID +usize ) - > -bool +& +mut +AhoCorasickBuilder { -( -* -* self -) . -is_match +nfa_builder +. +dense_depth ( -sid +depth ) +; +self } -# -[ -inline -( -always -) -] +pub fn -is_start +dfa ( & +mut self -sid +yes : -StateID +bool ) - > -bool +& +mut +AhoCorasickBuilder { -( -* -* self -) . -is_start -( -sid -) +dfa += +yes +; +self } -# -[ -inline -( -always -) -] +pub fn -match_kind +prefilter ( & +mut self +yes +: +bool ) - > -MatchKind +& +mut +AhoCorasickBuilder { -( -* -* self -) . -match_kind +nfa_builder +. +prefilter ( +yes ) +; +self } # [ -inline +deprecated ( +since += +" +0 +. +7 +. +16 +" +note += +" +not +carrying +its +weight +will +be always +enabled +see +: +https +: +/ +/ +github +. +com +/ +BurntSushi +/ +aho +- +corasick +/ +issues +/ +57 +" ) ] +pub fn -match_len +byte_classes ( & +mut self -sid +yes : -StateID +bool ) - > -usize +& +mut +AhoCorasickBuilder { -( -* -* self -) . -match_len +dfa_builder +. +byte_classes ( -sid +yes ) +; +self } # [ -inline +deprecated ( +since += +" +0 +. +7 +. +16 +" +note += +" +not +carrying +its +weight +will +be always +enabled +see +: +https +: +/ +/ +github +. +com +/ +BurntSushi +/ +aho +- +corasick +/ +issues +/ +57 +" ) ] +pub fn -match_pattern +premultiply ( & +mut self -sid -: -StateID -index +yes : -usize +bool ) - > -PatternID +& +mut +AhoCorasickBuilder { -( -* -* self -) . -match_pattern +dfa_builder +. +premultiply ( -sid -index +yes ) +; +self +} } # [ -inline +derive ( -always +Clone +Copy +Debug +Eq +PartialEq +) +] +pub +enum +MatchKind +{ +Standard +LeftmostFirst +LeftmostLongest +# +[ +doc +( +hidden ) ] +__Nonexhaustive +} +impl +Default +for +MatchKind +{ fn -patterns_len +default ( -& -self ) - > -usize +MatchKind { -( -* -* -self -) -. -patterns_len -( -) +MatchKind +: +: +Standard } -# -[ -inline -( -always -) -] +} +impl +MatchKind +{ fn -pattern_len +supports_overlapping ( & self -pid -: -PatternID ) - > -usize +bool { -( -* -* self -) . -pattern_len +is_standard ( -pid ) } -# -[ -inline -( -always -) -] fn -min_pattern_len +supports_stream ( & self ) - > -usize +bool { -( -* -* self -) . -min_pattern_len +is_standard ( ) } -# -[ -inline +pub ( -always +crate ) -] fn -max_pattern_len +is_standard ( & self ) - > -usize +bool { -( -* * self -) -. -max_pattern_len -( -) += += +MatchKind +: +: +Standard } -# -[ -inline +pub ( -always +crate ) -] fn -memory_usage +is_leftmost ( & self ) - > -usize +bool { -( * +self += += +MatchKind +: +: +LeftmostFirst +| +| * self -) -. -memory_usage -( -) += += +MatchKind +: +: +LeftmostLongest } -# -[ -inline +pub ( -always +crate ) -] fn -prefilter +is_leftmost_first ( & self ) - > -Option -< -& -Prefilter -> +bool { -( -* * self -) -. -prefilter -( -) += += +MatchKind +: +: +LeftmostFirst } -# -[ -inline +pub ( -always +crate ) -] fn -try_find +as_packed ( & self -input -: -& -Input -< -' -_ -> ) - > -Result -< Option < -Match -> -MatchError +packed +: +: +MatchKind > { -( -* +match * self +{ +MatchKind +: +: +Standard += +> +None +MatchKind +: +: +LeftmostFirst += +> +Some +( +packed +: +: +MatchKind +: +: +LeftmostFirst ) -. -try_find +MatchKind +: +: +LeftmostLongest += +> +{ +Some +( +packed +: +: +MatchKind +: +: +LeftmostLongest +) +} +MatchKind +: +: +__Nonexhaustive += +> +unreachable +! ( -input ) } +} +} # [ -inline +cfg ( -always +test ) ] +mod +tests +{ +use +super +: +: +* +; +# +[ +test +] fn -try_find_overlapping +oibits ( -& -self -input +) +{ +use +std : -& -Input +: +panic +: +: +{ +RefUnwindSafe +UnwindSafe +} +; +fn +assert_send < -' -_ -> -state +T : -& -mut -OverlappingState -) -- +Send > -Result -< ( ) -MatchError -> { -( -* -* -self -) -. -try_find_overlapping -( -input -state -) -} } fn -enforce_anchored_consistency -( -have -: -StartKind -want +assert_sync +< +T : -Anchored -) -- +Sync > -Result -< ( ) -MatchError -> { -match -have -{ -StartKind -: +} +fn +assert_unwind_safe +< +T : -Both -= +RefUnwindSafe ++ +UnwindSafe > -Ok -( ( ) -) -StartKind +{ +} +assert_send : : -Unanchored -if -! -want -. -is_anchored -( -) -= +< +AhoCorasick > -Ok ( -( -) ) -StartKind +; +assert_sync : : -Unanchored -= +< +AhoCorasick > -Err ( -MatchError +) +; +assert_unwind_safe : : -invalid_input_anchored +< +AhoCorasick +> ( ) -) -StartKind +; +assert_send : : -Anchored -if -want -. -is_anchored -( -) -= +< +AhoCorasickBuilder > -Ok ( -( -) ) -StartKind +; +assert_sync : : -Anchored -= +< +AhoCorasickBuilder > -Err ( -MatchError +) +; +assert_unwind_safe : : -invalid_input_unanchored +< +AhoCorasickBuilder +> ( ) -) +; } } diff --git a/third_party/rust/aho-corasick/src/automaton.rs b/third_party/rust/aho-corasick/src/automaton.rs index 600f0f1cf3d70..d942866064955 100644 --- a/third_party/rust/aho-corasick/src/automaton.rs +++ b/third_party/rust/aho-corasick/src/automaton.rs @@ -1,1683 +1,1348 @@ use -alloc -: -: -{ -string -: -: -String -vec -: -: -Vec -} -; -use crate : : -util -: -: -{ -error -: -: -MatchError -primitives -: +ahocorasick : -PatternID -search : -: -{ -Anchored -Input -Match MatchKind -Span -} -} ; -pub use crate : : -util -: -: -{ prefilter : : { +self Candidate Prefilter -} -primitives -: -: -{ -StateID -StateIDError -} +PrefilterState } ; -pub -( -crate -) -mod -private -{ -pub -trait -Sealed -{ -} -} -impl -private -: -: -Sealed -for -crate -: -: -nfa -: -: -noncontiguous -: -: -NFA -{ -} -impl -private -: -: -Sealed -for +use crate : : -nfa -: -: -contiguous +state_id : : -NFA { +dead_id +fail_id +StateID } -impl -private -: -: -Sealed -for +; +use crate : : -dfa -: -: -DFA -{ -} -impl -< -' -a -T -: -private -: -: -Sealed -+ -? -Sized -> -private -: -: -Sealed -for -& -' -a -T -{ -} +Match +; pub -unsafe trait Automaton -: -private -: -: -Sealed { -fn -start_state -( -& -self -anchored +type +ID : -Anchored -) -- -> -Result -< StateID -MatchError -> ; fn -next_state +match_kind ( & self -anchored -: -Anchored -sid -: -StateID -byte -: -u8 ) - > -StateID +& +MatchKind ; fn -is_special +anchored ( & self -sid -: -StateID ) - > bool ; fn -is_dead +prefilter ( & self -sid -: -StateID ) - > -bool -; -fn -is_match -( +Option +< & -self -sid -: -StateID -) -- +dyn +Prefilter > -bool ; fn -is_start +start_state ( & self -sid -: -StateID ) - > -bool +Self +: +: +ID ; fn -match_kind +is_valid ( & self +id +: +Self +: +: +ID ) - > -MatchKind +bool ; fn -match_len +is_match_state ( & self -sid +id : -StateID +Self +: +: +ID ) - > -usize +bool ; fn -match_pattern +is_match_or_dead_state ( & self -sid +id : -StateID -index +Self : -usize +: +ID ) - > -PatternID -; -fn -patterns_len +bool +{ +id += += +dead_id ( -& +) +| +| self +. +is_match_state +( +id ) -- -> -usize -; +} fn -pattern_len +get_match ( & self -pid +id +: +Self +: +: +ID +match_index : -PatternID -) -- -> usize -; -fn -min_pattern_len -( -& -self -) -- -> +end +: usize -; -fn -max_pattern_len -( -& -self ) - > -usize +Option +< +Match +> ; fn -memory_usage +match_count ( & self +id +: +Self +: +: +ID ) - > usize ; fn -prefilter +next_state ( & self +current +: +Self +: +: +ID +input +: +u8 ) - > -Option -< -& -Prefilter -> +Self +: +: +ID ; fn -try_find +next_state_no_fail ( & self +current +: +Self +: +: +ID input : -& -Input -< -' -_ -> +u8 ) - > -Result -< -Option -< -Match -> -MatchError -> +Self +: +: +ID { -try_find_fwd -( -& +let +next += self +. +next_state +( +current input ) -} -fn -try_find_overlapping +; +debug_assert +! ( -& -self -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< +next +! += +fail_id ( ) -MatchError -> -{ -try_find_overlapping_fwd -( -& -self -input +" +automaton +should +never +return +fail_id +for +next state +" ) +; +next } +# +[ +inline +( +always +) +] fn -try_find_iter -< -' -a -' -h -> +standard_find_at ( & -' -a self -input +prestate : -Input -< -' -h -> -) -- -> -Result -< -FindIter -< -' -a -' -h -Self -> -MatchError -> -where -Self +& +mut +PrefilterState +haystack : -Sized -{ -FindIter +& +[ +u8 +] +at : +usize +state_id : -new -( -self -input -) -} -fn -try_find_overlapping_iter -< -' -a -' -h -> -( & -' -a -self -input +mut +Self : -Input -< -' -h -> +: +ID ) - > -Result -< -FindOverlappingIter +Option < -' -a -' -h -Self -> -MatchError +Match > -where -Self -: -Sized { if -! -self -. -match_kind +let +Some ( +pre ) += +self . -is_standard +prefilter ( ) { -return -Err -( -MatchError -: -: -unsupported_overlapping -( self . -match_kind -( -) -) -) -; -} -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -Err +standard_find_at_imp ( -MatchError -: -: -invalid_input_anchored +prestate +Some ( +pre ) +haystack +at +state_id ) -; } -let -_ -= +else +{ self . -start_state -( -input -. -get_anchored -( -) -) -? -; -let -state -= -OverlappingState -: -: -start +standard_find_at_imp ( +prestate +None +haystack +at +state_id ) -; -Ok -( -FindOverlappingIter -{ -aut -: -self -input -state } -) } +# +[ +inline +( +always +) +] fn -try_replace_all -< -B -> +standard_find_at_imp ( & self -haystack +prestate +: +& +mut +PrefilterState +prefilter : +Option +< & -str -replace_with +dyn +Prefilter +> +haystack : & [ -B +u8 ] +mut +at +: +usize +state_id +: +& +mut +Self +: +: +ID ) - > -Result +Option < -String -MatchError +Match > -where -Self -: -Sized -B -: -AsRef +{ +while +at < -str -> +haystack +. +len +( +) { -assert_eq -! +if +let +Some ( -replace_with +pre +) += +prefilter +{ +if +prestate . -len +is_effective ( +at ) +& +& +* +state_id += += self . -patterns_len +start_state ( ) -" -replace_all -requires -a -replacement -for -every -pattern -\ -in -the -automaton -" -) -; +{ let -mut -dst +c = -String +prefilter : : -with_capacity +next ( +prestate +pre haystack +at +) . -len +into_option ( ) -) ; -self -. -try_replace_all_with -( -haystack -& -mut -dst -| -mat -_ -dst -| +match +c { -dst -. -push_str -( -replace_with -[ -mat -. -pattern -( -) -] -. -as_ref +None += +> +return +None +Some ( +i ) -) += +> +{ +at += +i ; -true } -) -? -; -Ok -( -dst -) } -fn -try_replace_all_bytes -< -B -> -( -& +} +} +* +state_id += self +. +next_state_no_fail +( +* +state_id haystack -: -& -[ -u8 -] -replace_with -: -& [ -B +at ] ) -- -> -Result -< -Vec -< -u8 -> -MatchError -> -where -Self -: -Sized -B -: -AsRef -< -[ -u8 -] -> -{ -assert_eq +; +at ++ += +1 +; +debug_assert ! ( -replace_with -. -len +* +state_id +! += +dead_id ( ) +| +| self . -patterns_len +anchored ( ) " -replace_all -requires +standard +find +should +never +see a -replacement -for -every -pattern -\ -in -the -automaton +dead +state " ) ; -let -mut -dst -= -Vec -: -: -with_capacity -( -haystack -. -len -( -) -) -; +if self . -try_replace_all_with_bytes +is_match_or_dead_state ( -haystack -& -mut -dst -| -mat -_ -dst -| +* +state_id +) { -dst -. -extend -( -replace_with -[ -mat -. -pattern +return +if +* +state_id += += +dead_id ( ) -] +{ +None +} +else +{ +self . -as_ref +get_match ( +* +state_id +0 +at ) -) -; -true } -) -? ; -Ok +} +} +None +} +# +[ +inline ( -dst +never ) -} +] fn -try_replace_all_with -< -F -> +leftmost_find_at ( & self +prestate +: +& +mut +PrefilterState haystack : & -str -dst +[ +u8 +] +at +: +usize +state_id : & mut -String -mut -replace_with +Self +: : -F +ID ) - > -Result +Option < -( -) -MatchError -> -where -Self -: -Sized -F -: -FnMut -( -& Match -& -str -& -mut -String -) -- > -bool { +if let -mut -last_match +Some +( +pre +) = -0 -; -for -m -in self . -try_find_iter -( -Input -: -: -new +prefilter ( -haystack -) ) -? { -if -! -haystack +self . -is_char_boundary +leftmost_find_at_imp ( -m -. -start +prestate +Some ( +pre ) -) -| -| -! haystack -. -is_char_boundary -( -m -. -end -( -) +at +state_id ) -{ -continue -; } -dst +else +{ +self . -push_str +leftmost_find_at_imp ( -& +prestate +None haystack +at +state_id +) +} +} +# [ -last_match -. -. -m -. -start +inline ( +always ) ] -) -; -last_match -= -m -. -end -( -) -; -if -! -replace_with +fn +leftmost_find_at_imp ( & -m +self +prestate +: +& +mut +PrefilterState +prefilter +: +Option +< & +dyn +Prefilter +> haystack -[ -m -. -start -( -) -. -. -m -. -end -( -) -] -dst -) -{ -break -; -} -; -} -dst -. -push_str -( -& -haystack -[ -last_match -. -. -] -) -; -Ok -( -( -) -) -} -fn -try_replace_all_with_bytes -< -F -> -( -& -self -haystack -: -& +: +& [ u8 ] -dst +mut +at +: +usize +state_id : & mut -Vec -< -u8 -> -mut -replace_with +Self : -F +: +ID ) - > -Result +Option < +Match +> +{ +debug_assert +! +( +self +. +match_kind ( ) -MatchError -> -where -Self -: -Sized -F -: -FnMut +. +is_leftmost ( +) +) +; +if +self +. +anchored +( +) & -Match -& -[ -u8 -] & -mut -Vec -< -u8 +at > +0 +& +& +* +state_id += += +self +. +start_state +( ) -- -> -bool { +return +None +; +} let mut last_match = +self +. +get_match +( +* +state_id 0 +at +) ; -for -m -in +while +at +< +haystack +. +len +( +) +{ +if +let +Some +( +pre +) += +prefilter +{ +if +prestate +. +is_effective +( +at +) +& +& +* +state_id += += self . -try_find_iter +start_state ( -Input +) +{ +let +c += +prefilter : : -new +next ( +prestate +pre haystack +at +) +. +into_option +( ) +; +match +c +{ +None += +> +return +None +Some +( +i ) -? += +> { -dst +at += +i +; +} +} +} +} +* +state_id += +self . -extend +next_state_no_fail ( -& +* +state_id haystack [ -last_match -. -. -m -. -start -( -) +at ] ) ; -last_match +at ++ = -m +1 +; +if +self . -end +is_match_or_dead_state ( +* +state_id ) -; +{ if +* +state_id += += +dead_id +( +) +{ +debug_assert ! -replace_with ( -& -m -& -haystack -[ -m +last_match . -start +is_some ( ) +| +| +self . -. -m -. -end +anchored ( ) -] -dst +" +dead +state +should +only +be +seen +after +match +" ) -{ -break ; -} +return +last_match ; } -dst -. -extend -( -& -haystack -[ last_match += +self . -. -] -) -; -Ok -( +get_match ( +* +state_id +0 +at ) -) +; +} +} +last_match } # [ -cfg +inline ( -feature -= -" -std -" +never ) ] fn -try_stream_find_iter -< -' -a -R -: -std -: -: -io -: -: -Read -> +leftmost_find_at_no_state ( & -' -a self -rdr +prestate : -R +& +mut +PrefilterState +haystack +: +& +[ +u8 +] +at +: +usize ) - > -Result -< -StreamFindIter +Option < -' -a -Self -R -> -MatchError +Match > -where -Self -: -Sized { -Ok +if +let +Some ( -StreamFindIter -{ -it -: -StreamChunkIter -: -: -new +pre +) += +self +. +prefilter ( +) +{ self -rdr +. +leftmost_find_at_no_state_imp +( +prestate +Some +( +pre +) +haystack +at ) -? } +else +{ +self +. +leftmost_find_at_no_state_imp +( +prestate +None +haystack +at ) } +} # [ -cfg +inline ( -feature -= -" -std -" +always ) ] fn -try_stream_replace_all -< -R -W -B -> +leftmost_find_at_no_state_imp ( & self -rdr +prestate : -R -wtr +& +mut +PrefilterState +prefilter : -W -replace_with +Option +< +& +dyn +Prefilter +> +haystack : & [ -B +u8 ] -) -- -> -std -: -: -io -: +mut +at : -Result -< -( +usize ) +- > -where -Self -: -Sized -R -: -std -: -: -io -: -: -Read -W -: -std -: -: -io -: -: -Write -B -: -AsRef +Option < -[ -u8 -] +Match > { -assert_eq +debug_assert ! ( -replace_with +self . -len +match_kind ( ) -self . -patterns_len +is_leftmost ( ) -" -streaming -replace_all -requires -a -replacement -for -every -pattern -\ -in -the -automaton -" ) ; +if self . -try_stream_replace_all_with +anchored ( -rdr -wtr -| -mat -_ -wtr -| +) +& +& +at +> +0 { -wtr -. -write_all -( -replace_with -[ -mat -. -pattern +return +None +; +} +if +let +Some ( +pre ) -] += +prefilter +{ +debug_assert +! +( +! +self . -as_ref +anchored ( ) ) -} -) -} -# -[ -cfg +; +if +! +pre +. +reports_false_positives ( -feature -= -" -std -" ) -] -fn -try_stream_replace_all_with -< -R -W -F -> +{ +return +match +pre +. +next_candidate ( -& -self -rdr -: -R -mut -wtr -: -W -mut -replace_with -: -F +prestate +haystack +at ) -- -> -std +{ +Candidate : : -io +None += +> +None +Candidate : : -Result -< +Match ( +m ) += > -where -Self -: -Sized -R -: -std -: -: -io -: -: -Read -W -: -std -: -: -io -: -: -Write -F -: -FnMut +Some ( -& -Match -& -[ -u8 -] -& -mut -W +m ) -- -> -std -: -: -io +Candidate : : -Result -< +PossibleStartOfMatch ( +_ ) += > -{ +unreachable +! +( +) +} +; +} +} let mut -it +state_id = -StreamChunkIter -: -: -new +self +. +start_state ( +) +; +let +mut +last_match += self -rdr +. +get_match +( +state_id +0 +at ) +; +while +at +< +haystack . -map_err +len ( -| -e -| +) { +if let -kind +Some +( +pre +) = -std -: -: -io -: -: -ErrorKind -: -: -Other -; -std -: -: -io -: -: -Error -: -: -new -( -kind -e -) -} -) -? -; -while -let -Some +prefilter +{ +if +prestate +. +is_effective ( -result +at ) +& +& +state_id += = -it +self . -next +start_state ( ) { -let -chunk -= -result -? -; match -chunk -{ -StreamChunk +prefilter : : -NonMatch +next +( +prestate +pre +haystack +at +) { -bytes -. -. -} +Candidate +: +: +None = > -{ -wtr -. -write_all -( -bytes -) -? -; -} -StreamChunk +return +None +Candidate : : Match -{ -bytes -mat -} +( +m +) = > -{ -replace_with +return +Some ( -& -mat -bytes -& -mut -wtr +m +) +Candidate +: +: +PossibleStartOfMatch +( +i ) -? += +> +{ +at += +i ; } } } -Ok -( +} +state_id += +self +. +next_state_no_fail ( +state_id +haystack +[ +at +] ) -) -} -} -unsafe -impl -< -' -a -A -: -Automaton +; +at + -? -Sized -> -Automaton -for -& -' -a -A -{ -# -[ -inline += +1 +; +if +self +. +is_match_or_dead_state ( -always +state_id ) -] -fn -start_state +{ +if +state_id += += +dead_id ( -& -self -anchored -: -Anchored ) -- -> -Result -< -StateID -MatchError -> { +debug_assert +! ( -* -* +last_match +. +is_some +( +) +| +| self +. +anchored +( +) +" +dead +state +should +only +be +seen +after +match +" ) +; +return +last_match +; +} +last_match += +self . -start_state +get_match ( -anchored +state_id +0 +at ) +; +} +} +last_match } # [ @@ -1687,130 +1352,168 @@ always ) ] fn -next_state +overlapping_find_at ( & self -anchored +prestate : -Anchored -sid -: -StateID -byte +& +mut +PrefilterState +haystack : +& +[ u8 +] +at +: +usize +state_id +: +& +mut +Self +: +: +ID +match_index +: +& +mut +usize ) - > -StateID +Option +< +Match +> { -( -* -* +if self -) . -next_state -( anchored -sid -byte -) -} -# -[ -inline ( -always ) -] -fn -is_special -( & +& +at +> +0 +& +& +* +state_id += += self -sid -: -StateID +. +start_state +( ) -- -> -bool { +return +None +; +} +let +match_count += +self +. +match_count ( * +state_id +) +; +if * +match_index +< +match_count +{ +let +result += self -) . -is_special +get_match ( -sid +* +state_id +* +match_index +at ) -} -# -[ -inline +; +debug_assert +! ( -always -) -] -fn -is_dead +result +. +is_some ( -& -self -sid -: -StateID ) -- -> -bool -{ -( +" +must +be +a +match +" +) +; * +match_index ++ += +1 +; +return +result +; +} * +match_index += +0 +; +match self -) . -is_dead +standard_find_at ( -sid -) -} -# -[ -inline -( -always +prestate +haystack +at +state_id ) -] -fn -is_match +{ +None += +> +None +Some ( -& -self -sid -: -StateID +m ) -- += > -bool { -( * -* -self -) -. -is_match +match_index += +1 +; +Some ( -sid +m ) } +} +} # [ inline @@ -1819,54 +1522,100 @@ always ) ] fn -is_start +earliest_find_at ( & self -sid +prestate : -StateID +& +mut +PrefilterState +haystack +: +& +[ +u8 +] +at +: +usize +state_id +: +& +mut +Self +: +: +ID ) - > -bool +Option +< +Match +> { -( -* +if * +state_id += += self +. +start_state +( ) +{ +if +self . -is_start +anchored ( -sid ) +& +& +at +> +0 +{ +return +None +; } -# -[ -inline +if +let +Some ( -always +m ) -] -fn -match_kind -( -& += self +. +get_match +( +* +state_id +0 +at ) -- -> -MatchKind { +return +Some ( -* -* -self +m ) +; +} +} +self . -match_kind +standard_find_at ( +prestate +haystack +at +state_id ) } # @@ -1877,64 +1626,99 @@ always ) ] fn -match_len +find_at ( & self -sid +prestate : -StateID +& +mut +PrefilterState +haystack +: +& +[ +u8 +] +at +: +usize +state_id +: +& +mut +Self +: +: +ID ) - > -usize +Option +< +Match +> { -( -* +match * self -) . -match_len +match_kind ( -sid ) -} -# -[ -inline +{ +MatchKind +: +: +Standard += +> +{ +self +. +earliest_find_at ( -always +prestate +haystack +at +state_id ) -] -fn -match_pattern -( -& -self -sid +} +MatchKind : -StateID -index : -usize -) -- +LeftmostFirst +| +MatchKind +: +: +LeftmostLongest += > -PatternID { -( -* -* self -) . -match_pattern +leftmost_find_at +( +prestate +haystack +at +state_id +) +} +MatchKind +: +: +__Nonexhaustive += +> +unreachable +! ( -sid -index ) } +} # [ inline @@ -1943,3633 +1727,100 @@ always ) ] fn -patterns_len +find_at_no_state ( & self +prestate +: +& +mut +PrefilterState +haystack +: +& +[ +u8 +] +at +: +usize ) - > -usize +Option +< +Match +> { -( -* +match * self -) . -patterns_len +match_kind ( ) -} -# -[ -inline -( -always -) -] -fn -pattern_len -( -& -self -pid -: -PatternID -) -- -> -usize -{ -( -* -* -self -) -. -pattern_len -( -pid -) -} -# -[ -inline -( -always -) -] -fn -min_pattern_len -( -& -self -) -- -> -usize { -( -* -* -self -) -. -min_pattern_len -( -) -} -# -[ -inline -( -always -) -] -fn -max_pattern_len -( -& -self -) -- +MatchKind +: +: +Standard += > -usize { -( -* -* +let +mut +state += self -) . -max_pattern_len -( -) -} -# -[ -inline -( -always -) -] -fn -memory_usage +start_state ( -& -self ) -- -> -usize -{ -( -* -* +; self -) . -memory_usage -( -) -} -# -[ -inline -( -always -) -] -fn -prefilter +earliest_find_at ( +prestate +haystack +at & -self -) -- -> -Option -< -& -Prefilter -> -{ -( -* -* -self -) -. -prefilter -( -) -} -} -# -[ -derive -( -Clone -Debug +mut +state ) -] -pub -struct -OverlappingState -{ -mat -: -Option -< -Match -> -id -: -Option -< -StateID -> -at -: -usize -next_match_index -: -Option -< -usize -> } -impl -OverlappingState -{ -pub -fn -start -( -) -- -> -OverlappingState -{ -OverlappingState -{ -mat +MatchKind : -None -id : -None -at +LeftmostFirst +| +MatchKind : -0 -next_match_index : -None -} -} -pub -fn -get_match -( -& -self -) -- -> -Option -< -Match +LeftmostLongest += > { self . -mat -} -} -# -[ -derive +leftmost_find_at_no_state ( -Debug +prestate +haystack +at ) -] -pub -struct -FindIter -< -' -a -' -h -A -> -{ -aut -: -& -' -a -A -input -: -Input -< -' -h -> -last_match_end -: -Option -< -usize -> } -impl -< -' -a -' -h -A -: -Automaton -> -FindIter -< -' -a -' -h -A -> -{ -fn -new -( -aut +MatchKind : -& -' -a -A -input : -Input -< -' -h -> -) -- -> -Result -< -FindIter -< -' -a -' -h -A -> -MatchError -> -{ -let -_ +__Nonexhaustive = -aut -. -start_state -( -input -. -get_anchored +> +unreachable +! ( ) -) -? -; -Ok -( -FindIter -{ -aut -input -last_match_end -: -None -} -) -} -fn -search -( -& -self -) -- -> -Option -< -Match -> -{ -self -. -aut -. -try_find -( -& -self -. -input -) -. -expect -( -" -already -checked -that -no -match -error -can -occur -" -) -} -# -[ -cold -] -# -[ -inline -( -never -) -] -fn -handle_overlapping_empty_match -( -& -mut -self -mut -m -: -Match -) -- -> -Option -< -Match -> -{ -assert -! -( -m -. -is_empty -( -) -) -; -if -Some -( -m -. -end -( -) -) -= -= -self -. -last_match_end -{ -self -. -input -. -set_start -( -self -. -input -. -start -( -) -. -checked_add -( -1 -) -. -unwrap -( -) -) -; -m -= -self -. -search -( -) -? -; -} -Some -( -m -) -} -} -impl -< -' -a -' -h -A -: -Automaton -> -Iterator -for -FindIter -< -' -a -' -h -A -> -{ -type -Item -= -Match -; -# -[ -inline -( -always -) -] -fn -next -( -& -mut -self -) -- -> -Option -< -Match -> -{ -let -mut -m -= -self -. -search -( -) -? -; -if -m -. -is_empty -( -) -{ -m -= -self -. -handle_overlapping_empty_match -( -m -) -? -; -} -self -. -input -. -set_start -( -m -. -end -( -) -) -; -self -. -last_match_end -= -Some -( -m -. -end -( -) -) -; -Some -( -m -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -FindOverlappingIter -< -' -a -' -h -A -> -{ -aut -: -& -' -a -A -input -: -Input -< -' -h -> -state -: -OverlappingState -} -impl -< -' -a -' -h -A -: -Automaton -> -Iterator -for -FindOverlappingIter -< -' -a -' -h -A -> -{ -type -Item -= -Match -; -# -[ -inline -( -always -) -] -fn -next -( -& -mut -self -) -- -> -Option -< -Match -> -{ -self -. -aut -. -try_find_overlapping -( -& -self -. -input -& -mut -self -. -state -) -. -expect -( -" -already -checked -that -no -match -error -can -occur -here -" -) -; -self -. -state -. -get_match -( -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -# -[ -derive -( -Debug -) -] -pub -struct -StreamFindIter -< -' -a -A -R -> -{ -it -: -StreamChunkIter -< -' -a -A -R -> -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -< -' -a -A -: -Automaton -R -: -std -: -: -io -: -: -Read -> -Iterator -for -StreamFindIter -< -' -a -A -R -> -{ -type -Item -= -std -: -: -io -: -: -Result -< -Match -> -; -fn -next -( -& -mut -self -) -- -> -Option -< -std -: -: -io -: -: -Result -< -Match -> -> -{ -loop -{ -match -self -. -it -. -next -( -) -{ -None -= -> -return -None -Some -( -Err -( -err -) -) -= -> -return -Some -( -Err -( -err -) -) -Some -( -Ok -( -StreamChunk -: -: -NonMatch -{ -. -. -} -) -) -= -> -{ -} -Some -( -Ok -( -StreamChunk -: -: -Match -{ -mat -. -. -} -) -) -= -> -{ -return -Some -( -Ok -( -mat -) -) -; -} -} -} -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -# -[ -derive -( -Debug -) -] -struct -StreamChunkIter -< -' -a -A -R -> -{ -aut -: -& -' -a -A -rdr -: -R -buf -: -crate -: -: -util -: -: -buffer -: -: -Buffer -start -: -StateID -sid -: -StateID -absolute_pos -: -usize -buffer_pos -: -usize -buffer_reported_pos -: -usize -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -< -' -a -A -: -Automaton -R -: -std -: -: -io -: -: -Read -> -StreamChunkIter -< -' -a -A -R -> -{ -fn -new -( -aut -: -& -' -a -A -rdr -: -R -) -- -> -Result -< -StreamChunkIter -< -' -a -A -R -> -MatchError -> -{ -if -! -aut -. -match_kind -( -) -. -is_standard -( -) -{ -return -Err -( -MatchError -: -: -unsupported_stream -( -aut -. -match_kind -( -) -) -) -; -} -if -aut -. -min_pattern_len -( -) -= -= -0 -{ -return -Err -( -MatchError -: -: -unsupported_empty -( -) -) -; -} -let -start -= -aut -. -start_state -( -Anchored -: -: -No -) -? -; -Ok -( -StreamChunkIter -{ -aut -rdr -buf -: -crate -: -: -util -: -: -buffer -: -: -Buffer -: -: -new -( -aut -. -max_pattern_len -( -) -) -start -sid -: -start -absolute_pos -: -0 -buffer_pos -: -0 -buffer_reported_pos -: -0 -} -) -} -fn -next -( -& -mut -self -) -- -> -Option -< -std -: -: -io -: -: -Result -< -StreamChunk -> -> -{ -loop -{ -if -self -. -aut -. -is_match -( -self -. -sid -) -{ -let -mat -= -self -. -get_match -( -) -; -if -let -Some -( -r -) -= -self -. -get_non_match_chunk -( -mat -) -{ -self -. -buffer_reported_pos -+ -= -r -. -len -( -) -; -let -bytes -= -& -self -. -buf -. -buffer -( -) -[ -r -] -; -return -Some -( -Ok -( -StreamChunk -: -: -NonMatch -{ -bytes -} -) -) -; -} -self -. -sid -= -self -. -start -; -let -r -= -self -. -get_match_chunk -( -mat -) -; -self -. -buffer_reported_pos -+ -= -r -. -len -( -) -; -let -bytes -= -& -self -. -buf -. -buffer -( -) -[ -r -] -; -return -Some -( -Ok -( -StreamChunk -: -: -Match -{ -bytes -mat -} -) -) -; -} -if -self -. -buffer_pos -> -= -self -. -buf -. -buffer -( -) -. -len -( -) -{ -if -let -Some -( -r -) -= -self -. -get_pre_roll_non_match_chunk -( -) -{ -self -. -buffer_reported_pos -+ -= -r -. -len -( -) -; -let -bytes -= -& -self -. -buf -. -buffer -( -) -[ -r -] -; -return -Some -( -Ok -( -StreamChunk -: -: -NonMatch -{ -bytes -} -) -) -; -} -if -self -. -buf -. -buffer -( -) -. -len -( -) -> -= -self -. -buf -. -min_buffer_len -( -) -{ -self -. -buffer_pos -= -self -. -buf -. -min_buffer_len -( -) -; -self -. -buffer_reported_pos -- -= -self -. -buf -. -buffer -( -) -. -len -( -) -- -self -. -buf -. -min_buffer_len -( -) -; -self -. -buf -. -roll -( -) -; -} -match -self -. -buf -. -fill -( -& -mut -self -. -rdr -) -{ -Err -( -err -) -= -> -return -Some -( -Err -( -err -) -) -Ok -( -true -) -= -> -{ -} -Ok -( -false -) -= -> -{ -if -let -Some -( -r -) -= -self -. -get_eof_non_match_chunk -( -) -{ -self -. -buffer_reported_pos -+ -= -r -. -len -( -) -; -let -bytes -= -& -self -. -buf -. -buffer -( -) -[ -r -] -; -return -Some -( -Ok -( -StreamChunk -: -: -NonMatch -{ -bytes -} -) -) -; -} -return -None -; -} -} -} -let -start -= -self -. -absolute_pos -; -for -& -byte -in -self -. -buf -. -buffer -( -) -[ -self -. -buffer_pos -. -. -] -. -iter -( -) -{ -self -. -sid -= -self -. -aut -. -next_state -( -Anchored -: -: -No -self -. -sid -byte -) -; -self -. -absolute_pos -+ -= -1 -; -if -self -. -aut -. -is_match -( -self -. -sid -) -{ -break -; -} -} -self -. -buffer_pos -+ -= -self -. -absolute_pos -- -start -; -} -} -fn -get_match_chunk -( -& -self -mat -: -Match -) -- -> -core -: -: -ops -: -: -Range -< -usize -> -{ -let -start -= -self -. -buffer_pos -- -mat -. -len -( -) -; -let -end -= -self -. -buffer_pos -; -start -. -. -end -} -fn -get_non_match_chunk -( -& -self -mat -: -Match -) -- -> -Option -< -core -: -: -ops -: -: -Range -< -usize -> -> -{ -let -buffer_mat_start -= -self -. -buffer_pos -- -mat -. -len -( -) -; -if -buffer_mat_start -> -self -. -buffer_reported_pos -{ -let -start -= -self -. -buffer_reported_pos -; -let -end -= -buffer_mat_start -; -return -Some -( -start -. -. -end -) -; -} -None -} -fn -get_pre_roll_non_match_chunk -( -& -self -) -- -> -Option -< -core -: -: -ops -: -: -Range -< -usize -> -> -{ -let -end -= -self -. -buf -. -buffer -( -) -. -len -( -) -. -saturating_sub -( -self -. -buf -. -min_buffer_len -( -) -) -; -if -self -. -buffer_reported_pos -< -end -{ -return -Some -( -self -. -buffer_reported_pos -. -. -end -) -; -} -None -} -fn -get_eof_non_match_chunk -( -& -self -) -- -> -Option -< -core -: -: -ops -: -: -Range -< -usize -> -> -{ -if -self -. -buffer_reported_pos -< -self -. -buf -. -buffer -( -) -. -len -( -) -{ -return -Some -( -self -. -buffer_reported_pos -. -. -self -. -buf -. -buffer -( -) -. -len -( -) -) -; -} -None -} -fn -get_match -( -& -self -) -- -> -Match -{ -get_match -( -self -. -aut -self -. -sid -0 -self -. -absolute_pos -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -# -[ -derive -( -Debug -) -] -enum -StreamChunk -< -' -r -> -{ -NonMatch -{ -bytes -: -& -' -r -[ -u8 -] -} -Match -{ -bytes -: -& -' -r -[ -u8 -] -mat -: -Match -} -} -# -[ -inline -( -never -) -] -pub -( -crate -) -fn -try_find_fwd -< -A -: -Automaton -+ -? -Sized -> -( -aut -: -& -A -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -if -input -. -is_done -( -) -{ -return -Ok -( -None -) -; -} -let -earliest -= -aut -. -match_kind -( -) -. -is_standard -( -) -| -| -input -. -get_earliest -( -) -; -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -try_find_fwd_imp -( -aut -input -None -Anchored -: -: -Yes -earliest -) -} -else -if -let -Some -( -pre -) -= -aut -. -prefilter -( -) -{ -if -earliest -{ -try_find_fwd_imp -( -aut -input -Some -( -pre -) -Anchored -: -: -No -true -) -} -else -{ -try_find_fwd_imp -( -aut -input -Some -( -pre -) -Anchored -: -: -No -false -) -} -} -else -{ -if -earliest -{ -try_find_fwd_imp -( -aut -input -None -Anchored -: -: -No -true -) -} -else -{ -try_find_fwd_imp -( -aut -input -None -Anchored -: -: -No -false -) -} -} -} -# -[ -inline -( -always -) -] -fn -try_find_fwd_imp -< -A -: -Automaton -+ -? -Sized -> -( -aut -: -& -A -input -: -& -Input -< -' -_ -> -pre -: -Option -< -& -Prefilter -> -anchored -: -Anchored -earliest -: -bool -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -let -mut -sid -= -aut -. -start_state -( -input -. -get_anchored -( -) -) -? -; -let -mut -at -= -input -. -start -( -) -; -let -mut -mat -= -None -; -if -aut -. -is_match -( -sid -) -{ -mat -= -Some -( -get_match -( -aut -sid -0 -at -) -) -; -if -earliest -{ -return -Ok -( -mat -) -; -} -} -if -let -Some -( -pre -) -= -pre -{ -match -pre -. -find_in -( -input -. -haystack -( -) -input -. -get_span -( -) -) -{ -Candidate -: -: -None -= -> -return -Ok -( -None -) -Candidate -: -: -Match -( -m -) -= -> -return -Ok -( -Some -( -m -) -) -Candidate -: -: -PossibleStartOfMatch -( -i -) -= -> -{ -at -= -i -; -} -} -} -while -at -< -input -. -end -( -) -{ -sid -= -aut -. -next_state -( -anchored -sid -input -. -haystack -( -) -[ -at -] -) -; -if -aut -. -is_special -( -sid -) -{ -if -aut -. -is_dead -( -sid -) -{ -return -Ok -( -mat -) -; -} -else -if -aut -. -is_match -( -sid -) -{ -let -m -= -get_match -( -aut -sid -0 -at -+ -1 -) -; -if -! -( -anchored -. -is_anchored -( -) -& -& -m -. -start -( -) -> -input -. -start -( -) -) -{ -mat -= -Some -( -m -) -; -if -earliest -{ -return -Ok -( -mat -) -; -} -} -} -else -if -let -Some -( -pre -) -= -pre -{ -debug_assert -! -( -aut -. -is_start -( -sid -) -) -; -let -span -= -Span -: -: -from -( -at -. -. -input -. -end -( -) -) -; -match -pre -. -find_in -( -input -. -haystack -( -) -span -) -. -into_option -( -) -{ -None -= -> -return -Ok -( -None -) -Some -( -i -) -= -> -{ -if -i -> -at -{ -at -= -i -; -continue -; -} -} -} -} -else -{ -debug_assert -! -( -false -" -unreachable -" -) -; -} -} -at -+ -= -1 -; -} -Ok -( -mat -) -} -# -[ -inline -( -never -) -] -fn -try_find_overlapping_fwd -< -A -: -Automaton -+ -? -Sized -> -( -aut -: -& -A -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -state -. -mat -= -None -; -if -input -. -is_done -( -) -{ -return -Ok -( -( -) -) -; -} -if -aut -. -prefilter -( -) -. -is_some -( -) -& -& -! -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -let -pre -= -aut -. -prefilter -( -) -. -unwrap -( -) -; -try_find_overlapping_fwd_imp -( -aut -input -Some -( -pre -) -state -) -} -else -{ -try_find_overlapping_fwd_imp -( -aut -input -None -state -) -} -} -# -[ -inline -( -always -) -] -fn -try_find_overlapping_fwd_imp -< -A -: -Automaton -+ -? -Sized -> -( -aut -: -& -A -input -: -& -Input -< -' -_ -> -pre -: -Option -< -& -Prefilter -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -let -mut -sid -= -match -state -. -id -{ -None -= -> -{ -let -sid -= -aut -. -start_state -( -input -. -get_anchored -( -) -) -? -; -if -aut -. -is_match -( -sid -) -{ -let -i -= -state -. -next_match_index -. -unwrap_or -( -0 -) -; -let -len -= -aut -. -match_len -( -sid -) -; -if -i -< -len -{ -state -. -next_match_index -= -Some -( -i -+ -1 -) -; -state -. -mat -= -Some -( -get_match -( -aut -sid -i -input -. -start -( -) -) -) -; -return -Ok -( -( -) -) -; -} -} -state -. -at -= -input -. -start -( -) -; -state -. -id -= -Some -( -sid -) -; -state -. -next_match_index -= -None -; -state -. -mat -= -None -; -sid -} -Some -( -sid -) -= -> -{ -if -let -Some -( -i -) -= -state -. -next_match_index -{ -let -len -= -aut -. -match_len -( -sid -) -; -if -i -< -len -{ -state -. -next_match_index -= -Some -( -i -+ -1 -) -; -state -. -mat -= -Some -( -get_match -( -aut -sid -i -state -. -at -+ -1 -) -) -; -return -Ok -( -( -) -) -; -} -state -. -at -+ -= -1 -; -state -. -next_match_index -= -None -; -state -. -mat -= -None -; -} -sid -} -} -; -while -state -. -at -< -input -. -end -( -) -{ -sid -= -aut -. -next_state -( -input -. -get_anchored -( -) -sid -input -. -haystack -( -) -[ -state -. -at -] -) -; -if -aut -. -is_special -( -sid -) -{ -state -. -id -= -Some -( -sid -) -; -if -aut -. -is_dead -( -sid -) -{ -return -Ok -( -( -) -) -; -} -else -if -aut -. -is_match -( -sid -) -{ -state -. -next_match_index -= -Some -( -1 -) -; -state -. -mat -= -Some -( -get_match -( -aut -sid -0 -state -. -at -+ -1 -) -) -; -return -Ok -( -( -) -) -; -} -else -if -let -Some -( -pre -) -= -pre -{ -debug_assert -! -( -aut -. -is_start -( -sid -) -) -; -let -span -= -Span -: -: -from -( -state -. -at -. -. -input -. -end -( -) -) -; -match -pre -. -find_in -( -input -. -haystack -( -) -span -) -. -into_option -( -) -{ -None -= -> -return -Ok -( -( -) -) -Some -( -i -) -= -> -{ -if -i -> -state -. -at -{ -state -. -at -= -i -; -continue -; -} -} -} -} -else -{ -} -} -state -. -at -+ -= -1 -; -} -state -. -id -= -Some -( -sid -) -; -Ok -( -( -) -) -} -# -[ -inline -( -always -) -] -fn -get_match -< -A -: -Automaton -+ -? -Sized -> -( -aut -: -& -A -sid -: -StateID -index -: -usize -at -: -usize -) -- -> -Match -{ -let -pid -= -aut -. -match_pattern -( -sid -index -) -; -let -len -= -aut -. -pattern_len -( -pid -) -; -Match -: -: -new -( -pid -( -at -- -len -) -. -. -at -) -} -pub -( -crate -) -fn -fmt_state_indicator -< -A -: -Automaton -> -( -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -aut -: -A -id -: -StateID -) -- -> -core -: -: -fmt -: -: -Result -{ -if -aut -. -is_dead -( -id -) -{ -write -! -( -f -" -D -" -) -? -; -} -else -if -aut -. -is_match -( -id -) -{ -if -aut -. -is_start -( -id -) -{ -write -! -( -f -" -* -> -" -) -? -; -} -else -{ -write -! -( -f -" -* -" -) -? -; -} -} -else -if -aut -. -is_start -( -id -) -{ -write -! -( -f -" -> -" -) -? -; -} -else -{ -write -! -( -f -" -" -) -? -; -} -Ok -( -( -) -) -} -pub -( -crate -) -fn -sparse_transitions -< -' -a -> -( -mut -it -: -impl -Iterator -< -Item -= -( -u8 -StateID -) -> -+ -' -a -) -- -> -impl -Iterator -< -Item -= -( -u8 -u8 -StateID -) -> -+ -' -a -{ -let -mut -cur -: -Option -< -( -u8 -u8 -StateID -) -> -= -None -; -core -: -: -iter -: -: -from_fn -( -move -| -| -{ -while -let -Some -( -( -class -next -) -) -= -it -. -next -( -) -{ -let -( -prev_start -prev_end -prev_next -) -= -match -cur -{ -Some -( -x -) -= -> -x -None -= -> -{ -cur -= -Some -( -( -class -class -next -) -) -; -continue -; -} -} -; -if -prev_next -= -= -next -{ -cur -= -Some -( -( -prev_start -class -prev_next -) -) -; -} -else -{ -cur -= -Some -( -( -class -class -next -) -) -; -return -Some -( -( -prev_start -prev_end -prev_next -) -) -; -} -} -if -let -Some -( -( -start -end -next -) -) -= -cur -. -take -( -) -{ -return -Some -( -( -start -end -next -) -) -; } -None } -) } diff --git a/third_party/rust/aho-corasick/src/util/buffer.rs b/third_party/rust/aho-corasick/src/buffer.rs similarity index 88% rename from third_party/rust/aho-corasick/src/util/buffer.rs rename to third_party/rust/aho-corasick/src/buffer.rs index b2fe6ceffe90c..020cf1556589e 100644 --- a/third_party/rust/aho-corasick/src/util/buffer.rs +++ b/third_party/rust/aho-corasick/src/buffer.rs @@ -1,21 +1,27 @@ use -alloc +std : : -{ -vec -vec +cmp +; +use +std : : -Vec -} +io +; +use +std +: +: +ptr ; const DEFAULT_BUFFER_CAPACITY : usize = -64 +8 * ( 1 @@ -32,9 +38,6 @@ Debug ) ] pub -( -crate -) struct Buffer { @@ -55,9 +58,6 @@ impl Buffer { pub -( -crate -) fn new ( @@ -72,9 +72,6 @@ Buffer let min = -core -: -: cmp : : @@ -87,9 +84,6 @@ min_buffer_len let capacity = -core -: -: cmp : : @@ -123,9 +117,6 @@ end inline ] pub -( -crate -) fn buffer ( @@ -156,9 +147,6 @@ end inline ] pub -( -crate -) fn min_buffer_len ( @@ -173,6 +161,25 @@ self . min } +# +[ +inline +] +pub +fn +len +( +& +self +) +- +> +usize +{ +self +. +end +} fn free_buffer ( @@ -202,17 +209,11 @@ end ] } pub -( -crate -) fn fill < R : -std -: -: io : : @@ -229,9 +230,6 @@ R ) - > -std -: -: io : : @@ -290,10 +288,6 @@ readlen if self . -buffer -( -) -. len ( ) @@ -313,9 +307,6 @@ true } } pub -( -crate -) fn roll ( @@ -353,10 +344,8 @@ amount ) ; let -roll_end +roll_len = -roll_start -+ self . min @@ -364,7 +353,9 @@ min assert ! ( -roll_end +roll_start ++ +roll_len < = self @@ -372,26 +363,41 @@ self end ) ; +unsafe +{ +ptr +: +: +copy +( self . buf +[ +roll_start +. . -copy_within +] +. +as_ptr ( -roll_start +) +self . +buf . -roll_end -0 +as_mut_ptr +( +) +roll_len ) ; +} self . end = -self -. -min +roll_len ; } } diff --git a/third_party/rust/aho-corasick/src/util/byte_frequencies.rs b/third_party/rust/aho-corasick/src/byte_frequencies.rs similarity index 100% rename from third_party/rust/aho-corasick/src/util/byte_frequencies.rs rename to third_party/rust/aho-corasick/src/byte_frequencies.rs diff --git a/third_party/rust/aho-corasick/src/classes.rs b/third_party/rust/aho-corasick/src/classes.rs new file mode 100644 index 0000000000000..cf3db21599b75 --- /dev/null +++ b/third_party/rust/aho-corasick/src/classes.rs @@ -0,0 +1,1151 @@ +use +std +: +: +fmt +; +# +[ +derive +( +Clone +Copy +) +] +pub +struct +ByteClasses +( +[ +u8 +; +256 +] +) +; +impl +ByteClasses +{ +pub +fn +empty +( +) +- +> +ByteClasses +{ +ByteClasses +( +[ +0 +; +256 +] +) +} +pub +fn +singletons +( +) +- +> +ByteClasses +{ +let +mut +classes += +ByteClasses +: +: +empty +( +) +; +for +i +in +0 +. +. +256 +{ +classes +. +set +( +i +as +u8 +i +as +u8 +) +; +} +classes +} +# +[ +inline +] +pub +fn +set +( +& +mut +self +byte +: +u8 +class +: +u8 +) +{ +self +. +0 +[ +byte +as +usize +] += +class +; +} +# +[ +inline +] +pub +fn +get +( +& +self +byte +: +u8 +) +- +> +u8 +{ +self +. +0 +[ +byte +as +usize +] +} +# +[ +inline +] +pub +fn +alphabet_len +( +& +self +) +- +> +usize +{ +self +. +0 +[ +255 +] +as +usize ++ +1 +} +# +[ +inline +] +pub +fn +is_singleton +( +& +self +) +- +> +bool +{ +self +. +alphabet_len +( +) += += +256 +} +pub +fn +representatives +( +& +self +) +- +> +ByteClassRepresentatives +< +' +_ +> +{ +ByteClassRepresentatives +{ +classes +: +self +byte +: +0 +last_class +: +None +} +} +fn +elements +( +& +self +equiv +: +u8 +) +- +> +( +[ +u8 +; +256 +] +usize +) +{ +let +( +mut +array +mut +len +) += +( +[ +0 +; +256 +] +0 +) +; +for +b +in +0 +. +. +256 +{ +if +self +. +get +( +b +as +u8 +) += += +equiv +{ +array +[ +len +] += +b +as +u8 +; +len ++ += +1 +; +} +} +( +array +len +) +} +} +impl +fmt +: +: +Debug +for +ByteClasses +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +if +self +. +is_singleton +( +) +{ +write +! +( +f +" +ByteClasses +( +{ +{ +singletons +} +} +) +" +) +} +else +{ +write +! +( +f +" +ByteClasses +( +" +) +? +; +for +equiv +in +0 +. +. +self +. +alphabet_len +( +) +{ +let +( +members +len +) += +self +. +elements +( +equiv +as +u8 +) +; +write +! +( +f +" +{ +} += +> +{ +: +? +} +" +equiv +& +members +[ +. +. +len +] +) +? +; +} +write +! +( +f +" +) +" +) +} +} +} +# +[ +derive +( +Debug +) +] +pub +struct +ByteClassRepresentatives +< +' +a +> +{ +classes +: +& +' +a +ByteClasses +byte +: +usize +last_class +: +Option +< +u8 +> +} +impl +< +' +a +> +Iterator +for +ByteClassRepresentatives +< +' +a +> +{ +type +Item += +u8 +; +fn +next +( +& +mut +self +) +- +> +Option +< +u8 +> +{ +while +self +. +byte +< +256 +{ +let +byte += +self +. +byte +as +u8 +; +let +class += +self +. +classes +. +get +( +byte +) +; +self +. +byte ++ += +1 +; +if +self +. +last_class +! += +Some +( +class +) +{ +self +. +last_class += +Some +( +class +) +; +return +Some +( +byte +) +; +} +} +None +} +} +# +[ +derive +( +Debug +) +] +pub +struct +ByteClassBuilder +( +Vec +< +bool +> +) +; +impl +ByteClassBuilder +{ +pub +fn +new +( +) +- +> +ByteClassBuilder +{ +ByteClassBuilder +( +vec +! +[ +false +; +256 +] +) +} +pub +fn +set_range +( +& +mut +self +start +: +u8 +end +: +u8 +) +{ +debug_assert +! +( +start +< += +end +) +; +if +start +> +0 +{ +self +. +0 +[ +start +as +usize +- +1 +] += +true +; +} +self +. +0 +[ +end +as +usize +] += +true +; +} +pub +fn +build +( +& +self +) +- +> +ByteClasses +{ +let +mut +classes += +ByteClasses +: +: +empty +( +) +; +let +mut +class += +0u8 +; +let +mut +i += +0 +; +loop +{ +classes +. +set +( +i +as +u8 +class +as +u8 +) +; +if +i +> += +255 +{ +break +; +} +if +self +. +0 +[ +i +] +{ +class += +class +. +checked_add +( +1 +) +. +unwrap +( +) +; +} +i ++ += +1 +; +} +classes +} +} +# +[ +cfg +( +test +) +] +mod +tests +{ +use +super +: +: +* +; +# +[ +test +] +fn +byte_classes +( +) +{ +let +mut +set += +ByteClassBuilder +: +: +new +( +) +; +set +. +set_range +( +b +' +a +' +b +' +z +' +) +; +let +classes += +set +. +build +( +) +; +assert_eq +! +( +classes +. +get +( +0 +) +0 +) +; +assert_eq +! +( +classes +. +get +( +1 +) +0 +) +; +assert_eq +! +( +classes +. +get +( +2 +) +0 +) +; +assert_eq +! +( +classes +. +get +( +b +' +a +' +- +1 +) +0 +) +; +assert_eq +! +( +classes +. +get +( +b +' +a +' +) +1 +) +; +assert_eq +! +( +classes +. +get +( +b +' +m +' +) +1 +) +; +assert_eq +! +( +classes +. +get +( +b +' +z +' +) +1 +) +; +assert_eq +! +( +classes +. +get +( +b +' +z +' ++ +1 +) +2 +) +; +assert_eq +! +( +classes +. +get +( +254 +) +2 +) +; +assert_eq +! +( +classes +. +get +( +255 +) +2 +) +; +let +mut +set += +ByteClassBuilder +: +: +new +( +) +; +set +. +set_range +( +0 +2 +) +; +set +. +set_range +( +4 +6 +) +; +let +classes += +set +. +build +( +) +; +assert_eq +! +( +classes +. +get +( +0 +) +0 +) +; +assert_eq +! +( +classes +. +get +( +1 +) +0 +) +; +assert_eq +! +( +classes +. +get +( +2 +) +0 +) +; +assert_eq +! +( +classes +. +get +( +3 +) +1 +) +; +assert_eq +! +( +classes +. +get +( +4 +) +2 +) +; +assert_eq +! +( +classes +. +get +( +5 +) +2 +) +; +assert_eq +! +( +classes +. +get +( +6 +) +2 +) +; +assert_eq +! +( +classes +. +get +( +7 +) +3 +) +; +assert_eq +! +( +classes +. +get +( +255 +) +3 +) +; +} +# +[ +test +] +fn +full_byte_classes +( +) +{ +let +mut +set += +ByteClassBuilder +: +: +new +( +) +; +for +i +in +0 +. +. +256u16 +{ +set +. +set_range +( +i +as +u8 +i +as +u8 +) +; +} +assert_eq +! +( +set +. +build +( +) +. +alphabet_len +( +) +256 +) +; +} +} diff --git a/third_party/rust/aho-corasick/src/dfa.rs b/third_party/rust/aho-corasick/src/dfa.rs index 6d6d761674916..9a0708ae4d325 100644 --- a/third_party/rust/aho-corasick/src/dfa.rs +++ b/third_party/rust/aho-corasick/src/dfa.rs @@ -1,336 +1,366 @@ use -alloc +std : : -{ -vec -vec +mem : : -Vec -} +size_of +; +use +crate +: +: +ahocorasick +: +: +MatchKind ; use crate : : -{ automaton : : Automaton -nfa +; +use +crate : : -noncontiguous -util +classes : : -{ -alphabet +ByteClasses +; +use +crate : : -ByteClasses error : : -{ -BuildError -MatchError -} -int +Result +; +use +crate +: +: +nfa : : { -Usize -U32 +PatternID +PatternLength +NFA } -prefilter +; +use +crate : : -Prefilter -primitives +prefilter : : { -IteratorIndexExt -PatternID -SmallIndex -StateID +Prefilter +PrefilterObj +PrefilterState } -search +; +use +crate +: +: +state_id : : { -Anchored -MatchKind -StartKind +dead_id +fail_id +premultiply_overflow_error +StateID } -special +; +use +crate : : -Special -} -} +Match ; # [ derive ( Clone +Debug ) ] pub -struct +enum DFA -{ -trans -: -Vec < -StateID +S > -matches -: -Vec -< -Vec +{ +Standard +( +Standard < -PatternID +S > +) +ByteClass +( +ByteClass +< +S > -matches_memory_usage -: -usize -pattern_lens -: -Vec +) +Premultiplied +( +Premultiplied < -SmallIndex +S > -prefilter -: -Option +) +PremultipliedByteClass +( +PremultipliedByteClass < -Prefilter +S > -match_kind -: -MatchKind -state_len -: -usize -alphabet_len -: -usize -stride2 -: -usize -byte_classes -: -ByteClasses -min_pattern_len -: -usize -max_pattern_len -: -usize -special -: -Special +) } impl +< +S +: +StateID +> DFA -{ -pub -fn -new < -I -P +S > +{ +fn +repr ( -patterns -: -I +& +self ) - > -Result +& +Repr < +S +> +{ +match +* +self +{ DFA -BuildError +: +: +Standard +( +ref +dfa +) += > -where -I +dfa +. +repr +( +) +DFA : -IntoIterator -< -Item +: +ByteClass +( +ref +dfa +) = -P > -P +dfa +. +repr +( +) +DFA : -AsRef -< -[ -u8 -] +: +Premultiplied +( +ref +dfa +) += > -{ +dfa +. +repr +( +) DFA : : -builder +PremultipliedByteClass ( +ref +dfa ) += +> +dfa . -build +repr ( -patterns ) } +} pub fn -builder +match_kind ( +& +self ) - > -Builder +& +MatchKind { -Builder -: -: -new +& +self +. +repr ( ) +. +match_kind } -} -impl -DFA -{ -const -DEAD -: -StateID -= -StateID -: -: -new_unchecked -( -0 -) -; +pub fn -set_matches +heap_bytes ( & -mut self -sid -: -StateID -pids -: -impl -Iterator -< -Item -= -PatternID -> ) +- +> +usize { -let -index -= +self +. +repr ( -sid +) . -as_usize +heap_bytes +} +pub +fn +max_pattern_len ( +& +self ) +- > -> +usize +{ self . -stride2 -) -. -checked_sub +repr ( -2 ) . -unwrap +max_pattern_len +} +pub +fn +pattern_count ( +& +self ) -; -let -mut -at_least_one -= -false -; -for -pid -in -pids +- +> +usize { self . -matches -[ -index -] -. -push +repr ( -pid ) -; -self . -matches_memory_usage -+ -= -PatternID -: -: -SIZE -; -at_least_one -= -true -; +pattern_count } -assert -! +pub +fn +prefilter ( -at_least_one -" -match -state -must -have -non +& +self +) - -empty -pids -" +> +Option +< +& +dyn +Prefilter +> +{ +self +. +repr +( +) +. +prefilter +. +as_ref +( +) +. +map +( +| +p +| +p +. +as_ref +( +) ) -; -} } -unsafe -impl -Automaton -for -DFA +pub +fn +start_state +( +& +self +) +- +> +S { +self +. +repr +( +) +. +start_id +} # [ inline @@ -338,114 +368,130 @@ inline always ) ] +pub fn -start_state +overlapping_find_at ( & self -anchored +prestate +: +& +mut +PrefilterState +haystack +: +& +[ +u8 +] +at +: +usize +state_id +: +& +mut +S +match_index : -Anchored +& +mut +usize ) - > -Result +Option < -StateID -MatchError +Match > { match -anchored +* +self { -Anchored +DFA : : -No +Standard +( +ref +dfa +) = > -{ -let -start -= -self -. -special +dfa . -start_unanchored_id -; -if -start -= -= -DFA -: -: -DEAD -{ -Err +overlapping_find_at ( -MatchError +prestate +haystack +at +state_id +match_index +) +DFA : : -invalid_input_unanchored +ByteClass ( +ref +dfa ) -) -} -else -{ -Ok += +> +dfa +. +overlapping_find_at ( -start +prestate +haystack +at +state_id +match_index ) -} -} -Anchored +DFA : : -Yes +Premultiplied +( +ref +dfa +) = > -{ -let -start -= -self -. -special +dfa . -start_anchored_id -; -if -start -= -= -DFA -: -: -DEAD -{ -Err +overlapping_find_at ( -MatchError +prestate +haystack +at +state_id +match_index +) +DFA : : -invalid_input_anchored +PremultipliedByteClass ( +ref +dfa ) -) -} -else -{ -Ok += +> +dfa +. +overlapping_find_at ( -start +prestate +haystack +at +state_id +match_index ) } } -} -} # [ inline @@ -453,90 +499,128 @@ inline always ) ] +pub fn -next_state +earliest_find_at ( & self -_anchored -: -Anchored -sid +prestate : -StateID -byte +& +mut +PrefilterState +haystack : +& +[ u8 +] +at +: +usize +state_id +: +& +mut +S ) - > -StateID +Option +< +Match +> { -let -class -= +match +* self -. -byte_classes -. -get +{ +DFA +: +: +Standard ( -byte +ref +dfa ) -; -self -. -trans -[ -( -sid += +> +{ +dfa . -as_u32 +earliest_find_at ( +prestate +haystack +at +state_id ) -+ -u32 +} +DFA : : -from +ByteClass ( -class -) +ref +dfa ) += +> +{ +dfa . -as_usize +earliest_find_at ( +prestate +haystack +at +state_id ) -] } -# -[ -inline +DFA +: +: +Premultiplied ( -always +ref +dfa ) -] -fn -is_special += +> +{ +dfa +. +earliest_find_at ( -& -self -sid +prestate +haystack +at +state_id +) +} +DFA : -StateID +: +PremultipliedByteClass +( +ref +dfa ) -- += > -bool { -sid -< -= -self -. -special +dfa . -max_special_id +earliest_find_at +( +prestate +haystack +at +state_id +) +} +} } # [ @@ -545,111 +629,191 @@ inline always ) ] +pub fn -is_dead +find_at_no_state ( & self -sid +prestate : -StateID -) -- -> -bool -{ -sid -= -= +& +mut +PrefilterState +haystack +: +& +[ +u8 +] +at +: +usize +) +- +> +Option +< +Match +> +{ +match +* +self +{ DFA : : -DEAD -} -# -[ -inline +Standard ( -always +ref +dfa ) -] -fn -is_match += +> +{ +dfa +. +find_at_no_state ( -& -self -sid +prestate +haystack +at +) +} +DFA : -StateID +: +ByteClass +( +ref +dfa ) -- += > -bool { -! -self +dfa . -is_dead +find_at_no_state ( -sid +prestate +haystack +at +) +} +DFA +: +: +Premultiplied +( +ref +dfa ) -& -& -sid -< = -self +> +{ +dfa . -special +find_at_no_state +( +prestate +haystack +at +) +} +DFA +: +: +PremultipliedByteClass +( +ref +dfa +) += +> +{ +dfa . -max_match_id +find_at_no_state +( +prestate +haystack +at +) +} +} +} } # [ -inline +derive ( -always +Clone +Debug ) ] +pub +struct +Standard +< +S +> +( +Repr +< +S +> +) +; +impl +< +S +: +StateID +> +Standard +< +S +> +{ fn -is_start +repr ( & self -sid -: -StateID ) - > -bool +& +Repr +< +S +> { -sid -= -= -self -. -special -. -start_unanchored_id -| -| -sid -= -= +& self . -special -. -start_anchored_id +0 } -# -[ -inline -( -always -) -] +} +impl +< +S +: +StateID +> +Automaton +for +Standard +< +S +> +{ +type +ID += +S +; fn match_kind ( @@ -658,323 +822,398 @@ self ) - > +& MatchKind { +& self . -match_kind -} -# -[ -inline +repr ( -always ) -] +. +match_kind +} fn -patterns_len +anchored ( & self ) - > -usize +bool { self . -pattern_lens -. -len +repr ( ) +. +anchored } -# -[ -inline -( -always -) -] fn -pattern_len +prefilter ( & self -pid -: -PatternID ) - > -usize +Option +< +& +dyn +Prefilter +> { self . -pattern_lens -[ -pid -] +repr +( +) +. +prefilter . -as_usize +as_ref ( ) -} -# -[ -inline +. +map +( +| +p +| +p +. +as_ref ( -always ) -] +) +} fn -min_pattern_len +start_state ( & self ) - > -usize +S { self . -min_pattern_len -} -# -[ -inline +repr ( -always ) -] +. +start_id +} fn -max_pattern_len +is_valid ( & self +id +: +S ) - > -usize +bool { +id +. +to_usize +( +) +< self . -max_pattern_len -} -# -[ -inline +repr ( -always ) -] +. +state_count +} fn -match_len +is_match_state ( & self -sid +id : -StateID +S ) - > -usize +bool { -debug_assert -! -( self . -is_match +repr ( -sid -) ) -; -let -offset -= -( -sid . -as_usize +is_match_state ( +id ) -> -> +} +fn +is_match_or_dead_state +( +& self -. -stride2 +id +: +S ) - -2 -; +> +bool +{ self . -matches -[ -offset -] -. -len +repr ( ) -} -# -[ -inline +. +is_match_or_dead_state ( -always +id ) -] +} fn -match_pattern +get_match ( & self -sid +id : -StateID -index +S +match_index +: +usize +end : usize ) - > -PatternID +Option +< +Match +> { -debug_assert -! -( self . -is_match +repr ( -sid ) -) -; -let -offset -= -( -sid . -as_usize +get_match ( +id +match_index +end ) +} +fn +match_count +( +& +self +id +: +S +) +- > -> +usize +{ self . -stride2 +repr +( +) +. +match_count +( +id +) +} +fn +next_state +( +& +self +current +: +S +input +: +u8 ) - -2 +> +S +{ +let +o += +current +. +to_usize +( +) +* +256 ++ +input +as +usize ; self . -matches -[ -offset -] +repr +( +) +. +trans [ -index +o ] } +} # [ -inline +derive ( -always +Clone +Debug ) ] +pub +struct +ByteClass +< +S +> +( +Repr +< +S +> +) +; +impl +< +S +: +StateID +> +ByteClass +< +S +> +{ fn -memory_usage +repr ( & self ) - > -usize +& +Repr +< +S +> { -use -core -: -: -mem -: -: -size_of -; -( +& self . -trans -. -len -( -) -* -size_of -: +0 +} +} +impl +< +S : +StateID +> +Automaton +for +ByteClass < -u32 +S > +{ +type +ID += +S +; +fn +match_kind ( +& +self ) -) -+ -( +- +> +& +MatchKind +{ +& self . -matches -. -len +repr ( ) -* -size_of -: -: -< -Vec -< -PatternID -> -> +. +match_kind +} +fn +anchored ( +& +self ) -) -+ +- +> +bool +{ self . -matches_memory_usage -+ +repr ( -self -. -pattern_lens +) . -len +anchored +} +fn +prefilter ( +& +self ) -* -size_of -: -: +- +> +Option < -SmallIndex +& +dyn +Prefilter > +{ +self +. +repr ( ) -) -+ -self . prefilter . @@ -982,673 +1221,1106 @@ as_ref ( ) . -map_or +map ( -0 | p | p . -memory_usage +as_ref ( ) ) } -# -[ -inline +fn +start_state ( -always +& +self ) -] +- +> +S +{ +self +. +repr +( +) +. +start_id +} fn -prefilter +is_valid ( & self +id +: +S ) - > -Option +bool +{ +id +. +to_usize +( +) < +self +. +repr +( +) +. +state_count +} +fn +is_match_state +( & -Prefilter +self +id +: +S +) +- > +bool { self . -prefilter +repr +( +) . -as_ref +is_match_state ( +id ) } -} -impl -core -: -: -fmt -: -: -Debug -for -DFA -{ fn -fmt +is_match_or_dead_state ( & self -f -: -& -mut -core +id : -: -fmt -: -: -Formatter +S ) - > -core -: +bool +{ +self +. +repr +( +) +. +is_match_or_dead_state +( +id +) +} +fn +get_match +( +& +self +id : -fmt +S +match_index : +usize +end : -Result +usize +) +- +> +Option +< +Match +> { -use -crate -: +self +. +repr +( +) +. +get_match +( +id +match_index +end +) +} +fn +match_count +( +& +self +id : +S +) +- +> +usize { -automaton +self +. +repr +( +) +. +match_count +( +id +) +} +fn +next_state +( +& +self +current : +S +input : +u8 +) +- +> +S { -fmt_state_indicator -sparse_transitions +let +alphabet_len += +self +. +repr +( +) +. +byte_classes +. +alphabet_len +( +) +; +let +input += +self +. +repr +( +) +. +byte_classes +. +get +( +input +) +; +let +o += +current +. +to_usize +( +) +* +alphabet_len ++ +input +as +usize +; +self +. +repr +( +) +. +trans +[ +o +] } -util +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +Premultiplied +< +S +> +( +Repr +< +S +> +) +; +impl +< +S : +StateID +> +Premultiplied +< +S +> +{ +fn +repr +( +& +self +) +- +> +& +Repr +< +S +> +{ +& +self +. +0 +} +} +impl +< +S +: +StateID +> +Automaton +for +Premultiplied +< +S +> +{ +type +ID += +S +; +fn +match_kind +( +& +self +) +- +> +& +MatchKind +{ +& +self +. +repr +( +) +. +match_kind +} +fn +anchored +( +& +self +) +- +> +bool +{ +self +. +repr +( +) +. +anchored +} +fn +prefilter +( +& +self +) +- +> +Option +< +& +dyn +Prefilter +> +{ +self +. +repr +( +) +. +prefilter +. +as_ref +( +) +. +map +( +| +p +| +p +. +as_ref +( +) +) +} +fn +start_state +( +& +self +) +- +> +S +{ +self +. +repr +( +) +. +start_id +} +fn +is_valid +( +& +self +id : -debug +S +) +- +> +bool +{ +( +id +. +to_usize +( +) +/ +256 +) +< +self +. +repr +( +) +. +state_count +} +fn +is_match_state +( +& +self +id : +S +) +- +> +bool +{ +self +. +repr +( +) +. +is_match_state +( +id +) +} +fn +is_match_or_dead_state +( +& +self +id : -DebugByte +S +) +- +> +bool +{ +self +. +repr +( +) +. +is_match_or_dead_state +( +id +) } -; -writeln -! +fn +get_match ( -f -" -dfa +& +self +id : +S +match_index : -DFA +usize +end +: +usize +) +- +> +Option +< +Match +> +{ +if +id +> +self +. +repr ( -" ) -? +. +max_match +{ +return +None ; -for -index -in -0 +} +self . +repr +( +) . -self +matches . -state_len +get +( +id +. +to_usize +( +) +/ +256 +) +. +and_then +( +| +m +| +m +. +get +( +match_index +) +) +. +map +( +| +& +( +id +len +) +| +Match +{ +pattern +: +id +len +end +} +) +} +fn +match_count +( +& +self +id +: +S +) +- +> +usize { let -sid +o = -StateID +id +. +to_usize +( +) +/ +256 +; +self +. +repr +( +) +. +matches +[ +o +] +. +len +( +) +} +fn +next_state +( +& +self +current : +S +input : -new_unchecked +u8 +) +- +> +S +{ +let +o += +current +. +to_usize ( -index +) ++ +input +as +usize +; +self +. +repr +( +) +. +trans +[ +o +] +} +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +PremultipliedByteClass +< +S +> +( +Repr +< +S +> +) +; +impl +< +S +: +StateID +> +PremultipliedByteClass +< +S +> +{ +fn +repr +( +& +self +) +- +> +& +Repr +< +S +> +{ +& +self +. +0 +} +} +impl < +S +: +StateID +> +Automaton +for +PremultipliedByteClass < +S +> +{ +type +ID += +S +; +fn +match_kind +( +& +self +) +- +> +& +MatchKind +{ +& self . -stride2 +repr +( ) -; -if -index -= -= -1 -{ -writeln -! +. +match_kind +} +fn +anchored ( -f -" -F +& +self +) +- +> +bool { -: -06 -} -: -" -sid +self . -as_usize +repr ( ) -) -? -; -continue -; +. +anchored } -fmt_state_indicator +fn +prefilter ( -f +& self -sid ) -? -; -write -! -( -f -" +- +> +Option +< +& +dyn +Prefilter +> { -: -06 -} -: -" -sid +self . -as_usize +repr ( ) -) -? -; -let -it -= -( -0 -. -. -self . -byte_classes +prefilter . -alphabet_len +as_ref ( ) -) . map ( | -class +p | -{ -( -class +p . -as_u8 +as_ref +( +) +) +} +fn +start_state ( +& +self ) +- +> +S +{ self . -trans -[ -sid -. -as_usize +repr ( ) -+ -class -] -) +. +start_id } +fn +is_valid +( +& +self +id +: +S ) -; -for +- +> +bool +{ ( -i +id +. +to_usize ( -start -end -next ) -) -in -sparse_transitions +/ +self +. +repr ( -it ) . -enumerate +alphabet_len ( ) -{ -if -i -> -0 -{ -write -! +) +< +self +. +repr ( -f -" -" ) -? -; +. +state_count } -if -start -= -= -end -{ -write -! +fn +is_match_state ( -f -" -{ +& +self +id : -? -} -= +S +) +- > +bool { -: -? -} -" -DebugByte +self +. +repr ( -start ) -next . -as_usize +is_match_state ( +id ) -) -? -; } -else -{ -write -! +fn +is_match_or_dead_state ( -f -" -{ +& +self +id : -? -} +S +) - -{ -: -? -} -= > +bool { -: -? -} -" -DebugByte -( -start -) -DebugByte +self +. +repr ( -end ) -next . -as_usize +is_match_or_dead_state ( +id ) -) -? -; -} } -write -! +fn +get_match ( -f -" -\ -n -" -) -? -; -if +& self -. -is_match -( -sid -) -{ -write -! -( -f -" -matches +id : -" -) -? -; -for -i -in -0 -. -. -self -. -match_len -( -sid +S +match_index +: +usize +end +: +usize ) +- +> +Option +< +Match +> { if -i +id > -0 -{ -write -! -( -f -" -" -) -? -; -} -let -pid -= self . -match_pattern -( -sid -i -) -; -write -! -( -f -" -{ -} -" -pid -. -as_usize -( -) -) -? -; -} -write -! +repr ( -f -" -\ -n -" ) -? -; -} -} -writeln -! -( -f -" -match -kind -: +. +max_match { -: -? +return +None +; } -" self . -match_kind +repr +( ) -? -; -writeln -! +. +matches +. +get ( -f -" -prefilter -: -{ -: -? -} -" +id +. +to_usize +( +) +/ self . -prefilter +repr +( +) . -is_some +alphabet_len ( ) ) -? -; -writeln -! -( -f -" -state -length -: -{ -: -? -} -" -self . -state_len -) -? -; -writeln -! +and_then ( -f -" -pattern -length -: -{ -: -? -} -" -self +| +m +| +m . -patterns_len +get ( +match_index ) ) -? -; -writeln -! +. +map ( -f -" -shortest -pattern -length -: +| +& +( +id +len +) +| +Match { +pattern : -? +id +len +end } -" -self -. -min_pattern_len ) -? -; -writeln -! +} +fn +match_count ( -f -" -longest -pattern -length +& +self +id : +S +) +- +> +usize { -: -? -} -" -self +let +o += +id . -max_pattern_len -) -? -; -writeln -! +to_usize ( -f -" -alphabet -length -: -{ -: -? -} -" +) +/ self . +repr +( +) +. alphabet_len +( ) -? ; -writeln -! -( -f -" -stride -: -{ -: -? -} -" -1 -< -< self . -stride2 -) -? -; -writeln -! +repr ( -f -" -byte -classes -: -{ -: -? -} -" -self +) . -byte_classes +matches +[ +o +] +. +len +( ) -? -; -writeln -! +} +fn +next_state ( -f -" -memory -usage +& +self +current : -{ +S +input : -? -} -" +u8 +) +- +> +S +{ +let +input += self . -memory_usage +repr ( ) +. +byte_classes +. +get +( +input ) -? ; -writeln -! +let +o += +current +. +to_usize ( -f -" -) -" ) -? ++ +input +as +usize ; -Ok -( +self +. +repr ( ) -) +. +trans +[ +o +] } } # @@ -1661,1831 +2333,1578 @@ Debug ] pub struct -Builder +Repr +< +S +> { -noncontiguous +match_kind : -noncontiguous +MatchKind +anchored : +bool +premultiplied : -Builder -start_kind +bool +start_id : -StartKind -byte_classes +S +max_pattern_len : -bool -} -impl -Default -for -Builder -{ -fn -default -( -) -- -> -Builder -{ -Builder -{ -noncontiguous +usize +pattern_count : -noncontiguous +usize +state_count +: +usize +max_match : +S +heap_bytes : -Builder +usize +prefilter : +Option +< +PrefilterObj +> +byte_classes : -new +ByteClasses +trans +: +Vec +< +S +> +matches +: +Vec +< +Vec +< ( +PatternID +PatternLength ) -start_kind -: -StartKind -: -: -Unanchored -byte_classes -: -true -} -} +> +> } impl -Builder +< +S +: +StateID +> +Repr +< +S +> { -pub fn -new +alphabet_len ( +& +self ) - > -Builder +usize { -Builder -: -: -default +self +. +byte_classes +. +alphabet_len ( ) } -pub fn -build -< -I -P -> +is_match_state ( & self -patterns +id : -I +S ) - > -Result -< -DFA -BuildError -> -where -I -: -IntoIterator -< -Item -= -P -> -P -: -AsRef -< -[ -u8 -] -> +bool { -let -nnfa +id +< = self . -noncontiguous -. -build +max_match +& +& +id +> +dead_id ( -patterns ) -? -; -self -. -build_from_noncontiguous +} +fn +is_match_or_dead_state ( & -nnfa +self +id +: +S ) +- +> +bool +{ +id +< += +self +. +max_match } -pub fn -build_from_noncontiguous +get_match ( & self -nnfa +id : -& -noncontiguous +S +match_index : +usize +end : -NFA +usize ) - > -Result +Option < -DFA -BuildError +Match > { -debug -! -( -" -building -DFA -" -) -; -let -byte_classes -= if +id +> self . -byte_classes -{ -nnfa -. -byte_classes -( -) -. -clone -( -) -} -else +max_match { -ByteClasses -: -: -singletons -( -) -} +return +None ; -let -state_len -= -match +} self . -start_kind -{ -StartKind -: -: -Unanchored -| -StartKind -: -: -Anchored -= -> -nnfa +matches . -states +get ( -) +id . -len +to_usize ( ) -StartKind -: -: -Both -= -> -{ -nnfa -. -states -( ) . -len +and_then ( -) +| +m +| +m . -checked_mul +get ( -2 +match_index ) -. -unwrap -( ) . -checked_sub +map ( -4 -) -. -unwrap +| +& ( +id +len ) +| +Match +{ +pattern +: +id +len +end } +) } -; -let -trans_len -= -match -state_len -. -checked_shl -( -byte_classes -. -stride2 +fn +match_count ( +& +self +id +: +S ) +- +> +usize +{ +self . -as_u32 +matches +[ +id +. +to_usize ( ) -) -{ -Some +] +. +len ( -trans_len ) -= -> -trans_len -None -= -> -{ -return -Err -( -BuildError -: -: -state_id_overflow +} +fn +next_state ( -StateID +& +self +from : +S +byte : -MAX -. -as_u64 -( +u8 ) -usize -: -: -MAX +- +> +S +{ +let +alphabet_len += +self . -as_u64 +alphabet_len ( ) -) -) -} -} ; -StateID -: -: -new -( -trans_len +let +byte += +self . -checked_sub -( byte_classes . -stride +get ( +byte ) -) +; +self +. +trans +[ +from . -unwrap +to_usize ( ) -) -. -map_err +* +alphabet_len ++ +byte +as +usize +] +} +fn +set_next_state ( -| -e -| -{ -BuildError -: +& +mut +self +from : -state_id_overflow -( -StateID +S +byte : +u8 +to : -MAX -. -as_u64 -( +S ) -e +{ +let +alphabet_len += +self . -attempted +alphabet_len ( ) -) -} -) -? ; let -num_match_states +byte = -match self . -start_kind -{ -StartKind -: -: -Unanchored -| -StartKind -: -: -Anchored -= -> -{ -nnfa +byte_classes . -special +get ( +byte ) +; +self . -max_match_id +trans +[ +from . -as_usize +to_usize ( ) -. -checked_sub +* +alphabet_len ++ +byte +as +usize +] += +to +; +} +fn +swap_states ( -1 +& +mut +self +id1 +: +S +id2 +: +S ) -. -unwrap +{ +assert +! ( +! +self +. +premultiplied +" +can +' +t +swap +states +in +premultiplied +DFA +" ) -} -StartKind -: -: -Both +; +let +o1 = -> -nnfa +id1 . -special +to_usize ( ) +* +self . -max_match_id -. -as_usize +alphabet_len ( ) +; +let +o2 += +id2 . -checked_sub +to_usize ( -1 ) +* +self . -unwrap +alphabet_len ( ) +; +for +b +in +0 . -checked_mul -( -2 -) . -unwrap +self +. +alphabet_len ( ) -} -; -let -mut -dfa -= -DFA { +self +. trans -: -vec -! -[ -DFA -: -: -DEAD -; -trans_len -] -matches -: -vec -! -[ -vec -! -[ -] -; -num_match_states -] -matches_memory_usage -: -0 -pattern_lens -: -nnfa . -pattern_lens_raw +swap ( +o1 ++ +b +o2 ++ +b ) +; +} +self . -to_vec -( -) -prefilter -: -nnfa +matches . -prefilter +swap ( -) +id1 . -map +to_usize ( -| -p -| -p +) +id2 . -clone +to_usize ( ) ) -match_kind -: -nnfa -. -match_kind +; +} +fn +shuffle_match_states ( +& +mut +self ) -state_len -alphabet_len -: -byte_classes -. -alphabet_len +{ +assert +! ( -) -stride2 -: -byte_classes +! +self . -stride2 -( +premultiplied +" +cannot +shuffle +match +states +of +premultiplied +DFA +" ) -byte_classes -min_pattern_len -: -nnfa +; +if +self +. +state_count +< += +1 +{ +return +; +} +let +mut +first_non_match += +self . -min_pattern_len +start_id +. +to_usize ( ) -max_pattern_len -: -nnfa +; +while +first_non_match +< +self . -max_pattern_len +state_count +& +& +self +. +matches +[ +first_non_match +] +. +len ( ) -special -: -Special -: +> +0 +{ +first_non_match ++ += +1 +; +} +let +mut +swaps : -zero +Vec +< +S +> += +vec +! +[ +fail_id ( ) -} ; -match self . -start_kind -{ -StartKind -: -: -Both +state_count +] +; +let +mut +cur = -> -{ self . -finish_build_both_starts -( -nnfa -& -mut -dfa -) +state_count +- +1 ; -} -StartKind -: -: -Unanchored -= +while +cur > +first_non_match { +if self . -finish_build_one_start +matches +[ +cur +] +. +len ( -Anchored -: -: -No -nnfa -& -mut -dfa ) -; -} -StartKind -: -: -Anchored -= > +0 { self . -finish_build_one_start +swap_states ( -Anchored +S : : -Yes -nnfa -& -mut -dfa -) -} -} -debug -! +from_usize ( -" -DFA -built -< -states -: -{ -: -? -} -size -: -{ -: -? -} -\ -alphabet -len -: -{ -: -? -} -stride +cur +) +S : -{ : -? -} -> -" -dfa -. -state_len -dfa -. -memory_usage -( -) -dfa -. -byte_classes -. -alphabet_len -( -) -dfa -. -byte_classes -. -stride +from_usize ( +first_non_match ) ) ; -dfa -. -trans -. -shrink_to_fit +swaps +[ +cur +] += +S +: +: +from_usize ( +first_non_match ) ; -dfa -. -pattern_lens -. -shrink_to_fit +swaps +[ +first_non_match +] += +S +: +: +from_usize ( +cur ) ; -dfa +first_non_match ++ += +1 +; +while +first_non_match +< +cur +& +& +self . matches +[ +first_non_match +] . -shrink_to_fit +len ( ) +> +0 +{ +first_non_match ++ += +1 ; -Ok -( -dfa -) } -fn -finish_build_one_start +} +cur +- += +1 +; +} +for +id +in ( -& +0 +. +. self -anchored -: -Anchored -nnfa -: -& -noncontiguous -: +. +state_count +) +. +map +( +S : -NFA -dfa : -& -mut -DFA +from_usize ) { let -stride2 +alphabet_len = -dfa +self . -stride2 +alphabet_len +( +) ; let -old2new +offset = -| -oldsid -: -StateID -| -{ -StateID -: -: -new_unchecked -( -oldsid +id . -as_usize +to_usize ( ) -< -< -stride2 -) -} +* +alphabet_len ; for -( -oldsid -state -) +next in -nnfa +& +mut +self . -states -( -) +trans +[ +offset . -iter +. +offset ++ +alphabet_len +] +{ +if +swaps +[ +next +. +to_usize ( ) -. -with_state_ids +] +! += +fail_id ( ) { -let -newsid +* +next = -old2new +swaps +[ +next +. +to_usize ( -oldsid ) +] ; +} +} +} if -state +swaps +[ +self . -is_match +start_id +. +to_usize +( +) +] +! += +fail_id ( ) { -dfa +self . -set_matches -( -newsid -nnfa +start_id += +swaps +[ +self . -iter_matches +start_id +. +to_usize ( -oldsid ) +] +; +} +self +. +max_match += +S +: +: +from_usize +( +first_non_match +- +1 ) ; } -sparse_iter +fn +premultiply ( -nnfa -oldsid & -dfa -. -byte_classes -| -byte -class mut -oldnextsid -| +self +) +- +> +Result +< +( +) +> { if -oldnextsid -= +self +. +premultiplied +| +| +self +. +state_count +< = -noncontiguous -: -: -NFA -: -: -FAIL +1 { -if -anchored -. -is_anchored +return +Ok +( ( ) -{ -oldnextsid -= -noncontiguous -: -: -NFA -: -: -DEAD +) ; } -else -{ -oldnextsid +let +alpha_len = -nnfa +self . -next_state +alphabet_len ( -Anchored +) +; +premultiply_overflow_error +( +S : : -No -state -. -fail +from_usize ( +self +. +state_count +- +1 ) -byte +alpha_len ) +? ; -} -} -dfa +for +id +in +( +2 . -trans -[ -newsid . -as_usize -( +self +. +state_count ) -+ -usize +. +map +( +S : : -from -( -class -) -] -= -old2new -( -oldnextsid -) -; -} +from_usize ) -; -} +{ let -old +offset = -nnfa +id . -special +to_usize ( ) +* +alpha_len ; -let -new -= +for +next +in & mut -dfa +self +. +trans +[ +offset . -special -; -new . -max_special_id +offset ++ +alpha_len +] +{ +if +* +next += = -old2new +dead_id ( -old -. -max_special_id ) +{ +continue ; -new -. -max_match_id +} +* +next = -old2new +S +: +: +from_usize ( -old -. -max_match_id -) -; -if -anchored +next . -is_anchored +to_usize ( ) -{ -new +* +alpha_len +) +; +} +} +self . -start_unanchored_id +premultiplied = -DFA -: -: -DEAD +true ; -new +self . -start_anchored_id +start_id = -old2new +S +: +: +from_usize ( -old +self . -start_anchored_id -) -; -} -else -{ -new +start_id . -start_unanchored_id -= -old2new +to_usize ( -old -. -start_unanchored_id +) +* +alpha_len ) ; -new +self . -start_anchored_id +max_match = -DFA +S : : -DEAD +from_usize +( +self +. +max_match +. +to_usize +( +) +* +alpha_len +) ; -} +Ok +( +( +) +) } fn -finish_build_both_starts +calculate_size ( & -self -nnfa -: -& -noncontiguous -: -: -NFA -dfa -: -& mut -DFA +self ) { let -stride2 -= -dfa -. -stride2 -; -let -stride -= -1 -< -< -stride2 -; -let mut -remap_unanchored +size = -vec -! -[ -DFA -: -: -DEAD -; -nnfa -. -states ( -) +self +. +trans . len ( ) -] -; -let -mut -remap_anchored -= -vec -! -[ -DFA +* +size_of : : -DEAD -; -nnfa -. -states +< +S +> ( ) +) ++ +( +self +. +matches . len ( ) -] -; -let -mut -is_anchored -= -vec -! -[ -false -; -dfa -. -state_len -] -; -let -mut -newsid -= -DFA -: -: -DEAD -; -let -next_dfa_id -= -| -sid -: -StateID -| -StateID +* +size_of : : -new_unchecked +< +Vec +< ( -sid -. -as_usize +PatternID +PatternLength +) +> +> ( ) -+ -stride ) ; for -( -oldsid -state -) +state_matches in -nnfa -. -states -( -) +& +self . -iter -( -) +matches +{ +size ++ += +state_matches . -with_state_ids +len ( ) -{ -if -oldsid -= -= -noncontiguous -: -: -NFA -: -: -DEAD -| -| -oldsid -= -= -noncontiguous -: -: -NFA +* +size_of : : -FAIL -{ -remap_unanchored -[ -oldsid -] -= -newsid -; -remap_anchored -[ -oldsid -] -= -newsid -; -newsid -= -next_dfa_id +< +( +PatternID +PatternLength +) +> ( -newsid ) ; } -else -if -oldsid -= +size ++ = -nnfa +self +. +prefilter . -special +as_ref ( ) . -start_unanchored_id +map_or +( +0 | +p | -oldsid -= -= -nnfa +p . -special +as_ref ( ) . -start_anchored_id -{ -if -oldsid -= -= -nnfa -. -special +heap_bytes ( ) +) +; +self . -start_unanchored_id -{ -remap_unanchored -[ -oldsid -] +heap_bytes = -newsid +size ; -remap_anchored +} +} +# [ -oldsid +derive +( +Clone +Debug +) ] -= -DFA +pub +struct +Builder +{ +premultiply : +bool +byte_classes : -DEAD -; +bool } -else +impl +Builder { -remap_unanchored -[ -oldsid -] -= -DFA +pub +fn +new +( +) +- +> +Builder +{ +Builder +{ +premultiply : +true +byte_classes : -DEAD -; -remap_anchored -[ -oldsid -] -= -newsid -; -is_anchored -[ -newsid -. -as_usize +true +} +} +pub +fn +build +< +S +: +StateID +> ( +& +self +nfa +: +& +NFA +< +S +> ) +- > +Result +< +DFA +< +S > -stride2 -] +> +{ +let +byte_classes = -true -; -} if -state +self . -is_match -( -) +byte_classes { -dfa +nfa . -set_matches +byte_classes ( -newsid -nnfa +) . -iter_matches +clone ( -oldsid -) ) -; } -sparse_iter -( -nnfa -oldsid -& -dfa -. -byte_classes -| -_ -class -oldnextsid -| +else { -let -class -= -usize +ByteClasses : : -from +singletons ( -class ) +} ; -if -oldnextsid -= +let +alphabet_len = -noncontiguous -: -: -NFA -: -: -FAIL -{ -dfa -. -trans -[ -newsid +byte_classes . -as_usize +alphabet_len ( ) -+ -class -] -= -DFA -: -: -DEAD ; -} -else -{ -dfa -. +let trans -[ -newsid -. -as_usize -( -) -+ -class -] = -oldnextsid -; -} -} -) -; -newsid -= -next_dfa_id +vec +! +[ +fail_id ( -newsid ) ; -} -else -{ -let -unewsid -= -newsid -; -newsid -= -next_dfa_id +alphabet_len +* +nfa +. +state_len ( -newsid ) +] ; let -anewsid -= -newsid -; -newsid +matches = -next_dfa_id -( -newsid -) -; -remap_unanchored +vec +! [ -oldsid -] -= -unewsid -; -remap_anchored +vec +! [ -oldsid ] -= -anewsid ; -is_anchored -[ -anewsid +nfa . -as_usize +state_len ( ) -> -> -stride2 ] -= -true ; -if -state -. -is_match -( -) +let +mut +repr += +Repr { -dfa -. -set_matches -( -unewsid -nnfa +match_kind +: +nfa . -iter_matches +match_kind ( -oldsid -) ) -; -dfa . -set_matches +clone ( -anewsid -nnfa +) +anchored +: +nfa . -iter_matches +anchored ( -oldsid ) -) -; -} -sparse_iter -( -nnfa -oldsid -& -dfa -. -byte_classes -| -byte -class -oldnextsid -| -{ -let -class -= -usize +premultiplied : +false +start_id : -from +nfa +. +start_state ( -class ) -; -if -oldnextsid -= -= -noncontiguous -: -: -NFA -: +max_pattern_len : -FAIL -{ -dfa +nfa . -trans -[ -unewsid +max_pattern_len +( +) +pattern_count +: +nfa . -as_usize +pattern_count ( ) -+ -class -] -= -nnfa +state_count +: +nfa . -next_state +state_len ( -Anchored +) +max_match +: +fail_id +( +) +heap_bytes : +0 +prefilter : -No -state +nfa . -fail +prefilter_obj ( ) -byte -) -; -} -else -{ -dfa . -trans -[ -unewsid +map +( +| +p +| +p . -as_usize +clone ( ) -+ -class -] -= -oldnextsid -; -dfa -. -trans -[ -anewsid +) +byte_classes +: +byte_classes . -as_usize +clone ( ) -+ -class -] -= -oldnextsid -; -} +trans +matches } -) ; -} -} for -i +id in +( 0 . . -dfa +nfa . state_len -{ -let -sid -= -i -< -< -stride2 -; -if -is_anchored -[ -i -] -{ -for -next -in -dfa -. -trans -[ -sid -. -. -] -[ -. -. -stride -] +( +) +) . -iter_mut +map ( +S +: +: +from_usize ) { -* -next -= -remap_anchored -[ -* -next -] -; -} -} -else -{ -for -next -in -dfa +repr . -trans +matches [ -sid -. +id . +to_usize +( +) ] -[ . +extend_from_slice +( +nfa . -stride -] -. -iter_mut +matches ( +id +) ) -{ -* -next -= -remap_unanchored -[ -* -next -] ; -} -} -} let -old +fail = -nnfa +nfa . -special +failure_transition ( +id ) ; -let -new -= +nfa +. +iter_all_transitions +( & +byte_classes +id +| +b mut -dfa -. -special -; -new -. -max_special_id +next +| +{ +if +next = -remap_anchored -[ -old -. -max_special_id -] -; -new -. -max_match_id = -remap_anchored -[ -old -. -max_match_id -] -; -new -. -start_unanchored_id +fail_id +( +) +{ +next = -remap_unanchored -[ -old -. -start_unanchored_id -] +nfa_next_state_memoized +( +nfa +& +repr +id +fail +b +) ; -new -. -start_anchored_id -= -remap_anchored -[ -old +} +repr . -start_anchored_id -] +set_next_state +( +id +b +next +) ; } -pub -fn -match_kind +) +; +} +repr +. +shuffle_match_states ( -& -mut -self -kind -: -MatchKind ) -- -> -& -mut -Builder -{ +; +repr +. +calculate_size +( +) +; +if self . -noncontiguous +premultiply +{ +repr . -match_kind +premultiply ( -kind ) +? ; -self +if +byte_classes +. +is_singleton +( +) +{ +Ok +( +DFA +: +: +Premultiplied +( +Premultiplied +( +repr +) +) +) } -pub -fn -ascii_case_insensitive +else +{ +Ok ( -& -mut -self -yes +DFA : -bool +: +PremultipliedByteClass +( +PremultipliedByteClass +( +repr ) -- -> -& -mut -Builder +) +) +} +} +else { -self -. -noncontiguous +if +byte_classes . -ascii_case_insensitive +is_singleton ( -yes ) -; -self -} -pub -fn -prefilter +{ +Ok ( -& -mut -self -yes +DFA : -bool +: +Standard +( +Standard +( +repr ) -- -> -& -mut -Builder +) +) +} +else { -self -. -noncontiguous -. -prefilter +Ok ( -yes +DFA +: +: +ByteClass +( +ByteClass +( +repr ) -; -self +) +) +} +} } pub fn -start_kind +byte_classes ( & mut self -kind +yes : -StartKind +bool ) - > @@ -3495,15 +3914,15 @@ Builder { self . -start_kind +byte_classes = -kind +yes ; self } pub fn -byte_classes +premultiply ( & mut @@ -3520,7 +3939,7 @@ Builder { self . -byte_classes +premultiply = yes ; @@ -3528,240 +3947,90 @@ self } } fn -sparse_iter +nfa_next_state_memoized < -F +S : -FnMut -( -u8 -u8 StateID -) > ( -nnfa +nfa : & -noncontiguous -: -: NFA -oldsid -: -StateID -classes +< +S +> +dfa : & -ByteClasses -mut -f +Repr +< +S +> +populating : -F -) -{ -let -mut -prev_class -= -None -; -let +S mut -byte -= -0usize -; -for -t -in -nnfa -. -iter_trans -( -oldsid -) -{ -while -byte -< -usize +current : +S +input : -from -( -t -. -byte -( -) +u8 ) +- +> +S +{ +loop { -let -rep -= -byte -. -as_u8 -( -) -; -let -class -= -classes -. -get -( -rep -) -; -byte -+ -= -1 -; if -prev_class -! -= -Some -( -class -) +current +< +populating { -f -( -rep -class -noncontiguous -: -: -NFA -: -: -FAIL -) -; -prev_class -= -Some -( -class -) -; -} -} -let -rep -= -t +return +dfa . -byte +next_state ( +current +input ) ; +} let -class +next = -classes +nfa . -get +next_state ( -rep +current +input ) ; -byte -+ -= -1 -; if -prev_class +next ! = -Some +fail_id ( -class ) { -f -( -rep -class -t -. +return next -( -) -) -; -prev_class -= -Some -( -class -) ; } -} -for -b -in -byte -. -. +current = -255 -{ -let -rep -= -b -. -as_u8 -( -) -; -let -class -= -classes +nfa . -get -( -rep -) -; -if -prev_class -! -= -Some -( -class -) -{ -f -( -rep -class -noncontiguous -: -: -NFA -: -: -FAIL -) -; -prev_class -= -Some +failure_transition ( -class +current ) ; } } -} diff --git a/third_party/rust/aho-corasick/src/error.rs b/third_party/rust/aho-corasick/src/error.rs new file mode 100644 index 0000000000000..7f664c0eefb7e --- /dev/null +++ b/third_party/rust/aho-corasick/src/error.rs @@ -0,0 +1,417 @@ +use +std +: +: +error +; +use +std +: +: +fmt +; +use +std +: +: +result +; +pub +type +Result +< +T +> += +result +: +: +Result +< +T +Error +> +; +# +[ +derive +( +Clone +Debug +) +] +pub +struct +Error +{ +kind +: +ErrorKind +} +# +[ +derive +( +Clone +Debug +) +] +pub +enum +ErrorKind +{ +StateIDOverflow +{ +max +: +usize +} +PremultiplyOverflow +{ +max +: +usize +requested_max +: +usize +} +} +impl +Error +{ +pub +fn +kind +( +& +self +) +- +> +& +ErrorKind +{ +& +self +. +kind +} +pub +( +crate +) +fn +state_id_overflow +( +max +: +usize +) +- +> +Error +{ +Error +{ +kind +: +ErrorKind +: +: +StateIDOverflow +{ +max +} +} +} +pub +( +crate +) +fn +premultiply_overflow +( +max +: +usize +requested_max +: +usize +) +- +> +Error +{ +Error +{ +kind +: +ErrorKind +: +: +PremultiplyOverflow +{ +max +requested_max +} +} +} +} +impl +error +: +: +Error +for +Error +{ +fn +description +( +& +self +) +- +> +& +str +{ +match +self +. +kind +{ +ErrorKind +: +: +StateIDOverflow +{ +. +. +} += +> +{ +" +state +id +representation +too +small +" +} +ErrorKind +: +: +PremultiplyOverflow +{ +. +. +} += +> +{ +" +state +id +representation +too +small +for +premultiplication +" +} +} +} +} +impl +fmt +: +: +Display +for +Error +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +match +self +. +kind +{ +ErrorKind +: +: +StateIDOverflow +{ +max +} += +> +write +! +( +f +" +building +the +automaton +failed +because +it +required +\ +building +more +states +that +can +be +identified +where +the +\ +maximum +ID +for +the +chosen +representation +is +{ +} +" +max +) +ErrorKind +: +: +PremultiplyOverflow +{ +max +requested_max +} += +> +{ +if +max += += +requested_max +{ +write +! +( +f +" +premultiplication +of +states +requires +the +ability +to +\ +represent +a +state +ID +greater +than +what +can +fit +on +\ +this +platform +' +s +usize +which +is +{ +} +" +: +: +std +: +: +usize +: +: +MAX +) +} +else +{ +write +! +( +f +" +premultiplication +of +states +requires +the +ability +to +\ +represent +at +least +a +state +ID +of +{ +} +but +the +chosen +\ +representation +only +permits +a +maximum +state +ID +of +{ +} +" +requested_max +max +) +} +} +} +} +} diff --git a/third_party/rust/aho-corasick/src/lib.rs b/third_party/rust/aho-corasick/src/lib.rs index fb3740496a44a..1ef7bac1778f7 100644 --- a/third_party/rust/aho-corasick/src/lib.rs +++ b/third_party/rust/aho-corasick/src/lib.rs @@ -1,50 +1,17 @@ # ! [ -no_std -] -# -! -[ deny ( missing_docs ) ] # -! -[ -deny -( -rustdoc -: -: -broken_intra_doc_links -) -] -# -! -[ -cfg_attr -( -docsrs -feature -( -doc_auto_cfg -) -) -] -extern -crate -alloc -; -# [ cfg ( -any +not ( -test feature = " @@ -53,122 +20,83 @@ std ) ) ] -extern -crate -std -; -# -[ -cfg -( -doctest -) -] -doc_comment -: -: -doctest +compile_error ! ( " -. -. -/ -README -. -md -" -) -; -# -[ -cfg -( -feature -= -" std +feature +is +currently +required +to +build +this +crate " ) -] -pub -use -crate -: -: -ahocorasick -: -: -StreamFindIter ; pub use crate : : -{ ahocorasick : : { AhoCorasick AhoCorasickBuilder -AhoCorasickKind FindIter FindOverlappingIter +MatchKind +StreamFindIter } -util +; +pub +use +crate : : -{ error : : { -BuildError -MatchError -MatchErrorKind +Error +ErrorKind } -primitives +; +pub +use +crate : : -{ -PatternID -PatternIDError -} -search +state_id : : -{ -Anchored -Input -Match -MatchKind -Span -StartKind -} -} -} -; -# -[ -macro_use -] -mod -macros +StateID ; mod ahocorasick ; -pub mod automaton ; -pub +mod +buffer +; +mod +byte_frequencies +; +mod +classes +; mod dfa ; -pub +mod +error +; mod nfa ; @@ -176,6 +104,12 @@ pub mod packed ; +mod +prefilter +; +mod +state_id +; # [ cfg @@ -186,389 +120,206 @@ test mod tests ; -pub -( -crate -) -mod -util -; # [ -cfg +derive ( -test +Clone +Debug +Eq +Hash +PartialEq ) ] -mod -testoibits +pub +struct +Match { -use -std +pattern : +usize +len : -panic +usize +end : -: -{ -RefUnwindSafe -UnwindSafe +usize } -; -use -super -: -: -* -; +impl +Match +{ +# +[ +inline +] +pub fn -assert_all -< -T -: -Send -+ -Sync -+ -UnwindSafe -+ -RefUnwindSafe -> +pattern ( +& +self ) +- +> +usize { +self +. +pattern } # [ -test +inline ] +pub fn -oibits_main -( -) -{ -assert_all -: -: -< -AhoCorasick -> -( -) -; -assert_all -: -: -< -AhoCorasickBuilder -> -( -) -; -assert_all -: -: -< -AhoCorasickKind -> -( -) -; -assert_all -: -: -< -FindIter -> -( -) -; -assert_all -: -: -< -FindOverlappingIter -> -( -) -; -assert_all -: -: -< -BuildError -> -( -) -; -assert_all -: -: -< -MatchError -> -( -) -; -assert_all -: -: -< -MatchErrorKind -> -( -) -; -assert_all -: -: -< -Anchored -> +start ( +& +self ) -; -assert_all -: -: -< -Input -> -( -) -; -assert_all -: -: -< -Match -> -( -) -; -assert_all -: -: -< -MatchKind -> -( -) -; -assert_all -: -: -< -Span +- > +usize +{ +self +. +end +- +self +. +len +} +# +[ +inline +] +pub +fn +end ( +& +self ) -; -assert_all -: -: -< -StartKind +- > -( -) -; +usize +{ +self +. +end } # [ -test +inline ] +pub fn -oibits_automaton +len ( +& +self ) +- +> +usize { -use -crate -: -: -{ -automaton -dfa -: -: -DFA +self +. +len } -; -assert_all -: -: -< -automaton -: -: -FindIter -< -DFA -> -> +# +[ +inline +] +pub +fn +is_empty ( +& +self ) -; -assert_all -: -: -< -automaton -: -: -FindOverlappingIter -< -DFA +- > -> -( -) -; +bool +{ +self +. +len += += +0 +} # [ -cfg -( -feature -= -" -std -" -) +inline ] -assert_all -: -: -< -automaton -: -: -StreamFindIter -< -DFA -std -: -: -io -: -: -Stdin -> -> +fn +increment ( -) -; -assert_all +& +self +by : -: -< -automaton -: -: -OverlappingState -> -( +usize ) -; -assert_all -: -: -< -automaton -: -: -Prefilter +- > -( -) -; -assert_all -: +Match +{ +Match +{ +pattern : -< -automaton +self +. +pattern +len : +self +. +len +end : -Candidate -> -( -) -; +self +. +end ++ +by +} } # [ -test +inline ] fn -oibits_packed -( -) -{ -use -crate -: -: -packed -; -assert_all -: -: -< -packed -: -: -Config -> -( -) -; -assert_all -: -: -< -packed -: -: -Builder -> +from_span ( -) -; -assert_all +id : +usize +start : -< -packed -: +usize +end : -Searcher -> -( +usize ) -; -assert_all -: -: -< -packed -: -: -FindIter +- > -( -) -; -assert_all -: -: -< -packed +Match +{ +Match +{ +pattern : +id +len : -MatchKind -> -( -) -; +end +- +start +end +} } } diff --git a/third_party/rust/aho-corasick/src/macros.rs b/third_party/rust/aho-corasick/src/macros.rs deleted file mode 100644 index 61ad29abb5f57..0000000000000 --- a/third_party/rust/aho-corasick/src/macros.rs +++ /dev/null @@ -1,106 +0,0 @@ -# -! -[ -allow -( -unused_macros -) -] -macro_rules -! -log -{ -( -( -tt -: -tt -) -* -) -= -> -{ -# -[ -cfg -( -feature -= -" -logging -" -) -] -{ -( -tt -) -* -} -} -} -macro_rules -! -debug -{ -( -( -tt -: -tt -) -* -) -= -> -{ -log -! -( -log -: -: -debug -! -( -( -tt -) -* -) -) -} -} -macro_rules -! -trace -{ -( -( -tt -: -tt -) -* -) -= -> -{ -log -! -( -log -: -: -trace -! -( -( -tt -) -* -) -) -} -} diff --git a/third_party/rust/regex-automata/src/nfa/thompson/nfa.rs b/third_party/rust/aho-corasick/src/nfa.rs similarity index 50% rename from third_party/rust/regex-automata/src/nfa/thompson/nfa.rs rename to third_party/rust/aho-corasick/src/nfa.rs index ed782fe4b6c35..a65243f58f26d 100644 --- a/third_party/rust/regex-automata/src/nfa/thompson/nfa.rs +++ b/third_party/rust/aho-corasick/src/nfa.rs @@ -1,130 +1,132 @@ use -core +std +: +: +cmp +; +use +std +: +: +collections : : { -fmt -mem +BTreeSet +VecDeque } ; use -alloc +std : : -{ -boxed +fmt +; +use +std : : -Box -format -string +mem : : -String -sync +size_of +; +use +std : : -Arc -vec -vec +ops : : -Vec +{ +Index +IndexMut } ; -# -[ -cfg -( -feature -= -" -syntax -" -) -] use crate : : -nfa -: -: -thompson +ahocorasick : : -{ -compiler +MatchKind +; +use +crate : : -{ -Compiler -Config -} -error +automaton : : -BuildError -} +Automaton ; use crate : : -{ -nfa +classes : : -thompson +{ +ByteClassBuilder +ByteClasses +} +; +use +crate : : -builder +error : : -Builder -util +Result +; +use +crate : : -{ -alphabet +prefilter : : { self -ByteClassSet -ByteClasses -} -captures -: -: -{ -GroupInfo -GroupInfoError +opposite_ascii_case +Prefilter +PrefilterObj } -look +; +use +crate : : -{ -Look -LookMatcher -LookSet -} -primitives +state_id : : { -IteratorIndexExt -PatternID -PatternIDIter -SmallIndex +dead_id +fail_id +usize_to_state_id StateID } -sparse_set +; +use +crate : : -SparseSet -} -} +Match +; +pub +type +PatternID += +usize +; +pub +type +PatternLength += +usize ; # [ @@ -136,755 +138,746 @@ Clone pub struct NFA -( -Arc < -Inner +S > -) -; +{ +match_kind +: +MatchKind +start_id +: +S +max_pattern_len +: +usize +pattern_count +: +usize +heap_bytes +: +usize +prefilter +: +Option +< +PrefilterObj +> +anchored +: +bool +byte_classes +: +ByteClasses +states +: +Vec +< +State +< +S +> +> +} impl +< +S +: +StateID +> NFA +< +S +> { -# -[ -cfg -( -feature -= -" -syntax -" -) -] pub fn -new +byte_classes ( -pattern -: & -str +self ) - > -Result -< -NFA -BuildError -> +& +ByteClasses { -NFA -: -: -compiler -( -) +& +self . -build -( -pattern -) +byte_classes } -# -[ -cfg -( -feature -= -" -syntax -" -) -] pub fn -new_many -< -P -: -AsRef -< -str -> -> +prefilter_obj ( -patterns -: & -[ -P -] +self ) - > -Result +Option < -NFA -BuildError +& +PrefilterObj > { -NFA -: -: -compiler -( -) +self +. +prefilter . -build_many +as_ref ( -patterns ) } pub fn -always_match +heap_bytes ( +& +self ) - > -NFA +usize { -let -mut -builder -= -Builder -: -: -new -( -) -; -let -pid -= -builder +self . -start_pattern -( -) +heap_bytes ++ +self . -unwrap -( -) -; -assert_eq -! -( -pid +prefilter . -as_usize +as_ref ( ) -0 -) -; -let -start_id -= -builder . -add_capture_start +map_or ( -StateID -: -: -ZERO 0 -None -) +| +p +| +p . -unwrap +as_ref ( ) -; -let -end_id -= -builder . -add_capture_end +heap_bytes ( -StateID -: -: -ZERO -0 ) -. -unwrap +) +} +pub +fn +max_pattern_len ( +& +self ) -; -let -match_id -= -builder -. -add_match -( -) -. -unwrap -( -) -; -builder +- +> +usize +{ +self . -patch +max_pattern_len +} +pub +fn +pattern_count ( -start_id -end_id +& +self ) +- +> +usize +{ +self . -unwrap +pattern_count +} +pub +fn +state_len ( +& +self ) -; -builder +- +> +usize +{ +self . -patch -( -end_id -match_id -) +states . -unwrap +len ( ) -; -let -pid -= -builder -. -finish_pattern +} +pub +fn +matches ( -start_id +& +self +id +: +S ) -. -unwrap +- +> +& +[ ( +PatternID +PatternLength ) -; -assert_eq -! -( -pid +] +{ +& +self . -as_usize -( -) -0 -) -; -builder +states +[ +id . -build +to_usize ( -start_id -start_id ) +] . -unwrap -( -) +matches } pub fn -never_match +iter_all_transitions +< +F +: +FnMut ( +u8 +S ) -- > -NFA -{ -let -mut -builder -= -Builder +( +& +self +byte_classes : +& +ByteClasses +id : -new -( +S +f +: +F ) -; -let -sid -= -builder +{ +self . -add_fail -( -) +states +[ +id . -unwrap +to_usize ( ) -; -builder +] . -build -( -sid -sid -) +trans . -unwrap +iter_all ( +byte_classes +f ) +; } -# -[ -cfg -( -feature -= -" -syntax -" -) -] pub fn -config +failure_transition ( +& +self +id +: +S ) - > -Config +S { -Config -: -: -new -( -) -} -# +self +. +states [ -cfg +id +. +to_usize ( -feature -= -" -syntax -" ) ] +. +fail +} pub fn -compiler +next_state ( +& +self +current +: +S +input +: +u8 ) - > -Compiler +S { -Compiler -: -: -new +self +. +states +[ +current +. +to_usize ( ) +] +. +next_state +( +input +) } -pub fn -patterns +state ( & self +id +: +S ) - > -PatternIter +& +State < -' -_ +S > { -PatternIter -{ -it -: -PatternID -: -: -iter -( +& self . -pattern_len +states +[ +id +. +to_usize ( ) -) -_marker -: -core -: -: -marker -: -: -PhantomData -} -} -# -[ -inline ] -pub +} fn -pattern_len +state_mut ( & +mut self +id +: +S ) - > -usize +& +mut +State +< +S +> { +& +mut self . -0 -. -start_pattern +states +[ +id . -len +to_usize ( ) -} -# -[ -inline ] -pub +} fn -start_anchored +start ( & self ) - > -StateID +& +State +< +S +> { self . -0 -. -start_anchored -} -# -[ -inline -] -pub -fn -start_unanchored +state ( -& self -) -- -> -StateID -{ -self -. -0 . -start_unanchored +start_id +) } -# -[ -inline -] -pub fn -start_pattern +start_mut ( & +mut self -pid -: -PatternID ) - > -Option +& +mut +State < -StateID +S > { +let +id += self . -0 -. -start_pattern -. -get -( -pid -. -as_usize -( -) -) +start_id +; +self . -copied +state_mut ( +id ) } -# -[ -inline -] -pub -( -crate -) fn -byte_class_set +iter_transitions_mut ( & +mut self +id +: +S ) - > -& -ByteClassSet +IterTransitionsMut +< +' +_ +S +> { -& -self -. -0 -. -byte_class_set -} -# -[ -inline -] -pub -fn -byte_classes +IterTransitionsMut +: +: +new ( -& self +id ) -- -> -& -ByteClasses -{ -& -self -. -0 -. -byte_classes } -# -[ -inline -] -pub fn -state +copy_matches ( & +mut self -id +src : -StateID +S +dst +: +S ) -- -> -& -State { +let +( +src +dst +) += +get_two_mut +( & +mut self . states +src +. +to_usize ( ) -[ -id -] -} -# -[ -inline -] -pub -fn -states +dst +. +to_usize ( -& -self ) -- -> -& -[ -State -] -{ -& -self +) +; +dst . -0 +matches . -states +extend_from_slice +( +& +src +. +matches +) +; } -# -[ -inline -] -pub fn -group_info +copy_empty_matches ( & +mut self +dst +: +S ) -- -> -& -GroupInfo { -& +let +start_id += self . -0 +start_id +; +self . -group_info +copy_matches ( +start_id +dst ) +; } -# -[ -inline -] -pub fn -has_capture +add_dense_state ( & +mut self +depth +: +usize ) - > -bool +Result +< +S +> { +let +trans += +Transitions +: +: +Dense +( +Dense +: +: +new +( +) +) +; +let +id += +usize_to_state_id +( self . -0 +states . -has_capture -} -# -[ -inline -] -pub -fn -has_empty +len ( -& -self ) -- -> -bool +) +? +; +self +. +states +. +push +( +State { +trans +fail +: +if self . -0 +anchored +{ +dead_id +( +) +} +else +{ +self . -has_empty +start_id } -# +depth +matches +: +vec +! [ -inline ] -pub +} +) +; +Ok +( +id +) +} fn -is_utf8 +add_sparse_state ( & +mut self +depth +: +usize ) - > -bool -{ -self -. -0 -. -utf8 -} -# +Result +< +S +> +{ +let +trans += +Transitions +: +: +Sparse +( +vec +! [ -inline ] -pub -fn -is_reverse +) +; +let +id += +usize_to_state_id ( -& self +. +states +. +len +( ) -- -> -bool -{ +) +? +; self . -0 +states . -reverse -} -# -[ -inline -] -pub -fn -is_always_start_anchored +push ( -& -self -) -- -> -bool +State { +trans +fail +: +if self . -start_anchored +anchored +{ +dead_id ( ) -= -= +} +else +{ self . -start_unanchored -( -) +start_id } -# +depth +matches +: +vec +! [ -inline ] -pub +} +) +; +Ok +( +id +) +} +} +impl +< +S +: +StateID +> +Automaton +for +NFA +< +S +> +{ +type +ID += +S +; fn -look_matcher +match_kind ( & self @@ -892,3539 +885,4058 @@ self - > & -LookMatcher +MatchKind { & self . -0 -. -look_matcher +match_kind } -# -[ -inline -] -pub fn -look_set_any +anchored ( & self ) - > -LookSet +bool { self . -0 -. -look_set_any +anchored } -# -[ -inline -] -pub fn -look_set_prefix_any +prefilter ( & self ) - > -LookSet +Option +< +& +dyn +Prefilter +> { self . -0 +prefilter +. +as_ref +( +) +. +map +( +| +p +| +p . -look_set_prefix_any +as_ref +( +) +) } -# -[ -inline -] -pub fn -memory_usage +start_state ( & self ) - > -usize +S { -use -core -: -: -mem -: -: -size_of -; -size_of -: -: -< -Inner -> -( -) -+ self . -0 -. -states -. -len +start_id +} +fn +is_valid ( -) -* -size_of -: +& +self +id : -< -State +S +) +- > +bool +{ +id +. +to_usize ( ) -+ +< self . -0 -. -start_pattern +states . len ( ) -* -size_of -: -: -< -StateID -> +} +fn +is_match_state ( +& +self +id +: +S ) -+ +- +> +bool +{ self . -0 -. -group_info +states +[ +id . -memory_usage +to_usize ( ) -+ -self -. -0 +] . -memory_extra -} +is_match +( +) } -impl -fmt -: -: -Debug -for -NFA -{ fn -fmt +get_match ( & self -f +id : -& -mut -fmt +S +match_index : +usize +end : -Formatter -< -' -_ -> +usize ) - > -fmt -: -: -Result +Option +< +Match +> { +let +state += +match self . -0 +states . -fmt +get +( +id +. +to_usize ( -f ) -} -} -# -[ -derive +) +{ +None += +> +return +None +Some ( -Default +state ) -] -pub += +> +state +} +; +state +. +matches +. +get ( -super +match_index ) -struct -Inner +. +map +( +| +& +( +id +len +) +| +Match { -states -: -Vec -< -State -> -start_anchored -: -StateID -start_unanchored -: -StateID -start_pattern -: -Vec -< -StateID -> -group_info -: -GroupInfo -byte_class_set -: -ByteClassSet -byte_classes -: -ByteClasses -has_capture -: -bool -has_empty -: -bool -utf8 -: -bool -reverse -: -bool -look_matcher -: -LookMatcher -look_set_any -: -LookSet -look_set_prefix_any -: -LookSet -memory_extra +pattern : -usize +id +len +end } -impl -Inner -{ -pub -( -super ) +} fn -into_nfa +match_count ( -mut +& self +id +: +S ) - > -NFA +usize { self . -byte_classes -= -self -. -byte_class_set +states +[ +id . -byte_classes +to_usize ( ) -; -let -mut -stack -= -vec -! -[ ] -; -let -mut -seen -= -SparseSet -: -: -new -( -self . -states +matches . len ( ) -) -; -for +} +fn +next_state +( & -start_id -in self -. -start_pattern -. -iter -( +mut +current +: +S +input +: +u8 ) +- +> +S +{ +loop { -stack -. -push -( -start_id -) -; -seen -. -clear -( -) -; let -mut -prefix_any +state = -LookSet -: -: -empty +& +self +. +states +[ +current +. +to_usize ( ) +] ; -while let -Some -( -sid -) +next = -stack +state . -pop +next_state ( +input ) -{ +; if +next ! -seen -. -insert += +fail_id ( -sid ) { -continue +return +next ; } -match -self +current += +state . -states +fail +; +} +} +} +# [ -sid +derive +( +Clone +Debug +) ] -{ -State -: -: -ByteRange -{ -. -. -} -| +pub +struct State -: -: -Dense +< +S +> { -. -. -} -| -State -: +trans : -Fail -= +Transitions +< +S > -continue -State +fail : +S +matches : -Sparse +Vec +< ( -_ +PatternID +PatternLength ) -= > -{ -continue -; -} -State +depth : -: -Match -{ -. -. +usize } -= +impl +< +S +: +StateID > -self -. -has_empty -= -true State -: -: -Look -{ -look -next -} -= +< +S > { -prefix_any -= -prefix_any -. -insert +fn +heap_bytes ( -look +& +self ) -; -stack -. -push -( -next -) -; -} -State -: -: -Union -{ -ref -alternates -} -= +- > +usize { -stack +self . -extend -( -alternates +trans . -iter +heap_bytes ( ) -) -; -} -State -: -: -BinaryUnion -{ -alt1 -alt2 -} -= -> -{ -stack -. -push ++ ( -alt2 -) -; -stack +self . -push +matches +. +len ( -alt1 ) -; -} -State +* +size_of : : -Capture -{ -next -. -. -} -= +< +( +PatternID +PatternLength +) > -{ -stack -. -push ( -next ) -; -} -} +) } +fn +add_match +( +& +mut self -. -look_set_prefix_any -= +i +: +PatternID +len +: +PatternLength +) +{ self . -look_set_prefix_any +matches . -union -( -prefix_any -) -; -} -NFA +push ( -Arc -: -: -new ( -self +i +len ) ) +; } -pub -( -super -) fn -group_info +is_match ( & self ) - > -& -GroupInfo +bool { -& +! self . -group_info -} -pub +matches +. +is_empty ( -super ) +} fn -add +next_state ( & -mut self -state +input : -State +u8 ) - > -StateID -{ -match -state -{ -State -: -: -ByteRange -{ -ref -trans -} -= -> +S { self . -byte_class_set -. -set_range -( -trans -. -start trans . -end +next_state +( +input ) -; } -State +fn +set_next_state +( +& +mut +self +input : +u8 +next : -Sparse -( -ref -sparse -) -= -> -{ -for -trans -in -sparse -. -transitions -. -iter -( +S ) { self . -byte_class_set -. -set_range -( -trans -. -start trans . -end +set_next_state +( +input +next ) ; } } -State -: -: +# +[ +derive +( +Clone +Debug +) +] +struct Dense -{ -. -. -} -= +< +S > -unreachable -! ( +Vec +< +S +> ) -State -: +; +impl +< +S +> +Dense +< +S +> +where +S : -Look +StateID { -look -. -. -} -= +fn +new +( +) +- > +Self { -self -. -look_matcher -. -add_to_byteset +Dense +( +vec +! +[ +fail_id ( -look -& -mut -self -. -byte_class_set ) ; +256 +] +) +} +# +[ +inline +] +fn +len +( +& self -. -look_set_any -= +) +- +> +usize +{ self . -look_set_any +0 . -insert +len ( -look ) -; } -State -: -: -Capture -{ -. -. } -= +impl +< +S > -{ -self -. -has_capture -= -true -; -} -State -: -: -Union -{ -. -. -} -| -State -: -: -BinaryUnion -{ -. -. -} -| -State -: -: -Fail -| -State -: -: -Match -{ -. -. -} -= +Index +< +u8 +> +for +Dense +< +S > { -} -} -let -id -= -StateID -: -: -new -( -self -. -states -. -len -( -) -) -. -unwrap -( -) -; -self -. -memory_extra -+ +type +Output = -state -. -memory_usage -( -) -; -self -. -states -. -push -( -state -) +S ; -id -} -pub -( -super -) -fn -set_starts -( -& -mut -self -start_anchored -: -StateID -start_unanchored -: -StateID -start_pattern -: -& +# [ -StateID +inline ] -) -{ -self -. -start_anchored -= -start_anchored -; -self -. -start_unanchored -= -start_unanchored -; -self -. -start_pattern -= -start_pattern -. -to_vec -( -) -; -} -pub -( -super -) fn -set_utf8 +index ( & -mut self -yes +i : -bool +u8 ) +- +> +& +S { +& self . -utf8 -= -yes -; +0 +[ +i +as +usize +] } -pub -( -super -) +} +impl +< +S +> +IndexMut +< +u8 +> +for +Dense +< +S +> +{ +# +[ +inline +] fn -set_reverse +index_mut ( & mut self -yes +i : -bool -) -{ -self -. -reverse -= -yes -; -} -pub -( -super +u8 ) -fn -set_look_matcher -( +- +> & mut -self -m -: -LookMatcher -) +S { +& +mut self . -look_matcher -= -m -; +0 +[ +i +as +usize +] } -pub +} +# +[ +derive ( -super +Clone +Debug ) -fn -set_captures +] +enum +Transitions +< +S +> +{ +Sparse ( -& -mut -self -captures -: -& -[ Vec < -Option -< -Arc -< -str -> +( +u8 +S +) > +) +Dense +( +Dense +< +S > -] ) -- +} +impl +< +S +: +StateID > -Result +Transitions < +S +> +{ +fn +heap_bytes ( +& +self ) -GroupInfoError +- > +usize { +match +* self -. -group_info -= -GroupInfo +{ +Transitions : : -new +Sparse ( -captures +ref +sparse +) += +> +{ +sparse . -iter +len ( ) -. -map +* +size_of +: +: +< ( -| -x -| -x -. -iter +u8 +S +) +> ( ) -. -map +} +Transitions +: +: +Dense ( -| -y -| -y +ref +dense +) += +> +dense . -as_ref +len ( ) -) -) -) -? -; -Ok -( +* +size_of +: +: +< +S +> ( ) -) } -pub -( -super -) +} fn -remap +next_state ( & -mut self -old_to_new +input : -& -[ -StateID -] +u8 ) +- +> +S { -for -state -in -& -mut +match +* self -. -states { -state -. -remap +Transitions +: +: +Sparse ( -old_to_new +ref +sparse ) -; -} -self -. -start_anchored -= -old_to_new -[ -self -. -start_anchored -] -; -self -. -start_unanchored = -old_to_new -[ -self -. -start_unanchored -] -; +> +{ for -id -in -self -. -start_pattern -. -iter_mut +& ( +b +id ) +in +sparse { -* -id +if +b = -old_to_new -[ -* += +input +{ +return id -] ; } } +fail_id +( +) } -impl -fmt +Transitions : : -Debug -for -Inner -{ +Dense +( +ref +dense +) += +> +dense +[ +input +] +} +} fn -fmt +set_next_state ( & -self -f -: -& mut -fmt +self +input : +u8 +next : -Formatter -< -' -_ -> +S ) -- -> -fmt -: -: -Result { -writeln -! -( -f -" -thompson +match +* +self +{ +Transitions : : -NFA -( -" -) -? -; -for +Sparse ( -sid -state +ref +mut +sparse ) -in -self -. -states += +> +{ +match +sparse . -iter +binary_search_by_key ( -) -. -with_state_ids +& +input +| +& ( +b +_ +) +| +b ) { -let -status -= -if -sid -= +Ok +( +i +) = -self -. -start_anchored -{ -' -^ -' -} -else -if -sid +> +sparse +[ +i +] = +( +input +next +) +Err +( +i +) = -self -. -start_unanchored -{ -' > -' -} -else -{ -' -' -} -; -writeln -! +sparse +. +insert ( -f -" -{ +i +( +input +next +) +) } -{ -: -06 -? } +Transitions : -{ : -? -} -" -status -sid -. -as_usize +Dense ( +ref +mut +dense ) -state -) -? += +> +{ +dense +[ +input +] += +next ; } -let -pattern_len -= +} +} +fn +iter +< +F +: +FnMut +( +u8 +S +) +> +( +& self -. -start_pattern -. -len +mut +f +: +F +) +{ +match +* +self +{ +Transitions +: +: +Sparse ( +ref +sparse ) -; -if -pattern_len += > -1 { -writeln -! +for +& ( +b +id +) +in +sparse +{ f -" -" +( +b +id ) -? ; +} +} +Transitions +: +: +Dense +( +ref +dense +) += +> +{ for -pid +b in -0 -. -. -pattern_len +AllBytesIter +: +: +new +( +) { let -sid +id = -self -. -start_pattern +dense [ -pid +b ] ; -writeln +if +id ! += +fail_id ( -f -" -START -( -{ -: -06 -? -} ) -: { -: -? -} -" -pid -sid -. -as_usize +f ( +b +id ) -) -? ; } } -writeln -! +} +} +} +fn +iter_all +< +F +: +FnMut ( -f -" -" +u8 +S ) -? -; -writeln -! +> ( -f -" -transition -equivalence +& +self classes : -{ -: -? -} -" -self -. -byte_classes -) -? -; -writeln -! -( +& +ByteClasses +mut f -" -) -" -) -? -; -Ok -( -( -) +: +F ) -} -} -# -[ -derive +{ +if +classes +. +is_singleton ( -Clone -Eq -PartialEq ) -] -pub -enum -State { -ByteRange +match +* +self { -trans +Transitions +: : -Transition -} Sparse ( -SparseTransitions +ref +sparse +) += +> +{ +sparse_iter +( +sparse +f ) +; +} +Transitions +: +: Dense ( -DenseTransitions +ref +dense ) -Look += +> { -look +for +b +in +AllBytesIter : -Look -next : -StateID -} -Union +new +( +) { -alternates -: -Box -< +f +( +b +dense [ -StateID +b ] -> -} -BinaryUnion -{ -alt1 -: -StateID -alt2 -: -StateID +) +; } -Capture -{ -next -: -StateID -pattern_id -: -PatternID -group_index -: -SmallIndex -slot -: -SmallIndex } -Fail -Match -{ -pattern_id -: -PatternID } } -impl -State +else { -# -[ -inline -] -pub -fn -is_epsilon -( -& -self -) -- -> -bool -{ -match -* +match +* self { -State +Transitions : : -ByteRange +Sparse +( +ref +sparse +) += +> { -. -. -} +let +mut +last_class += +None +; +sparse_iter +( +sparse +| +b +next | -State -: -: -Sparse { +let +class += +classes . -. +get +( +b +) +; +if +last_class +! += +Some +( +class +) +{ +last_class += +Some +( +class +) +; +f +( +b +next +) +; } -| -State +} +) +} +Transitions : : Dense +( +ref +dense +) += +> { +for +b +in +classes . -. +representatives +( +) +{ +f +( +b +dense +[ +b +] +) +; } -| -State +} +} +} +} +} +# +[ +derive +( +Debug +) +] +struct +IterTransitionsMut +< +' +a +S : +StateID +> +{ +nfa : -Fail -| -State +& +' +a +mut +NFA +< +S +> +state_id : +S +cur : -Match -{ -. -. +usize } -= -> -false -State -: +impl +< +' +a +S : -Look +StateID +> +IterTransitionsMut +< +' +a +S +> { -. -. -} -| -State +fn +new +( +nfa : +& +' +a +mut +NFA +< +S +> +state_id : -Union +S +) +- +> +IterTransitionsMut +< +' +a +S +> { -. -. -} -| -State -: +IterTransitionsMut +{ +nfa +state_id +cur : -BinaryUnion +0 +} +} +fn +nfa +( +& +mut +self +) +- +> +& +mut +NFA +< +S +> { +self . -. +nfa } -| -State -: +} +impl +< +' +a +S : -Capture +StateID +> +Iterator +for +IterTransitionsMut +< +' +a +S +> { -. -. -} +type +Item = -> -true -} -} +( +u8 +S +) +; fn -memory_usage +next ( & +mut self ) - > -usize +Option +< +( +u8 +S +) +> { match -* self -{ -State -: -: -ByteRange -{ . +nfa . -} -| -State -: -: -Look -{ +states +[ +self . +state_id . -} -| -State +to_usize +( +) +] +. +trans +{ +Transitions : : -BinaryUnion -{ -. -. -} -| -State -: -: -Capture +Sparse +( +ref +sparse +) += +> { +if +self . +cur +> += +sparse . -} -| -State -: -: -Match +len +( +) { +return +None +; +} +let +i += +self . +cur +; +self . -} -| -State -: -: -Fail +cur ++ = -> -0 -State +1 +; +Some +( +sparse +[ +i +] +) +} +Transitions : : -Sparse +Dense ( -SparseTransitions -{ ref -transitions -} +dense ) = > { -transitions +while +self +. +cur +< +dense . len ( ) -* -mem -: -: -size_of -: -: +{ +debug_assert +! +( +self +. +cur < -Transition -> +256 +) +; +let +b += +self +. +cur +as +u8 +; +let +id += +dense +[ +b +] +; +self +. +cur ++ += +1 +; +if +id +! += +fail_id +( +) +{ +return +Some +( ( +b +id ) +) +; } -State +} +None +} +} +} +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +Builder +{ +dense_depth +: +usize +match_kind : +MatchKind +prefilter : -Dense -{ -. -. +bool +anchored +: +bool +ascii_case_insensitive +: +bool } -= +impl +Default +for +Builder +{ +fn +default +( +) +- > -256 -* -mem +Builder +{ +Builder +{ +dense_depth : +2 +match_kind : -size_of +MatchKind : : -< -StateID -> +default ( ) -State +prefilter : +true +anchored : -Union -{ -ref -alternates +false +ascii_case_insensitive +: +false } -= +} +} +impl +Builder +{ +pub +fn +new +( +) +- > +Builder { -alternates -. -len +Builder +: +: +default ( ) -* -mem +} +pub +fn +build +< +I +P +S : +StateID +> +( +& +self +patterns : -size_of +I +) +- +> +Result +< +NFA +< +S +> +> +where +I : +IntoIterator +< +Item += +P +> +P : +AsRef < -StateID +[ +u8 +] > +{ +Compiler +: +: +new ( +self +) +? +. +compile +( +patterns ) } -} -} +pub fn -remap +match_kind ( & mut self -remap +kind : -& -[ -StateID -] +MatchKind ) +- +> +& +mut +Builder { -match -* self -{ -State -: -: -ByteRange -{ -ref -mut -trans -} -= -> -{ -trans . -next +match_kind = -remap -[ -trans -. -next -] +kind +; +self } -State -: -: -Sparse +pub +fn +dense_depth ( -SparseTransitions -{ -ref +& mut -transitions -} +self +depth +: +usize ) -= +- > +& +mut +Builder { -for -t -in -transitions -. -iter_mut -( -) -{ -t +self . -next +dense_depth = -remap -[ -t -. -next -] +depth ; +self } -} -State -: -: -Dense +pub +fn +prefilter ( -DenseTransitions -{ -ref +& mut -transitions -} +self +yes +: +bool ) -= +- > +& +mut +Builder { -for -sid -in -transitions +self . -iter_mut -( -) -{ -* -sid +prefilter = -remap -[ -* -sid -] +yes ; +self } -} -State -: -: -Look -{ -ref +pub +fn +anchored +( +& mut -next -. -. -} -= -> -* -next -= -remap -[ -* -next -] -State -: +self +yes : -Union -{ -ref -mut -alternates -} -= +bool +) +- > +& +mut +Builder { -for -alt -in -alternates +self . -iter_mut -( -) -{ -* -alt +anchored = -remap -[ -* -alt -] +yes ; +self } -} -State -: -: -BinaryUnion -{ -ref -mut -alt1 -ref +pub +fn +ascii_case_insensitive +( +& mut -alt2 -} -= +self +yes +: +bool +) +- > +& +mut +Builder { -* -alt1 -= -remap -[ -* -alt1 -] -; -* -alt2 +self +. +ascii_case_insensitive = -remap -[ -* -alt2 -] +yes ; +self } -State -: -: -Capture -{ -ref -mut -next -. -. } -= -> -* -next -= -remap +# [ -* -next +derive +( +Debug +) ] -State -: +struct +Compiler +< +' +a +S : -Fail -= +StateID > { -} -State +builder : +& +' +a +Builder +prefilter : -Match -{ -. -. -} -= +prefilter +: +: +Builder +nfa +: +NFA +< +S > -{ -} -} -} +byte_classes +: +ByteClassBuilder } impl -fmt -: +< +' +a +S : -Debug -for -State +StateID +> +Compiler +< +' +a +S +> { fn -fmt +new ( -& -self -f +builder : & -mut -fmt -: -: -Formatter -< ' -_ -> +a +Builder ) - > -fmt -: -: Result +< +Compiler +< +' +a +S +> +> { -match -* -self +Ok +( +Compiler { -State +builder +prefilter +: +prefilter +: +: +Builder +: : +new +( +builder +. +match_kind +) +. +ascii_case_insensitive +( +builder +. +ascii_case_insensitive +) +nfa : -ByteRange +NFA { -ref -trans +match_kind +: +builder +. +match_kind +start_id +: +usize_to_state_id +( +2 +) +? +max_pattern_len +: +0 +pattern_count +: +0 +heap_bytes +: +0 +prefilter +: +None +anchored +: +builder +. +anchored +byte_classes +: +ByteClasses +: +: +singletons +( +) +states +: +vec +! +[ +] } -= +byte_classes +: +ByteClassBuilder +: +: +new +( +) +} +) +} +fn +compile +< +I +P > -trans -. -fmt ( -f +mut +self +patterns +: +I ) -State +- +> +Result +< +NFA +< +S +> +> +where +I : +IntoIterator +< +Item += +P +> +P : -Sparse +AsRef +< +[ +u8 +] +> +{ +self +. +add_state +( +0 +) +? +; +self +. +add_state +( +0 +) +? +; +self +. +add_state +( +0 +) +? +; +self +. +build_trie +( +patterns +) +? +; +self +. +add_start_state_loop ( -SparseTransitions +) +; +self +. +add_dead_state_loop +( +) +; +if +! +self +. +builder +. +anchored { -ref -transitions +self +. +fill_failure_transitions +( +) +; } +self +. +close_start_state_loop +( ) +; +self +. +nfa +. +byte_classes = -> +self +. +byte_classes +. +build +( +) +; +if +! +self +. +builder +. +anchored { -let -rs +self +. +nfa +. +prefilter = -transitions +self +. +prefilter +. +build +( +) +; +} +self +. +calculate_size +( +) +; +Ok +( +self +. +nfa +) +} +fn +build_trie +< +I +P +> +( +& +mut +self +patterns +: +I +) +- +> +Result +< +( +) +> +where +I +: +IntoIterator +< +Item += +P +> +P +: +AsRef +< +[ +u8 +] +> +{ +' +PATTERNS +: +for +( +pati +pat +) +in +patterns +. +into_iter +( +) +. +enumerate +( +) +{ +let +pat += +pat +. +as_ref +( +) +; +self +. +nfa +. +max_pattern_len += +cmp +: +: +max +( +self +. +nfa +. +max_pattern_len +pat +. +len +( +) +) +; +self +. +nfa +. +pattern_count ++ += +1 +; +let +mut +prev += +self +. +nfa +. +start_id +; +let +mut +saw_match += +false +; +for +( +depth +& +b +) +in +pat +. +iter +( +) +. +enumerate +( +) +{ +saw_match += +saw_match +| +| +self +. +nfa +. +state +( +prev +) +. +is_match +( +) +; +if +self +. +builder +. +match_kind +. +is_leftmost_first +( +) +& +& +saw_match +{ +continue +' +PATTERNS +; +} +self +. +byte_classes +. +set_range +( +b +b +) +; +if +self +. +builder +. +ascii_case_insensitive +{ +let +b += +opposite_ascii_case +( +b +) +; +self +. +byte_classes +. +set_range +( +b +b +) +; +} +let +next += +self +. +nfa +. +state +( +prev +) +. +next_state +( +b +) +; +if +next +! += +fail_id +( +) +{ +prev += +next +; +} +else +{ +let +next += +self +. +add_state +( +depth ++ +1 +) +? +; +self +. +nfa +. +state_mut +( +prev +) +. +set_next_state +( +b +next +) +; +if +self +. +builder +. +ascii_case_insensitive +{ +let +b += +opposite_ascii_case +( +b +) +; +self +. +nfa +. +state_mut +( +prev +) +. +set_next_state +( +b +next +) +; +} +prev += +next +; +} +} +self +. +nfa +. +state_mut +( +prev +) +. +add_match +( +pati +pat +. +len +( +) +) +; +if +self +. +builder +. +prefilter +{ +self +. +prefilter +. +add +( +pat +) +; +} +} +Ok +( +( +) +) +} +fn +fill_failure_transitions +( +& +mut +self +) +{ +let +kind += +self +. +match_kind +( +) +; +let +mut +queue += +VecDeque +: +: +new +( +) +; +let +mut +seen += +self +. +queued_set +( +) +; +let +mut +it += +self +. +nfa +. +iter_transitions_mut +( +self +. +nfa +. +start_id +) +; +while +let +Some +( +( +_ +next +) +) += +it +. +next +( +) +{ +if +next += += +it +. +nfa +( +) +. +start_id +| +| +seen +. +contains +( +next +) +{ +continue +; +} +queue +. +push_back +( +next +) +; +seen +. +insert +( +next +) +; +if +kind +. +is_leftmost +( +) +& +& +it +. +nfa +( +) +. +state +( +next +) +. +is_match +( +) +{ +it +. +nfa +( +) +. +state_mut +( +next +) +. +fail += +dead_id +( +) +; +} +} +while +let +Some +( +id +) += +queue +. +pop_front +( +) +{ +let +mut +it += +self +. +nfa +. +iter_transitions_mut +( +id +) +; +while +let +Some +( +( +b +next +) +) += +it +. +next +( +) +{ +if +seen +. +contains +( +next +) +{ +continue +; +} +queue . -iter +push_back ( +next ) +; +seen . -map -( -| -t -| -format -! +insert ( -" -{ -: -? -} -" -t -) +next ) +; +if +kind . -collect -: -: -< -Vec -< -String -> -> +is_leftmost ( ) +& +& +it . -join +nfa ( -" -" ) -; -write -! +. +state ( -f -" -sparse +next +) +. +is_match ( +) { -} +it +. +nfa +( ) -" -rs +. +state_mut +( +next ) -} -State -: -: -Dense +. +fail += +dead_id ( -ref -dense ) +; +continue +; +} +let +mut +fail = -> -{ -write -! +it +. +nfa ( -f -" -dense +) +. +state ( -" +id ) -? +. +fail ; -for +while +it +. +nfa ( -i -t ) -in -dense . -iter +state ( +fail ) . -enumerate +next_state +( +b +) += += +fail_id ( ) { -if -i -> -0 -{ -write -! +fail += +it +. +nfa ( -f -" -" ) -? -; -} -write -! +. +state ( -f -" -{ -: -? -} -" -t +fail ) -? +. +fail ; } -write -! +fail += +it +. +nfa ( -f -" ) -" +. +state +( +fail ) -} -State -: -: -Look -{ -ref -look -next -} -= -> -{ -write -! +. +next_state ( -f -" -{ -: -? -} -= -> -{ -: -? -} -" -look -next +b +) +; +it . -as_usize +nfa ( ) +. +state_mut +( +next ) -} -State -: -: -Union -{ -ref -alternates -} -= -> -{ -let -alts +. +fail = -alternates +fail +; +it . -iter +nfa ( ) . -map -( -| -id -| -format -! +copy_matches ( -" -{ -: -? +fail +next +) +; } -" -id +if +! +kind . -as_usize +is_leftmost ( ) -) -) +{ +it . -collect -: -: -< -Vec -< -String -> -> +nfa ( ) . -join +copy_empty_matches ( -" -" +id ) ; -write -! +} +} +} +fn +queued_set ( -f -" -union +& +self +) +- +> +QueuedSet +< +S +> +{ +if +self +. +builder +. +ascii_case_insensitive +{ +QueuedSet +: +: +active ( -{ -} -) -" -alts ) } -State +else +{ +QueuedSet : : -BinaryUnion -{ -alt1 -alt2 -} -= -> -{ -write -! -( -f -" -binary -- -union +inert ( -{ +) } -{ } -) -" -alt1 -. -as_usize +fn +add_start_state_loop ( +& +mut +self ) -alt2 +{ +let +start_id += +self . -as_usize +nfa +. +start_id +; +let +start += +self +. +nfa +. +start_mut ( ) -) -} -State +; +for +b +in +AllBytesIter : : -Capture -{ -next -pattern_id -group_index -slot -} -= -> -{ -write -! +new ( -f -" -capture +) +{ +if +start +. +next_state ( -pid +b +) = -{ -: -? -} -group = +fail_id +( +) { -: -? +start +. +set_next_state +( +b +start_id +) +; +} } -slot -= -{ -: -? } +fn +close_start_state_loop +( +& +mut +self ) -= -> { -: -? -} -" -pattern_id +if +self +. +builder . -as_usize +anchored +| +| +( +self +. +match_kind ( ) -group_index . -as_usize +is_leftmost ( ) -slot +& +& +self . -as_usize +nfa +. +start ( ) -next . -as_usize +is_match ( ) ) -} -State -: -: -Fail +{ +let +start_id = -> -write -! +self +. +nfa +. +start_id +; +let +start += +self +. +nfa +. +start_mut ( -f -" -FAIL -" ) -State +; +for +b +in +AllBytesIter : : -Match -{ -pattern_id -} -= -> -{ -write -! -( -f -" -MATCH +new ( +) { -: -? -} +if +start +. +next_state +( +b ) -" -pattern_id += += +start_id +{ +start . -as_usize +set_next_state +( +b +dead_id ( ) ) +; } } } } -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -SparseTransitions -{ -pub -transitions -: -Box -< -[ -Transition -] -> -} -impl -SparseTransitions -{ -# -[ -inline -] -pub fn -matches +add_dead_state_loop ( & +mut self -haystack -: -& -[ -u8 -] -at -: -usize ) -- -> -Option -< -StateID -> { -haystack +let +dead += +self . -get -( -at -) +nfa . -and_then +state_mut ( -| -& +dead_id +( +) +) +; +for b -| -self +in +AllBytesIter +: +: +new +( +) +{ +dead . -matches_byte +set_next_state ( b +dead_id +( ) ) +; +} } -# -[ -inline -] -pub -( -crate -) fn -matches_unit +calculate_size ( & +mut +self +) +{ +let +mut +size += +0 +; +for +state +in +& self -unit -: -alphabet +. +nfa +. +states +{ +size ++ += +size_of : : -Unit -) -- -> -Option < -StateID +State +< +S +> > -{ -unit -. -as_u8 ( ) ++ +state . -map_or +heap_bytes ( -None -| -byte -| +) +; +} self . -matches_byte -( -byte -) -) +nfa +. +heap_bytes += +size +; } -# -[ -inline -] -pub fn -matches_byte +add_state ( & +mut self -byte +depth : -u8 +usize ) - > -Option +Result < -StateID +S > { -for -t -in +if +depth +< self . -transitions +builder . -iter -( -) +dense_depth { -if -t +self . -start -> -byte -{ -break -; -} -else -if -t +nfa . -matches_byte +add_dense_state ( -byte +depth ) +} +else { -return -Some -( -t +self . -next +nfa +. +add_sparse_state +( +depth ) -; } } -None +fn +match_kind +( +& +self +) +- +> +MatchKind +{ +self +. +builder +. +match_kind } } # [ derive ( -Clone Debug -Eq -PartialEq ) ] -pub struct -DenseTransitions +QueuedSet +< +S +> { -pub -transitions +set : -Box +Option < -[ -StateID -] +BTreeSet +< +S +> > } impl -DenseTransitions +< +S +: +StateID +> +QueuedSet +< +S +> { -# -[ -inline -] -pub fn -matches +inert ( -& -self -haystack -: -& -[ -u8 -] -at +) +- +> +QueuedSet +< +S +> +{ +QueuedSet +{ +set : -usize +None +} +} +fn +active +( ) - > -Option +QueuedSet < -StateID +S > { -haystack -. -get +QueuedSet +{ +set +: +Some +( +BTreeSet +: +: +new ( -at ) -. -and_then +) +} +} +fn +insert ( -| & -b -| +mut self -. -matches_byte -( -b +state_id +: +S ) +{ +if +let +Some +( +ref +mut +set ) -} -# -[ -inline -] -pub += +self +. +set +{ +set +. +insert ( -crate +state_id ) +; +} +} fn -matches_unit +contains ( & self -unit +state_id : -alphabet -: -: -Unit +S ) - > -Option -< -StateID -> +bool { -unit +match +self . -as_u8 +set +{ +None += +> +false +Some ( +ref +set ) += +> +set . -map_or -( -None -| -byte -| -self -. -matches_byte +contains ( -byte -) +& +state_id ) } +} +} # [ -inline +derive +( +Debug +) ] -pub +struct +AllBytesIter +( +u16 +) +; +impl +AllBytesIter +{ +fn +new +( +) +- +> +AllBytesIter +{ +AllBytesIter +( +0 +) +} +} +impl +Iterator +for +AllBytesIter +{ +type +Item += +u8 +; fn -matches_byte +next ( & +mut self -byte -: -u8 ) - > Option < -StateID +Self +: +: +Item > { -let -next -= +if self . -transitions -[ -usize -: -: -from -( -byte -) -] -; -if -next -= +0 +> = -StateID -: -: -ZERO +256 { None } else { +let +b += +self +. +0 +as +u8 +; +self +. +0 ++ += +1 +; Some ( -next +b ) } } -pub -( -crate -) -fn -iter -( -& -self -) -- -> +} impl -Iterator < -Item -= -Transition -> -+ -' -_ -{ -use -crate +S : +StateID +> +fmt : -util : +Debug +for +NFA +< +S +> +{ +fn +fmt +( +& +self +f : -int +& +mut +fmt : : -Usize -; -self -. -transitions -. -iter -( -) -. -enumerate -( -) -. -filter -( -| -& -( +Formatter +< +' _ -& -sid +> ) -| -sid -! -= -StateID +- +> +fmt : : -ZERO -) -. -map +Result +{ +writeln +! ( -| +f +" +NFA ( -byte -& -next +" ) -| -Transition -{ -start -: -byte -. -as_u8 +? +; +writeln +! ( -) -end +f +" +match_kind : -byte -. -as_u8 -( -) -next +{ +: +? } +" +self +. +match_kind ) -} -} -# -[ -derive +? +; +writeln +! ( -Clone -Copy -Eq -Hash -PartialEq -) -] -pub -struct -Transition -{ -pub -start -: -u8 -pub -end +f +" +prefilter : -u8 -pub -next +{ : -StateID +? } -impl -Transition -{ -pub -fn -matches -( -& +" self -haystack -: -& -[ -u8 -] -at -: -usize +. +prefilter ) -- -> -bool +? +; +writeln +! +( +f +" { -haystack +} +" +" +- +" . -get +repeat ( -at +79 ) -. -map_or +) +? +; +for ( -false -| -& -b -| +id +s +) +in self . -matches_byte +states +. +iter ( -b ) -) -} -pub -fn -matches_unit +. +enumerate ( -& -self -unit -: -alphabet -: -: -Unit ) -- -> -bool { -unit +let +mut +trans += +vec +! +[ +] +; +s . -as_u8 -( -) +trans . -map_or +iter ( -false | byte +next | -self -. -matches_byte -( -byte -) -) -} -pub -fn -matches_byte -( -& -self -byte -: -u8 -) -- -> -bool { -self -. -start -< +if +id = -byte -& -& -byte -< = self . -end -} -} -impl -fmt -: -: -Debug -for -Transition -{ -fn -fmt +start_id +. +to_usize ( +) & -self -f -: & -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -use -crate -: -: -util -: -: -escape -: -: -DebugByte -; -let -Transition -{ -start -end next -} = -* += self +. +start_id +{ +return ; +} if -self -. -start +id = = -self -. -end +dead_id +( +) { -write +return +; +} +trans +. +push +( +format ! ( -f " { -: -? } = > { -: -? } " -DebugByte +escape ( -start +byte ) next . -as_usize +to_usize ( ) ) +) +; } -else -{ -write +) +; +writeln ! ( f " { : -? +04 } -- -{ : -? -} -= -> { -: -? } " -DebugByte -( -start -) -DebugByte -( -end -) -next +id +trans . -as_usize +join ( +" +" ) ) -} -} -} -# -[ -derive -( -Debug -) -] -pub -struct -PatternIter -< -' -a -> -{ -it -: -PatternIDIter -_marker -: -core -: -: -marker -: +? +; +let +matches : -PhantomData -< -& -' -a -( -) -> -} -impl -< -' -a -> -Iterator -for -PatternIter +Vec < -' -a +String > -{ -type -Item = -PatternID -; -fn -next +s +. +matches +. +iter ( -& -mut -self ) -- -> -Option -< -PatternID -> -{ -self . -it +map +( +| +& +( +pattern_id +_ +) +| +pattern_id . -next +to_string ( ) -} -} -# -[ -cfg +) +. +collect ( -all +) +; +writeln +! +( +f +" +matches +: +{ +} +" +matches +. +join ( -test -feature -= " -nfa -- -pikevm " ) ) -] -mod -tests -{ -use -super -: -: -* +? ; -use -crate -: +writeln +! +( +f +" +fail : { -nfa -: -: -thompson -: -: -pikevm -: -: -PikeVM -Input } -; -# -[ -test -] -fn -state_has_small_size +" +s +. +fail +. +to_usize ( ) -{ -# -[ -cfg +) +? +; +writeln +! ( -target_pointer_width -= +f " -64 +depth +: +{ +} " +s +. +depth ) -] -assert_eq +? +; +} +writeln ! ( -24 -core -: -: -mem -: -: -size_of -: -: -< -State -> +f +" +{ +} +" +" +- +" +. +repeat ( +79 ) ) +? ; -# -[ -cfg +writeln +! ( -target_pointer_width -= +f " -32 +) " ) -] -assert_eq -! +? +; +Ok ( -20 -core -: -: -mem -: -: -size_of -: -: -< -State -> ( ) ) -; } -# -[ -test -] +} fn -always_match -( -) -{ -let -re -= -PikeVM -: -: -new_from_nfa -( -NFA +sparse_iter +< +S : +StateID +F : -always_match +FnMut ( +u8 +S ) -) -. -unwrap +> ( -) -; -let -mut -cache -= -re -. -create_cache +trans +: +& +[ ( +u8 +S ) -; -let +] mut -caps -= -re -. -create_captures -( +f +: +F ) -; -let -mut -find -= -| -haystack -start -end -| { let -input +mut +byte = -Input -: -: -new -( -haystack -) -. -range -( -start -. -. -end -) +0u16 ; -re -. -search -( -& -mut -cache -& -input +for & -mut -caps +( +b +id ) -; -caps -. -get_match +in +trans +{ +while +byte +< ( +b +as +u16 ) -. -map +{ +f ( -| -m -| -m -. -end +byte +as +u8 +fail_id ( ) ) -} ; -assert_eq -! -( -Some -( -0 -) -find +byte ++ += +1 +; +} +f ( -" -" -0 -0 -) +b +id ) ; -assert_eq -! -( -Some +byte ++ += +1 +; +} +for +b +in +byte +. +. +256 +{ +f ( -0 -) -find +b +as +u8 +fail_id ( -" -a -" -0 -1 ) ) ; -assert_eq -! -( -Some +} +} +fn +get_two_mut +< +T +> ( -1 +xs +: +& +mut +[ +T +] +i +: +usize +j +: +usize ) -find +- +> ( -" -a -" -1 -1 -) +& +mut +T +& +mut +T ) -; -assert_eq +{ +assert ! ( -Some -( -0 -) -find -( +i +! += +j " -ab +{ +} +must +not +be +equal +to +{ +} " -0 -2 -) +i +j ) ; -assert_eq -! -( -Some +if +i +< +j +{ +let ( -1 +before +after ) -find += +xs +. +split_at_mut ( -" -ab -" -1 -2 -) +j ) ; -assert_eq -! -( -Some ( -2 +& +mut +before +[ +i +] +& +mut +after +[ +0 +] ) -find +} +else +{ +let ( -" -ab -" -2 -2 +before +after ) += +xs +. +split_at_mut +( +i ) ; -} -# +( +& +mut +after [ -test +0 +] +& +mut +before +[ +j ] +) +} +} fn -never_match +escape ( +b +: +u8 ) +- +> +String { -let -re -= -PikeVM +use +std +: +: +ascii +; +String : : -new_from_nfa +from_utf8 ( -NFA +ascii +: +: +escape_default +( +b +) +. +collect : : -never_match +< +Vec +< +_ +> +> ( ) ) @@ -4432,170 +4944,90 @@ never_match unwrap ( ) -; -let -mut -cache -= -re -. -create_cache +} +# +[ +cfg ( +test ) +] +mod +tests +{ +use +super +: +: +* ; -let -mut -caps -= -re -. -create_captures +# +[ +test +] +fn +scratch ( ) -; -let -mut -find -= -| -haystack -start -end -| { let -input +nfa +: +NFA +< +usize +> = -Input +Builder : : new ( -haystack -) -. -range -( -start -. -. -end ) -; -re . -search +dense_depth ( -& -mut -cache -& -input -& -mut -caps +0 ) -; -caps . -get_match +match_kind ( +MatchKind +: +: +LeftmostFirst ) . -map -( -| -m -| -m -. -end -( -) -) -} -; -assert_eq -! -( -None -find -( -" -" -0 -0 -) -) -; -assert_eq -! -( -None -find +build ( +& +[ " -a +abcdefg " -0 -1 -) -) -; -assert_eq -! -( -None -find -( " -a +bcde " -1 -1 -) -) -; -assert_eq -! -( -None -find -( " -ab +bcdef " -0 -2 -) +] ) -; -assert_eq -! -( -None -find +. +unwrap ( -" -ab -" -1 -2 -) ) ; -assert_eq +println ! ( -None -find -( " -ab +{ +: +? +} " -2 -2 -) +nfa ) ; } diff --git a/third_party/rust/aho-corasick/src/nfa/contiguous.rs b/third_party/rust/aho-corasick/src/nfa/contiguous.rs deleted file mode 100644 index 806aa95811f64..0000000000000 --- a/third_party/rust/aho-corasick/src/nfa/contiguous.rs +++ /dev/null @@ -1,5066 +0,0 @@ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -automaton -: -: -Automaton -nfa -: -: -noncontiguous -util -: -: -{ -alphabet -: -: -ByteClasses -error -: -: -{ -BuildError -MatchError -} -int -: -: -{ -Usize -U16 -U32 -} -prefilter -: -: -Prefilter -primitives -: -: -{ -IteratorIndexExt -PatternID -SmallIndex -StateID -} -search -: -: -{ -Anchored -MatchKind -} -special -: -: -Special -} -} -; -# -[ -derive -( -Clone -) -] -pub -struct -NFA -{ -repr -: -Vec -< -u32 -> -pattern_lens -: -Vec -< -SmallIndex -> -state_len -: -usize -prefilter -: -Option -< -Prefilter -> -match_kind -: -MatchKind -alphabet_len -: -usize -byte_classes -: -ByteClasses -min_pattern_len -: -usize -max_pattern_len -: -usize -special -: -Special -} -impl -NFA -{ -pub -fn -new -< -I -P -> -( -patterns -: -I -) -- -> -Result -< -NFA -BuildError -> -where -I -: -IntoIterator -< -Item -= -P -> -P -: -AsRef -< -[ -u8 -] -> -{ -NFA -: -: -builder -( -) -. -build -( -patterns -) -} -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -} -impl -NFA -{ -const -DEAD -: -StateID -= -StateID -: -: -new_unchecked -( -0 -) -; -const -FAIL -: -StateID -= -StateID -: -: -new_unchecked -( -1 -) -; -} -unsafe -impl -Automaton -for -NFA -{ -# -[ -inline -( -always -) -] -fn -start_state -( -& -self -anchored -: -Anchored -) -- -> -Result -< -StateID -MatchError -> -{ -match -anchored -{ -Anchored -: -: -No -= -> -Ok -( -self -. -special -. -start_unanchored_id -) -Anchored -: -: -Yes -= -> -Ok -( -self -. -special -. -start_anchored_id -) -} -} -# -[ -inline -( -always -) -] -fn -next_state -( -& -self -anchored -: -Anchored -mut -sid -: -StateID -byte -: -u8 -) -- -> -StateID -{ -let -repr -= -& -self -. -repr -; -let -class -= -self -. -byte_classes -. -get -( -byte -) -; -let -u32tosid -= -StateID -: -: -from_u32_unchecked -; -loop -{ -let -o -= -sid -. -as_usize -( -) -; -let -kind -= -repr -[ -o -] -& -0xFF -; -if -kind -= -= -State -: -: -KIND_DENSE -{ -let -next -= -u32tosid -( -repr -[ -o -+ -2 -+ -usize -: -: -from -( -class -) -] -) -; -if -next -! -= -NFA -: -: -FAIL -{ -return -next -; -} -} -else -if -kind -= -= -State -: -: -KIND_ONE -{ -if -class -= -= -repr -[ -o -] -. -low_u16 -( -) -. -high_u8 -( -) -{ -return -u32tosid -( -repr -[ -o -+ -2 -] -) -; -} -} -else -{ -let -trans_len -= -kind -. -as_usize -( -) -; -let -classes_len -= -u32_len -( -trans_len -) -; -let -trans_offset -= -o -+ -2 -+ -classes_len -; -for -( -i -& -chunk -) -in -repr -[ -o -+ -2 -. -. -] -[ -. -. -classes_len -] -. -iter -( -) -. -enumerate -( -) -{ -let -classes -= -chunk -. -to_ne_bytes -( -) -; -if -classes -[ -0 -] -= -= -class -{ -return -u32tosid -( -repr -[ -trans_offset -+ -i -* -4 -] -) -; -} -if -classes -[ -1 -] -= -= -class -{ -return -u32tosid -( -repr -[ -trans_offset -+ -i -* -4 -+ -1 -] -) -; -} -if -classes -[ -2 -] -= -= -class -{ -return -u32tosid -( -repr -[ -trans_offset -+ -i -* -4 -+ -2 -] -) -; -} -if -classes -[ -3 -] -= -= -class -{ -return -u32tosid -( -repr -[ -trans_offset -+ -i -* -4 -+ -3 -] -) -; -} -} -} -if -anchored -. -is_anchored -( -) -{ -return -NFA -: -: -DEAD -; -} -sid -= -u32tosid -( -repr -[ -o -+ -1 -] -) -; -} -} -# -[ -inline -( -always -) -] -fn -is_special -( -& -self -sid -: -StateID -) -- -> -bool -{ -sid -< -= -self -. -special -. -max_special_id -} -# -[ -inline -( -always -) -] -fn -is_dead -( -& -self -sid -: -StateID -) -- -> -bool -{ -sid -= -= -NFA -: -: -DEAD -} -# -[ -inline -( -always -) -] -fn -is_match -( -& -self -sid -: -StateID -) -- -> -bool -{ -! -self -. -is_dead -( -sid -) -& -& -sid -< -= -self -. -special -. -max_match_id -} -# -[ -inline -( -always -) -] -fn -is_start -( -& -self -sid -: -StateID -) -- -> -bool -{ -sid -= -= -self -. -special -. -start_unanchored_id -| -| -sid -= -= -self -. -special -. -start_anchored_id -} -# -[ -inline -( -always -) -] -fn -match_kind -( -& -self -) -- -> -MatchKind -{ -self -. -match_kind -} -# -[ -inline -( -always -) -] -fn -patterns_len -( -& -self -) -- -> -usize -{ -self -. -pattern_lens -. -len -( -) -} -# -[ -inline -( -always -) -] -fn -pattern_len -( -& -self -pid -: -PatternID -) -- -> -usize -{ -self -. -pattern_lens -[ -pid -] -. -as_usize -( -) -} -# -[ -inline -( -always -) -] -fn -min_pattern_len -( -& -self -) -- -> -usize -{ -self -. -min_pattern_len -} -# -[ -inline -( -always -) -] -fn -max_pattern_len -( -& -self -) -- -> -usize -{ -self -. -max_pattern_len -} -# -[ -inline -( -always -) -] -fn -match_len -( -& -self -sid -: -StateID -) -- -> -usize -{ -State -: -: -match_len -( -self -. -alphabet_len -& -self -. -repr -[ -sid -. -as_usize -( -) -. -. -] -) -} -# -[ -inline -( -always -) -] -fn -match_pattern -( -& -self -sid -: -StateID -index -: -usize -) -- -> -PatternID -{ -State -: -: -match_pattern -( -self -. -alphabet_len -& -self -. -repr -[ -sid -. -as_usize -( -) -. -. -] -index -) -} -# -[ -inline -( -always -) -] -fn -memory_usage -( -& -self -) -- -> -usize -{ -use -core -: -: -mem -: -: -size_of -; -( -self -. -repr -. -len -( -) -* -size_of -: -: -< -u32 -> -( -) -) -+ -( -self -. -pattern_lens -. -len -( -) -* -size_of -: -: -< -SmallIndex -> -( -) -) -+ -self -. -prefilter -. -as_ref -( -) -. -map_or -( -0 -| -p -| -p -. -memory_usage -( -) -) -} -# -[ -inline -( -always -) -] -fn -prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -self -. -prefilter -. -as_ref -( -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -NFA -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -use -crate -: -: -automaton -: -: -fmt_state_indicator -; -writeln -! -( -f -" -contiguous -: -: -NFA -( -" -) -? -; -let -mut -sid -= -NFA -: -: -DEAD -; -loop -{ -let -raw -= -& -self -. -repr -[ -sid -. -as_usize -( -) -. -. -] -; -if -raw -. -is_empty -( -) -{ -break -; -} -let -is_match -= -self -. -is_match -( -sid -) -; -let -state -= -State -: -: -read -( -self -. -alphabet_len -is_match -raw -) -; -fmt_state_indicator -( -f -self -sid -) -? -; -write -! -( -f -" -{ -: -06 -} -( -{ -: -06 -} -) -: -" -sid -. -as_usize -( -) -state -. -fail -. -as_usize -( -) -) -? -; -state -. -fmt -( -f -) -? -; -write -! -( -f -" -\ -n -" -) -? -; -if -self -. -is_match -( -sid -) -{ -write -! -( -f -" -matches -: -" -) -? -; -for -i -in -0 -. -. -state -. -match_len -{ -let -pid -= -State -: -: -match_pattern -( -self -. -alphabet_len -raw -i -) -; -if -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -write -! -( -f -" -{ -} -" -pid -. -as_usize -( -) -) -? -; -} -write -! -( -f -" -\ -n -" -) -? -; -} -if -sid -= -= -NFA -: -: -DEAD -{ -writeln -! -( -f -" -F -{ -: -06 -} -: -" -NFA -: -: -FAIL -. -as_usize -( -) -) -? -; -} -let -len -= -State -: -: -len -( -self -. -alphabet_len -is_match -raw -) -; -sid -= -StateID -: -: -new -( -sid -. -as_usize -( -) -. -checked_add -( -len -) -. -unwrap -( -) -) -. -unwrap -( -) -; -} -writeln -! -( -f -" -match -kind -: -{ -: -? -} -" -self -. -match_kind -) -? -; -writeln -! -( -f -" -prefilter -: -{ -: -? -} -" -self -. -prefilter -. -is_some -( -) -) -? -; -writeln -! -( -f -" -state -length -: -{ -: -? -} -" -self -. -state_len -) -? -; -writeln -! -( -f -" -pattern -length -: -{ -: -? -} -" -self -. -patterns_len -( -) -) -? -; -writeln -! -( -f -" -shortest -pattern -length -: -{ -: -? -} -" -self -. -min_pattern_len -) -? -; -writeln -! -( -f -" -longest -pattern -length -: -{ -: -? -} -" -self -. -max_pattern_len -) -? -; -writeln -! -( -f -" -alphabet -length -: -{ -: -? -} -" -self -. -alphabet_len -) -? -; -writeln -! -( -f -" -byte -classes -: -{ -: -? -} -" -self -. -byte_classes -) -? -; -writeln -! -( -f -" -memory -usage -: -{ -: -? -} -" -self -. -memory_usage -( -) -) -? -; -writeln -! -( -f -" -) -" -) -? -; -Ok -( -( -) -) -} -} -# -[ -derive -( -Clone -) -] -struct -State -< -' -a -> -{ -fail -: -StateID -match_len -: -usize -trans -: -StateTrans -< -' -a -> -} -# -[ -derive -( -Clone -) -] -enum -StateTrans -< -' -a -> -{ -Sparse -{ -classes -: -& -' -a -[ -u32 -] -nexts -: -& -' -a -[ -u32 -] -} -One -{ -class -: -u8 -next -: -u32 -} -Dense -{ -class_to_next -: -& -' -a -[ -u32 -] -} -} -impl -< -' -a -> -State -< -' -a -> -{ -const -KIND -: -usize -= -0 -; -const -KIND_DENSE -: -u32 -= -0xFF -; -const -KIND_ONE -: -u32 -= -0xFE -; -const -MAX_SPARSE_TRANSITIONS -: -usize -= -127 -; -fn -remap -( -alphabet_len -: -usize -old_to_new -: -& -[ -StateID -] -state -: -& -mut -[ -u32 -] -) -- -> -Result -< -( -) -BuildError -> -{ -let -kind -= -State -: -: -kind -( -state -) -; -if -kind -= -= -State -: -: -KIND_DENSE -{ -state -[ -1 -] -= -old_to_new -[ -state -[ -1 -] -. -as_usize -( -) -] -. -as_u32 -( -) -; -for -next -in -state -[ -2 -. -. -] -[ -. -. -alphabet_len -] -. -iter_mut -( -) -{ -* -next -= -old_to_new -[ -next -. -as_usize -( -) -] -. -as_u32 -( -) -; -} -} -else -if -kind -= -= -State -: -: -KIND_ONE -{ -state -[ -1 -] -= -old_to_new -[ -state -[ -1 -] -. -as_usize -( -) -] -. -as_u32 -( -) -; -state -[ -2 -] -= -old_to_new -[ -state -[ -2 -] -. -as_usize -( -) -] -. -as_u32 -( -) -; -} -else -{ -let -trans_len -= -State -: -: -sparse_trans_len -( -state -) -; -let -classes_len -= -u32_len -( -trans_len -) -; -state -[ -1 -] -= -old_to_new -[ -state -[ -1 -] -. -as_usize -( -) -] -. -as_u32 -( -) -; -for -next -in -state -[ -2 -+ -classes_len -. -. -] -[ -. -. -trans_len -] -. -iter_mut -( -) -{ -* -next -= -old_to_new -[ -next -. -as_usize -( -) -] -. -as_u32 -( -) -; -} -} -Ok -( -( -) -) -} -fn -len -( -alphabet_len -: -usize -is_match -: -bool -state -: -& -[ -u32 -] -) -- -> -usize -{ -let -kind_len -= -1 -; -let -fail_len -= -1 -; -let -kind -= -State -: -: -kind -( -state -) -; -let -( -classes_len -trans_len -) -= -if -kind -= -= -State -: -: -KIND_DENSE -{ -( -0 -alphabet_len -) -} -else -if -kind -= -= -State -: -: -KIND_ONE -{ -( -0 -1 -) -} -else -{ -let -trans_len -= -State -: -: -sparse_trans_len -( -state -) -; -let -classes_len -= -u32_len -( -trans_len -) -; -( -classes_len -trans_len -) -} -; -let -match_len -= -if -! -is_match -{ -0 -} -else -if -State -: -: -match_len -( -alphabet_len -state -) -= -= -1 -{ -1 -} -else -{ -1 -+ -State -: -: -match_len -( -alphabet_len -state -) -} -; -kind_len -+ -fail_len -+ -classes_len -+ -trans_len -+ -match_len -} -# -[ -inline -( -always -) -] -fn -kind -( -state -: -& -[ -u32 -] -) -- -> -u32 -{ -state -[ -State -: -: -KIND -] -& -0xFF -} -# -[ -inline -( -always -) -] -fn -sparse_trans_len -( -state -: -& -[ -u32 -] -) -- -> -usize -{ -( -state -[ -State -: -: -KIND -] -& -0xFF -) -. -as_usize -( -) -} -# -[ -inline -( -always -) -] -fn -match_len -( -alphabet_len -: -usize -state -: -& -[ -u32 -] -) -- -> -usize -{ -let -packed -= -if -State -: -: -kind -( -state -) -= -= -State -: -: -KIND_DENSE -{ -let -start -= -2 -+ -alphabet_len -; -state -[ -start -] -. -as_usize -( -) -} -else -{ -let -trans_len -= -State -: -: -sparse_trans_len -( -state -) -; -let -classes_len -= -u32_len -( -trans_len -) -; -let -start -= -2 -+ -classes_len -+ -trans_len -; -state -[ -start -] -. -as_usize -( -) -} -; -if -packed -& -( -1 -< -< -31 -) -= -= -0 -{ -packed -} -else -{ -1 -} -} -# -[ -inline -( -always -) -] -fn -match_pattern -( -alphabet_len -: -usize -state -: -& -[ -u32 -] -index -: -usize -) -- -> -PatternID -{ -let -start -= -if -State -: -: -kind -( -state -) -= -= -State -: -: -KIND_DENSE -{ -2 -+ -alphabet_len -} -else -{ -let -trans_len -= -State -: -: -sparse_trans_len -( -state -) -; -let -classes_len -= -u32_len -( -trans_len -) -; -2 -+ -classes_len -+ -trans_len -} -; -let -packed -= -state -[ -start -] -; -let -pid -= -if -packed -& -( -1 -< -< -31 -) -= -= -0 -{ -state -[ -start -+ -1 -+ -index -] -} -else -{ -assert_eq -! -( -0 -index -) -; -packed -& -! -( -1 -< -< -31 -) -} -; -PatternID -: -: -from_u32_unchecked -( -pid -) -} -fn -read -( -alphabet_len -: -usize -is_match -: -bool -state -: -& -' -a -[ -u32 -] -) -- -> -State -< -' -a -> -{ -let -kind -= -State -: -: -kind -( -state -) -; -let -match_len -= -if -! -is_match -{ -0 -} -else -{ -State -: -: -match_len -( -alphabet_len -state -) -} -; -let -( -trans -fail -) -= -if -kind -= -= -State -: -: -KIND_DENSE -{ -let -fail -= -StateID -: -: -from_u32_unchecked -( -state -[ -1 -] -) -; -let -class_to_next -= -& -state -[ -2 -. -. -] -[ -. -. -alphabet_len -] -; -( -StateTrans -: -: -Dense -{ -class_to_next -} -fail -) -} -else -if -kind -= -= -State -: -: -KIND_ONE -{ -let -fail -= -StateID -: -: -from_u32_unchecked -( -state -[ -1 -] -) -; -let -class -= -state -[ -State -: -: -KIND -] -. -low_u16 -( -) -. -high_u8 -( -) -; -let -next -= -state -[ -2 -] -; -( -StateTrans -: -: -One -{ -class -next -} -fail -) -} -else -{ -let -fail -= -StateID -: -: -from_u32_unchecked -( -state -[ -1 -] -) -; -let -trans_len -= -State -: -: -sparse_trans_len -( -state -) -; -let -classes_len -= -u32_len -( -trans_len -) -; -let -classes -= -& -state -[ -2 -. -. -] -[ -. -. -classes_len -] -; -let -nexts -= -& -state -[ -2 -+ -classes_len -. -. -] -[ -. -. -trans_len -] -; -( -StateTrans -: -: -Sparse -{ -classes -nexts -} -fail -) -} -; -State -{ -fail -match_len -trans -} -} -fn -write -( -nnfa -: -& -noncontiguous -: -: -NFA -oldsid -: -StateID -old -: -& -noncontiguous -: -: -State -classes -: -& -ByteClasses -dst -: -& -mut -Vec -< -u32 -> -force_dense -: -bool -) -- -> -Result -< -StateID -BuildError -> -{ -let -sid -= -StateID -: -: -new -( -dst -. -len -( -) -) -. -map_err -( -| -e -| -{ -BuildError -: -: -state_id_overflow -( -StateID -: -: -MAX -. -as_u64 -( -) -e -. -attempted -( -) -) -} -) -? -; -let -old_len -= -nnfa -. -iter_trans -( -oldsid -) -. -count -( -) -; -let -kind -= -if -force_dense -| -| -old_len -> -State -: -: -MAX_SPARSE_TRANSITIONS -{ -State -: -: -KIND_DENSE -} -else -if -old_len -= -= -1 -& -& -! -old -. -is_match -( -) -{ -State -: -: -KIND_ONE -} -else -{ -u32 -: -: -try_from -( -old_len -) -. -unwrap -( -) -} -; -if -kind -= -= -State -: -: -KIND_DENSE -{ -dst -. -push -( -kind -) -; -dst -. -push -( -old -. -fail -( -) -. -as_u32 -( -) -) -; -State -: -: -write_dense_trans -( -nnfa -oldsid -classes -dst -) -? -; -} -else -if -kind -= -= -State -: -: -KIND_ONE -{ -let -t -= -nnfa -. -iter_trans -( -oldsid -) -. -next -( -) -. -unwrap -( -) -; -let -class -= -u32 -: -: -from -( -classes -. -get -( -t -. -byte -( -) -) -) -; -dst -. -push -( -kind -| -( -class -< -< -8 -) -) -; -dst -. -push -( -old -. -fail -( -) -. -as_u32 -( -) -) -; -dst -. -push -( -t -. -next -( -) -. -as_u32 -( -) -) -; -} -else -{ -dst -. -push -( -kind -) -; -dst -. -push -( -old -. -fail -( -) -. -as_u32 -( -) -) -; -State -: -: -write_sparse_trans -( -nnfa -oldsid -classes -dst -) -? -; -} -if -old -. -is_match -( -) -{ -let -matches_len -= -nnfa -. -iter_matches -( -oldsid -) -. -count -( -) -; -if -matches_len -= -= -1 -{ -let -pid -= -nnfa -. -iter_matches -( -oldsid -) -. -next -( -) -. -unwrap -( -) -. -as_u32 -( -) -; -assert_eq -! -( -0 -pid -& -( -1 -< -< -31 -) -) -; -dst -. -push -( -( -1 -< -< -31 -) -| -pid -) -; -} -else -{ -assert_eq -! -( -0 -matches_len -& -( -1 -< -< -31 -) -) -; -dst -. -push -( -matches_len -. -as_u32 -( -) -) -; -dst -. -extend -( -nnfa -. -iter_matches -( -oldsid -) -. -map -( -| -pid -| -pid -. -as_u32 -( -) -) -) -; -} -} -Ok -( -sid -) -} -fn -write_sparse_trans -( -nnfa -: -& -noncontiguous -: -: -NFA -oldsid -: -StateID -classes -: -& -ByteClasses -dst -: -& -mut -Vec -< -u32 -> -) -- -> -Result -< -( -) -BuildError -> -{ -let -( -mut -chunk -mut -len -) -= -( -[ -0 -; -4 -] -0 -) -; -for -t -in -nnfa -. -iter_trans -( -oldsid -) -{ -chunk -[ -len -] -= -classes -. -get -( -t -. -byte -( -) -) -; -len -+ -= -1 -; -if -len -= -= -4 -{ -dst -. -push -( -u32 -: -: -from_ne_bytes -( -chunk -) -) -; -chunk -= -[ -0 -; -4 -] -; -len -= -0 -; -} -} -if -len -> -0 -{ -let -repeat -= -chunk -[ -len -- -1 -] -; -while -len -< -4 -{ -chunk -[ -len -] -= -repeat -; -len -+ -= -1 -; -} -dst -. -push -( -u32 -: -: -from_ne_bytes -( -chunk -) -) -; -} -for -t -in -nnfa -. -iter_trans -( -oldsid -) -{ -dst -. -push -( -t -. -next -( -) -. -as_u32 -( -) -) -; -} -Ok -( -( -) -) -} -fn -write_dense_trans -( -nnfa -: -& -noncontiguous -: -: -NFA -oldsid -: -StateID -classes -: -& -ByteClasses -dst -: -& -mut -Vec -< -u32 -> -) -- -> -Result -< -( -) -BuildError -> -{ -let -start -= -dst -. -len -( -) -; -dst -. -extend -( -core -: -: -iter -: -: -repeat -( -noncontiguous -: -: -NFA -: -: -FAIL -. -as_u32 -( -) -) -. -take -( -classes -. -alphabet_len -( -) -) -) -; -assert -! -( -start -< -dst -. -len -( -) -" -equivalence -classes -are -never -empty -" -) -; -for -t -in -nnfa -. -iter_trans -( -oldsid -) -{ -dst -[ -start -+ -usize -: -: -from -( -classes -. -get -( -t -. -byte -( -) -) -) -] -= -t -. -next -( -) -. -as_u32 -( -) -; -} -Ok -( -( -) -) -} -fn -transitions -< -' -b -> -( -& -' -b -self -) -- -> -impl -Iterator -< -Item -= -( -u8 -StateID -) -> -+ -' -b -{ -let -mut -i -= -0 -; -core -: -: -iter -: -: -from_fn -( -move -| -| -match -self -. -trans -{ -StateTrans -: -: -Sparse -{ -classes -nexts -} -= -> -{ -if -i -> -= -nexts -. -len -( -) -{ -return -None -; -} -let -chunk -= -classes -[ -i -/ -4 -] -; -let -class -= -chunk -. -to_ne_bytes -( -) -[ -i -% -4 -] -; -let -next -= -StateID -: -: -from_u32_unchecked -( -nexts -[ -i -] -) -; -i -+ -= -1 -; -Some -( -( -class -next -) -) -} -StateTrans -: -: -One -{ -class -next -} -= -> -{ -if -i -= -= -0 -{ -i -+ -= -1 -; -Some -( -( -class -StateID -: -: -from_u32_unchecked -( -next -) -) -) -} -else -{ -None -} -} -StateTrans -: -: -Dense -{ -class_to_next -} -= -> -{ -if -i -> -= -class_to_next -. -len -( -) -{ -return -None -; -} -let -class -= -i -. -as_u8 -( -) -; -let -next -= -StateID -: -: -from_u32_unchecked -( -class_to_next -[ -i -] -) -; -i -+ -= -1 -; -Some -( -( -class -next -) -) -} -} -) -} -} -impl -< -' -a -> -core -: -: -fmt -: -: -Debug -for -State -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -use -crate -: -: -{ -automaton -: -: -sparse_transitions -util -: -: -debug -: -: -DebugByte -} -; -let -it -= -sparse_transitions -( -self -. -transitions -( -) -) -. -filter -( -| -& -( -_ -_ -sid -) -| -sid -! -= -NFA -: -: -FAIL -) -. -enumerate -( -) -; -for -( -i -( -start -end -sid -) -) -in -it -{ -if -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -if -start -= -= -end -{ -write -! -( -f -" -{ -: -? -} -= -> -{ -: -? -} -" -DebugByte -( -start -) -sid -. -as_usize -( -) -) -? -; -} -else -{ -write -! -( -f -" -{ -: -? -} -- -{ -: -? -} -= -> -{ -: -? -} -" -DebugByte -( -start -) -DebugByte -( -end -) -sid -. -as_usize -( -) -) -? -; -} -} -Ok -( -( -) -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -noncontiguous -: -noncontiguous -: -: -Builder -dense_depth -: -usize -byte_classes -: -bool -} -impl -Default -for -Builder -{ -fn -default -( -) -- -> -Builder -{ -Builder -{ -noncontiguous -: -noncontiguous -: -: -Builder -: -: -new -( -) -dense_depth -: -2 -byte_classes -: -true -} -} -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -: -: -default -( -) -} -pub -fn -build -< -I -P -> -( -& -self -patterns -: -I -) -- -> -Result -< -NFA -BuildError -> -where -I -: -IntoIterator -< -Item -= -P -> -P -: -AsRef -< -[ -u8 -] -> -{ -let -nnfa -= -self -. -noncontiguous -. -build -( -patterns -) -? -; -self -. -build_from_noncontiguous -( -& -nnfa -) -} -pub -fn -build_from_noncontiguous -( -& -self -nnfa -: -& -noncontiguous -: -: -NFA -) -- -> -Result -< -NFA -BuildError -> -{ -debug -! -( -" -building -contiguous -NFA -" -) -; -let -byte_classes -= -if -self -. -byte_classes -{ -nnfa -. -byte_classes -( -) -. -clone -( -) -} -else -{ -ByteClasses -: -: -singletons -( -) -} -; -let -mut -index_to_state_id -= -vec -! -[ -NFA -: -: -DEAD -; -nnfa -. -states -( -) -. -len -( -) -] -; -let -mut -nfa -= -NFA -{ -repr -: -vec -! -[ -] -pattern_lens -: -nnfa -. -pattern_lens_raw -( -) -. -to_vec -( -) -state_len -: -nnfa -. -states -( -) -. -len -( -) -prefilter -: -nnfa -. -prefilter -( -) -. -map -( -| -p -| -p -. -clone -( -) -) -match_kind -: -nnfa -. -match_kind -( -) -alphabet_len -: -byte_classes -. -alphabet_len -( -) -byte_classes -min_pattern_len -: -nnfa -. -min_pattern_len -( -) -max_pattern_len -: -nnfa -. -max_pattern_len -( -) -special -: -Special -: -: -zero -( -) -} -; -for -( -oldsid -state -) -in -nnfa -. -states -( -) -. -iter -( -) -. -with_state_ids -( -) -{ -if -oldsid -= -= -noncontiguous -: -: -NFA -: -: -FAIL -{ -index_to_state_id -[ -oldsid -] -= -NFA -: -: -FAIL -; -continue -; -} -let -force_dense -= -state -. -depth -( -) -. -as_usize -( -) -< -self -. -dense_depth -; -let -newsid -= -State -: -: -write -( -nnfa -oldsid -state -& -nfa -. -byte_classes -& -mut -nfa -. -repr -force_dense -) -? -; -index_to_state_id -[ -oldsid -] -= -newsid -; -} -for -& -newsid -in -index_to_state_id -. -iter -( -) -{ -if -newsid -= -= -NFA -: -: -FAIL -{ -continue -; -} -let -state -= -& -mut -nfa -. -repr -[ -newsid -. -as_usize -( -) -. -. -] -; -State -: -: -remap -( -nfa -. -alphabet_len -& -index_to_state_id -state -) -? -; -} -let -remap -= -& -index_to_state_id -; -let -old -= -nnfa -. -special -( -) -; -let -new -= -& -mut -nfa -. -special -; -new -. -max_special_id -= -remap -[ -old -. -max_special_id -] -; -new -. -max_match_id -= -remap -[ -old -. -max_match_id -] -; -new -. -start_unanchored_id -= -remap -[ -old -. -start_unanchored_id -] -; -new -. -start_anchored_id -= -remap -[ -old -. -start_anchored_id -] -; -debug -! -( -" -contiguous -NFA -built -< -states -: -{ -: -? -} -size -: -{ -: -? -} -\ -alphabet -len -: -{ -: -? -} -> -" -nfa -. -state_len -nfa -. -memory_usage -( -) -nfa -. -byte_classes -. -alphabet_len -( -) -) -; -nfa -. -repr -. -shrink_to_fit -( -) -; -nfa -. -pattern_lens -. -shrink_to_fit -( -) -; -Ok -( -nfa -) -} -pub -fn -match_kind -( -& -mut -self -kind -: -MatchKind -) -- -> -& -mut -Builder -{ -self -. -noncontiguous -. -match_kind -( -kind -) -; -self -} -pub -fn -ascii_case_insensitive -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -noncontiguous -. -ascii_case_insensitive -( -yes -) -; -self -} -pub -fn -prefilter -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -noncontiguous -. -prefilter -( -yes -) -; -self -} -pub -fn -dense_depth -( -& -mut -self -depth -: -usize -) -- -> -& -mut -Builder -{ -self -. -dense_depth -= -depth -; -self -} -pub -fn -byte_classes -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -byte_classes -= -yes -; -self -} -} -fn -u32_len -( -ntrans -: -usize -) -- -> -usize -{ -if -ntrans -% -4 -= -= -0 -{ -ntrans -> -> -2 -} -else -{ -( -ntrans -> -> -2 -) -+ -1 -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -# -[ -cfg -( -target_endian -= -" -little -" -) -] -# -[ -test -] -fn -swar -( -) -{ -use -super -: -: -* -; -fn -has_zero_byte -( -x -: -u32 -) -- -> -u32 -{ -const -LO_U32 -: -u32 -= -0x01010101 -; -const -HI_U32 -: -u32 -= -0x80808080 -; -x -. -wrapping_sub -( -LO_U32 -) -& -! -x -& -HI_U32 -} -fn -broadcast -( -b -: -u8 -) -- -> -u32 -{ -( -u32 -: -: -from -( -b -) -) -* -( -u32 -: -: -MAX -/ -255 -) -} -fn -index_of -( -x -: -u32 -) -- -> -usize -{ -let -o -= -( -( -( -x -- -1 -) -& -0x01010101 -) -. -wrapping_mul -( -0x01010101 -) -> -> -24 -) -- -1 -; -o -. -as_usize -( -) -} -let -bytes -: -[ -u8 -; -4 -] -= -[ -b -' -1 -' -b -' -A -' -b -' -a -' -b -' -z -' -] -; -let -chunk -= -u32 -: -: -from_ne_bytes -( -bytes -) -; -let -needle -= -broadcast -( -b -' -1 -' -) -; -assert_eq -! -( -0 -index_of -( -has_zero_byte -( -needle -^ -chunk -) -) -) -; -let -needle -= -broadcast -( -b -' -A -' -) -; -assert_eq -! -( -1 -index_of -( -has_zero_byte -( -needle -^ -chunk -) -) -) -; -let -needle -= -broadcast -( -b -' -a -' -) -; -assert_eq -! -( -2 -index_of -( -has_zero_byte -( -needle -^ -chunk -) -) -) -; -let -needle -= -broadcast -( -b -' -z -' -) -; -assert_eq -! -( -3 -index_of -( -has_zero_byte -( -needle -^ -chunk -) -) -) -; -} -} diff --git a/third_party/rust/aho-corasick/src/nfa/mod.rs b/third_party/rust/aho-corasick/src/nfa/mod.rs deleted file mode 100644 index 03681ad7a9140..0000000000000 --- a/third_party/rust/aho-corasick/src/nfa/mod.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub -mod -contiguous -; -pub -mod -noncontiguous -; diff --git a/third_party/rust/aho-corasick/src/nfa/noncontiguous.rs b/third_party/rust/aho-corasick/src/nfa/noncontiguous.rs deleted file mode 100644 index 501dabd7cea22..0000000000000 --- a/third_party/rust/aho-corasick/src/nfa/noncontiguous.rs +++ /dev/null @@ -1,6779 +0,0 @@ -use -alloc -: -: -{ -collections -: -: -{ -BTreeSet -VecDeque -} -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -automaton -: -: -Automaton -util -: -: -{ -alphabet -: -: -{ -ByteClassSet -ByteClasses -} -error -: -: -{ -BuildError -MatchError -} -prefilter -: -: -{ -self -opposite_ascii_case -Prefilter -} -primitives -: -: -{ -IteratorIndexExt -PatternID -SmallIndex -StateID -} -remapper -: -: -Remapper -search -: -: -{ -Anchored -MatchKind -} -special -: -: -Special -} -} -; -# -[ -derive -( -Clone -) -] -pub -struct -NFA -{ -match_kind -: -MatchKind -states -: -Vec -< -State -> -sparse -: -Vec -< -Transition -> -dense -: -Vec -< -StateID -> -matches -: -Vec -< -Match -> -pattern_lens -: -Vec -< -SmallIndex -> -prefilter -: -Option -< -Prefilter -> -byte_classes -: -ByteClasses -min_pattern_len -: -usize -max_pattern_len -: -usize -special -: -Special -} -impl -NFA -{ -pub -fn -new -< -I -P -> -( -patterns -: -I -) -- -> -Result -< -NFA -BuildError -> -where -I -: -IntoIterator -< -Item -= -P -> -P -: -AsRef -< -[ -u8 -] -> -{ -NFA -: -: -builder -( -) -. -build -( -patterns -) -} -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -} -impl -NFA -{ -pub -( -crate -) -const -DEAD -: -StateID -= -StateID -: -: -new_unchecked -( -0 -) -; -pub -( -crate -) -const -FAIL -: -StateID -= -StateID -: -: -new_unchecked -( -1 -) -; -pub -( -crate -) -fn -byte_classes -( -& -self -) -- -> -& -ByteClasses -{ -& -self -. -byte_classes -} -pub -( -crate -) -fn -pattern_lens_raw -( -& -self -) -- -> -& -[ -SmallIndex -] -{ -& -self -. -pattern_lens -} -pub -( -crate -) -fn -states -( -& -self -) -- -> -& -[ -State -] -{ -& -self -. -states -} -pub -( -crate -) -fn -special -( -& -self -) -- -> -& -Special -{ -& -self -. -special -} -pub -( -crate -) -fn -swap_states -( -& -mut -self -id1 -: -StateID -id2 -: -StateID -) -{ -self -. -states -. -swap -( -id1 -. -as_usize -( -) -id2 -. -as_usize -( -) -) -; -} -pub -( -crate -) -fn -remap -( -& -mut -self -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -{ -let -alphabet_len -= -self -. -byte_classes -. -alphabet_len -( -) -; -for -state -in -self -. -states -. -iter_mut -( -) -{ -state -. -fail -= -map -( -state -. -fail -) -; -let -mut -link -= -state -. -sparse -; -while -link -! -= -StateID -: -: -ZERO -{ -let -t -= -& -mut -self -. -sparse -[ -link -] -; -t -. -next -= -map -( -t -. -next -) -; -link -= -t -. -link -; -} -if -state -. -dense -! -= -StateID -: -: -ZERO -{ -let -start -= -state -. -dense -. -as_usize -( -) -; -for -next -in -self -. -dense -[ -start -. -. -] -[ -. -. -alphabet_len -] -. -iter_mut -( -) -{ -* -next -= -map -( -* -next -) -; -} -} -} -} -pub -( -crate -) -fn -iter_trans -( -& -self -sid -: -StateID -) -- -> -impl -Iterator -< -Item -= -Transition -> -+ -' -_ -{ -let -mut -link -= -self -. -states -[ -sid -] -. -sparse -; -core -: -: -iter -: -: -from_fn -( -move -| -| -{ -if -link -= -= -StateID -: -: -ZERO -{ -return -None -; -} -let -t -= -self -. -sparse -[ -link -] -; -link -= -t -. -link -; -Some -( -t -) -} -) -} -pub -( -crate -) -fn -iter_matches -( -& -self -sid -: -StateID -) -- -> -impl -Iterator -< -Item -= -PatternID -> -+ -' -_ -{ -let -mut -link -= -self -. -states -[ -sid -] -. -matches -; -core -: -: -iter -: -: -from_fn -( -move -| -| -{ -if -link -= -= -StateID -: -: -ZERO -{ -return -None -; -} -let -m -= -self -. -matches -[ -link -] -; -link -= -m -. -link -; -Some -( -m -. -pid -) -} -) -} -fn -next_link -( -& -self -sid -: -StateID -prev -: -Option -< -StateID -> -) -- -> -Option -< -StateID -> -{ -let -link -= -prev -. -map_or -( -self -. -states -[ -sid -] -. -sparse -| -p -| -self -. -sparse -[ -p -] -. -link -) -; -if -link -= -= -StateID -: -: -ZERO -{ -None -} -else -{ -Some -( -link -) -} -} -# -[ -inline -( -always -) -] -fn -follow_transition -( -& -self -sid -: -StateID -byte -: -u8 -) -- -> -StateID -{ -let -s -= -& -self -. -states -[ -sid -] -; -if -s -. -dense -= -= -StateID -: -: -ZERO -{ -self -. -follow_transition_sparse -( -sid -byte -) -} -else -{ -let -class -= -usize -: -: -from -( -self -. -byte_classes -. -get -( -byte -) -) -; -self -. -dense -[ -s -. -dense -. -as_usize -( -) -+ -class -] -} -} -# -[ -inline -( -always -) -] -fn -follow_transition_sparse -( -& -self -sid -: -StateID -byte -: -u8 -) -- -> -StateID -{ -for -t -in -self -. -iter_trans -( -sid -) -{ -if -byte -< -= -t -. -byte -{ -if -byte -= -= -t -. -byte -{ -return -t -. -next -; -} -break -; -} -} -NFA -: -: -FAIL -} -fn -add_transition -( -& -mut -self -prev -: -StateID -byte -: -u8 -next -: -StateID -) -- -> -Result -< -( -) -BuildError -> -{ -if -self -. -states -[ -prev -] -. -dense -! -= -StateID -: -: -ZERO -{ -let -dense -= -self -. -states -[ -prev -] -. -dense -; -let -class -= -usize -: -: -from -( -self -. -byte_classes -. -get -( -byte -) -) -; -self -. -dense -[ -dense -. -as_usize -( -) -+ -class -] -= -next -; -} -let -head -= -self -. -states -[ -prev -] -. -sparse -; -if -head -= -= -StateID -: -: -ZERO -| -| -byte -< -self -. -sparse -[ -head -] -. -byte -{ -let -new_link -= -self -. -alloc_transition -( -) -? -; -self -. -sparse -[ -new_link -] -= -Transition -{ -byte -next -link -: -head -} -; -self -. -states -[ -prev -] -. -sparse -= -new_link -; -return -Ok -( -( -) -) -; -} -else -if -byte -= -= -self -. -sparse -[ -head -] -. -byte -{ -self -. -sparse -[ -head -] -. -next -= -next -; -return -Ok -( -( -) -) -; -} -let -( -mut -link_prev -mut -link_next -) -= -( -head -self -. -sparse -[ -head -] -. -link -) -; -while -link_next -! -= -StateID -: -: -ZERO -& -& -byte -> -self -. -sparse -[ -link_next -] -. -byte -{ -link_prev -= -link_next -; -link_next -= -self -. -sparse -[ -link_next -] -. -link -; -} -if -link_next -= -= -StateID -: -: -ZERO -| -| -byte -< -self -. -sparse -[ -link_next -] -. -byte -{ -let -link -= -self -. -alloc_transition -( -) -? -; -self -. -sparse -[ -link -] -= -Transition -{ -byte -next -link -: -link_next -} -; -self -. -sparse -[ -link_prev -] -. -link -= -link -; -} -else -{ -assert_eq -! -( -byte -self -. -sparse -[ -link_next -] -. -byte -) -; -self -. -sparse -[ -link_next -] -. -next -= -next -; -} -Ok -( -( -) -) -} -fn -init_full_state -( -& -mut -self -prev -: -StateID -next -: -StateID -) -- -> -Result -< -( -) -BuildError -> -{ -assert_eq -! -( -StateID -: -: -ZERO -self -. -states -[ -prev -] -. -dense -" -state -must -not -be -dense -yet -" -) -; -assert_eq -! -( -StateID -: -: -ZERO -self -. -states -[ -prev -] -. -sparse -" -state -must -have -zero -transitions -" -) -; -let -mut -prev_link -= -StateID -: -: -ZERO -; -for -byte -in -0 -. -. -= -255 -{ -let -new_link -= -self -. -alloc_transition -( -) -? -; -self -. -sparse -[ -new_link -] -= -Transition -{ -byte -next -link -: -StateID -: -: -ZERO -} -; -if -prev_link -= -= -StateID -: -: -ZERO -{ -self -. -states -[ -prev -] -. -sparse -= -new_link -; -} -else -{ -self -. -sparse -[ -prev_link -] -. -link -= -new_link -; -} -prev_link -= -new_link -; -} -Ok -( -( -) -) -} -fn -add_match -( -& -mut -self -sid -: -StateID -pid -: -PatternID -) -- -> -Result -< -( -) -BuildError -> -{ -let -head -= -self -. -states -[ -sid -] -. -matches -; -let -mut -link -= -head -; -while -self -. -matches -[ -link -] -. -link -! -= -StateID -: -: -ZERO -{ -link -= -self -. -matches -[ -link -] -. -link -; -} -let -new_match_link -= -self -. -alloc_match -( -) -? -; -self -. -matches -[ -new_match_link -] -. -pid -= -pid -; -if -link -= -= -StateID -: -: -ZERO -{ -self -. -states -[ -sid -] -. -matches -= -new_match_link -; -} -else -{ -self -. -matches -[ -link -] -. -link -= -new_match_link -; -} -Ok -( -( -) -) -} -fn -copy_matches -( -& -mut -self -src -: -StateID -dst -: -StateID -) -- -> -Result -< -( -) -BuildError -> -{ -let -head_dst -= -self -. -states -[ -dst -] -. -matches -; -let -mut -link_dst -= -head_dst -; -while -self -. -matches -[ -link_dst -] -. -link -! -= -StateID -: -: -ZERO -{ -link_dst -= -self -. -matches -[ -link_dst -] -. -link -; -} -let -mut -link_src -= -self -. -states -[ -src -] -. -matches -; -while -link_src -! -= -StateID -: -: -ZERO -{ -let -new_match_link -= -StateID -: -: -new -( -self -. -matches -. -len -( -) -) -. -map_err -( -| -e -| -{ -BuildError -: -: -state_id_overflow -( -StateID -: -: -MAX -. -as_u64 -( -) -e -. -attempted -( -) -) -} -) -? -; -self -. -matches -. -push -( -Match -{ -pid -: -self -. -matches -[ -link_src -] -. -pid -link -: -StateID -: -: -ZERO -} -) -; -if -link_dst -= -= -StateID -: -: -ZERO -{ -self -. -states -[ -dst -] -. -matches -= -new_match_link -; -} -else -{ -self -. -matches -[ -link_dst -] -. -link -= -new_match_link -; -} -link_dst -= -new_match_link -; -link_src -= -self -. -matches -[ -link_src -] -. -link -; -} -Ok -( -( -) -) -} -fn -alloc_transition -( -& -mut -self -) -- -> -Result -< -StateID -BuildError -> -{ -let -id -= -StateID -: -: -new -( -self -. -sparse -. -len -( -) -) -. -map_err -( -| -e -| -{ -BuildError -: -: -state_id_overflow -( -StateID -: -: -MAX -. -as_u64 -( -) -e -. -attempted -( -) -) -} -) -? -; -self -. -sparse -. -push -( -Transition -: -: -default -( -) -) -; -Ok -( -id -) -} -fn -alloc_match -( -& -mut -self -) -- -> -Result -< -StateID -BuildError -> -{ -let -id -= -StateID -: -: -new -( -self -. -matches -. -len -( -) -) -. -map_err -( -| -e -| -{ -BuildError -: -: -state_id_overflow -( -StateID -: -: -MAX -. -as_u64 -( -) -e -. -attempted -( -) -) -} -) -? -; -self -. -matches -. -push -( -Match -: -: -default -( -) -) -; -Ok -( -id -) -} -fn -alloc_dense_state -( -& -mut -self -) -- -> -Result -< -StateID -BuildError -> -{ -let -id -= -StateID -: -: -new -( -self -. -dense -. -len -( -) -) -. -map_err -( -| -e -| -{ -BuildError -: -: -state_id_overflow -( -StateID -: -: -MAX -. -as_u64 -( -) -e -. -attempted -( -) -) -} -) -? -; -self -. -dense -. -extend -( -core -: -: -iter -: -: -repeat -( -NFA -: -: -FAIL -) -. -take -( -self -. -byte_classes -. -alphabet_len -( -) -) -) -; -Ok -( -id -) -} -fn -alloc_state -( -& -mut -self -depth -: -usize -) -- -> -Result -< -StateID -BuildError -> -{ -let -depth -= -SmallIndex -: -: -new -( -depth -) -. -expect -( -" -patterns -longer -than -SmallIndex -: -: -MAX -are -not -allowed -" -) -; -let -id -= -StateID -: -: -new -( -self -. -states -. -len -( -) -) -. -map_err -( -| -e -| -{ -BuildError -: -: -state_id_overflow -( -StateID -: -: -MAX -. -as_u64 -( -) -e -. -attempted -( -) -) -} -) -? -; -self -. -states -. -push -( -State -{ -sparse -: -StateID -: -: -ZERO -dense -: -StateID -: -: -ZERO -matches -: -StateID -: -: -ZERO -fail -: -self -. -special -. -start_unanchored_id -depth -} -) -; -Ok -( -id -) -} -} -unsafe -impl -Automaton -for -NFA -{ -# -[ -inline -( -always -) -] -fn -start_state -( -& -self -anchored -: -Anchored -) -- -> -Result -< -StateID -MatchError -> -{ -match -anchored -{ -Anchored -: -: -No -= -> -Ok -( -self -. -special -. -start_unanchored_id -) -Anchored -: -: -Yes -= -> -Ok -( -self -. -special -. -start_anchored_id -) -} -} -# -[ -inline -( -always -) -] -fn -next_state -( -& -self -anchored -: -Anchored -mut -sid -: -StateID -byte -: -u8 -) -- -> -StateID -{ -loop -{ -let -next -= -self -. -follow_transition -( -sid -byte -) -; -if -next -! -= -NFA -: -: -FAIL -{ -return -next -; -} -if -anchored -. -is_anchored -( -) -{ -return -NFA -: -: -DEAD -; -} -sid -= -self -. -states -[ -sid -] -. -fail -( -) -; -} -} -# -[ -inline -( -always -) -] -fn -is_special -( -& -self -sid -: -StateID -) -- -> -bool -{ -sid -< -= -self -. -special -. -max_special_id -} -# -[ -inline -( -always -) -] -fn -is_dead -( -& -self -sid -: -StateID -) -- -> -bool -{ -sid -= -= -NFA -: -: -DEAD -} -# -[ -inline -( -always -) -] -fn -is_match -( -& -self -sid -: -StateID -) -- -> -bool -{ -! -self -. -is_dead -( -sid -) -& -& -sid -< -= -self -. -special -. -max_match_id -} -# -[ -inline -( -always -) -] -fn -is_start -( -& -self -sid -: -StateID -) -- -> -bool -{ -sid -= -= -self -. -special -. -start_unanchored_id -| -| -sid -= -= -self -. -special -. -start_anchored_id -} -# -[ -inline -( -always -) -] -fn -match_kind -( -& -self -) -- -> -MatchKind -{ -self -. -match_kind -} -# -[ -inline -( -always -) -] -fn -patterns_len -( -& -self -) -- -> -usize -{ -self -. -pattern_lens -. -len -( -) -} -# -[ -inline -( -always -) -] -fn -pattern_len -( -& -self -pid -: -PatternID -) -- -> -usize -{ -self -. -pattern_lens -[ -pid -] -. -as_usize -( -) -} -# -[ -inline -( -always -) -] -fn -min_pattern_len -( -& -self -) -- -> -usize -{ -self -. -min_pattern_len -} -# -[ -inline -( -always -) -] -fn -max_pattern_len -( -& -self -) -- -> -usize -{ -self -. -max_pattern_len -} -# -[ -inline -( -always -) -] -fn -match_len -( -& -self -sid -: -StateID -) -- -> -usize -{ -self -. -iter_matches -( -sid -) -. -count -( -) -} -# -[ -inline -( -always -) -] -fn -match_pattern -( -& -self -sid -: -StateID -index -: -usize -) -- -> -PatternID -{ -self -. -iter_matches -( -sid -) -. -nth -( -index -) -. -unwrap -( -) -} -# -[ -inline -( -always -) -] -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -states -. -len -( -) -* -core -: -: -mem -: -: -size_of -: -: -< -State -> -( -) -+ -self -. -sparse -. -len -( -) -* -core -: -: -mem -: -: -size_of -: -: -< -Transition -> -( -) -+ -self -. -matches -. -len -( -) -* -core -: -: -mem -: -: -size_of -: -: -< -Match -> -( -) -+ -self -. -dense -. -len -( -) -* -StateID -: -: -SIZE -+ -self -. -pattern_lens -. -len -( -) -* -SmallIndex -: -: -SIZE -+ -self -. -prefilter -. -as_ref -( -) -. -map_or -( -0 -| -p -| -p -. -memory_usage -( -) -) -} -# -[ -inline -( -always -) -] -fn -prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -self -. -prefilter -. -as_ref -( -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -State -{ -sparse -: -StateID -dense -: -StateID -matches -: -StateID -fail -: -StateID -depth -: -SmallIndex -} -impl -State -{ -pub -( -crate -) -fn -is_match -( -& -self -) -- -> -bool -{ -self -. -matches -! -= -StateID -: -: -ZERO -} -pub -( -crate -) -fn -fail -( -& -self -) -- -> -StateID -{ -self -. -fail -} -pub -( -crate -) -fn -depth -( -& -self -) -- -> -SmallIndex -{ -self -. -depth -} -} -# -[ -derive -( -Clone -Copy -Default -) -] -# -[ -repr -( -packed -) -] -pub -( -crate -) -struct -Transition -{ -byte -: -u8 -next -: -StateID -link -: -StateID -} -impl -Transition -{ -pub -( -crate -) -fn -byte -( -& -self -) -- -> -u8 -{ -self -. -byte -} -pub -( -crate -) -fn -next -( -& -self -) -- -> -StateID -{ -self -. -next -} -fn -link -( -& -self -) -- -> -StateID -{ -self -. -link -} -} -impl -core -: -: -fmt -: -: -Debug -for -Transition -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -Transition -( -byte -: -{ -: -X -? -} -next -: -{ -: -? -} -link -: -{ -: -? -} -) -" -self -. -byte -self -. -next -( -) -. -as_usize -( -) -self -. -link -( -) -. -as_usize -( -) -) -} -} -# -[ -derive -( -Clone -Copy -Default -) -] -struct -Match -{ -pid -: -PatternID -link -: -StateID -} -impl -Match -{ -pub -( -crate -) -fn -pattern -( -& -self -) -- -> -PatternID -{ -self -. -pid -} -fn -link -( -& -self -) -- -> -StateID -{ -self -. -link -} -} -impl -core -: -: -fmt -: -: -Debug -for -Match -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -Match -( -pid -: -{ -: -? -} -link -: -{ -: -? -} -) -" -self -. -pattern -( -) -. -as_usize -( -) -self -. -link -( -) -. -as_usize -( -) -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -match_kind -: -MatchKind -prefilter -: -bool -ascii_case_insensitive -: -bool -dense_depth -: -usize -} -impl -Default -for -Builder -{ -fn -default -( -) -- -> -Builder -{ -Builder -{ -match_kind -: -MatchKind -: -: -default -( -) -prefilter -: -true -ascii_case_insensitive -: -false -dense_depth -: -3 -} -} -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -: -: -default -( -) -} -pub -fn -build -< -I -P -> -( -& -self -patterns -: -I -) -- -> -Result -< -NFA -BuildError -> -where -I -: -IntoIterator -< -Item -= -P -> -P -: -AsRef -< -[ -u8 -] -> -{ -debug -! -( -" -building -non -- -contiguous -NFA -" -) -; -let -nfa -= -Compiler -: -: -new -( -self -) -? -. -compile -( -patterns -) -? -; -debug -! -( -" -non -- -contiguous -NFA -built -< -states -: -{ -: -? -} -size -: -{ -: -? -} -> -" -nfa -. -states -. -len -( -) -nfa -. -memory_usage -( -) -) -; -Ok -( -nfa -) -} -pub -fn -match_kind -( -& -mut -self -kind -: -MatchKind -) -- -> -& -mut -Builder -{ -self -. -match_kind -= -kind -; -self -} -pub -fn -ascii_case_insensitive -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -ascii_case_insensitive -= -yes -; -self -} -pub -fn -dense_depth -( -& -mut -self -depth -: -usize -) -- -> -& -mut -Builder -{ -self -. -dense_depth -= -depth -; -self -} -pub -fn -prefilter -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -prefilter -= -yes -; -self -} -} -# -[ -derive -( -Debug -) -] -struct -Compiler -< -' -a -> -{ -builder -: -& -' -a -Builder -prefilter -: -prefilter -: -: -Builder -nfa -: -NFA -byteset -: -ByteClassSet -} -impl -< -' -a -> -Compiler -< -' -a -> -{ -fn -new -( -builder -: -& -' -a -Builder -) -- -> -Result -< -Compiler -< -' -a -> -BuildError -> -{ -let -prefilter -= -prefilter -: -: -Builder -: -: -new -( -builder -. -match_kind -) -. -ascii_case_insensitive -( -builder -. -ascii_case_insensitive -) -; -Ok -( -Compiler -{ -builder -prefilter -nfa -: -NFA -{ -match_kind -: -builder -. -match_kind -states -: -vec -! -[ -] -sparse -: -vec -! -[ -] -dense -: -vec -! -[ -] -matches -: -vec -! -[ -] -pattern_lens -: -vec -! -[ -] -prefilter -: -None -byte_classes -: -ByteClasses -: -: -singletons -( -) -min_pattern_len -: -usize -: -: -MAX -max_pattern_len -: -0 -special -: -Special -: -: -zero -( -) -} -byteset -: -ByteClassSet -: -: -empty -( -) -} -) -} -fn -compile -< -I -P -> -( -mut -self -patterns -: -I -) -- -> -Result -< -NFA -BuildError -> -where -I -: -IntoIterator -< -Item -= -P -> -P -: -AsRef -< -[ -u8 -] -> -{ -self -. -nfa -. -sparse -. -push -( -Transition -: -: -default -( -) -) -; -self -. -nfa -. -matches -. -push -( -Match -: -: -default -( -) -) -; -self -. -nfa -. -dense -. -push -( -NFA -: -: -DEAD -) -; -self -. -nfa -. -alloc_state -( -0 -) -? -; -self -. -nfa -. -alloc_state -( -0 -) -? -; -self -. -nfa -. -special -. -start_unanchored_id -= -self -. -nfa -. -alloc_state -( -0 -) -? -; -self -. -nfa -. -special -. -start_anchored_id -= -self -. -nfa -. -alloc_state -( -0 -) -? -; -self -. -init_unanchored_start_state -( -) -? -; -self -. -add_dead_state_loop -( -) -? -; -self -. -build_trie -( -patterns -) -? -; -self -. -nfa -. -states -. -shrink_to_fit -( -) -; -self -. -nfa -. -byte_classes -= -self -. -byteset -. -byte_classes -( -) -; -self -. -set_anchored_start_state -( -) -? -; -self -. -add_unanchored_start_state_loop -( -) -; -self -. -densify -( -) -? -; -self -. -fill_failure_transitions -( -) -? -; -self -. -close_start_state_loop_for_leftmost -( -) -; -self -. -shuffle -( -) -; -self -. -nfa -. -prefilter -= -self -. -prefilter -. -build -( -) -; -self -. -nfa -. -special -. -max_special_id -= -if -self -. -nfa -. -prefilter -. -is_some -( -) -{ -self -. -nfa -. -special -. -start_anchored_id -} -else -{ -self -. -nfa -. -special -. -max_match_id -} -; -self -. -nfa -. -sparse -. -shrink_to_fit -( -) -; -self -. -nfa -. -dense -. -shrink_to_fit -( -) -; -self -. -nfa -. -matches -. -shrink_to_fit -( -) -; -self -. -nfa -. -pattern_lens -. -shrink_to_fit -( -) -; -Ok -( -self -. -nfa -) -} -fn -build_trie -< -I -P -> -( -& -mut -self -patterns -: -I -) -- -> -Result -< -( -) -BuildError -> -where -I -: -IntoIterator -< -Item -= -P -> -P -: -AsRef -< -[ -u8 -] -> -{ -' -PATTERNS -: -for -( -i -pat -) -in -patterns -. -into_iter -( -) -. -enumerate -( -) -{ -let -pid -= -PatternID -: -: -new -( -i -) -. -map_err -( -| -e -| -{ -BuildError -: -: -pattern_id_overflow -( -PatternID -: -: -MAX -. -as_u64 -( -) -e -. -attempted -( -) -) -} -) -? -; -let -pat -= -pat -. -as_ref -( -) -; -let -patlen -= -SmallIndex -: -: -new -( -pat -. -len -( -) -) -. -map_err -( -| -_ -| -BuildError -: -: -pattern_too_long -( -pid -pat -. -len -( -) -) -) -? -; -self -. -nfa -. -min_pattern_len -= -core -: -: -cmp -: -: -min -( -self -. -nfa -. -min_pattern_len -pat -. -len -( -) -) -; -self -. -nfa -. -max_pattern_len -= -core -: -: -cmp -: -: -max -( -self -. -nfa -. -max_pattern_len -pat -. -len -( -) -) -; -assert_eq -! -( -i -self -. -nfa -. -pattern_lens -. -len -( -) -" -expected -number -of -patterns -to -match -pattern -ID -" -) -; -self -. -nfa -. -pattern_lens -. -push -( -patlen -) -; -if -self -. -builder -. -prefilter -{ -self -. -prefilter -. -add -( -pat -) -; -} -let -mut -prev -= -self -. -nfa -. -special -. -start_unanchored_id -; -let -mut -saw_match -= -false -; -for -( -depth -& -b -) -in -pat -. -iter -( -) -. -enumerate -( -) -{ -saw_match -= -saw_match -| -| -self -. -nfa -. -states -[ -prev -] -. -is_match -( -) -; -if -self -. -builder -. -match_kind -. -is_leftmost_first -( -) -& -& -saw_match -{ -continue -' -PATTERNS -; -} -self -. -byteset -. -set_range -( -b -b -) -; -if -self -. -builder -. -ascii_case_insensitive -{ -let -b -= -opposite_ascii_case -( -b -) -; -self -. -byteset -. -set_range -( -b -b -) -; -} -let -next -= -self -. -nfa -. -follow_transition -( -prev -b -) -; -if -next -! -= -NFA -: -: -FAIL -{ -prev -= -next -; -} -else -{ -let -next -= -self -. -nfa -. -alloc_state -( -depth -) -? -; -self -. -nfa -. -add_transition -( -prev -b -next -) -? -; -if -self -. -builder -. -ascii_case_insensitive -{ -let -b -= -opposite_ascii_case -( -b -) -; -self -. -nfa -. -add_transition -( -prev -b -next -) -? -; -} -prev -= -next -; -} -} -self -. -nfa -. -add_match -( -prev -pid -) -? -; -} -Ok -( -( -) -) -} -fn -fill_failure_transitions -( -& -mut -self -) -- -> -Result -< -( -) -BuildError -> -{ -let -is_leftmost -= -self -. -builder -. -match_kind -. -is_leftmost -( -) -; -let -start_uid -= -self -. -nfa -. -special -. -start_unanchored_id -; -let -mut -queue -= -VecDeque -: -: -new -( -) -; -let -mut -seen -= -self -. -queued_set -( -) -; -let -mut -prev_link -= -None -; -while -let -Some -( -link -) -= -self -. -nfa -. -next_link -( -start_uid -prev_link -) -{ -prev_link -= -Some -( -link -) -; -let -t -= -self -. -nfa -. -sparse -[ -link -] -; -if -start_uid -= -= -t -. -next -( -) -| -| -seen -. -contains -( -t -. -next -) -{ -continue -; -} -queue -. -push_back -( -t -. -next -) -; -seen -. -insert -( -t -. -next -) -; -if -is_leftmost -& -& -self -. -nfa -. -states -[ -t -. -next -] -. -is_match -( -) -{ -self -. -nfa -. -states -[ -t -. -next -] -. -fail -= -NFA -: -: -DEAD -; -} -} -while -let -Some -( -id -) -= -queue -. -pop_front -( -) -{ -let -mut -prev_link -= -None -; -while -let -Some -( -link -) -= -self -. -nfa -. -next_link -( -id -prev_link -) -{ -prev_link -= -Some -( -link -) -; -let -t -= -self -. -nfa -. -sparse -[ -link -] -; -if -seen -. -contains -( -t -. -next -) -{ -continue -; -} -queue -. -push_back -( -t -. -next -) -; -seen -. -insert -( -t -. -next -) -; -if -is_leftmost -& -& -self -. -nfa -. -states -[ -t -. -next -] -. -is_match -( -) -{ -self -. -nfa -. -states -[ -t -. -next -] -. -fail -= -NFA -: -: -DEAD -; -continue -; -} -let -mut -fail -= -self -. -nfa -. -states -[ -id -] -. -fail -; -while -self -. -nfa -. -follow_transition -( -fail -t -. -byte -) -= -= -NFA -: -: -FAIL -{ -fail -= -self -. -nfa -. -states -[ -fail -] -. -fail -; -} -fail -= -self -. -nfa -. -follow_transition -( -fail -t -. -byte -) -; -self -. -nfa -. -states -[ -t -. -next -] -. -fail -= -fail -; -self -. -nfa -. -copy_matches -( -fail -t -. -next -) -? -; -} -if -! -is_leftmost -{ -self -. -nfa -. -copy_matches -( -self -. -nfa -. -special -. -start_unanchored_id -id -) -? -; -} -} -Ok -( -( -) -) -} -fn -shuffle -( -& -mut -self -) -{ -let -old_start_uid -= -self -. -nfa -. -special -. -start_unanchored_id -; -let -old_start_aid -= -self -. -nfa -. -special -. -start_anchored_id -; -assert -! -( -old_start_uid -< -old_start_aid -) -; -assert_eq -! -( -3 -old_start_aid -. -as_usize -( -) -" -anchored -start -state -should -be -at -index -3 -" -) -; -let -mut -remapper -= -Remapper -: -: -new -( -& -self -. -nfa -0 -) -; -let -mut -next_avail -= -StateID -: -: -from -( -4u8 -) -; -for -i -in -next_avail -. -as_usize -( -) -. -. -self -. -nfa -. -states -. -len -( -) -{ -let -sid -= -StateID -: -: -new -( -i -) -. -unwrap -( -) -; -if -! -self -. -nfa -. -states -[ -sid -] -. -is_match -( -) -{ -continue -; -} -remapper -. -swap -( -& -mut -self -. -nfa -sid -next_avail -) -; -next_avail -= -StateID -: -: -new -( -next_avail -. -one_more -( -) -) -. -unwrap -( -) -; -} -let -new_start_aid -= -StateID -: -: -new -( -next_avail -. -as_usize -( -) -. -checked_sub -( -1 -) -. -unwrap -( -) -) -. -unwrap -( -) -; -remapper -. -swap -( -& -mut -self -. -nfa -old_start_aid -new_start_aid -) -; -let -new_start_uid -= -StateID -: -: -new -( -next_avail -. -as_usize -( -) -. -checked_sub -( -2 -) -. -unwrap -( -) -) -. -unwrap -( -) -; -remapper -. -swap -( -& -mut -self -. -nfa -old_start_uid -new_start_uid -) -; -let -new_max_match_id -= -StateID -: -: -new -( -next_avail -. -as_usize -( -) -. -checked_sub -( -3 -) -. -unwrap -( -) -) -. -unwrap -( -) -; -self -. -nfa -. -special -. -max_match_id -= -new_max_match_id -; -self -. -nfa -. -special -. -start_unanchored_id -= -new_start_uid -; -self -. -nfa -. -special -. -start_anchored_id -= -new_start_aid -; -if -self -. -nfa -. -states -[ -self -. -nfa -. -special -. -start_anchored_id -] -. -is_match -( -) -{ -self -. -nfa -. -special -. -max_match_id -= -self -. -nfa -. -special -. -start_anchored_id -; -} -remapper -. -remap -( -& -mut -self -. -nfa -) -; -} -fn -densify -( -& -mut -self -) -- -> -Result -< -( -) -BuildError -> -{ -for -i -in -0 -. -. -self -. -nfa -. -states -. -len -( -) -{ -let -sid -= -StateID -: -: -new -( -i -) -. -unwrap -( -) -; -if -sid -= -= -NFA -: -: -DEAD -| -| -sid -= -= -NFA -: -: -FAIL -{ -continue -; -} -if -self -. -nfa -. -states -[ -sid -] -. -depth -. -as_usize -( -) -> -= -self -. -builder -. -dense_depth -{ -continue -; -} -let -dense -= -self -. -nfa -. -alloc_dense_state -( -) -? -; -let -mut -prev_link -= -None -; -while -let -Some -( -link -) -= -self -. -nfa -. -next_link -( -sid -prev_link -) -{ -prev_link -= -Some -( -link -) -; -let -t -= -self -. -nfa -. -sparse -[ -link -] -; -let -class -= -usize -: -: -from -( -self -. -nfa -. -byte_classes -. -get -( -t -. -byte -) -) -; -let -index -= -dense -. -as_usize -( -) -+ -class -; -self -. -nfa -. -dense -[ -index -] -= -t -. -next -; -} -self -. -nfa -. -states -[ -sid -] -. -dense -= -dense -; -} -Ok -( -( -) -) -} -fn -queued_set -( -& -self -) -- -> -QueuedSet -{ -if -self -. -builder -. -ascii_case_insensitive -{ -QueuedSet -: -: -active -( -) -} -else -{ -QueuedSet -: -: -inert -( -) -} -} -fn -init_unanchored_start_state -( -& -mut -self -) -- -> -Result -< -( -) -BuildError -> -{ -let -start_uid -= -self -. -nfa -. -special -. -start_unanchored_id -; -let -start_aid -= -self -. -nfa -. -special -. -start_anchored_id -; -self -. -nfa -. -init_full_state -( -start_uid -NFA -: -: -FAIL -) -? -; -self -. -nfa -. -init_full_state -( -start_aid -NFA -: -: -FAIL -) -? -; -Ok -( -( -) -) -} -fn -set_anchored_start_state -( -& -mut -self -) -- -> -Result -< -( -) -BuildError -> -{ -let -start_uid -= -self -. -nfa -. -special -. -start_unanchored_id -; -let -start_aid -= -self -. -nfa -. -special -. -start_anchored_id -; -let -( -mut -uprev_link -mut -aprev_link -) -= -( -None -None -) -; -loop -{ -let -unext -= -self -. -nfa -. -next_link -( -start_uid -uprev_link -) -; -let -anext -= -self -. -nfa -. -next_link -( -start_aid -aprev_link -) -; -let -( -ulink -alink -) -= -match -( -unext -anext -) -{ -( -Some -( -ulink -) -Some -( -alink -) -) -= -> -( -ulink -alink -) -( -None -None -) -= -> -break -_ -= -> -unreachable -! -( -) -} -; -uprev_link -= -Some -( -ulink -) -; -aprev_link -= -Some -( -alink -) -; -self -. -nfa -. -sparse -[ -alink -] -. -next -= -self -. -nfa -. -sparse -[ -ulink -] -. -next -; -} -self -. -nfa -. -copy_matches -( -start_uid -start_aid -) -? -; -self -. -nfa -. -states -[ -start_aid -] -. -fail -= -NFA -: -: -DEAD -; -Ok -( -( -) -) -} -fn -add_unanchored_start_state_loop -( -& -mut -self -) -{ -let -start_uid -= -self -. -nfa -. -special -. -start_unanchored_id -; -let -mut -prev_link -= -None -; -while -let -Some -( -link -) -= -self -. -nfa -. -next_link -( -start_uid -prev_link -) -{ -prev_link -= -Some -( -link -) -; -if -self -. -nfa -. -sparse -[ -link -] -. -next -( -) -= -= -NFA -: -: -FAIL -{ -self -. -nfa -. -sparse -[ -link -] -. -next -= -start_uid -; -} -} -} -fn -close_start_state_loop_for_leftmost -( -& -mut -self -) -{ -let -start_uid -= -self -. -nfa -. -special -. -start_unanchored_id -; -let -start -= -& -mut -self -. -nfa -. -states -[ -start_uid -] -; -let -dense -= -start -. -dense -; -if -self -. -builder -. -match_kind -. -is_leftmost -( -) -& -& -start -. -is_match -( -) -{ -let -mut -prev_link -= -None -; -while -let -Some -( -link -) -= -self -. -nfa -. -next_link -( -start_uid -prev_link -) -{ -prev_link -= -Some -( -link -) -; -if -self -. -nfa -. -sparse -[ -link -] -. -next -( -) -= -= -start_uid -{ -self -. -nfa -. -sparse -[ -link -] -. -next -= -NFA -: -: -DEAD -; -if -dense -! -= -StateID -: -: -ZERO -{ -let -b -= -self -. -nfa -. -sparse -[ -link -] -. -byte -; -let -class -= -usize -: -: -from -( -self -. -nfa -. -byte_classes -. -get -( -b -) -) -; -self -. -nfa -. -dense -[ -dense -. -as_usize -( -) -+ -class -] -= -NFA -: -: -DEAD -; -} -} -} -} -} -fn -add_dead_state_loop -( -& -mut -self -) -- -> -Result -< -( -) -BuildError -> -{ -self -. -nfa -. -init_full_state -( -NFA -: -: -DEAD -NFA -: -: -DEAD -) -? -; -Ok -( -( -) -) -} -} -# -[ -derive -( -Debug -) -] -struct -QueuedSet -{ -set -: -Option -< -BTreeSet -< -StateID -> -> -} -impl -QueuedSet -{ -fn -inert -( -) -- -> -QueuedSet -{ -QueuedSet -{ -set -: -None -} -} -fn -active -( -) -- -> -QueuedSet -{ -QueuedSet -{ -set -: -Some -( -BTreeSet -: -: -new -( -) -) -} -} -fn -insert -( -& -mut -self -state_id -: -StateID -) -{ -if -let -Some -( -ref -mut -set -) -= -self -. -set -{ -set -. -insert -( -state_id -) -; -} -} -fn -contains -( -& -self -state_id -: -StateID -) -- -> -bool -{ -match -self -. -set -{ -None -= -> -false -Some -( -ref -set -) -= -> -set -. -contains -( -& -state_id -) -} -} -} -impl -core -: -: -fmt -: -: -Debug -for -NFA -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -use -crate -: -: -{ -automaton -: -: -{ -fmt_state_indicator -sparse_transitions -} -util -: -: -debug -: -: -DebugByte -} -; -writeln -! -( -f -" -noncontiguous -: -: -NFA -( -" -) -? -; -for -( -sid -state -) -in -self -. -states -. -iter -( -) -. -with_state_ids -( -) -{ -if -sid -= -= -NFA -: -: -FAIL -{ -writeln -! -( -f -" -F -{ -: -06 -} -: -" -sid -. -as_usize -( -) -) -? -; -continue -; -} -fmt_state_indicator -( -f -self -sid -) -? -; -write -! -( -f -" -{ -: -06 -} -( -{ -: -06 -} -) -: -" -sid -. -as_usize -( -) -state -. -fail -. -as_usize -( -) -) -? -; -let -it -= -sparse_transitions -( -self -. -iter_trans -( -sid -) -. -map -( -| -t -| -( -t -. -byte -t -. -next -) -) -) -. -enumerate -( -) -; -for -( -i -( -start -end -sid -) -) -in -it -{ -if -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -if -start -= -= -end -{ -write -! -( -f -" -{ -: -? -} -= -> -{ -: -? -} -" -DebugByte -( -start -) -sid -. -as_usize -( -) -) -? -; -} -else -{ -write -! -( -f -" -{ -: -? -} -- -{ -: -? -} -= -> -{ -: -? -} -" -DebugByte -( -start -) -DebugByte -( -end -) -sid -. -as_usize -( -) -) -? -; -} -} -write -! -( -f -" -\ -n -" -) -? -; -if -self -. -is_match -( -sid -) -{ -write -! -( -f -" -matches -: -" -) -? -; -for -( -i -pid -) -in -self -. -iter_matches -( -sid -) -. -enumerate -( -) -{ -if -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -write -! -( -f -" -{ -} -" -pid -. -as_usize -( -) -) -? -; -} -write -! -( -f -" -\ -n -" -) -? -; -} -} -writeln -! -( -f -" -match -kind -: -{ -: -? -} -" -self -. -match_kind -) -? -; -writeln -! -( -f -" -prefilter -: -{ -: -? -} -" -self -. -prefilter -. -is_some -( -) -) -? -; -writeln -! -( -f -" -state -length -: -{ -: -? -} -" -self -. -states -. -len -( -) -) -? -; -writeln -! -( -f -" -pattern -length -: -{ -: -? -} -" -self -. -patterns_len -( -) -) -? -; -writeln -! -( -f -" -shortest -pattern -length -: -{ -: -? -} -" -self -. -min_pattern_len -) -? -; -writeln -! -( -f -" -longest -pattern -length -: -{ -: -? -} -" -self -. -max_pattern_len -) -? -; -writeln -! -( -f -" -memory -usage -: -{ -: -? -} -" -self -. -memory_usage -( -) -) -? -; -writeln -! -( -f -" -) -" -) -? -; -Ok -( -( -) -) -} -} diff --git a/third_party/rust/aho-corasick/src/packed/api.rs b/third_party/rust/aho-corasick/src/packed/api.rs index f100dda382efe..d2637a080ecb1 100644 --- a/third_party/rust/aho-corasick/src/packed/api.rs +++ b/third_party/rust/aho-corasick/src/packed/api.rs @@ -1,43 +1,54 @@ use -alloc +std : : -sync -: -: -Arc +u16 ; use crate : : -{ packed : : -{ pattern : : Patterns +; +use +crate +: +: +packed +: +: rabinkarp : : RabinKarp -teddy -} -util +; +use +crate : : -search +packed +: +: +teddy : : { -Match -Span -} +self +Teddy } ; +use +crate +: +: +Match +; const PATTERN_LIMIT : @@ -56,16 +67,20 @@ Eq PartialEq ) ] -# -[ -non_exhaustive -] pub enum MatchKind { LeftmostFirst LeftmostLongest +# +[ +doc +( +hidden +) +] +__Nonexhaustive } impl Default @@ -107,21 +122,18 @@ Option < ForceAlgorithm > -only_teddy_fat +force_teddy_fat : Option < bool > -only_teddy_256bit +force_avx : Option < bool > -heuristic_pattern_limits -: -bool } # [ @@ -181,15 +193,12 @@ LeftmostFirst force : None -only_teddy_fat +force_teddy_fat : None -only_teddy_256bit +force_avx : None -heuristic_pattern_limits -: -true } } pub @@ -249,7 +258,7 @@ hidden ] pub fn -only_teddy +force_teddy ( & mut @@ -300,7 +309,7 @@ hidden ] pub fn -only_teddy_fat +force_teddy_fat ( & mut @@ -320,7 +329,7 @@ Config { self . -only_teddy_fat +force_teddy_fat = yes ; @@ -335,7 +344,7 @@ hidden ] pub fn -only_teddy_256bit +force_avx ( & mut @@ -355,7 +364,7 @@ Config { self . -only_teddy_256bit +force_avx = yes ; @@ -370,7 +379,7 @@ hidden ] pub fn -only_rabin_karp +force_rabin_karp ( & mut @@ -412,31 +421,6 @@ None } self } -pub -fn -heuristic_pattern_limits -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Config -{ -self -. -heuristic_pattern_limits -= -yes -; -self -} } # [ @@ -568,17 +552,6 @@ kind ) ; let -patterns -= -Arc -: -: -new -( -patterns -) -; -let rabinkarp = RabinKarp @@ -615,19 +588,6 @@ Teddy = > { -debug -! -( -" -trying -to -build -Teddy -packed -matcher -" -) -; let teddy = @@ -636,15 +596,9 @@ self . build_teddy ( -Arc -: -: -clone -( & patterns ) -) { None = @@ -689,20 +643,6 @@ RabinKarp ) = > -{ -debug -! -( -" -using -Rabin -- -Karp -packed -matcher -" -) -; ( SearchKind : @@ -711,7 +651,6 @@ RabinKarp 0 ) } -} ; Some ( @@ -731,19 +670,14 @@ build_teddy self patterns : -Arc -< +& Patterns -> ) - > Option < -teddy -: -: -Searcher +Teddy > { teddy @@ -756,35 +690,27 @@ new ( ) . -only_256bit +avx ( self . config . -only_teddy_256bit +force_avx ) . -only_fat +fat ( self . config . -only_teddy_fat -) -. -heuristic_pattern_limits -( -self -. -config -. -heuristic_pattern_limits +force_teddy_fat ) . build ( +& patterns ) } @@ -867,9 +793,6 @@ len ) < = -core -: -: u16 : : @@ -976,44 +899,6 @@ p } self } -pub -fn -len -( -& -self -) -- -> -usize -{ -self -. -patterns -. -len -( -) -} -pub -fn -minimum_len -( -& -self -) -- -> -usize -{ -self -. -patterns -. -minimum_len -( -) -} } impl Default @@ -1050,10 +935,7 @@ Searcher { patterns : -Arc -< Patterns -> rabinkarp : RabinKarp @@ -1077,10 +959,7 @@ SearchKind { Teddy ( -teddy -: -: -Searcher +Teddy ) RabinKarp } @@ -1141,42 +1020,6 @@ build } pub fn -config -( -) -- -> -Config -{ -Config -: -: -new -( -) -} -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -# -[ -inline -] -pub -fn find < B @@ -1202,43 +1045,17 @@ Option Match > { -let -haystack -= -haystack -. -as_ref -( -) -; self . -find_in +find_at ( haystack -Span -: -: -from -( 0 -. -. -haystack -. -len -( -) -) ) } -# -[ -inline -] pub fn -find_in +find_at < B : @@ -1255,9 +1072,9 @@ self haystack : B -span +at : -Span +usize ) - > @@ -1294,7 +1111,9 @@ teddy if haystack [ -span +at +. +. ] . len @@ -1310,29 +1129,23 @@ minimum_len return self . -find_in_slow +slow_at ( haystack -span +at ) ; } teddy . -find +find_at ( & -haystack -[ -. -. -span -. -end -] -span +self . -start +patterns +haystack +at ) } SearchKind @@ -1349,25 +1162,15 @@ rabinkarp find_at ( & -haystack -[ -. -. -span -. -end -] -span +self . -start +patterns +haystack +at ) } } } -# -[ -inline -] pub fn find_iter @@ -1410,46 +1213,23 @@ a b > { -let +FindIter +{ +searcher +: +self haystack -= +: haystack . as_ref ( ) -; -let -span -= -Span -: +at : -from -( 0 -. -. -haystack -. -len -( -) -) -; -FindIter -{ -searcher -: -self -haystack -span } } -# -[ -inline -] pub fn match_kind @@ -1470,10 +1250,6 @@ match_kind ( ) } -# -[ -inline -] pub fn minimum_len @@ -1489,13 +1265,9 @@ self . minimum_len } -# -[ -inline -] pub fn -memory_usage +heap_bytes ( & self @@ -1508,7 +1280,7 @@ self . patterns . -memory_usage +heap_bytes ( ) + @@ -1516,7 +1288,7 @@ self . rabinkarp . -memory_usage +heap_bytes ( ) + @@ -1524,12 +1296,12 @@ self . search_kind . -memory_usage +heap_bytes ( ) } fn -find_in_slow +slow_at ( & self @@ -1539,9 +1311,9 @@ haystack [ u8 ] -span +at : -Span +usize ) - > @@ -1557,17 +1329,11 @@ rabinkarp find_at ( & -haystack -[ -. -. -span -. -end -] -span +self . -start +patterns +haystack +at ) } } @@ -1575,7 +1341,7 @@ impl SearchKind { fn -memory_usage +heap_bytes ( & self @@ -1600,7 +1366,7 @@ ted > ted . -memory_usage +heap_bytes ( ) SearchKind @@ -1644,9 +1410,9 @@ h [ u8 ] -span +at : -Span +usize } impl < @@ -1687,15 +1453,15 @@ Match if self . -span -. -start +at > self . -span +haystack . -end +len +( +) { return None @@ -1706,7 +1472,7 @@ self . searcher . -find_in +find_at ( & self @@ -1714,7 +1480,7 @@ self haystack self . -span +at ) { None @@ -1723,26 +1489,22 @@ None None Some ( -m +c ) = > { self . -span -. -start +at = -m +c . end -( -) ; Some ( -m +c ) } } diff --git a/third_party/rust/aho-corasick/src/packed/ext.rs b/third_party/rust/aho-corasick/src/packed/ext.rs deleted file mode 100644 index b531d37ef927c..0000000000000 --- a/third_party/rust/aho-corasick/src/packed/ext.rs +++ /dev/null @@ -1,150 +0,0 @@ -pub -( -crate -) -trait -Pointer -{ -unsafe -fn -distance -( -self -origin -: -Self -) -- -> -usize -; -fn -as_usize -( -self -) -- -> -usize -; -} -impl -< -T -> -Pointer -for -* -const -T -{ -unsafe -fn -distance -( -self -origin -: -* -const -T -) -- -> -usize -{ -usize -: -: -try_from -( -self -. -offset_from -( -origin -) -) -. -unwrap_unchecked -( -) -} -fn -as_usize -( -self -) -- -> -usize -{ -self -as -usize -} -} -impl -< -T -> -Pointer -for -* -mut -T -{ -unsafe -fn -distance -( -self -origin -: -* -mut -T -) -- -> -usize -{ -( -self -as -* -const -T -) -. -distance -( -origin -as -* -const -T -) -} -fn -as_usize -( -self -) -- -> -usize -{ -( -self -as -* -const -T -) -. -as_usize -( -) -} -} diff --git a/third_party/rust/aho-corasick/src/packed/mod.rs b/third_party/rust/aho-corasick/src/packed/mod.rs index 16b2206c75a64..891878a237f48 100644 --- a/third_party/rust/aho-corasick/src/packed/mod.rs +++ b/third_party/rust/aho-corasick/src/packed/mod.rs @@ -21,9 +21,6 @@ mod api ; mod -ext -; -mod pattern ; mod @@ -36,20 +33,23 @@ teddy [ cfg ( -all -( -feature -= -" -std -" test ) -) ] mod tests ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] mod vector ; diff --git a/third_party/rust/aho-corasick/src/packed/pattern.rs b/third_party/rust/aho-corasick/src/packed/pattern.rs index 641cbeb37fe94..fe87c4975bc9e 100644 --- a/third_party/rust/aho-corasick/src/packed/pattern.rs +++ b/third_party/rust/aho-corasick/src/packed/pattern.rs @@ -1,55 +1,50 @@ use -core +std : : -{ cmp -fmt -mem -u16 -usize -} ; use -alloc +std : : -{ -boxed +fmt +; +use +std : : -Box -string +mem +; +use +std : : -String -vec -vec +u16 +; +use +std : : -Vec -} +usize ; use crate : : -{ packed : : -{ api : : MatchKind -ext -: -: -Pointer -} +; +pub +type PatternID -} += +u16 ; # [ @@ -60,9 +55,6 @@ Debug ) ] pub -( -crate -) struct Patterns { @@ -87,6 +79,9 @@ PatternID minimum_len : usize +max_pattern_id +: +PatternID total_pattern_bytes : usize @@ -95,9 +90,6 @@ impl Patterns { pub -( -crate -) fn new ( @@ -134,15 +126,15 @@ usize : : MAX +max_pattern_id +: +0 total_pattern_bytes : 0 } } pub -( -crate -) fn add ( @@ -191,11 +183,6 @@ usize let id = -PatternID -: -: -new -( self . by_id @@ -203,11 +190,14 @@ by_id len ( ) -) +as +u16 +; +self . -unwrap -( -) +max_pattern_id += +id ; self . @@ -263,9 +253,6 @@ len ; } pub -( -crate -) fn set_match_kind ( @@ -277,15 +264,7 @@ kind MatchKind ) { -self -. -kind -= -kind -; match -self -. kind { MatchKind @@ -344,6 +323,8 @@ id2 by_id [ id1 +as +usize ] . len @@ -356,6 +337,8 @@ cmp by_id [ id2 +as +usize ] . len @@ -370,12 +353,19 @@ reverse ) ; } +MatchKind +: +: +__Nonexhaustive += +> +unreachable +! +( +) } } pub -( -crate -) fn len ( @@ -395,9 +385,6 @@ len ) } pub -( -crate -) fn is_empty ( @@ -418,11 +405,8 @@ len 0 } pub -( -crate -) fn -memory_usage +heap_bytes ( & self @@ -479,9 +463,6 @@ self total_pattern_bytes } pub -( -crate -) fn reset ( @@ -526,11 +507,48 @@ usize : MAX ; +self +. +max_pattern_id += +0 +; } pub +fn +max_pattern_id ( -crate +& +self +) +- +> +PatternID +{ +assert_eq +! +( +( +self +. +max_pattern_id ++ +1 +) +as +usize +self +. +len +( +) ) +; +self +. +max_pattern_id +} +pub fn minimum_len ( @@ -546,9 +564,6 @@ self minimum_len } pub -( -crate -) fn match_kind ( @@ -566,9 +581,6 @@ self kind } pub -( -crate -) fn get ( @@ -594,13 +606,23 @@ self by_id [ id +as +usize ] ) } -pub +# +[ +cfg ( -crate +target_arch += +" +x86_64 +" ) +] +pub unsafe fn get_unchecked @@ -628,17 +650,12 @@ by_id get_unchecked ( id -. -as_usize -( -) +as +usize ) ) } pub -( -crate -) fn iter ( @@ -672,9 +689,6 @@ Debug ) ] pub -( -crate -) struct PatternIter < @@ -806,9 +820,6 @@ Clone ) ] pub -( -crate -) struct Pattern < @@ -909,9 +920,6 @@ p > { pub -( -crate -) fn len ( @@ -931,9 +939,6 @@ len ) } pub -( -crate -) fn bytes ( @@ -952,10 +957,18 @@ self . 0 } -pub +# +[ +cfg ( -crate +target_arch += +" +x86_64 +" ) +] +pub fn low_nybbles ( @@ -967,11 +980,9 @@ usize ) - > -Box +Vec < -[ u8 -] > { let @@ -981,20 +992,11 @@ nybs vec ! [ -0 -; -len ] -. -into_boxed_slice -( -) ; for -( -i -byte -) +& +b in self . @@ -1010,19 +1012,15 @@ take ( len ) -. -enumerate -( -) { nybs -[ -i -] -= -byte +. +push +( +b & 0xF +) ; } nybs @@ -1035,9 +1033,6 @@ always ) ] pub -( -crate -) fn is_prefix ( @@ -1054,14 +1049,35 @@ u8 > bool { -is_prefix +self +. +len ( +) +< += bytes +. +len +( +) +& +& self . +equals +( +& bytes +[ +. +. +self +. +len ( ) +] ) } # @@ -1072,1229 +1088,255 @@ always ) ] pub -( -crate -) -unsafe fn -is_prefix_raw +equals ( & self -start -: -* -const -u8 -end +bytes : -* -const +& +[ u8 +] ) - > bool { -let -patlen -= +if self . -bytes -( -) -. len ( ) -; -let -haylen +! = -end +bytes . -distance +len ( -start ) -; -if -patlen -> -haylen { return false ; } -is_equal_raw -( -start +if self . -bytes -( -) -. -as_ptr -( -) -patlen -) -} -} -# -[ -inline +len ( -always ) -] -fn -is_prefix +< +8 +{ +for ( -haystack -: & -[ -u8 -] -needle -: +b1 & -[ -u8 -] +b2 ) -- -> -bool -{ -if -needle +in +self . -len +bytes ( ) -> -haystack . -len +iter +( +) +. +zip ( +bytes ) { +if +b1 +! += +b2 +{ return false ; } -unsafe -{ -is_equal_raw -( -haystack +} +return +true +; +} +let +mut +p1 += +self . -as_ptr +bytes ( ) -needle . as_ptr ( ) -needle +; +let +mut +p2 += +bytes . -len -( -) -) -} -} -# -[ -cfg +as_ptr ( -test ) -] -# -[ -inline +; +let +p1end += +self +. +bytes ( -always ) -] -fn -is_equal -( -x -: -& -[ -u8 -] -y -: -& [ -u8 -] -) -- -> -bool -{ -if -x +self . len ( ) -! -= -y +- +8 . -len -( -) -{ -return -false -; -} -unsafe -{ -is_equal_raw -( -x . -as_ptr -( -) -y +] . as_ptr ( ) -x +; +let +p2end += +bytes +[ +bytes . len ( ) -) -} -} -# -[ -inline -( -always -) +- +8 +. +. ] -unsafe -fn -is_equal_raw +. +as_ptr ( -mut -x -: -* -const -u8 -mut -y -: -* -const -u8 -n -: -usize ) -- -> -bool +; +unsafe { -if -n +while +p1 < -4 +p1end { -return -match -n -{ -0 -= -> -true -1 +let +v1 = -> -x -. -read ( +p1 +as +* +const +u64 ) -= -= -y . -read +read_unaligned ( ) -2 +; +let +v2 = -> -{ -x -. -cast -: -: -< -u16 -> ( +p2 +as +* +const +u64 ) . read_unaligned ( ) +; +if +v1 +! = +v2 +{ +return +false +; +} +p1 = -y +p1 . -cast -: -: -< -u16 -> +add ( +8 ) +; +p2 += +p2 . -read_unaligned +add ( +8 ) +; } -3 +let +v1 = -> -x -. -cast -: -: -< -[ -u8 -; -3 -] -> ( +p1end +as +* +const +u64 ) . -read +read_unaligned ( ) -= -= -y -. -cast -: -: -< -[ -u8 ; -3 -] -> +let +v2 += ( +p2end +as +* +const +u64 ) . -read +read_unaligned ( ) -_ +; +v1 = -> -unreachable -! -( -) -} -; -} -let -xend -= -x -. -add -( -n -. -wrapping_sub -( -4 -) -) -; -let -yend -= -y -. -add -( -n -. -wrapping_sub -( -4 -) -) -; -while -x -< -xend -{ -let -vx -= -x -. -cast -: -: -< -u32 -> -( -) -. -read_unaligned -( -) -; -let -vy -= -y -. -cast -: -: -< -u32 -> -( -) -. -read_unaligned -( -) -; -if -vx -! -= -vy -{ -return -false -; -} -x -= -x -. -add -( -4 -) -; -y -= -y -. -add -( -4 -) -; -} -let -vx -= -xend -. -cast -: -: -< -u32 -> -( -) -. -read_unaligned -( -) -; -let -vy -= -yend -. -cast -: -: -< -u32 -> -( -) -. -read_unaligned -( -) -; -vx = -= -vy -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -super -: -: -* -; -# -[ -test -] -fn -equals_different_lengths -( -) -{ -assert -! -( -! -is_equal -( -b -" -" -b -" -a -" -) -) -; -assert -! -( -! -is_equal -( -b -" -a -" -b -" -" -) -) -; -assert -! -( -! -is_equal -( -b -" -ab -" -b -" -a -" -) -) -; -assert -! -( -! -is_equal -( -b -" -a -" -b -" -ab -" -) -) -; +v2 } -# -[ -test -] -fn -equals_mismatch -( -) -{ -let -one_mismatch -= -[ -( -& -b -" -a -" -[ -. -. -] -& -b -" -x -" -[ -. -. -] -) -( -& -b -" -ab -" -[ -. -. -] -& -b -" -ax -" -[ -. -. -] -) -( -& -b -" -abc -" -[ -. -. -] -& -b -" -abx -" -[ -. -. -] -) -( -& -b -" -abcd -" -[ -. -. -] -& -b -" -abcx -" -[ -. -. -] -) -( -& -b -" -abcde -" -[ -. -. -] -& -b -" -abcdx -" -[ -. -. -] -) -( -& -b -" -abcdef -" -[ -. -. -] -& -b -" -abcdex -" -[ -. -. -] -) -( -& -b -" -abcdefg -" -[ -. -. -] -& -b -" -abcdefx -" -[ -. -. -] -) -( -& -b -" -abcdefgh -" -[ -. -. -] -& -b -" -abcdefgx -" -[ -. -. -] -) -( -& -b -" -abcdefghi -" -[ -. -. -] -& -b -" -abcdefghx -" -[ -. -. -] -) -( -& -b -" -abcdefghij -" -[ -. -. -] -& -b -" -abcdefghix -" -[ -. -. -] -) -( -& -b -" -abcdefghijk -" -[ -. -. -] -& -b -" -abcdefghijx -" -[ -. -. -] -) -( -& -b -" -abcdefghijkl -" -[ -. -. -] -& -b -" -abcdefghijkx -" -[ -. -. -] -) -( -& -b -" -abcdefghijklm -" -[ -. -. -] -& -b -" -abcdefghijklx -" -[ -. -. -] -) -( -& -b -" -abcdefghijklmn -" -[ -. -. -] -& -b -" -abcdefghijklmx -" -[ -. -. -] -) -] -; -for -( -x -y -) -in -one_mismatch -{ -assert_eq -! -( -x -. -len -( -) -y -. -len -( -) -" -lengths -should -match -" -) -; -assert -! -( -! -is_equal -( -x -y -) -) -; -assert -! -( -! -is_equal -( -y -x -) -) -; -} -} -# -[ -test -] -fn -equals_yes -( -) -{ -assert -! -( -is_equal -( -b -" -" -b -" -" -) -) -; -assert -! -( -is_equal -( -b -" -a -" -b -" -a -" -) -) -; -assert -! -( -is_equal -( -b -" -ab -" -b -" -ab -" -) -) -; -assert -! -( -is_equal -( -b -" -abc -" -b -" -abc -" -) -) -; -assert -! -( -is_equal -( -b -" -abcd -" -b -" -abcd -" -) -) -; -assert -! -( -is_equal -( -b -" -abcde -" -b -" -abcde -" -) -) -; -assert -! -( -is_equal -( -b -" -abcdef -" -b -" -abcdef -" -) -) -; -assert -! -( -is_equal -( -b -" -abcdefg -" -b -" -abcdefg -" -) -) -; -assert -! -( -is_equal -( -b -" -abcdefgh -" -b -" -abcdefgh -" -) -) -; -assert -! -( -is_equal -( -b -" -abcdefghi -" -b -" -abcdefghi -" -) -) -; -} -# -[ -test -] -fn -prefix -( -) -{ -assert -! -( -is_prefix -( -b -" -" -b -" -" -) -) -; -assert -! -( -is_prefix -( -b -" -a -" -b -" -" -) -) -; -assert -! -( -is_prefix -( -b -" -ab -" -b -" -" -) -) -; -assert -! -( -is_prefix -( -b -" -foo -" -b -" -foo -" -) -) -; -assert -! -( -is_prefix -( -b -" -foobar -" -b -" -foo -" -) -) -; -assert -! -( -! -is_prefix -( -b -" -foo -" -b -" -fob -" -) -) -; -assert -! -( -! -is_prefix -( -b -" -foobar -" -b -" -fob -" -) -) -; } } diff --git a/third_party/rust/aho-corasick/src/packed/rabinkarp.rs b/third_party/rust/aho-corasick/src/packed/rabinkarp.rs index 716e42eb0bc1a..9611a43ee2ae1 100644 --- a/third_party/rust/aho-corasick/src/packed/rabinkarp.rs +++ b/third_party/rust/aho-corasick/src/packed/rabinkarp.rs @@ -1,40 +1,29 @@ use -alloc +std : : -{ -sync -: -: -Arc -vec -vec -: -: -Vec -} +mem ; use crate : : -{ packed : : pattern : : +{ +PatternID Patterns -util -: -: -search +} +; +use +crate : : Match -PatternID -} ; type Hash @@ -57,18 +46,9 @@ Debug ) ] pub -( -crate -) struct RabinKarp { -patterns -: -Arc -< -Patterns -> buckets : Vec @@ -87,24 +67,21 @@ usize hash_2pow : usize +max_pattern_id +: +PatternID } impl RabinKarp { pub -( -crate -) fn new ( patterns : & -Arc -< Patterns -> ) - > @@ -171,15 +148,6 @@ rk = RabinKarp { -patterns -: -Arc -: -: -clone -( -patterns -) buckets : vec @@ -194,6 +162,13 @@ NUM_BUCKETS ] hash_len hash_2pow +max_pattern_id +: +patterns +. +max_pattern_id +( +) } ; for @@ -256,14 +231,15 @@ id rk } pub -( -crate -) fn find_at ( & self +patterns +: +& +Patterns haystack : & @@ -295,6 +271,34 @@ len ) ) ; +assert_eq +! +( +self +. +max_pattern_id +patterns +. +max_pattern_id +( +) +" +Rabin +- +Karp +must +be +called +with +same +patterns +it +was +built +with +" +) +; if at + @@ -375,6 +379,7 @@ self . verify ( +patterns pid haystack at @@ -436,11 +441,8 @@ at } } pub -( -crate -) fn -memory_usage +heap_bytes ( & self @@ -449,6 +451,17 @@ self > usize { +let +num_patterns += +self +. +max_pattern_id +as +usize ++ +1 +; self . buckets @@ -457,9 +470,6 @@ len ( ) * -core -: -: mem : : @@ -478,17 +488,8 @@ PatternID ( ) + -self -. -patterns -. -len -( -) +num_patterns * -core -: -: mem : : @@ -513,6 +514,10 @@ verify ( & self +patterns +: +& +Patterns id : PatternID @@ -536,8 +541,6 @@ Match let pat = -self -. patterns . get @@ -564,12 +567,12 @@ Some Match : : -new +from_span ( id +as +usize at -. -. at + pat diff --git a/third_party/rust/aho-corasick/src/packed/teddy/README.md b/third_party/rust/aho-corasick/src/packed/teddy/README.md index 8d689fdcc40eb..1ea71d0d9282e 100644 --- a/third_party/rust/aho-corasick/src/packed/teddy/README.md +++ b/third_party/rust/aho-corasick/src/packed/teddy/README.md @@ -2136,9 +2136,13 @@ because we only target +x86_64 +here +which +is +always little endian -here . Thus the diff --git a/third_party/rust/aho-corasick/src/packed/teddy/builder.rs b/third_party/rust/aho-corasick/src/packed/teddy/builder.rs deleted file mode 100644 index 3426a13506b21..0000000000000 --- a/third_party/rust/aho-corasick/src/packed/teddy/builder.rs +++ /dev/null @@ -1,3973 +0,0 @@ -use -core -: -: -{ -fmt -: -: -Debug -panic -: -: -{ -RefUnwindSafe -UnwindSafe -} -} -; -use -alloc -: -: -sync -: -: -Arc -; -use -crate -: -: -packed -: -: -{ -ext -: -: -Pointer -pattern -: -: -Patterns -teddy -: -: -generic -: -: -Match -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -Builder -{ -only_fat -: -Option -< -bool -> -only_256bit -: -Option -< -bool -> -heuristic_pattern_limits -: -bool -} -impl -Default -for -Builder -{ -fn -default -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -} -impl -Builder -{ -pub -( -crate -) -fn -new -( -) -- -> -Builder -{ -Builder -{ -only_fat -: -None -only_256bit -: -None -heuristic_pattern_limits -: -true -} -} -pub -( -crate -) -fn -build -( -& -self -patterns -: -Arc -< -Patterns -> -) -- -> -Option -< -Searcher -> -{ -self -. -build_imp -( -patterns -) -} -pub -( -crate -) -fn -only_fat -( -& -mut -self -yes -: -Option -< -bool -> -) -- -> -& -mut -Builder -{ -self -. -only_fat -= -yes -; -self -} -pub -( -crate -) -fn -only_256bit -( -& -mut -self -yes -: -Option -< -bool -> -) -- -> -& -mut -Builder -{ -self -. -only_256bit -= -yes -; -self -} -pub -( -crate -) -fn -heuristic_pattern_limits -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -heuristic_pattern_limits -= -yes -; -self -} -fn -build_imp -( -& -self -patterns -: -Arc -< -Patterns -> -) -- -> -Option -< -Searcher -> -{ -let -patlimit -= -self -. -heuristic_pattern_limits -; -if -! -cfg -! -( -target_endian -= -" -little -" -) -{ -debug -! -( -" -skipping -Teddy -because -target -isn -' -t -little -endian -" -) -; -return -None -; -} -if -patlimit -& -& -patterns -. -len -( -) -> -64 -{ -debug -! -( -" -skipping -Teddy -because -of -too -many -patterns -" -) -; -return -None -; -} -# -[ -cfg -( -all -( -target_arch -= -" -x86_64 -" -target_feature -= -" -sse2 -" -) -) -] -{ -use -self -: -: -x86_64 -: -: -{ -FatAVX2 -SlimAVX2 -SlimSSSE3 -} -; -let -mask_len -= -core -: -: -cmp -: -: -min -( -4 -patterns -. -minimum_len -( -) -) -; -let -beefy -= -patterns -. -len -( -) -> -32 -; -let -has_avx2 -= -self -: -: -x86_64 -: -: -is_available_avx2 -( -) -; -let -has_ssse3 -= -has_avx2 -| -| -self -: -: -x86_64 -: -: -is_available_ssse3 -( -) -; -let -use_avx2 -= -if -self -. -only_256bit -= -= -Some -( -true -) -{ -if -! -has_avx2 -{ -debug -! -( -" -skipping -Teddy -because -avx2 -was -demanded -but -unavailable -" -) -; -return -None -; -} -true -} -else -if -self -. -only_256bit -= -= -Some -( -false -) -{ -if -! -has_ssse3 -{ -debug -! -( -" -skipping -Teddy -because -ssse3 -was -demanded -but -unavailable -" -) -; -return -None -; -} -false -} -else -if -! -has_ssse3 -& -& -! -has_avx2 -{ -debug -! -( -" -skipping -Teddy -because -ssse3 -and -avx2 -are -unavailable -" -) -; -return -None -; -} -else -{ -has_avx2 -} -; -let -fat -= -match -self -. -only_fat -{ -None -= -> -use_avx2 -& -& -beefy -Some -( -false -) -= -> -false -Some -( -true -) -if -! -use_avx2 -= -> -{ -debug -! -( -" -skipping -Teddy -because -fat -was -demanded -but -fat -\ -Teddy -requires -avx2 -which -is -unavailable -" -) -; -return -None -; -} -Some -( -true -) -= -> -true -} -; -if -patlimit -& -& -mask_len -= -= -1 -& -& -patterns -. -len -( -) -> -16 -{ -debug -! -( -" -skipping -Teddy -( -mask -len -: -1 -) -because -there -are -\ -too -many -patterns -" -) -; -return -None -; -} -match -( -mask_len -use_avx2 -fat -) -{ -( -1 -false -_ -) -= -> -{ -debug -! -( -" -Teddy -choice -: -128 -- -bit -slim -1 -byte -" -) -; -SlimSSSE3 -: -: -< -1 -> -: -: -new -( -& -patterns -) -} -( -1 -true -false -) -= -> -{ -debug -! -( -" -Teddy -choice -: -256 -- -bit -slim -1 -byte -" -) -; -SlimAVX2 -: -: -< -1 -> -: -: -new -( -& -patterns -) -} -( -1 -true -true -) -= -> -{ -debug -! -( -" -Teddy -choice -: -256 -- -bit -fat -1 -byte -" -) -; -FatAVX2 -: -: -< -1 -> -: -: -new -( -& -patterns -) -} -( -2 -false -_ -) -= -> -{ -debug -! -( -" -Teddy -choice -: -128 -- -bit -slim -2 -bytes -" -) -; -SlimSSSE3 -: -: -< -2 -> -: -: -new -( -& -patterns -) -} -( -2 -true -false -) -= -> -{ -debug -! -( -" -Teddy -choice -: -256 -- -bit -slim -2 -bytes -" -) -; -SlimAVX2 -: -: -< -2 -> -: -: -new -( -& -patterns -) -} -( -2 -true -true -) -= -> -{ -debug -! -( -" -Teddy -choice -: -256 -- -bit -fat -2 -bytes -" -) -; -FatAVX2 -: -: -< -2 -> -: -: -new -( -& -patterns -) -} -( -3 -false -_ -) -= -> -{ -debug -! -( -" -Teddy -choice -: -128 -- -bit -slim -3 -bytes -" -) -; -SlimSSSE3 -: -: -< -3 -> -: -: -new -( -& -patterns -) -} -( -3 -true -false -) -= -> -{ -debug -! -( -" -Teddy -choice -: -256 -- -bit -slim -3 -bytes -" -) -; -SlimAVX2 -: -: -< -3 -> -: -: -new -( -& -patterns -) -} -( -3 -true -true -) -= -> -{ -debug -! -( -" -Teddy -choice -: -256 -- -bit -fat -3 -bytes -" -) -; -FatAVX2 -: -: -< -3 -> -: -: -new -( -& -patterns -) -} -( -4 -false -_ -) -= -> -{ -debug -! -( -" -Teddy -choice -: -128 -- -bit -slim -4 -bytes -" -) -; -SlimSSSE3 -: -: -< -4 -> -: -: -new -( -& -patterns -) -} -( -4 -true -false -) -= -> -{ -debug -! -( -" -Teddy -choice -: -256 -- -bit -slim -4 -bytes -" -) -; -SlimAVX2 -: -: -< -4 -> -: -: -new -( -& -patterns -) -} -( -4 -true -true -) -= -> -{ -debug -! -( -" -Teddy -choice -: -256 -- -bit -fat -4 -bytes -" -) -; -FatAVX2 -: -: -< -4 -> -: -: -new -( -& -patterns -) -} -_ -= -> -{ -debug -! -( -" -no -supported -Teddy -configuration -found -" -) -; -None -} -} -} -# -[ -cfg -( -target_arch -= -" -aarch64 -" -) -] -{ -use -self -: -: -aarch64 -: -: -SlimNeon -; -let -mask_len -= -core -: -: -cmp -: -: -min -( -4 -patterns -. -minimum_len -( -) -) -; -if -self -. -only_256bit -= -= -Some -( -true -) -{ -debug -! -( -" -skipping -Teddy -because -256 -- -bits -were -demanded -\ -but -unavailable -" -) -; -return -None -; -} -if -self -. -only_fat -= -= -Some -( -true -) -{ -debug -! -( -" -skipping -Teddy -because -fat -was -demanded -but -unavailable -" -) -; -} -match -mask_len -{ -1 -= -> -{ -if -patlimit -& -& -patterns -. -len -( -) -> -16 -{ -debug -! -( -" -skipping -Teddy -( -mask -len -: -1 -) -because -there -are -\ -too -many -patterns -" -) -; -} -debug -! -( -" -Teddy -choice -: -128 -- -bit -slim -1 -byte -" -) -; -SlimNeon -: -: -< -1 -> -: -: -new -( -& -patterns -) -} -2 -= -> -{ -if -patlimit -& -& -patterns -. -len -( -) -> -32 -{ -debug -! -( -" -skipping -Teddy -( -mask -len -: -2 -) -because -there -are -\ -too -many -patterns -" -) -; -} -debug -! -( -" -Teddy -choice -: -128 -- -bit -slim -2 -bytes -" -) -; -SlimNeon -: -: -< -2 -> -: -: -new -( -& -patterns -) -} -3 -= -> -{ -if -patlimit -& -& -patterns -. -len -( -) -> -48 -{ -debug -! -( -" -skipping -Teddy -( -mask -len -: -3 -) -because -there -are -\ -too -many -patterns -" -) -; -} -debug -! -( -" -Teddy -choice -: -128 -- -bit -slim -3 -bytes -" -) -; -SlimNeon -: -: -< -3 -> -: -: -new -( -& -patterns -) -} -4 -= -> -{ -debug -! -( -" -Teddy -choice -: -128 -- -bit -slim -4 -bytes -" -) -; -SlimNeon -: -: -< -4 -> -: -: -new -( -& -patterns -) -} -_ -= -> -{ -debug -! -( -" -no -supported -Teddy -configuration -found -" -) -; -None -} -} -} -# -[ -cfg -( -not -( -any -( -all -( -target_arch -= -" -x86_64 -" -target_feature -= -" -sse2 -" -) -target_arch -= -" -aarch64 -" -) -) -) -] -{ -None -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -Searcher -{ -imp -: -Arc -< -dyn -SearcherT -> -memory_usage -: -usize -minimum_len -: -usize -} -impl -Searcher -{ -# -[ -inline -( -always -) -] -pub -( -crate -) -fn -find -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -Option -< -crate -: -: -Match -> -{ -assert -! -( -haystack -[ -at -. -. -] -. -len -( -) -> -= -self -. -minimum_len -) -; -let -hayptr -= -haystack -. -as_ptr -( -) -; -let -teddym -= -unsafe -{ -self -. -imp -. -find -( -hayptr -. -add -( -at -) -hayptr -. -add -( -haystack -. -len -( -) -) -) -? -} -; -let -start -= -teddym -. -start -( -) -. -as_usize -( -) -. -wrapping_sub -( -hayptr -. -as_usize -( -) -) -; -let -end -= -teddym -. -end -( -) -. -as_usize -( -) -. -wrapping_sub -( -hayptr -. -as_usize -( -) -) -; -let -span -= -crate -: -: -Span -{ -start -end -} -; -let -pid -= -crate -: -: -PatternID -: -: -new_unchecked -( -teddym -. -pattern -( -) -. -as_usize -( -) -) -; -let -m -= -crate -: -: -Match -: -: -new -( -pid -span -) -; -Some -( -m -) -} -# -[ -inline -( -always -) -] -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -memory_usage -} -# -[ -inline -( -always -) -] -pub -( -crate -) -fn -minimum_len -( -& -self -) -- -> -usize -{ -self -. -minimum_len -} -} -trait -SearcherT -: -Debug -+ -Send -+ -Sync -+ -UnwindSafe -+ -RefUnwindSafe -+ -' -static -{ -unsafe -fn -find -( -& -self -start -: -* -const -u8 -end -: -* -const -u8 -) -- -> -Option -< -Match -> -; -} -# -[ -cfg -( -all -( -target_arch -= -" -x86_64 -" -target_feature -= -" -sse2 -" -) -) -] -mod -x86_64 -{ -use -core -: -: -arch -: -: -x86_64 -: -: -{ -__m128i -__m256i -} -; -use -alloc -: -: -sync -: -: -Arc -; -use -crate -: -: -packed -: -: -{ -ext -: -: -Pointer -pattern -: -: -Patterns -teddy -: -: -generic -: -: -{ -self -Match -} -} -; -use -super -: -: -{ -Searcher -SearcherT -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -super -) -struct -SlimSSSE3 -< -const -BYTES -: -usize -> -{ -slim128 -: -generic -: -: -Slim -< -__m128i -BYTES -> -} -macro_rules -! -slim_ssse3 -{ -( -len -: -expr -) -= -> -{ -impl -SlimSSSE3 -< -len -> -{ -/ -/ -/ -Creates -a -new -searcher -using -" -slim -" -Teddy -with -128 -- -bit -/ -/ -/ -vectors -. -If -SSSE3 -is -not -available -in -the -current -/ -/ -/ -environment -then -this -returns -None -. -pub -( -super -) -fn -new -( -patterns -: -& -Arc -< -Patterns -> -) -- -> -Option -< -Searcher -> -{ -if -! -is_available_ssse3 -( -) -{ -return -None -; -} -Some -( -unsafe -{ -SlimSSSE3 -: -: -< -len -> -: -: -new_unchecked -( -patterns -) -} -) -} -/ -/ -/ -Creates -a -new -searcher -using -" -slim -" -Teddy -with -256 -- -bit -/ -/ -/ -vectors -without -checking -whether -SSSE3 -is -available -or -not -. -/ -/ -/ -/ -/ -/ -# -Safety -/ -/ -/ -/ -/ -/ -Callers -must -ensure -that -SSSE3 -is -available -in -the -current -/ -/ -/ -environment -. -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -new_unchecked -( -patterns -: -& -Arc -< -Patterns -> -) -- -> -Searcher -{ -let -slim128 -= -generic -: -: -Slim -: -: -< -__m128i -len -> -: -: -new -( -Arc -: -: -clone -( -patterns -) -) -; -let -memory_usage -= -slim128 -. -memory_usage -( -) -; -let -minimum_len -= -slim128 -. -minimum_len -( -) -; -let -imp -= -Arc -: -: -new -( -SlimSSSE3 -{ -slim128 -} -) -; -Searcher -{ -imp -memory_usage -minimum_len -} -} -} -impl -SearcherT -for -SlimSSSE3 -< -len -> -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -# -[ -inline -] -unsafe -fn -find -( -& -self -start -: -* -const -u8 -end -: -* -const -u8 -) -- -> -Option -< -Match -> -{ -/ -/ -SAFETY -: -All -obligations -except -for -target_feature -are -/ -/ -passed -to -the -caller -. -Our -use -of -target_feature -is -/ -/ -safe -because -construction -of -this -type -requires -that -the -/ -/ -requisite -target -features -are -available -. -self -. -slim128 -. -find -( -start -end -) -} -} -} -; -} -slim_ssse3 -! -( -1 -) -; -slim_ssse3 -! -( -2 -) -; -slim_ssse3 -! -( -3 -) -; -slim_ssse3 -! -( -4 -) -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -super -) -struct -SlimAVX2 -< -const -BYTES -: -usize -> -{ -slim128 -: -generic -: -: -Slim -< -__m128i -BYTES -> -slim256 -: -generic -: -: -Slim -< -__m256i -BYTES -> -} -macro_rules -! -slim_avx2 -{ -( -len -: -expr -) -= -> -{ -impl -SlimAVX2 -< -len -> -{ -/ -/ -/ -Creates -a -new -searcher -using -" -slim -" -Teddy -with -256 -- -bit -/ -/ -/ -vectors -. -If -AVX2 -is -not -available -in -the -current -/ -/ -/ -environment -then -this -returns -None -. -pub -( -super -) -fn -new -( -patterns -: -& -Arc -< -Patterns -> -) -- -> -Option -< -Searcher -> -{ -if -! -is_available_avx2 -( -) -{ -return -None -; -} -Some -( -unsafe -{ -SlimAVX2 -: -: -< -len -> -: -: -new_unchecked -( -patterns -) -} -) -} -/ -/ -/ -Creates -a -new -searcher -using -" -slim -" -Teddy -with -256 -- -bit -/ -/ -/ -vectors -without -checking -whether -AVX2 -is -available -or -not -. -/ -/ -/ -/ -/ -/ -# -Safety -/ -/ -/ -/ -/ -/ -Callers -must -ensure -that -AVX2 -is -available -in -the -current -/ -/ -/ -environment -. -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -new_unchecked -( -patterns -: -& -Arc -< -Patterns -> -) -- -> -Searcher -{ -let -slim128 -= -generic -: -: -Slim -: -: -< -__m128i -len -> -: -: -new -( -Arc -: -: -clone -( -& -patterns -) -) -; -let -slim256 -= -generic -: -: -Slim -: -: -< -__m256i -len -> -: -: -new -( -Arc -: -: -clone -( -& -patterns -) -) -; -let -memory_usage -= -slim128 -. -memory_usage -( -) -+ -slim256 -. -memory_usage -( -) -; -let -minimum_len -= -slim128 -. -minimum_len -( -) -; -let -imp -= -Arc -: -: -new -( -SlimAVX2 -{ -slim128 -slim256 -} -) -; -Searcher -{ -imp -memory_usage -minimum_len -} -} -} -impl -SearcherT -for -SlimAVX2 -< -len -> -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -# -[ -inline -] -unsafe -fn -find -( -& -self -start -: -* -const -u8 -end -: -* -const -u8 -) -- -> -Option -< -Match -> -{ -/ -/ -SAFETY -: -All -obligations -except -for -target_feature -are -/ -/ -passed -to -the -caller -. -Our -use -of -target_feature -is -/ -/ -safe -because -construction -of -this -type -requires -that -the -/ -/ -requisite -target -features -are -available -. -let -len -= -end -. -distance -( -start -) -; -if -len -< -self -. -slim256 -. -minimum_len -( -) -{ -self -. -slim128 -. -find -( -start -end -) -} -else -{ -self -. -slim256 -. -find -( -start -end -) -} -} -} -} -; -} -slim_avx2 -! -( -1 -) -; -slim_avx2 -! -( -2 -) -; -slim_avx2 -! -( -3 -) -; -slim_avx2 -! -( -4 -) -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -super -) -struct -FatAVX2 -< -const -BYTES -: -usize -> -{ -fat256 -: -generic -: -: -Fat -< -__m256i -BYTES -> -} -macro_rules -! -fat_avx2 -{ -( -len -: -expr -) -= -> -{ -impl -FatAVX2 -< -len -> -{ -/ -/ -/ -Creates -a -new -searcher -using -" -slim -" -Teddy -with -256 -- -bit -/ -/ -/ -vectors -. -If -AVX2 -is -not -available -in -the -current -/ -/ -/ -environment -then -this -returns -None -. -pub -( -super -) -fn -new -( -patterns -: -& -Arc -< -Patterns -> -) -- -> -Option -< -Searcher -> -{ -if -! -is_available_avx2 -( -) -{ -return -None -; -} -Some -( -unsafe -{ -FatAVX2 -: -: -< -len -> -: -: -new_unchecked -( -patterns -) -} -) -} -/ -/ -/ -Creates -a -new -searcher -using -" -slim -" -Teddy -with -256 -- -bit -/ -/ -/ -vectors -without -checking -whether -AVX2 -is -available -or -not -. -/ -/ -/ -/ -/ -/ -# -Safety -/ -/ -/ -/ -/ -/ -Callers -must -ensure -that -AVX2 -is -available -in -the -current -/ -/ -/ -environment -. -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -new_unchecked -( -patterns -: -& -Arc -< -Patterns -> -) -- -> -Searcher -{ -let -fat256 -= -generic -: -: -Fat -: -: -< -__m256i -len -> -: -: -new -( -Arc -: -: -clone -( -& -patterns -) -) -; -let -memory_usage -= -fat256 -. -memory_usage -( -) -; -let -minimum_len -= -fat256 -. -minimum_len -( -) -; -let -imp -= -Arc -: -: -new -( -FatAVX2 -{ -fat256 -} -) -; -Searcher -{ -imp -memory_usage -minimum_len -} -} -} -impl -SearcherT -for -FatAVX2 -< -len -> -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -# -[ -inline -] -unsafe -fn -find -( -& -self -start -: -* -const -u8 -end -: -* -const -u8 -) -- -> -Option -< -Match -> -{ -/ -/ -SAFETY -: -All -obligations -except -for -target_feature -are -/ -/ -passed -to -the -caller -. -Our -use -of -target_feature -is -/ -/ -safe -because -construction -of -this -type -requires -that -the -/ -/ -requisite -target -features -are -available -. -self -. -fat256 -. -find -( -start -end -) -} -} -} -; -} -fat_avx2 -! -( -1 -) -; -fat_avx2 -! -( -2 -) -; -fat_avx2 -! -( -3 -) -; -fat_avx2 -! -( -4 -) -; -# -[ -inline -] -pub -( -super -) -fn -is_available_ssse3 -( -) -- -> -bool -{ -# -[ -cfg -( -not -( -target_feature -= -" -sse2 -" -) -) -] -{ -false -} -# -[ -cfg -( -target_feature -= -" -sse2 -" -) -] -{ -# -[ -cfg -( -target_feature -= -" -ssse3 -" -) -] -{ -true -} -# -[ -cfg -( -not -( -target_feature -= -" -ssse3 -" -) -) -] -{ -# -[ -cfg -( -feature -= -" -std -" -) -] -{ -std -: -: -is_x86_feature_detected -! -( -" -ssse3 -" -) -} -# -[ -cfg -( -not -( -feature -= -" -std -" -) -) -] -{ -false -} -} -} -} -# -[ -inline -] -pub -( -super -) -fn -is_available_avx2 -( -) -- -> -bool -{ -# -[ -cfg -( -not -( -target_feature -= -" -sse2 -" -) -) -] -{ -false -} -# -[ -cfg -( -target_feature -= -" -sse2 -" -) -] -{ -# -[ -cfg -( -target_feature -= -" -avx2 -" -) -] -{ -true -} -# -[ -cfg -( -not -( -target_feature -= -" -avx2 -" -) -) -] -{ -# -[ -cfg -( -feature -= -" -std -" -) -] -{ -std -: -: -is_x86_feature_detected -! -( -" -avx2 -" -) -} -# -[ -cfg -( -not -( -feature -= -" -std -" -) -) -] -{ -false -} -} -} -} -} -# -[ -cfg -( -target_arch -= -" -aarch64 -" -) -] -mod -aarch64 -{ -use -core -: -: -arch -: -: -aarch64 -: -: -uint8x16_t -; -use -alloc -: -: -sync -: -: -Arc -; -use -crate -: -: -packed -: -: -{ -pattern -: -: -Patterns -teddy -: -: -generic -: -: -{ -self -Match -} -} -; -use -super -: -: -{ -Searcher -SearcherT -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -super -) -struct -SlimNeon -< -const -BYTES -: -usize -> -{ -slim128 -: -generic -: -: -Slim -< -uint8x16_t -BYTES -> -} -macro_rules -! -slim_neon -{ -( -len -: -expr -) -= -> -{ -impl -SlimNeon -< -len -> -{ -/ -/ -/ -Creates -a -new -searcher -using -" -slim -" -Teddy -with -128 -- -bit -/ -/ -/ -vectors -. -If -SSSE3 -is -not -available -in -the -current -/ -/ -/ -environment -then -this -returns -None -. -pub -( -super -) -fn -new -( -patterns -: -& -Arc -< -Patterns -> -) -- -> -Option -< -Searcher -> -{ -Some -( -unsafe -{ -SlimNeon -: -: -< -len -> -: -: -new_unchecked -( -patterns -) -} -) -} -/ -/ -/ -Creates -a -new -searcher -using -" -slim -" -Teddy -with -256 -- -bit -/ -/ -/ -vectors -without -checking -whether -SSSE3 -is -available -or -not -. -/ -/ -/ -/ -/ -/ -# -Safety -/ -/ -/ -/ -/ -/ -Callers -must -ensure -that -SSSE3 -is -available -in -the -current -/ -/ -/ -environment -. -# -[ -target_feature -( -enable -= -" -neon -" -) -] -unsafe -fn -new_unchecked -( -patterns -: -& -Arc -< -Patterns -> -) -- -> -Searcher -{ -let -slim128 -= -generic -: -: -Slim -: -: -< -uint8x16_t -len -> -: -: -new -( -Arc -: -: -clone -( -patterns -) -) -; -let -memory_usage -= -slim128 -. -memory_usage -( -) -; -let -minimum_len -= -slim128 -. -minimum_len -( -) -; -let -imp -= -Arc -: -: -new -( -SlimNeon -{ -slim128 -} -) -; -Searcher -{ -imp -memory_usage -minimum_len -} -} -} -impl -SearcherT -for -SlimNeon -< -len -> -{ -# -[ -target_feature -( -enable -= -" -neon -" -) -] -# -[ -inline -] -unsafe -fn -find -( -& -self -start -: -* -const -u8 -end -: -* -const -u8 -) -- -> -Option -< -Match -> -{ -/ -/ -SAFETY -: -All -obligations -except -for -target_feature -are -/ -/ -passed -to -the -caller -. -Our -use -of -target_feature -is -/ -/ -safe -because -construction -of -this -type -requires -that -the -/ -/ -requisite -target -features -are -available -. -self -. -slim128 -. -find -( -start -end -) -} -} -} -; -} -slim_neon -! -( -1 -) -; -slim_neon -! -( -2 -) -; -slim_neon -! -( -3 -) -; -slim_neon -! -( -4 -) -; -} diff --git a/third_party/rust/aho-corasick/src/packed/teddy/compile.rs b/third_party/rust/aho-corasick/src/packed/teddy/compile.rs new file mode 100644 index 0000000000000..b74b4ede0888d --- /dev/null +++ b/third_party/rust/aho-corasick/src/packed/teddy/compile.rs @@ -0,0 +1,2094 @@ +use +std +: +: +cmp +; +use +std +: +: +collections +: +: +BTreeMap +; +use +std +: +: +fmt +; +use +crate +: +: +packed +: +: +pattern +: +: +{ +PatternID +Patterns +} +; +use +crate +: +: +packed +: +: +teddy +: +: +Teddy +; +# +[ +derive +( +Clone +Debug +) +] +pub +struct +Builder +{ +fat +: +Option +< +bool +> +avx +: +Option +< +bool +> +} +impl +Default +for +Builder +{ +fn +default +( +) +- +> +Builder +{ +Builder +: +: +new +( +) +} +} +impl +Builder +{ +pub +fn +new +( +) +- +> +Builder +{ +Builder +{ +fat +: +None +avx +: +None +} +} +pub +fn +build +( +& +self +patterns +: +& +Patterns +) +- +> +Option +< +Teddy +> +{ +self +. +build_imp +( +patterns +) +} +pub +fn +fat +( +& +mut +self +yes +: +Option +< +bool +> +) +- +> +& +mut +Builder +{ +self +. +fat += +yes +; +self +} +pub +fn +avx +( +& +mut +self +yes +: +Option +< +bool +> +) +- +> +& +mut +Builder +{ +self +. +avx += +yes +; +self +} +fn +build_imp +( +& +self +patterns +: +& +Patterns +) +- +> +Option +< +Teddy +> +{ +use +crate +: +: +packed +: +: +teddy +: +: +runtime +; +if +patterns +. +len +( +) +> +64 +{ +return +None +; +} +let +has_ssse3 += +is_x86_feature_detected +! +( +" +ssse3 +" +) +; +let +has_avx += +is_x86_feature_detected +! +( +" +avx2 +" +) +; +let +avx += +if +self +. +avx += += +Some +( +true +) +{ +if +! +has_avx +{ +return +None +; +} +true +} +else +if +self +. +avx += += +Some +( +false +) +{ +if +! +has_ssse3 +{ +return +None +; +} +false +} +else +if +! +has_ssse3 +& +& +! +has_avx +{ +return +None +; +} +else +{ +has_avx +} +; +let +fat += +match +self +. +fat +{ +None += +> +avx +& +& +patterns +. +len +( +) +> +32 +Some +( +false +) += +> +false +Some +( +true +) +if +! +avx += +> +return +None +Some +( +true +) += +> +true +} +; +let +mut +compiler += +Compiler +: +: +new +( +patterns +fat +) +; +compiler +. +compile +( +) +; +let +Compiler +{ +buckets +masks +. +. +} += +compiler +; +match +( +masks +. +len +( +) +avx +fat +) +{ +( +1 +false +_ +) += +> +Some +( +Teddy +{ +buckets +max_pattern_id +: +patterns +. +max_pattern_id +( +) +exec +: +runtime +: +: +Exec +: +: +TeddySlim1Mask128 +( +runtime +: +: +TeddySlim1Mask128 +{ +mask1 +: +runtime +: +: +Mask128 +: +: +new +( +masks +[ +0 +] +) +} +) +} +) +( +1 +true +false +) += +> +Some +( +Teddy +{ +buckets +max_pattern_id +: +patterns +. +max_pattern_id +( +) +exec +: +runtime +: +: +Exec +: +: +TeddySlim1Mask256 +( +runtime +: +: +TeddySlim1Mask256 +{ +mask1 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +0 +] +) +} +) +} +) +( +1 +true +true +) += +> +Some +( +Teddy +{ +buckets +max_pattern_id +: +patterns +. +max_pattern_id +( +) +exec +: +runtime +: +: +Exec +: +: +TeddyFat1Mask256 +( +runtime +: +: +TeddyFat1Mask256 +{ +mask1 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +0 +] +) +} +) +} +) +( +2 +false +_ +) += +> +Some +( +Teddy +{ +buckets +max_pattern_id +: +patterns +. +max_pattern_id +( +) +exec +: +runtime +: +: +Exec +: +: +TeddySlim2Mask128 +( +runtime +: +: +TeddySlim2Mask128 +{ +mask1 +: +runtime +: +: +Mask128 +: +: +new +( +masks +[ +0 +] +) +mask2 +: +runtime +: +: +Mask128 +: +: +new +( +masks +[ +1 +] +) +} +) +} +) +( +2 +true +false +) += +> +Some +( +Teddy +{ +buckets +max_pattern_id +: +patterns +. +max_pattern_id +( +) +exec +: +runtime +: +: +Exec +: +: +TeddySlim2Mask256 +( +runtime +: +: +TeddySlim2Mask256 +{ +mask1 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +0 +] +) +mask2 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +1 +] +) +} +) +} +) +( +2 +true +true +) += +> +Some +( +Teddy +{ +buckets +max_pattern_id +: +patterns +. +max_pattern_id +( +) +exec +: +runtime +: +: +Exec +: +: +TeddyFat2Mask256 +( +runtime +: +: +TeddyFat2Mask256 +{ +mask1 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +0 +] +) +mask2 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +1 +] +) +} +) +} +) +( +3 +false +_ +) += +> +Some +( +Teddy +{ +buckets +max_pattern_id +: +patterns +. +max_pattern_id +( +) +exec +: +runtime +: +: +Exec +: +: +TeddySlim3Mask128 +( +runtime +: +: +TeddySlim3Mask128 +{ +mask1 +: +runtime +: +: +Mask128 +: +: +new +( +masks +[ +0 +] +) +mask2 +: +runtime +: +: +Mask128 +: +: +new +( +masks +[ +1 +] +) +mask3 +: +runtime +: +: +Mask128 +: +: +new +( +masks +[ +2 +] +) +} +) +} +) +( +3 +true +false +) += +> +Some +( +Teddy +{ +buckets +max_pattern_id +: +patterns +. +max_pattern_id +( +) +exec +: +runtime +: +: +Exec +: +: +TeddySlim3Mask256 +( +runtime +: +: +TeddySlim3Mask256 +{ +mask1 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +0 +] +) +mask2 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +1 +] +) +mask3 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +2 +] +) +} +) +} +) +( +3 +true +true +) += +> +Some +( +Teddy +{ +buckets +max_pattern_id +: +patterns +. +max_pattern_id +( +) +exec +: +runtime +: +: +Exec +: +: +TeddyFat3Mask256 +( +runtime +: +: +TeddyFat3Mask256 +{ +mask1 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +0 +] +) +mask2 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +1 +] +) +mask3 +: +runtime +: +: +Mask256 +: +: +new +( +masks +[ +2 +] +) +} +) +} +) +_ += +> +unreachable +! +( +) +} +} +} +# +[ +derive +( +Clone +) +] +struct +Compiler +< +' +p +> +{ +patterns +: +& +' +p +Patterns +buckets +: +Vec +< +Vec +< +PatternID +> +> +masks +: +Vec +< +Mask +> +} +impl +< +' +p +> +Compiler +< +' +p +> +{ +fn +new +( +patterns +: +& +' +p +Patterns +fat +: +bool +) +- +> +Compiler +< +' +p +> +{ +let +mask_len += +cmp +: +: +min +( +3 +patterns +. +minimum_len +( +) +) +; +assert +! +( +1 +< += +mask_len +& +& +mask_len +< += +3 +) +; +Compiler +{ +patterns +buckets +: +vec +! +[ +vec +! +[ +] +; +if +fat +{ +16 +} +else +{ +8 +} +] +masks +: +vec +! +[ +Mask +: +: +default +( +) +; +mask_len +] +} +} +fn +compile +( +& +mut +self +) +{ +let +mut +lonibble_to_bucket +: +BTreeMap +< +Vec +< +u8 +> +usize +> += +BTreeMap +: +: +new +( +) +; +for +( +id +pattern +) +in +self +. +patterns +. +iter +( +) +{ +let +lonybs += +pattern +. +low_nybbles +( +self +. +masks +. +len +( +) +) +; +if +let +Some +( +& +bucket +) += +lonibble_to_bucket +. +get +( +& +lonybs +) +{ +self +. +buckets +[ +bucket +] +. +push +( +id +) +; +} +else +{ +let +bucket += +( +self +. +buckets +. +len +( +) +- +1 +) +- +( +id +as +usize +% +self +. +buckets +. +len +( +) +) +; +self +. +buckets +[ +bucket +] +. +push +( +id +) +; +lonibble_to_bucket +. +insert +( +lonybs +bucket +) +; +} +} +for +( +bucket_index +bucket +) +in +self +. +buckets +. +iter +( +) +. +enumerate +( +) +{ +for +& +pat_id +in +bucket +{ +let +pat += +self +. +patterns +. +get +( +pat_id +) +; +for +( +i +mask +) +in +self +. +masks +. +iter_mut +( +) +. +enumerate +( +) +{ +if +self +. +buckets +. +len +( +) += += +8 +{ +mask +. +add_slim +( +bucket_index +as +u8 +pat +. +bytes +( +) +[ +i +] +) +; +} +else +{ +mask +. +add_fat +( +bucket_index +as +u8 +pat +. +bytes +( +) +[ +i +] +) +; +} +} +} +} +} +} +impl +< +' +p +> +fmt +: +: +Debug +for +Compiler +< +' +p +> +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +let +mut +buckets += +vec +! +[ +vec +! +[ +] +; +self +. +buckets +. +len +( +) +] +; +for +( +i +bucket +) +in +self +. +buckets +. +iter +( +) +. +enumerate +( +) +{ +for +& +patid +in +bucket +{ +buckets +[ +i +] +. +push +( +self +. +patterns +. +get +( +patid +) +) +; +} +} +f +. +debug_struct +( +" +Compiler +" +) +. +field +( +" +buckets +" +& +buckets +) +. +field +( +" +masks +" +& +self +. +masks +) +. +finish +( +) +} +} +# +[ +derive +( +Clone +Copy +Default +) +] +pub +struct +Mask +{ +lo +: +[ +u8 +; +32 +] +hi +: +[ +u8 +; +32 +] +} +impl +Mask +{ +fn +add_slim +( +& +mut +self +bucket +: +u8 +byte +: +u8 +) +{ +assert +! +( +bucket +< +8 +) +; +let +byte_lo += +( +byte +& +0xF +) +as +usize +; +let +byte_hi += +( +( +byte +> +> +4 +) +& +0xF +) +as +usize +; +self +. +lo +[ +byte_lo +] +| += +1 +< +< +bucket +; +self +. +lo +[ +byte_lo ++ +16 +] +| += +1 +< +< +bucket +; +self +. +hi +[ +byte_hi +] +| += +1 +< +< +bucket +; +self +. +hi +[ +byte_hi ++ +16 +] +| += +1 +< +< +bucket +; +} +fn +add_fat +( +& +mut +self +bucket +: +u8 +byte +: +u8 +) +{ +assert +! +( +bucket +< +16 +) +; +let +byte_lo += +( +byte +& +0xF +) +as +usize +; +let +byte_hi += +( +( +byte +> +> +4 +) +& +0xF +) +as +usize +; +if +bucket +< +8 +{ +self +. +lo +[ +byte_lo +] +| += +1 +< +< +bucket +; +self +. +hi +[ +byte_hi +] +| += +1 +< +< +bucket +; +} +else +{ +self +. +lo +[ +byte_lo ++ +16 +] +| += +1 +< +< +( +bucket +% +8 +) +; +self +. +hi +[ +byte_hi ++ +16 +] +| += +1 +< +< +( +bucket +% +8 +) +; +} +} +pub +fn +lo128 +( +& +self +) +- +> +[ +u8 +; +16 +] +{ +let +mut +tmp += +[ +0 +; +16 +] +; +tmp +. +copy_from_slice +( +& +self +. +lo +[ +. +. +16 +] +) +; +tmp +} +pub +fn +lo256 +( +& +self +) +- +> +[ +u8 +; +32 +] +{ +self +. +lo +} +pub +fn +hi128 +( +& +self +) +- +> +[ +u8 +; +16 +] +{ +let +mut +tmp += +[ +0 +; +16 +] +; +tmp +. +copy_from_slice +( +& +self +. +hi +[ +. +. +16 +] +) +; +tmp +} +pub +fn +hi256 +( +& +self +) +- +> +[ +u8 +; +32 +] +{ +self +. +hi +} +} +impl +fmt +: +: +Debug +for +Mask +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +let +( +mut +parts_lo +mut +parts_hi +) += +( +vec +! +[ +] +vec +! +[ +] +) +; +for +i +in +0 +. +. +32 +{ +parts_lo +. +push +( +format +! +( +" +{ +: +02 +} +: +{ +: +08b +} +" +i +self +. +lo +[ +i +] +) +) +; +parts_hi +. +push +( +format +! +( +" +{ +: +02 +} +: +{ +: +08b +} +" +i +self +. +hi +[ +i +] +) +) +; +} +f +. +debug_struct +( +" +Mask +" +) +. +field +( +" +lo +" +& +parts_lo +) +. +field +( +" +hi +" +& +parts_hi +) +. +finish +( +) +} +} diff --git a/third_party/rust/aho-corasick/src/packed/teddy/mod.rs b/third_party/rust/aho-corasick/src/packed/teddy/mod.rs index cb7287913d03a..504031814f7b0 100644 --- a/third_party/rust/aho-corasick/src/packed/teddy/mod.rs +++ b/third_party/rust/aho-corasick/src/packed/teddy/mod.rs @@ -1,30 +1,353 @@ # -! [ -allow +cfg ( -dead_code +target_arch += +" +x86_64 +" ) ] pub -( +use crate +: +: +packed +: +: +teddy +: +: +compile +: +: +Builder +; +# +[ +cfg +( +not +( +target_arch += +" +x86_64 +" +) ) +] +pub use -self +crate : : -builder +packed +: +: +teddy +: +: +fallback : : -{ Builder -Searcher -} ; +# +[ +cfg +( +not +( +target_arch += +" +x86_64 +" +) +) +] +pub +use +crate +: +: +packed +: +: +teddy +: +: +fallback +: +: +Teddy +; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] +pub +use +crate +: +: +packed +: +: +teddy +: +: +runtime +: +: +Teddy +; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] +mod +compile +; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] mod -builder +runtime ; +# +[ +cfg +( +not +( +target_arch += +" +x86_64 +" +) +) +] mod -generic +fallback +{ +use +crate +: +: +packed +: +: +pattern +: +: +Patterns +; +use +crate +: +: +Match +; +# +[ +derive +( +Clone +Debug +Default +) +] +pub +struct +Builder +( +( +) +) +; +impl +Builder +{ +pub +fn +new +( +) +- +> +Builder +{ +Builder +( +( +) +) +} +pub +fn +build +( +& +self +_ +: +& +Patterns +) +- +> +Option +< +Teddy +> +{ +None +} +pub +fn +fat +( +& +mut +self +_ +: +Option +< +bool +> +) +- +> +& +mut +Builder +{ +self +} +pub +fn +avx +( +& +mut +self +_ +: +Option +< +bool +> +) +- +> +& +mut +Builder +{ +self +} +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +Teddy +( +( +) +) ; +impl +Teddy +{ +pub +fn +find_at +( +& +self +_ +: +& +Patterns +_ +: +& +[ +u8 +] +_ +: +usize +) +- +> +Option +< +Match +> +{ +None +} +pub +fn +minimum_len +( +& +self +) +- +> +usize +{ +0 +} +pub +fn +heap_bytes +( +& +self +) +- +> +usize +{ +0 +} +} +} diff --git a/third_party/rust/aho-corasick/src/packed/teddy/generic.rs b/third_party/rust/aho-corasick/src/packed/teddy/runtime.rs similarity index 50% rename from third_party/rust/aho-corasick/src/packed/teddy/generic.rs rename to third_party/rust/aho-corasick/src/packed/teddy/runtime.rs index 98bf2c6a761c2..6fb41a6894a8d 100644 --- a/third_party/rust/aho-corasick/src/packed/teddy/generic.rs +++ b/third_party/rust/aho-corasick/src/packed/teddy/runtime.rs @@ -1,317 +1,377 @@ use -core +std : : -fmt +arch : : -Debug -; -use -alloc +x86_64 : : -{ -boxed +* +; +use +std : : -Box -collections +mem +; +use +crate : : -BTreeMap -format -sync +packed : : -Arc -vec -vec +pattern : : -Vec +{ +PatternID +Patterns } ; use crate : : -{ packed : : -{ -ext +teddy : : -Pointer -pattern +compile +; +use +crate : : -Patterns -vector +packed : : -{ -FatVector -Vector -} -} -util +vector : : -int +* +; +use +crate : : -U32 -PatternID -} +Match ; # [ derive ( Clone -Copy Debug ) ] pub -( -crate -) struct -Match +Teddy { -pid +pub +buckets : +Vec +< +Vec +< PatternID -start +> +> +pub +max_pattern_id : -* -const -u8 -end +PatternID +pub +exec : -* -const -u8 +Exec } impl -Match +Teddy { pub -( -crate -) fn -pattern +find_at ( & self +pats +: +& +Patterns +haystack +: +& +[ +u8 +] +at +: +usize ) - > -PatternID +Option +< +Match +> { +assert_eq +! +( self . -pid -} -pub +max_pattern_id +pats +. +max_pattern_id ( -crate ) -fn -start +" +teddy +must +be +called +with +same +patterns +it +was +built +with +" +) +; +assert +! +( +haystack +[ +at +. +. +] +. +len ( -& -self ) -- > -* -const -u8 -{ += self . -start -} -pub +minimum_len ( -crate ) -fn -end -( -& -self ) -- -> -* -const -u8 +; +unsafe { +match self . -end -} -} -# -[ -derive -( -Clone -Debug -) -] -pub +exec +{ +Exec +: +: +TeddySlim1Mask128 ( -crate +ref +e ) -struct -Slim -< -V -const -BYTES -: -usize += > { -teddy +e +. +find_at +( +pats +self +haystack +at +) +} +Exec : -Teddy -< -8 -> -masks : -[ -Mask -< -V +TeddySlim1Mask256 +( +ref +e +) += > -; -BYTES -] +{ +e +. +find_at +( +pats +self +haystack +at +) } -impl -< -V +Exec : -Vector -const -BYTES : -usize -> -Slim -< -V -BYTES +TeddyFat1Mask256 +( +ref +e +) += > { -# -[ -inline +e +. +find_at ( -always +pats +self +haystack +at ) -] -pub +} +Exec +: +: +TeddySlim2Mask128 ( -crate +ref +e ) -unsafe -fn -new += +> +{ +e +. +find_at ( -patterns +pats +self +haystack +at +) +} +Exec : -Arc -< -Patterns -> +: +TeddySlim2Mask256 +( +ref +e ) -- -> -Slim -< -V -BYTES += > { -assert -! +e +. +find_at ( -1 -< -= -BYTES -& -& -BYTES -< -= -4 -" -only -1 -2 -3 -or -4 -bytes -are -supported -" +pats +self +haystack +at ) -; -let -teddy -= -Teddy +} +Exec : : -new +TeddyFat2Mask256 ( -patterns +ref +e ) -; -let -masks = -SlimMaskBuilder +> +{ +e +. +find_at +( +pats +self +haystack +at +) +} +Exec : : -from_teddy +TeddySlim3Mask128 ( -& -teddy +ref +e ) -; -Slim += +> { -teddy -masks +e +. +find_at +( +pats +self +haystack +at +) } +Exec +: +: +TeddySlim3Mask256 +( +ref +e +) += +> +{ +e +. +find_at +( +pats +self +haystack +at +) } -# -[ -inline +Exec +: +: +TeddyFat3Mask256 ( -always +ref +e ) -] -pub += +> +{ +e +. +find_at ( -crate +pats +self +haystack +at ) +} +} +} +} +pub fn -memory_usage +minimum_len ( & self @@ -320,27 +380,106 @@ self > usize { +match self . -teddy -. -memory_usage +exec +{ +Exec +: +: +TeddySlim1Mask128 ( +_ ) -} -# -[ -inline += +> +16 +Exec +: +: +TeddySlim1Mask256 ( -always +_ ) -] -pub += +> +32 +Exec +: +: +TeddyFat1Mask256 ( -crate +_ +) += +> +16 +Exec +: +: +TeddySlim2Mask128 +( +_ +) += +> +17 +Exec +: +: +TeddySlim2Mask256 +( +_ +) += +> +33 +Exec +: +: +TeddyFat2Mask256 +( +_ +) += +> +17 +Exec +: +: +TeddySlim3Mask128 +( +_ +) += +> +18 +Exec +: +: +TeddySlim3Mask256 +( +_ ) += +> +34 +Exec +: +: +TeddyFat3Mask256 +( +_ +) += +> +34 +} +} +pub fn -minimum_len +heap_bytes ( & self @@ -349,30 +488,54 @@ self > usize { -V -: -: -BYTES +let +num_patterns += +self +. +max_pattern_id +as +usize + -( -BYTES -- 1 +; +self +. +buckets +. +len +( ) -} -} -impl -< -V +* +mem +: : -Vector +size_of +: +: +< +Vec +< +PatternID +> > -Slim +( +) ++ +num_patterns +* +mem +: +: +size_of +: +: < -V -1 +PatternID > -{ +( +) +} # [ inline @@ -380,26 +543,28 @@ inline always ) ] -pub -( -crate -) unsafe fn -find +verify128 ( & self -start +pats : -* -const -u8 -end +& +Patterns +haystack : -* -const +& +[ u8 +] +at +: +usize +cand +: +__m128i ) - > @@ -408,49 +573,63 @@ Option Match > { -let -len -= -end -. -distance +debug_assert +! ( -start +! +is_all_zeroes128 +( +cand +) ) ; -debug_assert +debug_assert_eq ! ( -len -> -= +8 self . -minimum_len +buckets +. +len ( ) ) ; let -mut -cur +parts = -start +unpack64x128 +( +cand +) ; -while -cur -< -= -end +for +( +i +& +part +) +in +parts . -sub +iter +( +) +. +enumerate ( -V -: -: -BYTES ) { +let +pos += +at ++ +i +* +8 +; if let Some @@ -460,10 +639,13 @@ m = self . -find_one +verify64 ( -cur -end +pats +8 +haystack +pos +part ) { return @@ -473,84 +655,38 @@ m ) ; } -cur -= -cur -. -add -( -V -: -: -BYTES -) -; } -if -cur -< -end -{ -cur -= -end -. -sub +None +} +# +[ +inline ( -V -: -: -BYTES -) -; -if -let -Some -( -m -) -= -self -. -find_one -( -cur -end -) -{ -return -Some -( -m -) -; -} -} -None -} -# -[ -inline -( -always +always ) ] unsafe fn -find_one +verify256 ( & self -cur +pats : -* -const -u8 -end +& +Patterns +haystack : -* -const +& +[ u8 +] +at +: +usize +cand +: +__m256i ) - > @@ -559,24 +695,63 @@ Option Match > { -let -c -= +debug_assert +! +( +! +is_all_zeroes256 +( +cand +) +) +; +debug_assert_eq +! +( +8 self . -candidate +buckets +. +len ( -cur +) ) ; -if -! -c +let +parts += +unpack64x256 +( +cand +) +; +for +( +i +& +part +) +in +parts +. +iter +( +) . -is_zero +enumerate ( ) { +let +pos += +at ++ +i +* +8 +; if let Some @@ -586,13 +761,13 @@ m = self . -teddy -. -verify +verify64 ( -cur -end -c +pats +8 +haystack +pos +part ) { return @@ -614,82 +789,26 @@ always ] unsafe fn -candidate +verify_fat256 ( & self -cur +pats : -* -const -u8 -) -- -> -V -{ -let -chunk -= -V -: -: -load_unaligned -( -cur -) -; -Mask -: -: -members1 -( -chunk -self -. -masks -) -} -} -impl -< -V +& +Patterns +haystack : -Vector -> -Slim -< -V -2 -> -{ -# +& [ -inline -( -always -) +u8 ] -pub -( -crate -) -unsafe -fn -find -( -& -self -start +at : -* -const -u8 -end +usize +cand : -* -const -u8 +__m256i ) - > @@ -698,130 +817,90 @@ Option Match > { -let -len -= -end -. -distance +debug_assert +! ( -start +! +is_all_zeroes256 +( +cand +) ) ; -debug_assert +debug_assert_eq ! ( -len -> -= +16 self . -minimum_len +buckets +. +len ( ) ) ; let -mut -cur +swap = -start -. -add +_mm256_permute4x64_epi64 ( -1 +cand +0x4E ) ; let -mut -prev0 +r1 = -V -: -: -splat +_mm256_unpacklo_epi8 ( -0xFF +cand +swap ) ; -while -cur -< +let +r2 = -end -. -sub +_mm256_unpackhi_epi8 ( -V -: -: -BYTES +cand +swap ) -{ -if +; let -Some -( -m -) +parts = -self -. -find_one +unpacklo64x256 ( -cur -end -& -mut -prev0 +r1 +r2 ) -{ -return -Some +; +for ( -m +i +& +part ) -; -} -cur -= -cur +in +parts . -add +iter ( -V -: -: -BYTES ) -; -} -if -cur -< -end -{ -cur -= -end . -sub +enumerate ( -V -: -: -BYTES ) -; -prev0 +{ +let +pos = -V -: -: -splat -( -0xFF -) +at ++ +i +* +4 ; if let @@ -832,13 +911,13 @@ m = self . -find_one +verify64 ( -cur -end -& -mut -prev0 +pats +16 +haystack +pos +part ) { return @@ -858,27 +937,31 @@ inline always ) ] -unsafe fn -find_one +verify64 ( & self -cur -: -* -const -u8 -end +pats : -* -const -u8 -prev0 +& +Patterns +bucket_count +: +usize +haystack : & +[ +u8 +] +at +: +usize mut -V +cand +: +u64 ) - > @@ -887,25 +970,67 @@ Option Match > { +debug_assert +! +( +bucket_count += += +8 +| +| +bucket_count += += +16 +) +; +while +cand +! += +0 +{ let -c +bit = -self +cand . -candidate +trailing_zeros ( -cur -prev0 ) +as +usize ; -if +cand +& += ! -c -. -is_zero ( +1 +< +< +bit +) +; +let +at += +at ++ +( +bit +/ +bucket_count ) -{ +; +let +bucket += +bit +% +bucket_count +; if let Some @@ -915,18 +1040,12 @@ m = self . -teddy -. -verify -( -cur -. -sub +verify_bucket ( -1 -) -end -c +pats +haystack +bucket +at ) { return @@ -946,300 +1065,333 @@ inline always ) ] -unsafe fn -candidate +verify_bucket ( & self -cur +pats : -* -const -u8 -prev0 +& +Patterns +haystack : & -mut -V +[ +u8 +] +bucket +: +usize +at +: +usize ) - > -V +Option +< +Match +> { -let -chunk -= -V -: -: -load_unaligned +# +[ +cold +] +# +[ +inline ( -cur +never ) -; -let +] +fn +match_from_span ( -res0 -res1 +pati +: +PatternID +start +: +usize +end +: +usize ) -= -Mask +- +> +Match +{ +Match : : -members2 +from_span ( -chunk +pati +as +usize +start +end +) +} +for +& +pati +in +& self . -masks -) -; +buckets +[ +bucket +] +{ let -res0prev0 +pat = -res0 +unsafe +{ +pats . -shift_in_one_byte +get_unchecked ( -* -prev0 +pati ) +} ; -let -res -= -res0prev0 +if +pat . -and +is_prefix ( -res1 +& +haystack +[ +at +. +. +] +) +{ +return +Some +( +match_from_span +( +pati +at +at ++ +pat +. +len +( +) +) ) ; -* -prev0 -= -res0 -; -res } } -impl -< -V -: -Vector -> -Slim -< -V -3 -> -{ +None +} +} # [ -inline +derive ( -always +Clone +Debug ) ] pub +enum +Exec +{ +TeddySlim1Mask128 ( -crate +TeddySlim1Mask128 ) -unsafe -fn -find +TeddySlim1Mask256 ( -& -self -start -: -* -const -u8 -end -: -* -const -u8 +TeddySlim1Mask256 ) -- -> -Option -< -Match -> -{ -let -len -= -end -. -distance +TeddyFat1Mask256 ( -start +TeddyFat1Mask256 ) -; -debug_assert -! +TeddySlim2Mask128 ( -len -> -= -self -. -minimum_len +TeddySlim2Mask128 +) +TeddySlim2Mask256 ( +TeddySlim2Mask256 ) +TeddyFat2Mask256 +( +TeddyFat2Mask256 ) -; -let -mut -cur -= -start -. -add +TeddySlim3Mask128 ( -2 +TeddySlim3Mask128 ) -; -let -mut -prev0 -= -V -: -: -splat +TeddySlim3Mask256 ( -0xFF +TeddySlim3Mask256 ) -; -let -mut -prev1 -= -V -: -: -splat +TeddyFat3Mask256 ( -0xFF +TeddyFat3Mask256 ) -; -while -cur -< -= -end -. -sub +} +# +[ +derive ( -V -: -: -BYTES +Clone +Debug ) +] +pub +struct +TeddySlim1Mask128 { -if -let -Some +pub +mask1 +: +Mask128 +} +impl +TeddySlim1Mask128 +{ +# +[ +target_feature ( -m -) +enable = -self -. -find_one +" +ssse3 +" +) +] +unsafe +fn +find_at ( -cur -end & -mut -prev0 +self +pats +: +& +Patterns +teddy +: & +Teddy +haystack +: +& +[ +u8 +] mut -prev1 +at +: +usize ) +- +> +Option +< +Match +> { -return -Some +debug_assert +! +( +haystack +[ +at +. +. +] +. +len ( -m ) -; -} -cur +> = -cur +teddy . -add +minimum_len ( -V -: -: -BYTES +) ) ; -} -if -cur -< -end -{ -cur -= -end +assert_eq +! +( +8 +teddy . -sub +buckets +. +len ( -V -: -: -BYTES +) ) ; -prev0 +let +len = -V -: -: -splat +haystack +. +len ( -0xFF ) ; -prev1 +while +at +< = -V -: -: -splat +len +- +16 +{ +let +c += +self +. +candidate ( -0xFF +haystack +at ) ; if +! +is_all_zeroes128 +( +c +) +{ +if let Some ( m ) = -self +teddy . -find_one +verify128 ( -cur -end -& -mut -prev0 -& -mut -prev1 +pats +haystack +at +c ) { return @@ -1250,49 +1402,23 @@ m ; } } -None +at ++ += +16 +; } -# -[ -inline -( -always -) -] -unsafe -fn -find_one -( -& -self -cur -: -* -const -u8 -end -: -* -const -u8 -prev0 -: -& -mut -V -prev1 -: -& -mut -V -) -- -> -Option +if +at < -Match -> +len { +at += +len +- +16 +; let c = @@ -1300,17 +1426,15 @@ self . candidate ( -cur -prev0 -prev1 +haystack +at ) ; if ! -c -. -is_zero +is_all_zeroes128 ( +c ) { if @@ -1320,19 +1444,13 @@ Some m ) = -self -. teddy . -verify -( -cur -. -sub +verify128 ( -2 -) -end +pats +haystack +at c ) { @@ -1344,6 +1462,7 @@ m ; } } +} None } # @@ -1359,144 +1478,111 @@ candidate ( & self -cur -: -* -const -u8 -prev0 +haystack : & -mut -V -prev1 +[ +u8 +] +at : -& -mut -V +usize ) - > -V +__m128i { +debug_assert +! +( +haystack +[ +at +. +. +] +. +len +( +) +> += +16 +) +; let chunk = -V -: -: -load_unaligned +loadu128 ( -cur +haystack +at ) ; -let +members1m128 ( -res0 -res1 -res2 +chunk +self +. +mask1 ) -= -Mask -: -: -members3 -( -chunk -self -. -masks -) -; -let -res0prev0 -= -res0 -. -shift_in_two_bytes -( -* -prev0 -) -; -let -res1prev1 -= -res1 -. -shift_in_one_byte -( -* -prev1 -) -; -let -res -= -res0prev0 -. -and -( -res1prev1 -) -. -and -( -res2 -) -; -* -prev0 -= -res0 -; -* -prev1 -= -res1 -; -res } } -impl -< -V -: -Vector -> -Slim -< -V -4 -> -{ # [ -inline +derive ( -always +Clone +Debug ) ] pub +struct +TeddySlim1Mask256 +{ +pub +mask1 +: +Mask256 +} +impl +TeddySlim1Mask256 +{ +# +[ +target_feature ( -crate +enable += +" +avx2 +" ) +] unsafe fn -find +find_at ( & self -start +pats : -* -const -u8 -end +& +Patterns +teddy : -* -const +& +Teddy +haystack +: +& +[ u8 +] +mut +at +: +usize ) - > @@ -1505,88 +1591,74 @@ Option Match > { -let -len -= -end -. -distance -( -start -) -; debug_assert ! ( +haystack +[ +at +. +. +] +. len +( +) > = -self +teddy . minimum_len ( ) ) ; -let -mut -cur -= -start +assert_eq +! +( +8 +teddy . -add +buckets +. +len ( -3 ) -; -let -mut -prev0 -= -V -: -: -splat -( -0xFF ) ; let -mut -prev1 +len = -V -: -: -splat +haystack +. +len ( -0xFF ) ; +while +at +< += +len +- +32 +{ let -mut -prev2 +c = -V -: -: -splat +self +. +candidate ( -0xFF +haystack +at ) ; -while -cur -< -= -end -. -sub +if +! +is_all_zeroes256 ( -V -: -: -BYTES +c ) { if @@ -1596,21 +1668,14 @@ Some m ) = -self +teddy . -find_one +verify256 ( -cur -end -& -mut -prev0 -& -mut -prev1 -& -mut -prev2 +pats +haystack +at +c ) { return @@ -1620,66 +1685,42 @@ m ) ; } -cur +} +at ++ = -cur -. -add -( -V -: -: -BYTES -) +32 ; } if -cur +at < -end +len { -cur -= -end -. -sub -( -V -: -: -BYTES -) -; -prev0 +at = -V -: -: -splat -( -0xFF -) +len +- +32 ; -prev1 +let +c = -V -: -: -splat +self +. +candidate ( -0xFF +haystack +at ) ; -prev2 -= -V -: -: -splat +if +! +is_all_zeroes256 ( -0xFF +c ) -; +{ if let Some @@ -1687,21 +1728,14 @@ Some m ) = -self +teddy . -find_one +verify256 ( -cur -end -& -mut -prev0 -& -mut -prev1 -& -mut -prev2 +pats +haystack +at +c ) { return @@ -1712,6 +1746,7 @@ m ; } } +} None } # @@ -1723,35 +1758,115 @@ always ] unsafe fn -find_one +candidate ( & self -cur -: -* -const -u8 -end -: -* -const -u8 -prev0 +haystack : & -mut -V -prev1 +[ +u8 +] +at : +usize +) +- +> +__m256i +{ +debug_assert +! +( +haystack +[ +at +. +. +] +. +len +( +) +> += +32 +) +; +let +chunk += +loadu256 +( +haystack +at +) +; +members1m256 +( +chunk +self +. +mask1 +) +} +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +TeddyFat1Mask256 +{ +pub +mask1 +: +Mask256 +} +impl +TeddyFat1Mask256 +{ +# +[ +target_feature +( +enable += +" +avx2 +" +) +] +unsafe +fn +find_at +( & -mut -V -prev2 +self +pats +: +& +Patterns +teddy +: +& +Teddy +haystack : & +[ +u8 +] mut -V +at +: +usize ) - > @@ -1760,6 +1875,58 @@ Option Match > { +debug_assert +! +( +haystack +[ +at +. +. +] +. +len +( +) +> += +teddy +. +minimum_len +( +) +) +; +assert_eq +! +( +16 +teddy +. +buckets +. +len +( +) +) +; +let +len += +haystack +. +len +( +) +; +while +at +< += +len +- +16 +{ let c = @@ -1767,18 +1934,15 @@ self . candidate ( -cur -prev0 -prev1 -prev2 +haystack +at ) ; if ! -c -. -is_zero +is_all_zeroes256 ( +c ) { if @@ -1788,19 +1952,73 @@ Some m ) = -self -. teddy . -verify +verify_fat256 +( +pats +haystack +at +c +) +{ +return +Some ( -cur +m +) +; +} +} +at ++ += +16 +; +} +if +at +< +len +{ +at += +len +- +16 +; +let +c += +self . -sub +candidate ( -3 +haystack +at ) -end +; +if +! +is_all_zeroes256 +( +c +) +{ +if +let +Some +( +m +) += +teddy +. +verify_fat256 +( +pats +haystack +at c ) { @@ -1812,6 +2030,7 @@ m ; } } +} None } # @@ -1827,130 +2046,57 @@ candidate ( & self -cur -: -* -const -u8 -prev0 -: -& -mut -V -prev1 +haystack : & -mut -V -prev2 +[ +u8 +] +at : -& -mut -V +usize ) - > -V +__m256i { -let -chunk -= -V -: -: -load_unaligned +debug_assert +! ( -cur -) -; -let +haystack +[ +at +. +. +] +. +len ( -res0 -res1 -res2 -res3 ) +> = -Mask -: -: -members4 -( -chunk -self -. -masks +16 ) ; let -res0prev0 +chunk = -res0 -. -shift_in_three_bytes +_mm256_broadcastsi128_si256 ( -* -prev0 -) -; -let -res1prev1 -= -res1 -. -shift_in_two_bytes +loadu128 ( -* -prev1 +haystack +at +) ) ; -let -res2prev2 -= -res2 -. -shift_in_one_byte +members1m256 ( -* -prev2 -) -; -let -res -= -res0prev0 -. -and -( -res1prev1 -) -. -and -( -res2prev2 -) +chunk +self . -and -( -res3 +mask1 ) -; -* -prev0 -= -res0 -; -* -prev1 -= -res1 -; -* -prev2 -= -res2 -; -res } } # @@ -1962,353 +2108,221 @@ Debug ) ] pub -( -crate -) struct -Fat -< -V -const -BYTES -: -usize -> +TeddySlim2Mask128 { -teddy +pub +mask1 : -Teddy -< -16 -> -masks +Mask128 +pub +mask2 : -[ -Mask -< -V -> -; -BYTES -] +Mask128 } impl -< -V -: -FatVector -const -BYTES -: -usize -> -Fat -< -V -BYTES -> +TeddySlim2Mask128 { # [ -inline +target_feature ( -always +enable += +" +ssse3 +" ) ] -pub -( -crate -) unsafe fn -new +find_at ( -patterns +& +self +pats : -Arc -< +& Patterns -> +teddy +: +& +Teddy +haystack +: +& +[ +u8 +] +mut +at +: +usize ) - > -Fat +Option < -V -BYTES +Match > { -assert +debug_assert ! ( -1 -< -= -BYTES -& -& -BYTES -< +haystack +[ +at +. +. +] +. +len +( +) +> = -4 -" -only -1 -2 -3 -or -4 -bytes -are -supported -" +teddy +. +minimum_len +( +) ) ; -let +assert_eq +! +( +8 teddy -= -Teddy -: -: -new +. +buckets +. +len ( -patterns ) +) +; +at ++ += +1 ; let -masks +len = -FatMaskBuilder -: -: -from_teddy +haystack +. +len ( -& -teddy ) ; -Fat -{ -teddy -masks -} -} -# -[ -inline -( -always -) -] -pub -( -crate -) -fn -memory_usage +let +mut +prev0 += +ones128 ( -& -self ) +; +while +at +< += +len - -> -usize +16 { +let +c += self . -teddy -. -memory_usage +candidate ( +haystack +at +& +mut +prev0 ) -} -# -[ -inline +; +if +! +is_all_zeroes128 ( -always +c ) -] -pub +{ +if +let +Some ( -crate +m ) -fn -minimum_len += +teddy +. +verify128 ( -& -self -) +pats +haystack +at - -> -usize +1 +c +) { -V -: -: -Half -: -: -BYTES -+ +return +Some ( -BYTES -- -1 +m ) +; } } -impl -< -V -: -FatVector -> -Fat +at ++ += +16 +; +} +if +at < -V -1 -> +len { -# -[ -inline +at += +len +- +16 +; +prev0 += +ones128 ( -always -) -] -pub -( -crate -) -unsafe -fn -find -( -& -self -start -: -* -const -u8 -end -: -* -const -u8 -) -- -> -Option -< -Match -> -{ -let -len -= -end -. -distance -( -start -) -; -debug_assert -! -( -len -> -= -self -. -minimum_len -( -) ) ; let -mut -cur -= -start -; -while -cur -< -= -end -. -sub -( -V -: -: -Half -: -: -BYTES -) -{ -if -let -Some -( -m -) +c = self . -find_one -( -cur -end -) -{ -return -Some -( -m -) -; -} -cur -= -cur -. -add +candidate ( -V -: -: -Half -: -: -BYTES +haystack +at +& +mut +prev0 ) ; -} if -cur -< -end -{ -cur -= -end -. -sub +! +is_all_zeroes128 ( -V -: -: -Half -: -: -BYTES +c ) -; +{ if let Some @@ -2316,12 +2330,16 @@ Some m ) = -self +teddy . -find_one +verify128 ( -cur -end +pats +haystack +at +- +1 +c ) { return @@ -2332,6 +2350,7 @@ m ; } } +} None } # @@ -2343,160 +2362,151 @@ always ] unsafe fn -find_one +candidate ( & self -cur +haystack : -* -const +& +[ u8 -end +] +at : -* -const -u8 +usize +prev0 +: +& +mut +__m128i ) - > -Option -< -Match -> +__m128i { -let -c -= -self +debug_assert +! +( +haystack +[ +at . -candidate +. +] +. +len ( -cur +) +> += +16 ) ; -if -! -c -. -is_zero +let +chunk += +loadu128 ( +haystack +at ) -{ -if +; let -Some ( -m +res0 +res1 ) = +members2m128 +( +chunk self . -teddy +mask1 +self . -verify -( -cur -end -c +mask2 ) -{ -return -Some +; +let +res0prev0 += +_mm_alignr_epi8 ( -m +res0 +* +prev0 +15 ) ; +_mm_and_si128 +( +res0prev0 +res1 +) } } -None -} # [ -inline +derive ( -always +Clone +Debug ) ] -unsafe -fn -candidate -( -& -self -cur -: -* -const -u8 -) -- -> -V +pub +struct +TeddySlim2Mask256 { -let -chunk -= -V -: -: -load_half_unaligned -( -cur -) -; -Mask +pub +mask1 : +Mask256 +pub +mask2 : -members1 -( -chunk -self -. -masks -) -} +Mask256 } impl -< -V -: -FatVector -> -Fat -< -V -2 -> +TeddySlim2Mask256 { # [ -inline +target_feature ( -always +enable += +" +avx2 +" ) ] -pub -( -crate -) unsafe fn -find +find_at ( & self -start +pats : -* -const -u8 -end +& +Patterns +teddy : -* -const +& +Teddy +haystack +: +& +[ u8 -) +] +mut +at +: +usize +) - > Option @@ -2504,140 +2514,92 @@ Option Match > { -let +debug_assert +! +( +haystack +[ +at +. +. +] +. len +( +) +> = -end +teddy . -distance +minimum_len ( -start +) ) ; -debug_assert +assert_eq ! ( -len -> -= -self +8 +teddy . -minimum_len +buckets +. +len ( ) ) ; +at ++ += +1 +; let -mut -cur +len = -start +haystack . -add +len ( -1 ) ; let mut prev0 = -V -: -: -splat +ones256 ( -0xFF ) ; while -cur +at < = -end -. -sub -( -V -: -: -Half -: -: -BYTES -) +len +- +32 { -if let -Some -( -m -) +c = self . -find_one +candidate ( -cur -end +haystack +at & mut prev0 ) -{ -return -Some -( -m -) -; -} -cur -= -cur -. -add -( -V -: -: -Half -: -: -BYTES -) ; -} if -cur -< -end -{ -cur -= -end -. -sub -( -V -: -: -Half -: -: -BYTES -) -; -prev0 -= -V -: -: -splat +! +is_all_zeroes256 ( -0xFF +c ) -; +{ if let Some @@ -2645,15 +2607,16 @@ Some m ) = -self +teddy . -find_one +verify256 ( -cur -end -& -mut -prev0 +pats +haystack +at +- +1 +c ) { return @@ -2664,44 +2627,29 @@ m ; } } -None +at ++ += +32 +; } -# -[ -inline -( -always -) -] -unsafe -fn -find_one -( -& -self -cur -: -* -const -u8 -end -: -* -const -u8 -prev0 -: -& -mut -V -) -- -> -Option +if +at < -Match -> +len { +at += +len +- +32 +; +prev0 += +ones256 +( +) +; let c = @@ -2709,16 +2657,18 @@ self . candidate ( -cur +haystack +at +& +mut prev0 ) ; if ! -c -. -is_zero +is_all_zeroes256 ( +c ) { if @@ -2728,19 +2678,15 @@ Some m ) = -self -. teddy . -verify -( -cur -. -sub +verify256 ( +pats +haystack +at +- 1 -) -end c ) { @@ -2752,6 +2698,7 @@ m ; } } +} None } # @@ -2767,30 +2714,50 @@ candidate ( & self -cur +haystack : -* -const +& +[ u8 +] +at +: +usize prev0 : & mut -V +__m256i ) - > -V +__m256i { +debug_assert +! +( +haystack +[ +at +. +. +] +. +len +( +) +> += +32 +) +; let chunk = -V -: -: -load_half_unaligned +loadu256 ( -cur +haystack +at ) ; let @@ -2799,24 +2766,23 @@ res0 res1 ) = -Mask -: -: -members2 +members2m256 ( chunk self . -masks +mask1 +self +. +mask2 ) ; let res0prev0 = -res0 -. -half_shift_in_one_byte +alignr256_15 ( +res0 * prev0 ) @@ -2824,10 +2790,9 @@ prev0 let res = -res0prev0 -. -and +_mm256_and_si256 ( +res0prev0 res1 ) ; @@ -2839,46 +2804,66 @@ res0 res } } -impl -< -V -: -FatVector -> -Fat -< -V -3 -> -{ # [ -inline +derive ( -always +Clone +Debug ) ] pub +struct +TeddyFat2Mask256 +{ +pub +mask1 +: +Mask256 +pub +mask2 +: +Mask256 +} +impl +TeddyFat2Mask256 +{ +# +[ +target_feature ( -crate +enable += +" +avx2 +" ) +] unsafe fn -find +find_at ( & self -start +pats : -* -const -u8 -end +& +Patterns +teddy : -* -const -u8 -) +& +Teddy +haystack +: +& +[ +u8 +] +mut +at +: +usize +) - > Option @@ -2886,165 +2871,92 @@ Option Match > { -let -len -= -end -. -distance -( -start -) -; debug_assert ! ( +haystack +[ +at +. +. +] +. len +( +) > = -self +teddy . minimum_len ( ) ) ; -let -mut -cur -= -start +assert_eq +! +( +16 +teddy +. +buckets . -add +len ( -2 ) +) +; +at ++ += +1 ; let -mut -prev0 +len = -V -: -: -splat +haystack +. +len ( -0xFF ) ; let mut -prev1 +prev0 = -V -: -: -splat +ones256 ( -0xFF ) ; while -cur +at < = -end -. -sub -( -V -: -: -Half -: -: -BYTES -) +len +- +16 { -if let -Some -( -m -) +c = self . -find_one +candidate ( -cur -end +haystack +at & mut prev0 -& -mut -prev1 -) -{ -return -Some -( -m -) -; -} -cur -= -cur -. -add -( -V -: -: -Half -: -: -BYTES ) ; -} if -cur -< -end -{ -cur -= -end -. -sub -( -V -: -: -Half -: -: -BYTES -) -; -prev0 -= -V -: -: -splat -( -0xFF -) -; -prev1 -= -V -: -: -splat +! +is_all_zeroes256 ( -0xFF +c ) -; +{ if let Some @@ -3052,18 +2964,16 @@ Some m ) = -self +teddy . -find_one +verify_fat256 ( -cur -end -& -mut -prev0 -& -mut -prev1 +pats +haystack +at +- +1 +c ) { return @@ -3074,49 +2984,29 @@ m ; } } -None +at ++ += +16 +; } -# -[ -inline -( -always -) -] -unsafe -fn -find_one -( -& -self -cur -: -* -const -u8 -end -: -* -const -u8 -prev0 -: -& -mut -V -prev1 -: -& -mut -V -) -- -> -Option +if +at < -Match -> +len { +at += +len +- +16 +; +prev0 += +ones256 +( +) +; let c = @@ -3124,17 +3014,18 @@ self . candidate ( -cur +haystack +at +& +mut prev0 -prev1 ) ; if ! -c -. -is_zero +is_all_zeroes256 ( +c ) { if @@ -3144,19 +3035,15 @@ Some m ) = -self -. teddy . -verify +verify_fat256 ( -cur -. -sub -( -2 -) -end +pats +haystack +at +- +1 c ) { @@ -3168,6 +3055,7 @@ m ; } } +} None } # @@ -3183,90 +3071,90 @@ candidate ( & self -cur +haystack : -* -const +& +[ u8 -prev0 +] +at : -& -mut -V -prev1 +usize +prev0 : & mut -V +__m256i ) - > -V +__m256i { +debug_assert +! +( +haystack +[ +at +. +. +] +. +len +( +) +> += +16 +) +; let chunk = -V -: -: -load_half_unaligned +_mm256_broadcastsi128_si256 +( +loadu128 ( -cur +haystack +at +) ) ; let ( res0 res1 -res2 ) = -Mask -: -: -members3 +members2m256 ( chunk self . -masks +mask1 +self +. +mask2 ) ; let res0prev0 = -res0 -. -half_shift_in_two_bytes +_mm256_alignr_epi8 ( +res0 * prev0 -) -; -let -res1prev1 -= -res1 -. -half_shift_in_one_byte -( -* -prev1 +15 ) ; let res = -res0prev0 -. -and -( -res1prev1 -) -. -and +_mm256_and_si256 ( -res2 +res0prev0 +res1 ) ; * @@ -3274,53 +3162,72 @@ prev0 = res0 ; -* -prev1 -= -res1 -; res } } -impl -< -V -: -FatVector -> -Fat -< -V -4 -> -{ # [ -inline +derive ( -always +Clone +Debug ) ] pub +struct +TeddySlim3Mask128 +{ +pub +mask1 +: +Mask128 +pub +mask2 +: +Mask128 +pub +mask3 +: +Mask128 +} +impl +TeddySlim3Mask128 +{ +# +[ +target_feature ( -crate +enable += +" +ssse3 +" ) +] unsafe fn -find +find_at ( & self -start +pats : -* -const -u8 -end +& +Patterns +teddy : -* -const +& +Teddy +haystack +: +& +[ u8 +] +mut +at +: +usize ) - > @@ -3329,91 +3236,102 @@ Option Match > { -let -len -= -end -. -distance -( -start -) -; debug_assert ! ( +haystack +[ +at +. +. +] +. len +( +) > = -self +teddy . minimum_len ( ) ) ; -let -mut -cur -= -start +assert_eq +! +( +8 +teddy +. +buckets . -add +len ( -3 ) +) +; +at ++ += +2 ; let -mut -prev0 +len = -V -: -: -splat +haystack +. +len ( -0xFF ) ; let +( +mut +prev0 mut prev1 +) = -V -: -: -splat ( -0xFF +ones128 +( ) -; -let -mut -prev2 -= -V -: -: -splat +ones128 ( -0xFF +) ) ; while -cur +at < = -end +len +- +16 +{ +let +c += +self . -sub +candidate ( -V -: -: -Half -: -: -BYTES +haystack +at +& +mut +prev0 +& +mut +prev1 +) +; +if +! +is_all_zeroes128 +( +c ) { if @@ -3423,21 +3341,16 @@ Some m ) = -self +teddy . -find_one +verify128 ( -cur -end -& -mut -prev0 -& -mut -prev1 -& -mut -prev2 +pats +haystack +at +- +2 +c ) { return @@ -3447,94 +3360,77 @@ m ) ; } -cur +} +at ++ = -cur -. -add -( -V -: -: -Half -: -: -BYTES -) +16 ; } if -cur +at < -end +len { -cur +at = -end -. -sub -( -V -: -: -Half -: -: -BYTES -) +len +- +16 ; prev0 = -V -: -: -splat +ones128 ( -0xFF ) ; prev1 = -V -: -: -splat +ones128 ( -0xFF ) ; -prev2 +let +c = -V -: -: -splat +self +. +candidate ( -0xFF +haystack +at +& +mut +prev0 +& +mut +prev1 ) ; if +! +is_all_zeroes128 +( +c +) +{ +if let Some ( m ) = -self +teddy . -find_one +verify128 ( -cur -end -& -mut -prev0 -& -mut -prev1 -& -mut -prev2 +pats +haystack +at +- +2 +c ) { return @@ -3545,6 +3441,7 @@ m ; } } +} None } # @@ -3556,144 +3453,59 @@ always ] unsafe fn -find_one +candidate ( & self -cur +haystack : -* -const +& +[ u8 -end +] +at : -* -const -u8 +usize prev0 : & mut -V +__m128i prev1 : & mut -V -prev2 -: -& -mut -V +__m128i ) - > -Option -< -Match -> +__m128i { -let -c -= -self -. -candidate -( -cur -prev0 -prev1 -prev2 -) -; -if +debug_assert ! -c -. -is_zero -( -) -{ -if -let -Some ( -m -) -= -self +haystack +[ +at . -teddy . -verify -( -cur +] . -sub +len ( -3 -) -end -c ) -{ -return -Some -( -m +> += +16 ) ; -} -} -None -} -# -[ -inline -( -always -) -] -unsafe -fn -candidate -( -& -self -cur -: -* -const -u8 -prev0 -: -& -mut -V -prev1 -: -& -mut -V -prev2 -: -& -mut -V -) -- -> -V -{ let chunk = -V -: -: -load_half_unaligned +loadu128 ( -cur +haystack +at ) ; let @@ -3701,71 +3513,55 @@ let res0 res1 res2 -res3 ) = -Mask -: -: -members4 +members3m128 ( chunk self . -masks +mask1 +self +. +mask2 +self +. +mask3 ) ; let res0prev0 = -res0 -. -half_shift_in_three_bytes +_mm_alignr_epi8 ( +res0 * prev0 +14 ) ; let res1prev1 = -res1 -. -half_shift_in_two_bytes +_mm_alignr_epi8 ( +res1 * prev1 -) -; -let -res2prev2 -= -res2 -. -half_shift_in_one_byte -( -* -prev2 +15 ) ; let res = -res0prev0 -. -and +_mm_and_si128 ( -res1prev1 -) -. -and +_mm_and_si128 ( -res2prev2 +res0prev0 +res1prev1 ) -. -and -( -res3 +res2 ) ; * @@ -3778,11 +3574,6 @@ prev1 = res1 ; -* -prev2 -= -res2 -; res } } @@ -3794,376 +3585,247 @@ Clone Debug ) ] +pub struct -Teddy -< -const -BUCKETS -: -usize -> +TeddySlim3Mask256 { -patterns +pub +mask1 : -Arc -< -Patterns -> -buckets +Mask256 +pub +mask2 : -[ -Vec -< -PatternID -> -; -BUCKETS -] +Mask256 +pub +mask3 +: +Mask256 } impl -< -const -BUCKETS -: -usize -> -Teddy -< -BUCKETS -> +TeddySlim3Mask256 { +# +[ +target_feature +( +enable += +" +avx2 +" +) +] +unsafe fn -new +find_at ( -patterns +& +self +pats : -Arc -< +& Patterns -> +teddy +: +& +Teddy +haystack +: +& +[ +u8 +] +mut +at +: +usize ) - > -Teddy +Option < -BUCKETS +Match > { -assert_ne +debug_assert ! ( -0 -patterns +haystack +[ +at +. +. +] . len ( ) -" -Teddy -requires -at -least -one -pattern -" -) -; -assert_ne -! -( -0 -patterns +> += +teddy . minimum_len ( ) -" -Teddy -does -not -support -zero -- -length -patterns -" ) ; -assert +assert_eq ! ( -BUCKETS -= -= -8 -| -| -BUCKETS -= -= -16 -" -Teddy -only -supports 8 -or -16 +teddy +. buckets -" +. +len +( +) ) ; -let -buckets +at ++ = -< -[ -Vec -< -PatternID -> -; -BUCKETS -] -> -: -: -try_from -( -vec -! -[ -vec -! -[ -] +2 ; -BUCKETS -] -) +let +len += +haystack . -unwrap +len ( ) ; let +( +mut +prev0 mut -t +prev1 +) = -Teddy -{ -patterns -buckets -} -; -let -mut -map -: -BTreeMap -< -Box -< -[ -u8 -] -> -usize -> -= -BTreeMap -: -: -new ( -) -; -for +ones256 ( -id -pattern ) -in -t -. -patterns -. -iter +ones256 ( ) +) +; +while +at +< += +len +- +32 { let -lonybs +c = -pattern -. -low_nybbles -( -t +self . -mask_len +candidate ( -) +haystack +at +& +mut +prev0 +& +mut +prev1 ) ; if +! +is_all_zeroes256 +( +c +) +{ +if let Some ( -& -bucket +m ) = -map +teddy . -get +verify256 ( -& -lonybs +pats +haystack +at +- +2 +c ) { -t -. -buckets -[ -bucket -] -. -push +return +Some ( -id +m ) ; } -else -{ -let -bucket +} +at ++ = -( -BUCKETS -- -1 -) -- -( -id -. -as_usize -( -) -% -BUCKETS -) -; -t -. -buckets -[ -bucket -] -. -push -( -id -) -; -map -. -insert -( -lonybs -bucket -) +32 ; } -} -t -} -# -[ -inline -( -always -) -] -unsafe -fn -verify64 -( -& -self -cur -: -* -const -u8 -end -: -* -const -u8 -mut -candidate_chunk -: -u64 -) -- -> -Option +if +at < -Match -> +len { -while -candidate_chunk -! +at = -0 -{ -let -bit +len +- +32 +; +prev0 = -candidate_chunk -. -trailing_zeros -( -) -. -as_usize +ones256 ( ) ; -candidate_chunk -& +prev1 = -! +ones256 ( -1 -< -< -bit ) ; let -cur +c = -cur +self . -add +candidate ( -bit -/ -BUCKETS +haystack +at +& +mut +prev0 +& +mut +prev1 ) ; -let -bucket -= -bit -% -BUCKETS -; +if +! +is_all_zeroes256 +( +c +) +{ if let Some @@ -4171,13 +3833,16 @@ Some m ) = -self +teddy . -verify_bucket +verify256 ( -cur -end -bucket +pats +haystack +at +- +2 +c ) { return @@ -4188,6 +3853,7 @@ m ; } } +} None } # @@ -4199,238 +3865,191 @@ always ] unsafe fn -verify_bucket +candidate ( & self -cur -: -* -const -u8 -end +haystack : -* -const +& +[ u8 -bucket +] +at : usize +prev0 +: +& +mut +__m256i +prev1 +: +& +mut +__m256i ) - > -Option -< -Match -> +__m256i { debug_assert ! ( -bucket -< -self +haystack +[ +at . -buckets +. +] . len ( ) +> += +32 ) ; -for -pid -in -self -. -buckets -. -get_unchecked +let +chunk += +loadu256 ( -bucket +haystack +at ) -. -iter +; +let ( +res0 +res1 +res2 ) -. -copied += +members3m256 ( -) -{ -debug_assert -! -( -pid +chunk +self . -as_usize -( -) -< +mask1 self . -patterns +mask2 +self . -len -( -) +mask3 ) ; let -pat +res0prev0 = -self -. -patterns -. -get_unchecked +alignr256_14 ( -pid +res0 +* +prev0 ) ; -if -pat -. -is_prefix_raw -( -cur -end -) -{ let -start +res1prev1 = -cur +alignr256_15 +( +res1 +* +prev1 +) ; let -end +res = -start -. -add +_mm256_and_si256 ( -pat -. -len +_mm256_and_si256 ( +res0prev0 +res1prev1 ) +res2 ) ; -return -Some -( -Match -{ -pid -start -end -} -) +* +prev0 += +res0 ; +* +prev1 += +res1 +; +res } } -None -} -fn -mask_len -( -& -self -) -- -> -usize -{ -core -: -: -cmp -: -: -min -( -4 -self -. -patterns -. -minimum_len -( -) -) -} -fn -memory_usage +# +[ +derive ( -& -self +Clone +Debug ) -- -> -usize +] +pub +struct +TeddyFat3Mask256 { -self -. -patterns -. -len -( -) -* -core -: -: -mem -: +pub +mask1 : -size_of +Mask256 +pub +mask2 : +Mask256 +pub +mask3 : -< -PatternID -> -( -) -} +Mask256 } impl -Teddy -< -8 -> +TeddyFat3Mask256 { # [ -inline +target_feature ( -always +enable += +" +avx2 +" ) ] unsafe fn -verify -< -V -: -Vector -> +find_at ( & self -mut -cur +pats : -* -const -u8 -end +& +Patterns +teddy : -* -const +& +Teddy +haystack +: +& +[ u8 -candidate +] +mut +at : -V +usize ) - > @@ -4442,323 +4061,210 @@ Match debug_assert ! ( -! -candidate +haystack +[ +at . -is_zero -( -) -) -; -candidate . -for_each_64bit_lane -( -# -[ -inline -( -always -) ] -| -_ -chunk -| -{ -let -result -= -self . -verify64 +len ( -cur -end -chunk ) -; -cur +> = -cur +teddy . -add -( -8 -) -; -result -} -) -} -} -impl -Teddy -< -16 -> -{ -# -[ -inline +minimum_len ( -always ) -] -unsafe -fn -verify -< -V -: -FatVector -> -( -& -self -mut -cur -: -* -const -u8 -end -: -* -const -u8 -candidate -: -V ) -- -> -Option -< -Match -> -{ -debug_assert +; +assert_eq ! ( -! -candidate +16 +teddy +. +buckets . -is_zero +len ( ) ) ; -let -swapped +at ++ = -candidate -. -swap_halves -( -) +2 ; let -r1 +len = -candidate +haystack . -interleave_low_8bit_lanes +len ( -swapped ) ; let -r2 -= -candidate -. -interleave_high_8bit_lanes ( -swapped +mut +prev0 +mut +prev1 ) -; -r1 -. -for_each_low_64bit_lane += ( -r2 -# -[ -inline +ones256 ( -always ) -] -| -_ -chunk -| +ones256 +( +) +) +; +while +at +< += +len +- +16 { let -result +c = self . -verify64 +candidate ( -cur -end -chunk +haystack +at +& +mut +prev0 +& +mut +prev1 ) ; -cur +if +! +is_all_zeroes256 +( +c +) +{ +if +let +Some +( +m +) = -cur +teddy . -add +verify_fat256 ( -4 +pats +haystack +at +- +2 +c ) -; -result -} +{ +return +Some +( +m ) +; } } -# -[ -derive -( -Clone -Copy -Debug -) -] -struct -Mask -< -V -> -{ -lo -: -V -hi -: -V +at ++ += +16 +; } -impl -< -V -: -Vector -> -Mask +if +at < -V -> +len { -# -[ -inline -( -always -) -] -unsafe -fn -members1 -( -chunk -: -V -masks -: -[ -Mask -< -V -> -; -1 -] -) +at += +len - -> -V -{ -let -lomask +16 +; +prev0 = -V -: -: -splat +ones256 ( -0xF ) ; -let -hlo +prev1 = -chunk -. -and +ones256 ( -lomask ) ; let -hhi +c = -chunk +self . -shift_8bit_lane_right -: -: -< -4 -> +candidate ( +haystack +at +& +mut +prev0 +& +mut +prev1 ) -. -and +; +if +! +is_all_zeroes256 ( -lomask +c ) -; +{ +if let -locand -= -masks -[ -0 -] -. -lo -. -shuffle_bytes +Some ( -hlo +m ) -; -let -hicand = -masks -[ -0 -] -. -hi +teddy . -shuffle_bytes +verify_fat256 ( -hhi +pats +haystack +at +- +2 +c ) -; -locand -. -and +{ +return +Some ( -hicand +m ) +; +} +} +} +None } # [ @@ -4769,194 +4275,307 @@ always ] unsafe fn -members2 +candidate ( -chunk -: -V -masks +& +self +haystack : +& [ -Mask -< -V -> -; -2 +u8 ] +at +: +usize +prev0 +: +& +mut +__m256i +prev1 +: +& +mut +__m256i ) - > +__m256i +{ +debug_assert +! +( +haystack +[ +at +. +. +] +. +len ( -V -V ) -{ -let -lomask +> = -V -: -: -splat -( -0xF +16 ) ; let -hlo -= chunk -. -and += +_mm256_broadcastsi128_si256 ( -lomask +loadu128 +( +haystack +at +) ) ; let -hhi -= -chunk -. -shift_8bit_lane_right -: -: -< -4 -> ( +res0 +res1 +res2 ) -. -and += +members3m256 ( -lomask +chunk +self +. +mask1 +self +. +mask2 +self +. +mask3 ) ; let -locand1 +res0prev0 = -masks -[ -0 -] -. -lo -. -shuffle_bytes +_mm256_alignr_epi8 ( -hlo +res0 +* +prev0 +14 ) ; let -hicand1 +res1prev1 = -masks -[ -0 -] -. -hi -. -shuffle_bytes +_mm256_alignr_epi8 ( -hhi +res1 +* +prev1 +15 ) ; let -cand1 +res = -locand1 -. -and +_mm256_and_si256 ( -hicand1 +_mm256_and_si256 +( +res0prev0 +res1prev1 +) +res2 ) ; -let -locand2 +* +prev0 += +res0 +; +* +prev1 = -masks +res1 +; +res +} +} +# [ -1 +derive +( +Clone +Copy +Debug +) ] -. +pub +struct +Mask128 +{ +lo +: +__m128i +hi +: +__m128i +} +impl +Mask128 +{ +pub +fn +new +( +mask +: +compile +: +: +Mask +) +- +> +Mask128 +{ +unsafe +{ +Mask128 +{ lo +: +mem +: +: +transmute +( +mask . -shuffle_bytes +lo128 ( -hlo ) -; -let -hicand2 -= -masks +) +hi +: +mem +: +: +transmute +( +mask +. +hi128 +( +) +) +} +} +} +} +# [ -1 +derive +( +Clone +Copy +Debug +) ] -. +pub +struct +Mask256 +{ +lo +: +__m256i hi -. -shuffle_bytes +: +__m256i +} +impl +Mask256 +{ +pub +fn +new ( -hhi +mask +: +compile +: +: +Mask ) -; -let -cand2 -= -locand2 +- +> +Mask256 +{ +unsafe +{ +Mask256 +{ +lo +: +mem +: +: +transmute +( +mask . -and +lo256 ( -hicand2 ) -; +) +hi +: +mem +: +: +transmute +( +mask +. +hi256 ( -cand1 -cand2 +) ) } +} +} +} # [ -inline +target_feature ( -always +enable += +" +ssse3 +" ) ] unsafe fn -members3 +members1m128 ( chunk : -V -masks +__m128i +mask1 : -[ -Mask -< -V -> -; -3 -] +Mask128 ) - > -( -V -V -V -) +__m128i { let lomask = -V -: -: -splat +_mm_set1_epi8 ( 0xF ) @@ -4964,199 +4583,153 @@ splat let hlo = -chunk -. -and +_mm_and_si128 ( +chunk lomask ) ; let hhi = +_mm_and_si128 +( +_mm_srli_epi16 +( chunk -. -shift_8bit_lane_right -: -: -< 4 -> -( ) -. -and -( lomask ) ; -let -locand1 -= -masks -[ -0 -] +_mm_and_si128 +( +_mm_shuffle_epi8 +( +mask1 . lo -. -shuffle_bytes -( hlo ) -; -let -hicand1 -= -masks -[ -0 -] +_mm_shuffle_epi8 +( +mask1 . hi -. -shuffle_bytes -( hhi ) -; +) +} +# +[ +target_feature +( +enable += +" +avx2 +" +) +] +unsafe +fn +members1m256 +( +chunk +: +__m256i +mask1 +: +Mask256 +) +- +> +__m256i +{ let -cand1 +lomask = -locand1 -. -and +_mm256_set1_epi8 ( -hicand1 +0xF ) ; let -locand2 +hlo = -masks -[ -1 -] -. -lo -. -shuffle_bytes +_mm256_and_si256 ( -hlo +chunk +lomask ) ; let -hicand2 +hhi = -masks -[ -1 -] -. -hi -. -shuffle_bytes +_mm256_and_si256 ( -hhi -) -; -let -cand2 -= -locand2 -. -and +_mm256_srli_epi16 ( -hicand2 +chunk +4 +) +lomask ) ; -let -locand3 -= -masks -[ -2 -] +_mm256_and_si256 +( +_mm256_shuffle_epi8 +( +mask1 . lo -. -shuffle_bytes -( hlo ) -; -let -hicand3 -= -masks -[ -2 -] +_mm256_shuffle_epi8 +( +mask1 . hi -. -shuffle_bytes -( hhi ) -; -let -cand3 -= -locand3 -. -and -( -hicand3 -) -; -( -cand1 -cand2 -cand3 ) } # [ -inline +target_feature ( -always +enable += +" +ssse3 +" ) ] unsafe fn -members4 +members2m128 ( chunk : -V -masks +__m128i +mask1 : -[ -Mask -< -V -> -; -4 -] +Mask128 +mask2 +: +Mask128 ) - > ( -V -V -V -V +__m128i +__m128i ) { let lomask = -V -: -: -splat +_mm_set1_epi8 ( 0xF ) @@ -5164,1373 +4737,448 @@ splat let hlo = -chunk -. -and +_mm_and_si128 ( +chunk lomask ) ; let hhi = +_mm_and_si128 +( +_mm_srli_epi16 +( chunk -. -shift_8bit_lane_right -: -: -< 4 -> -( ) -. -and -( lomask ) ; let -locand1 -= -masks -[ -0 -] -. -lo -. -shuffle_bytes -( -hlo -) -; -let -hicand1 +res0 = -masks -[ -0 -] -. -hi -. -shuffle_bytes +_mm_and_si128 ( -hhi -) -; -let -cand1 -= -locand1 -. -and +_mm_shuffle_epi8 ( -hicand1 -) -; -let -locand2 -= -masks -[ -1 -] +mask1 . lo -. -shuffle_bytes -( hlo ) -; -let -hicand2 -= -masks -[ -1 -] +_mm_shuffle_epi8 +( +mask1 . hi -. -shuffle_bytes -( hhi ) -; -let -cand2 -= -locand2 -. -and -( -hicand2 -) -; -let -locand3 -= -masks -[ -2 -] -. -lo -. -shuffle_bytes -( -hlo ) ; let -hicand3 +res1 = -masks -[ -2 -] -. -hi -. -shuffle_bytes +_mm_and_si128 ( -hhi -) -; -let -cand3 -= -locand3 -. -and +_mm_shuffle_epi8 ( -hicand3 -) -; -let -locand4 -= -masks -[ -3 -] +mask2 . lo -. -shuffle_bytes -( hlo ) -; -let -hicand4 -= -masks -[ -3 -] +_mm_shuffle_epi8 +( +mask2 . hi -. -shuffle_bytes -( hhi ) -; -let -cand4 -= -locand4 -. -and -( -hicand4 ) ; ( -cand1 -cand2 -cand3 -cand4 +res0 +res1 ) } -} # [ -derive +target_feature ( -Clone -Default +enable += +" +avx2 +" ) ] -struct -SlimMaskBuilder -{ -lo -: -[ -u8 -; -32 -] -hi -: -[ -u8 -; -32 -] -} -impl -SlimMaskBuilder -{ +unsafe fn -add +members2m256 ( -& -mut -self -bucket +chunk : -usize -byte +__m256i +mask1 : -u8 +Mask256 +mask2 +: +Mask256 ) -{ -assert -! +- +> ( -bucket -< -8 +__m256i +__m256i ) -; +{ let -bucket +lomask = -u8 -: -: -try_from -( -bucket -) -. -unwrap +_mm256_set1_epi8 ( +0xF ) ; let -byte_lo +hlo = -usize -: -: -from +_mm256_and_si256 ( -byte -& -0xF +chunk +lomask ) ; let -byte_hi +hhi = -usize -: -: -from +_mm256_and_si256 ( +_mm256_srli_epi16 ( -byte -> -> +chunk 4 ) -& -0xF +lomask ) ; -self -. -lo -[ -byte_lo -] -| +let +res0 = -1 -< -< -bucket -; -self +_mm256_and_si256 +( +_mm256_shuffle_epi8 +( +mask1 . lo -[ -byte_lo -+ -16 -] -| -= -1 -< -< -bucket -; -self -. -hi -[ -byte_hi -] -| -= -1 -< -< -bucket -; -self -. -hi -[ -byte_hi -+ -16 -] -| -= -1 -< -< -bucket -; -} -# -[ -inline -( -always -) -] -unsafe -fn -build -< -V -: -Vector -> -( -& -self -) -- -> -Mask -< -V -> -{ -assert -! -( -V -: -: -BYTES -< -= -self -. -lo -. -len -( -) -) -; -assert -! -( -V -: -: -BYTES -< -= -self -. -hi -. -len -( -) -) -; -Mask -{ -lo -: -V -: -: -load_unaligned -( -self -. -lo -[ -. -. -] -. -as_ptr -( -) -) -hi -: -V -: -: -load_unaligned -( -self -. -hi -[ -. -. -] -. -as_ptr -( -) -) -} -} -# -[ -inline -( -always -) -] -unsafe -fn -from_teddy -< -const -BYTES -: -usize -V -: -Vector -> -( -teddy -: -& -Teddy -< -8 -> -) -- -> -[ -Mask -< -V -> -; -BYTES -] -{ -let -mut -mask_builders -= -vec -! -[ -SlimMaskBuilder -: -: -default -( -) -; -BYTES -] -; -for -( -bucket_index -bucket -) -in -teddy -. -buckets -. -iter -( -) -. -enumerate -( -) -{ -for -pid -in -bucket -. -iter -( -) -. -copied -( -) -{ -let -pat -= -teddy -. -patterns -. -get -( -pid -) -; -for -( -i -builder -) -in -mask_builders -. -iter_mut -( -) -. -enumerate -( -) -{ -builder -. -add -( -bucket_index -pat -. -bytes -( -) -[ -i -] -) -; -} -} -} -let -array -= -< -[ -SlimMaskBuilder -; -BYTES -] -> -: -: -try_from -( -mask_builders -) -. -unwrap -( -) -; -array -. -map -( -| -builder -| -builder -. -build -( -) -) -} -} -impl -Debug -for -SlimMaskBuilder -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -let -( -mut -parts_lo -mut -parts_hi -) -= -( -vec -! -[ -] -vec -! -[ -] -) -; -for -i -in -0 -. -. -32 -{ -parts_lo -. -push -( -format -! -( -" -{ -: -02 -} -: -{ -: -08b -} -" -i -self -. -lo -[ -i -] -) -) -; -parts_hi -. -push -( -format -! -( -" -{ -: -02 -} -: -{ -: -08b -} -" -i -self -. -hi -[ -i -] -) -) -; -} -f -. -debug_struct -( -" -SlimMaskBuilder -" -) -. -field -( -" -lo -" -& -parts_lo -) -. -field -( -" -hi -" -& -parts_hi -) -. -finish -( -) -} -} -# -[ -derive -( -Clone -Copy -Default -) -] -struct -FatMaskBuilder -{ -lo -: -[ -u8 -; -32 -] -hi -: -[ -u8 -; -32 -] -} -impl -FatMaskBuilder -{ -fn -add -( -& -mut -self -bucket -: -usize -byte -: -u8 -) -{ -assert -! -( -bucket -< -16 -) -; -let -bucket -= -u8 -: -: -try_from -( -bucket -) -. -unwrap -( -) -; -let -byte_lo -= -usize -: -: -from -( -byte -& -0xF -) -; -let -byte_hi -= -usize -: -: -from -( -( -byte -> -> -4 -) -& -0xF +hlo ) -; -if -bucket -< -8 -{ -self -. -lo -[ -byte_lo -] -| -= -1 -< -< -bucket -; -self -. -hi -[ -byte_hi -] -| -= -1 -< -< -bucket -; -} -else -{ -self -. -lo -[ -byte_lo -+ -16 -] -| -= -1 -< -< +_mm256_shuffle_epi8 ( -bucket -% -8 -) -; -self +mask1 . hi -[ -byte_hi -+ -16 -] -| -= -1 -< -< -( -bucket -% -8 -) -; -} -} -# -[ -inline -( -always -) -] -unsafe -fn -build -< -V -: -Vector -> -( -& -self -) -- -> -Mask -< -V -> -{ -assert -! -( -V -: -: -BYTES -< -= -self -. -lo -. -len -( +hhi ) ) ; -assert -! -( -V -: -: -BYTES -< +let +res1 = -self -. -hi -. -len +_mm256_and_si256 ( -) -) -; -Mask -{ -lo -: -V -: -: -load_unaligned +_mm256_shuffle_epi8 ( -self +mask2 . lo -[ -. -. -] -. -as_ptr -( -) -) -hi -: -V -: -: -load_unaligned -( -self -. -hi -[ -. -. -] -. -as_ptr -( -) -) -} -} -# -[ -inline -( -always -) -] -unsafe -fn -from_teddy -< -const -BYTES -: -usize -V -: -Vector -> -( -teddy -: -& -Teddy -< -16 -> -) -- -> -[ -Mask -< -V -> -; -BYTES -] -{ -let -mut -mask_builders -= -vec -! -[ -FatMaskBuilder -: -: -default -( +hlo ) -; -BYTES -] -; -for +_mm256_shuffle_epi8 ( -bucket_index -bucket -) -in -teddy -. -buckets +mask2 . -iter +hi +hhi +) +) +; ( +res0 +res1 ) -. -enumerate +} +# +[ +target_feature ( +enable += +" +ssse3 +" ) -{ -for -pid -in -bucket -. -iter +] +unsafe +fn +members3m128 ( +chunk +: +__m128i +mask1 +: +Mask128 +mask2 +: +Mask128 +mask3 +: +Mask128 ) -. -copied +- +> ( +__m128i +__m128i +__m128i ) { let -pat +lomask = -teddy -. -patterns -. -get +_mm_set1_epi8 ( -pid +0xF ) ; -for +let +hlo += +_mm_and_si128 ( -i -builder +chunk +lomask ) -in -mask_builders -. -iter_mut +; +let +hhi += +_mm_and_si128 ( -) -. -enumerate +_mm_srli_epi16 ( +chunk +4 ) -{ -builder -. -add +lomask +) +; +let +res0 += +_mm_and_si128 ( -bucket_index -pat +_mm_shuffle_epi8 +( +mask1 . -bytes +lo +hlo +) +_mm_shuffle_epi8 ( +mask1 +. +hi +hhi ) -[ -i -] ) ; -} -} -} let -array +res1 = -< -[ -FatMaskBuilder -; -BYTES -] -> -: -: -try_from +_mm_and_si128 ( -mask_builders -) +_mm_shuffle_epi8 +( +mask2 . -unwrap +lo +hlo +) +_mm_shuffle_epi8 ( +mask2 +. +hi +hhi +) ) ; -array -. -map +let +res2 += +_mm_and_si128 ( -| -builder -| -builder +_mm_shuffle_epi8 +( +mask3 . -build +lo +hlo +) +_mm_shuffle_epi8 ( +mask3 +. +hi +hhi ) ) +; +( +res0 +res1 +res2 +) } -} -impl -Debug -for -FatMaskBuilder -{ +# +[ +target_feature +( +enable += +" +avx2 +" +) +] +unsafe fn -fmt +members3m256 ( -& -self -f -: -& -mut -core +chunk : +__m256i +mask1 : -fmt +Mask256 +mask2 : +Mask256 +mask3 : -Formatter -< -' -_ -> +Mask256 ) - > -core -: -: -fmt -: -: -Result +( +__m256i +__m256i +__m256i +) { let +lomask += +_mm256_set1_epi8 ( -mut -parts_lo -mut -parts_hi +0xF ) +; +let +hlo = +_mm256_and_si256 ( -vec -! -[ -] -vec -! -[ -] +chunk +lomask ) ; -for -i -in -0 -. -. -32 -{ -parts_lo -. -push +let +hhi += +_mm256_and_si256 ( -format -! +_mm256_srli_epi16 ( -" -{ -: -02 -} -: -{ -: -08b -} -" -i -self -. -lo -[ -i -] +chunk +4 ) +lomask ) ; -parts_hi -. -push +let +res0 += +_mm256_and_si256 ( -format -! +_mm256_shuffle_epi8 ( -" -{ -: -02 -} -: -{ -: -08b -} -" -i -self +mask1 +. +lo +hlo +) +_mm256_shuffle_epi8 +( +mask1 . hi -[ -i -] +hhi ) ) ; -} -f -. -debug_struct +let +res1 += +_mm256_and_si256 ( -" -FatMaskBuilder -" +_mm256_shuffle_epi8 +( +mask2 +. +lo +hlo ) +_mm256_shuffle_epi8 +( +mask2 . -field +hi +hhi +) +) +; +let +res2 += +_mm256_and_si256 ( -" +_mm256_shuffle_epi8 +( +mask3 +. lo -" -& -parts_lo +hlo ) -. -field +_mm256_shuffle_epi8 ( -" +mask3 +. hi -" -& -parts_hi +hhi ) -. -finish +) +; ( +res0 +res1 +res2 ) } -} diff --git a/third_party/rust/aho-corasick/src/packed/tests.rs b/third_party/rust/aho-corasick/src/packed/tests.rs index 28454123bb4e5..803efe1f6850f 100644 --- a/third_party/rust/aho-corasick/src/packed/tests.rs +++ b/third_party/rust/aho-corasick/src/packed/tests.rs @@ -8,30 +8,15 @@ collections HashMap ; use -alloc -: -: -{ -format -string -: -: -{ -String -ToString -} -vec -vec +std : : -Vec -} +usize ; use crate : : -{ packed : : @@ -39,14 +24,12 @@ packed Config MatchKind } -util -: -: -search +; +use +crate : : Match -} ; # [ @@ -143,23 +126,6 @@ SearchTestOwned > { let -count -= -if -cfg -! -( -miri -) -{ -1 -} -else -{ -261 -} -; -let mut tests = @@ -174,7 +140,8 @@ in 0 . . -count += +260 { tests . @@ -1027,77 +994,6 @@ zazabczabcz t ! ( -basic230 -& -[ -" -abcd -" -] -" -abcd -" -& -[ -( -0 -0 -4 -) -] -) -t -! -( -basic240 -& -[ -" -abcd -" -] -" -zazabzabcdz -" -& -[ -( -0 -6 -10 -) -] -) -t -! -( -basic250 -& -[ -" -abcd -" -] -" -zazabcdzabcdz -" -& -[ -( -0 -3 -7 -) -( -0 -8 -12 -) -] -) -t -! -( basic300 & [ @@ -3453,17 +3349,11 @@ mut config ) ; -let -mut -builder -= config . builder ( ) -; -builder . extend ( @@ -3487,90 +3377,14 @@ as_bytes ) ) ) -; -let -searcher -= -match -builder . build ( ) -{ -Some -( -searcher -) -= -> -searcher -None -= -> -{ -/ -/ -For -x86 -- -64 -and -aarch64 -not -building -a -searcher -is -/ -/ -probably -a -bug -so -be -loud . -if -cfg -! -( -any +unwrap ( -target_arch -= -" -x86_64 -" -target_arch -= -" -aarch64 -" -) ) -{ -panic -! -( -" -failed -to -build -packed -searcher -" -) -} -return -None -; -} -} -; -Some -( -searcher . find_iter ( @@ -3583,7 +3397,6 @@ haystack collect ( ) -) } ) ; @@ -3591,6 +3404,17 @@ collect } ; } +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -3607,6 +3431,17 @@ Config } ) ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -3633,6 +3468,17 @@ LeftmostLongest } ) ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -3648,7 +3494,7 @@ Config { c . -only_teddy +force_teddy ( true ) @@ -3656,6 +3502,17 @@ true } ) ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -3671,7 +3528,7 @@ Config { c . -only_teddy +force_teddy ( true ) @@ -3687,6 +3544,17 @@ LeftmostLongest } ) ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -3702,26 +3570,12 @@ Config { c . -only_teddy +force_teddy ( true ) ; -# -[ -cfg -( -target_arch -= -" -x86_64 -" -) -] if -std -: -: is_x86_feature_detected ! ( @@ -3732,7 +3586,7 @@ ssse3 { c . -only_teddy_256bit +force_avx ( Some ( @@ -3744,6 +3598,17 @@ false } ) ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -3759,7 +3624,7 @@ Config { c . -only_teddy +force_teddy ( true ) @@ -3772,21 +3637,7 @@ MatchKind LeftmostLongest ) ; -# -[ -cfg -( -target_arch -= -" -x86_64 -" -) -] if -std -: -: is_x86_feature_detected ! ( @@ -3797,7 +3648,7 @@ ssse3 { c . -only_teddy_256bit +force_avx ( Some ( @@ -3809,6 +3660,17 @@ false } ) ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -3824,26 +3686,12 @@ Config { c . -only_teddy +force_teddy ( true ) ; -# -[ -cfg -( -target_arch -= -" -x86_64 -" -) -] if -std -: -: is_x86_feature_detected ! ( @@ -3854,7 +3702,7 @@ avx2 { c . -only_teddy_256bit +force_avx ( Some ( @@ -3866,6 +3714,17 @@ true } ) ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -3881,7 +3740,7 @@ Config { c . -only_teddy +force_teddy ( true ) @@ -3894,21 +3753,7 @@ MatchKind LeftmostLongest ) ; -# -[ -cfg -( -target_arch -= -" -x86_64 -" -) -] if -std -: -: is_x86_feature_detected ! ( @@ -3919,7 +3764,7 @@ avx2 { c . -only_teddy_256bit +force_avx ( Some ( @@ -3931,6 +3776,17 @@ true } ) ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -3946,26 +3802,12 @@ Config { c . -only_teddy +force_teddy ( true ) ; -# -[ -cfg -( -target_arch -= -" -x86_64 -" -) -] if -std -: -: is_x86_feature_detected ! ( @@ -3976,7 +3818,7 @@ avx2 { c . -only_teddy_fat +force_teddy_fat ( Some ( @@ -3988,6 +3830,17 @@ true } ) ; +# +[ +cfg +( +target_arch += +" +x86_64 +" +) +] testconfig ! ( @@ -4003,7 +3856,7 @@ Config { c . -only_teddy +force_teddy ( true ) @@ -4016,21 +3869,7 @@ MatchKind LeftmostLongest ) ; -# -[ -cfg -( -target_arch -= -" -x86_64 -" -) -] if -std -: -: is_x86_feature_detected ! ( @@ -4041,7 +3880,7 @@ avx2 { c . -only_teddy_fat +force_teddy_fat ( Some ( @@ -4068,7 +3907,7 @@ Config { c . -only_rabin_karp +force_rabin_karp ( true ) @@ -4091,7 +3930,7 @@ Config { c . -only_rabin_karp +force_rabin_karp ( true ) @@ -4278,14 +4117,11 @@ SearchTestOwned ) - > -Option -< Vec < Match > > -> ( which : @@ -4335,10 +4171,6 @@ m pattern ( ) -. -as_usize -( -) m . start @@ -4377,29 +4209,6 @@ variations ( ) { -let -results -= -match -f -( -& -test -) -{ -None -= -> -continue -Some -( -results -) -= -> -results -} -; assert_eq ! ( @@ -4408,7 +4217,11 @@ test matches get_match_triples ( -results +f +( +& +test +) ) . as_slice @@ -4426,20 +4239,11 @@ patterns ? } haystack -( -len -= -{ -: -? -} -) : { : ? } -\ offset : { @@ -4456,13 +4260,6 @@ patterns test . haystack -. -len -( -) -test -. -haystack test . offset diff --git a/third_party/rust/aho-corasick/src/packed/vector.rs b/third_party/rust/aho-corasick/src/packed/vector.rs index e29767dc6c308..582a38b537a52 100644 --- a/third_party/rust/aho-corasick/src/packed/vector.rs +++ b/third_party/rust/aho-corasick/src/packed/vector.rs @@ -1,385 +1,5 @@ use -core -: -: -{ -fmt -: -: -Debug -panic -: -: -{ -RefUnwindSafe -UnwindSafe -} -} -; -pub -( -crate -) -trait -Vector -: -Copy -+ -Debug -+ -Send -+ -Sync -+ -UnwindSafe -+ -RefUnwindSafe -{ -const -BITS -: -usize -; -const -BYTES -: -usize -; -unsafe -fn -splat -( -byte -: -u8 -) -- -> -Self -; -unsafe -fn -load_unaligned -( -data -: -* -const -u8 -) -- -> -Self -; -unsafe -fn -is_zero -( -self -) -- -> -bool -; -unsafe -fn -cmpeq -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -and -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -or -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -shift_8bit_lane_right -< -const -BITS -: -i32 -> -( -self -) -- -> -Self -; -unsafe -fn -shift_in_one_byte -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -shift_in_two_bytes -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -shift_in_three_bytes -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -shuffle_bytes -( -self -indices -: -Self -) -- -> -Self -; -unsafe -fn -for_each_64bit_lane -< -T -> -( -self -f -: -impl -FnMut -( -usize -u64 -) -- -> -Option -< -T -> -) -- -> -Option -< -T -> -; -} -pub -( -crate -) -trait -FatVector -: -Vector -{ -type -Half -: -Vector -; -unsafe -fn -load_half_unaligned -( -data -: -* -const -u8 -) -- -> -Self -; -unsafe -fn -half_shift_in_one_byte -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -half_shift_in_two_bytes -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -half_shift_in_three_bytes -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -swap_halves -( -self -) -- -> -Self -; -unsafe -fn -interleave_low_8bit_lanes -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -interleave_high_8bit_lanes -( -self -vector2 -: -Self -) -- -> -Self -; -unsafe -fn -for_each_low_64bit_lane -< -T -> -( -self -vector2 -: -Self -f -: -impl -FnMut -( -usize -u64 -) -- -> -Option -< -T -> -) -- -> -Option -< -T -> -; -} -# -[ -cfg -( -all -( -target_arch -= -" -x86_64 -" -target_feature -= -" -sse2 -" -) -) -] -mod -x86_64_ssse3 -{ -use -core +std : : arch @@ -388,7731 +8,8 @@ arch x86_64 : : -* -; -use -crate -: -: -util -: -: -int -: -: -{ -I32 -I64 -I8 -} -; -use -super -: -: -Vector -; -impl -Vector -for -__m128i -{ -const -BITS -: -usize -= -128 -; -const -BYTES -: -usize -= -16 -; -# -[ -inline -( -always -) -] -unsafe -fn -splat -( -byte -: -u8 -) -- -> -__m128i -{ -_mm_set1_epi8 -( -i8 -: -: -from_bits -( -byte -) -) -} -# -[ -inline -( -always -) -] -unsafe -fn -load_unaligned -( -data -: -* -const -u8 -) -- -> -__m128i -{ -_mm_loadu_si128 -( -data -. -cast -: -: -< -__m128i -> -( -) -) -} -# -[ -inline -( -always -) -] -unsafe -fn -is_zero -( -self -) -- -> -bool -{ -let -cmp -= -self -. -cmpeq -( -Self -: -: -splat -( -0 -) -) -; -_mm_movemask_epi8 -( -cmp -) -. -to_bits -( -) -= -= -0xFFFF -} -# -[ -inline -( -always -) -] -unsafe -fn -cmpeq -( -self -vector2 -: -Self -) -- -> -__m128i -{ -_mm_cmpeq_epi8 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -and -( -self -vector2 -: -Self -) -- -> -__m128i -{ -_mm_and_si128 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -or -( -self -vector2 -: -Self -) -- -> -__m128i -{ -_mm_or_si128 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_8bit_lane_right -< -const -BITS -: -i32 -> -( -self -) -- -> -Self -{ -let -lomask -= -Self -: -: -splat -( -0xF -) -; -_mm_srli_epi16 -( -self -BITS -) -. -and -( -lomask -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_in_one_byte -( -self -vector2 -: -Self -) -- -> -Self -{ -_mm_alignr_epi8 -( -self -vector2 -15 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_in_two_bytes -( -self -vector2 -: -Self -) -- -> -Self -{ -_mm_alignr_epi8 -( -self -vector2 -14 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_in_three_bytes -( -self -vector2 -: -Self -) -- -> -Self -{ -_mm_alignr_epi8 -( -self -vector2 -13 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shuffle_bytes -( -self -indices -: -Self -) -- -> -Self -{ -_mm_shuffle_epi8 -( -self -indices -) -} -# -[ -inline -( -always -) -] -unsafe -fn -for_each_64bit_lane -< -T -> -( -self -mut -f -: -impl -FnMut -( -usize -u64 -) -- -> -Option -< -T -> -) -- -> -Option -< -T -> -{ -let -lane -= -_mm_extract_epi64 -( -self -0 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -0 -lane -) -{ -return -Some -( -t -) -; -} -let -lane -= -_mm_extract_epi64 -( -self -1 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -1 -lane -) -{ -return -Some -( -t -) -; -} -None -} -} -} -# -[ -cfg -( -all -( -target_arch -= -" -x86_64 -" -target_feature -= -" -sse2 -" -) -) -] -mod -x86_64_avx2 -{ -use -core -: -: -arch -: -: -x86_64 -: -: -* -; -use -crate -: -: -util -: -: -int -: -: -{ -I32 -I64 -I8 -} -; -use -super -: -: -{ -FatVector -Vector -} -; -impl -Vector -for -__m256i -{ -const -BITS -: -usize -= -256 -; -const -BYTES -: -usize -= -32 -; -# -[ -inline -( -always -) -] -unsafe -fn -splat -( -byte -: -u8 -) -- -> -__m256i -{ -_mm256_set1_epi8 -( -i8 -: -: -from_bits -( -byte -) -) -} -# -[ -inline -( -always -) -] -unsafe -fn -load_unaligned -( -data -: -* -const -u8 -) -- -> -__m256i -{ -_mm256_loadu_si256 -( -data -. -cast -: -: -< -__m256i -> -( -) -) -} -# -[ -inline -( -always -) -] -unsafe -fn -is_zero -( -self -) -- -> -bool -{ -let -cmp -= -self -. -cmpeq -( -Self -: -: -splat -( -0 -) -) -; -_mm256_movemask_epi8 -( -cmp -) -. -to_bits -( -) -= -= -0xFFFFFFFF -} -# -[ -inline -( -always -) -] -unsafe -fn -cmpeq -( -self -vector2 -: -Self -) -- -> -__m256i -{ -_mm256_cmpeq_epi8 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -and -( -self -vector2 -: -Self -) -- -> -__m256i -{ -_mm256_and_si256 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -or -( -self -vector2 -: -Self -) -- -> -__m256i -{ -_mm256_or_si256 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_8bit_lane_right -< -const -BITS -: -i32 -> -( -self -) -- -> -Self -{ -let -lomask -= -Self -: -: -splat -( -0xF -) -; -_mm256_srli_epi16 -( -self -BITS -) -. -and -( -lomask -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_in_one_byte -( -self -vector2 -: -Self -) -- -> -Self -{ -let -v -= -_mm256_permute2x128_si256 -( -vector2 -self -0x21 -) -; -_mm256_alignr_epi8 -( -self -v -15 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_in_two_bytes -( -self -vector2 -: -Self -) -- -> -Self -{ -let -v -= -_mm256_permute2x128_si256 -( -vector2 -self -0x21 -) -; -_mm256_alignr_epi8 -( -self -v -14 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_in_three_bytes -( -self -vector2 -: -Self -) -- -> -Self -{ -let -v -= -_mm256_permute2x128_si256 -( -vector2 -self -0x21 -) -; -_mm256_alignr_epi8 -( -self -v -13 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shuffle_bytes -( -self -indices -: -Self -) -- -> -Self -{ -_mm256_shuffle_epi8 -( -self -indices -) -} -# -[ -inline -( -always -) -] -unsafe -fn -for_each_64bit_lane -< -T -> -( -self -mut -f -: -impl -FnMut -( -usize -u64 -) -- -> -Option -< -T -> -) -- -> -Option -< -T -> -{ -let -lane -= -_mm256_extract_epi64 -( -self -0 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -0 -lane -) -{ -return -Some -( -t -) -; -} -let -lane -= -_mm256_extract_epi64 -( -self -1 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -1 -lane -) -{ -return -Some -( -t -) -; -} -let -lane -= -_mm256_extract_epi64 -( -self -2 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -2 -lane -) -{ -return -Some -( -t -) -; -} -let -lane -= -_mm256_extract_epi64 -( -self -3 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -3 -lane -) -{ -return -Some -( -t -) -; -} -None -} -} -impl -FatVector -for -__m256i -{ -type -Half -= -__m128i -; -# -[ -inline -( -always -) -] -unsafe -fn -load_half_unaligned -( -data -: -* -const -u8 -) -- -> -Self -{ -let -half -= -Self -: -: -Half -: -: -load_unaligned -( -data -) -; -_mm256_broadcastsi128_si256 -( -half -) -} -# -[ -inline -( -always -) -] -unsafe -fn -half_shift_in_one_byte -( -self -vector2 -: -Self -) -- -> -Self -{ -_mm256_alignr_epi8 -( -self -vector2 -15 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -half_shift_in_two_bytes -( -self -vector2 -: -Self -) -- -> -Self -{ -_mm256_alignr_epi8 -( -self -vector2 -14 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -half_shift_in_three_bytes -( -self -vector2 -: -Self -) -- -> -Self -{ -_mm256_alignr_epi8 -( -self -vector2 -13 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -swap_halves -( -self -) -- -> -Self -{ -_mm256_permute4x64_epi64 -( -self -0x4E -) -} -# -[ -inline -( -always -) -] -unsafe -fn -interleave_low_8bit_lanes -( -self -vector2 -: -Self -) -- -> -Self -{ -_mm256_unpacklo_epi8 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -interleave_high_8bit_lanes -( -self -vector2 -: -Self -) -- -> -Self -{ -_mm256_unpackhi_epi8 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -for_each_low_64bit_lane -< -T -> -( -self -vector2 -: -Self -mut -f -: -impl -FnMut -( -usize -u64 -) -- -> -Option -< -T -> -) -- -> -Option -< -T -> -{ -let -lane -= -_mm256_extract_epi64 -( -self -0 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -0 -lane -) -{ -return -Some -( -t -) -; -} -let -lane -= -_mm256_extract_epi64 -( -self -1 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -1 -lane -) -{ -return -Some -( -t -) -; -} -let -lane -= -_mm256_extract_epi64 -( -vector2 -0 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -2 -lane -) -{ -return -Some -( -t -) -; -} -let -lane -= -_mm256_extract_epi64 -( -vector2 -1 -) -. -to_bits -( -) -; -if -let -Some -( -t -) -= -f -( -3 -lane -) -{ -return -Some -( -t -) -; -} -None -} -} -} -# -[ -cfg -( -target_arch -= -" -aarch64 -" -) -] -mod -aarch64_neon -{ -use -core -: -: -arch -: -: -aarch64 -: -: -* -; -use -super -: -: -Vector -; -impl -Vector -for -uint8x16_t -{ -const -BITS -: -usize -= -128 -; -const -BYTES -: -usize -= -16 -; -# -[ -inline -( -always -) -] -unsafe -fn -splat -( -byte -: -u8 -) -- -> -uint8x16_t -{ -vdupq_n_u8 -( -byte -) -} -# -[ -inline -( -always -) -] -unsafe -fn -load_unaligned -( -data -: -* -const -u8 -) -- -> -uint8x16_t -{ -vld1q_u8 -( -data -) -} -# -[ -inline -( -always -) -] -unsafe -fn -is_zero -( -self -) -- -> -bool -{ -let -maxes -= -vreinterpretq_u64_u8 -( -vpmaxq_u8 -( -self -self -) -) -; -vgetq_lane_u64 -( -maxes -0 -) -= -= -0 -} -# -[ -inline -( -always -) -] -unsafe -fn -cmpeq -( -self -vector2 -: -Self -) -- -> -uint8x16_t -{ -vceqq_u8 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -and -( -self -vector2 -: -Self -) -- -> -uint8x16_t -{ -vandq_u8 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -or -( -self -vector2 -: -Self -) -- -> -uint8x16_t -{ -vorrq_u8 -( -self -vector2 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_8bit_lane_right -< -const -BITS -: -i32 -> -( -self -) -- -> -Self -{ -debug_assert -! -( -BITS -< -= -7 -) -; -vshrq_n_u8 -( -self -BITS -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_in_one_byte -( -self -vector2 -: -Self -) -- -> -Self -{ -vextq_u8 -( -vector2 -self -15 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_in_two_bytes -( -self -vector2 -: -Self -) -- -> -Self -{ -vextq_u8 -( -vector2 -self -14 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shift_in_three_bytes -( -self -vector2 -: -Self -) -- -> -Self -{ -vextq_u8 -( -vector2 -self -13 -) -} -# -[ -inline -( -always -) -] -unsafe -fn -shuffle_bytes -( -self -indices -: -Self -) -- -> -Self -{ -vqtbl1q_u8 -( -self -indices -) -} -# -[ -inline -( -always -) -] -unsafe -fn -for_each_64bit_lane -< -T -> -( -self -mut -f -: -impl -FnMut -( -usize -u64 -) -- -> -Option -< -T -> -) -- -> -Option -< -T -> -{ -let -this -= -vreinterpretq_u64_u8 -( -self -) -; -let -lane -= -vgetq_lane_u64 -( -this -0 -) -; -if -let -Some -( -t -) -= -f -( -0 -lane -) -{ -return -Some -( -t -) -; -} -let -lane -= -vgetq_lane_u64 -( -this -1 -) -; -if -let -Some -( -t -) -= -f -( -1 -lane -) -{ -return -Some -( -t -) -; -} -None -} -} -} -# -[ -cfg -( -all -( -test -target_arch -= -" -x86_64 -" -target_feature -= -" -sse2 -" -) -) -] -mod -tests_x86_64_ssse3 -{ -use -core -: -: -arch -: -: -x86_64 -: -: -* -; -use -crate -: -: -util -: -: -int -: -: -{ -I32 -U32 -} -; -use -super -: -: -* -; -fn -is_runnable -( -) -- -> -bool -{ -std -: -: -is_x86_feature_detected -! -( -" -ssse3 -" -) -} -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -load -( -lanes -: -[ -u8 -; -16 -] -) -- -> -__m128i -{ -__m128i -: -: -load_unaligned -( -& -lanes -as -* -const -u8 -) -} -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -unload -( -v -: -__m128i -) -- -> -[ -u8 -; -16 -] -{ -[ -_mm_extract_epi8 -( -v -0 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -1 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -2 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -3 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -4 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -5 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -6 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -7 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -8 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -9 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -10 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -11 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -12 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -13 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -14 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm_extract_epi8 -( -v -15 -) -. -to_bits -( -) -. -low_u8 -( -) -] -} -# -[ -test -] -fn -vector_splat -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -__m128i -: -: -splat -( -0xAF -) -; -assert_eq -! -( -unload -( -v -) -[ -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_is_zero -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -load -( -[ -0 -0 -0 -0 -0 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert -! -( -! -v -. -is_zero -( -) -) -; -let -v -= -load -( -[ -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert -! -( -v -. -is_zero -( -) -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_cmpeq -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -1 -] -) -; -let -v2 -= -load -( -[ -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 -] -) -; -assert_eq -! -( -unload -( -v1 -. -cmpeq -( -v2 -) -) -[ -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0xFF -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_and -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -0 -0 -0 -0 -0 -0b1001 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -let -v2 -= -load -( -[ -0 -0 -0 -0 -0 -0b1010 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert_eq -! -( -unload -( -v1 -. -and -( -v2 -) -) -[ -0 -0 -0 -0 -0 -0b1000 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_or -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -0 -0 -0 -0 -0 -0b1001 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -let -v2 -= -load -( -[ -0 -0 -0 -0 -0 -0b1010 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert_eq -! -( -unload -( -v1 -. -or -( -v2 -) -) -[ -0 -0 -0 -0 -0 -0b1011 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shift_8bit_lane_right -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -load -( -[ -0 -0 -0 -0 -0b1011 -0b0101 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert_eq -! -( -unload -( -v -. -shift_8bit_lane_right -: -: -< -2 -> -( -) -) -[ -0 -0 -0 -0 -0b0010 -0b0001 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shift_in_one_byte -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 -= -load -( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -assert_eq -! -( -unload -( -v1 -. -shift_in_one_byte -( -v2 -) -) -[ -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shift_in_two_bytes -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 -= -load -( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -assert_eq -! -( -unload -( -v1 -. -shift_in_two_bytes -( -v2 -) -) -[ -31 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shift_in_three_bytes -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 -= -load -( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -assert_eq -! -( -unload -( -v1 -. -shift_in_three_bytes -( -v2 -) -) -[ -30 -31 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shuffle_bytes -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 -= -load -( -[ -0 -0 -0 -0 -4 -4 -4 -4 -8 -8 -8 -8 -12 -12 -12 -12 -] -) -; -assert_eq -! -( -unload -( -v1 -. -shuffle_bytes -( -v2 -) -) -[ -1 -1 -1 -1 -5 -5 -5 -5 -9 -9 -9 -9 -13 -13 -13 -13 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_for_each_64bit_lane -( -) -{ -# -[ -target_feature -( -enable -= -" -ssse3 -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -load -( -[ -0x01 -0x02 -0x03 -0x04 -0x05 -0x06 -0x07 -0x08 -0x09 -0x0A -0x0B -0x0C -0x0D -0x0E -0x0F -0x10 -] -) -; -let -mut -lanes -= -[ -0u64 -; -2 -] -; -v -. -for_each_64bit_lane -( -| -i -lane -| -{ -lanes -[ -i -] -= -lane -; -None -: -: -< -( -) -> -} -) -; -assert_eq -! -( -lanes -[ -0x0807060504030201 -0x100F0E0D0C0B0A09 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -} -# -[ -cfg -( -all -( -test -target_arch -= -" -x86_64 -" -target_feature -= -" -sse2 -" -) -) -] -mod -tests_x86_64_avx2 -{ -use -core -: -: -arch -: -: -x86_64 -: -: -* -; -use -crate -: -: -util -: -: -int -: -: -{ -I32 -U32 -} -; -use -super -: -: -* -; -fn -is_runnable -( -) -- -> -bool -{ -std -: -: -is_x86_feature_detected -! -( -" -avx2 -" -) -} -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -load -( -lanes -: -[ -u8 -; -32 -] -) -- -> -__m256i -{ -__m256i -: -: -load_unaligned -( -& -lanes -as -* -const -u8 -) -} -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -load_half -( -lanes -: -[ -u8 -; -16 -] -) -- -> -__m256i -{ -__m256i -: -: -load_half_unaligned -( -& -lanes -as -* -const -u8 -) -} -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -unload -( -v -: -__m256i -) -- -> -[ -u8 -; -32 -] -{ -[ -_mm256_extract_epi8 -( -v -0 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -1 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -2 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -3 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -4 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -5 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -6 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -7 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -8 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -9 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -10 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -11 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -12 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -13 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -14 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -15 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -16 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -17 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -18 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -19 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -20 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -21 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -22 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -23 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -24 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -25 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -26 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -27 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -28 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -29 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -30 -) -. -to_bits -( -) -. -low_u8 -( -) -_mm256_extract_epi8 -( -v -31 -) -. -to_bits -( -) -. -low_u8 -( -) -] -} -# -[ -test -] -fn -vector_splat -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -__m256i -: -: -splat -( -0xAF -) -; -assert_eq -! -( -unload -( -v -) -[ -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_is_zero -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -load -( -[ -0 -0 -0 -0 -0 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert -! -( -! -v -. -is_zero -( -) -) -; -let -v -= -load -( -[ -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert -! -( -v -. -is_zero -( -) -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_cmpeq -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -1 -] -) -; -let -v2 -= -load -( -[ -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 -] -) -; -assert_eq -! -( -unload -( -v1 -. -cmpeq -( -v2 -) -) -[ -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0xFF -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_and -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -0 -0 -0 -0 -0 -0b1001 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -let -v2 -= -load -( -[ -0 -0 -0 -0 -0 -0b1010 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert_eq -! -( -unload -( -v1 -. -and -( -v2 -) -) -[ -0 -0 -0 -0 -0 -0b1000 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_or -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -0 -0 -0 -0 -0 -0b1001 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -let -v2 -= -load -( -[ -0 -0 -0 -0 -0 -0b1010 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert_eq -! -( -unload -( -v1 -. -or -( -v2 -) -) -[ -0 -0 -0 -0 -0 -0b1011 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shift_8bit_lane_right -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -load -( -[ -0 -0 -0 -0 -0b1011 -0b0101 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert_eq -! -( -unload -( -v -. -shift_8bit_lane_right -: -: -< -2 -> -( -) -) -[ -0 -0 -0 -0 -0b0010 -0b0001 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shift_in_one_byte -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -let -v2 -= -load -( -[ -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -] -) -; -assert_eq -! -( -unload -( -v1 -. -shift_in_one_byte -( -v2 -) -) -[ -64 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shift_in_two_bytes -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -let -v2 -= -load -( -[ -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -] -) -; -assert_eq -! -( -unload -( -v1 -. -shift_in_two_bytes -( -v2 -) -) -[ -63 -64 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shift_in_three_bytes -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -let -v2 -= -load -( -[ -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -] -) -; -assert_eq -! -( -unload -( -v1 -. -shift_in_three_bytes -( -v2 -) -) -[ -62 -63 -64 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_shuffle_bytes -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -let -v2 -= -load -( -[ -0 -0 -0 -0 -4 -4 -4 -4 -8 -8 -8 -8 -12 -12 -12 -12 -16 -16 -16 -16 -20 -20 -20 -20 -24 -24 -24 -24 -28 -28 -28 -28 -] -) -; -assert_eq -! -( -unload -( -v1 -. -shuffle_bytes -( -v2 -) -) -[ -1 -1 -1 -1 -5 -5 -5 -5 -9 -9 -9 -9 -13 -13 -13 -13 -17 -17 -17 -17 -21 -21 -21 -21 -25 -25 -25 -25 -29 -29 -29 -29 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_for_each_64bit_lane -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -load -( -[ -0x01 -0x02 -0x03 -0x04 -0x05 -0x06 -0x07 -0x08 -0x09 -0x0A -0x0B -0x0C -0x0D -0x0E -0x0F -0x10 -0x11 -0x12 -0x13 -0x14 -0x15 -0x16 -0x17 -0x18 -0x19 -0x1A -0x1B -0x1C -0x1D -0x1E -0x1F -0x20 -] -) -; -let -mut -lanes -= -[ -0u64 -; -4 -] -; -v -. -for_each_64bit_lane -( -| -i -lane -| -{ -lanes -[ -i -] -= -lane -; -None -: -: -< -( -) -> -} -) -; -assert_eq -! -( -lanes -[ -0x0807060504030201 -0x100F0E0D0C0B0A09 -0x1817161514131211 -0x201F1E1D1C1B1A19 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -fat_vector_half_shift_in_one_byte -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load_half -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 -= -load_half -( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -assert_eq -! -( -unload -( -v1 -. -half_shift_in_one_byte -( -v2 -) -) -[ -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -fat_vector_half_shift_in_two_bytes -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load_half -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 -= -load_half -( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -assert_eq -! -( -unload -( -v1 -. -half_shift_in_two_bytes -( -v2 -) -) -[ -31 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -31 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -fat_vector_half_shift_in_three_bytes -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load_half -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 -= -load_half -( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -assert_eq -! -( -unload -( -v1 -. -half_shift_in_three_bytes -( -v2 -) -) -[ -30 -31 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -30 -31 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -fat_vector_swap_halves -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -assert_eq -! -( -unload -( -v -. -swap_halves -( -) -) -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -fat_vector_interleave_low_8bit_lanes -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -let -v2 -= -load -( -[ -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -] -) -; -assert_eq -! -( -unload -( -v1 -. -interleave_low_8bit_lanes -( -v2 -) -) -[ -1 -33 -2 -34 -3 -35 -4 -36 -5 -37 -6 -38 -7 -39 -8 -40 -17 -49 -18 -50 -19 -51 -20 -52 -21 -53 -22 -54 -23 -55 -24 -56 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -fat_vector_interleave_high_8bit_lanes -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -let -v2 -= -load -( -[ -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -] -) -; -assert_eq -! -( -unload -( -v1 -. -interleave_high_8bit_lanes -( -v2 -) -) -[ -9 -41 -10 -42 -11 -43 -12 -44 -13 -45 -14 -46 -15 -47 -16 -48 -25 -57 -26 -58 -27 -59 -28 -60 -29 -61 -30 -62 -31 -63 -32 -64 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -fat_vector_for_each_low_64bit_lane -( -) -{ -# -[ -target_feature -( -enable -= -" -avx2 -" -) -] -unsafe -fn -test -( -) -{ -let -v1 -= -load -( -[ -0x01 -0x02 -0x03 -0x04 -0x05 -0x06 -0x07 -0x08 -0x09 -0x0A -0x0B -0x0C -0x0D -0x0E -0x0F -0x10 -0x11 -0x12 -0x13 -0x14 -0x15 -0x16 -0x17 -0x18 -0x19 -0x1A -0x1B -0x1C -0x1D -0x1E -0x1F -0x20 -] -) -; -let -v2 -= -load -( -[ -0x21 -0x22 -0x23 -0x24 -0x25 -0x26 -0x27 -0x28 -0x29 -0x2A -0x2B -0x2C -0x2D -0x2E -0x2F -0x30 -0x31 -0x32 -0x33 -0x34 -0x35 -0x36 -0x37 -0x38 -0x39 -0x3A -0x3B -0x3C -0x3D -0x3E -0x3F -0x40 -] -) -; -let -mut -lanes -= -[ -0u64 -; -4 -] -; -v1 -. -for_each_low_64bit_lane -( -v2 -| -i -lane -| -{ -lanes -[ -i -] -= -lane -; -None -: -: -< -( -) -> -} -) -; -assert_eq -! -( -lanes -[ -0x0807060504030201 -0x100F0E0D0C0B0A09 -0x2827262524232221 -0x302F2E2D2C2B2A29 -] -) -; -} -if -! -is_runnable -( -) -{ -return -; -} -unsafe -{ -test -( -) -} -} -} -# -[ -cfg -( -all -( -test -target_arch -= -" -aarch64 -" -target_feature -= -" -neon -" -) -) -] -mod -tests_aarch64_neon -{ -use -core -: -: -arch -: -: -aarch64 -: -: -* -; -use -super -: -: -* -; -# -[ -target_feature -( -enable -= -" -neon -" -) -] -unsafe -fn -load -( -lanes -: -[ -u8 -; -16 -] -) -- -> -uint8x16_t -{ -uint8x16_t -: -: -load_unaligned -( -& -lanes -as -* -const -u8 -) -} -# -[ -target_feature -( -enable -= -" -neon -" -) -] -unsafe -fn -unload -( -v -: -uint8x16_t -) -- -> -[ -u8 -; -16 -] -{ -[ -vgetq_lane_u8 -( -v -0 -) -vgetq_lane_u8 -( -v -1 -) -vgetq_lane_u8 -( -v -2 -) -vgetq_lane_u8 -( -v -3 -) -vgetq_lane_u8 -( -v -4 -) -vgetq_lane_u8 -( -v -5 -) -vgetq_lane_u8 -( -v -6 -) -vgetq_lane_u8 -( -v -7 -) -vgetq_lane_u8 -( -v -8 -) -vgetq_lane_u8 -( -v -9 -) -vgetq_lane_u8 -( -v -10 -) -vgetq_lane_u8 -( -v -11 -) -vgetq_lane_u8 -( -v -12 -) -vgetq_lane_u8 -( -v -13 -) -vgetq_lane_u8 -( -v -14 -) -vgetq_lane_u8 -( -v -15 -) -] -} -# -[ -test -] -fn -example_vmaxvq_u8_non_zero -( -) -{ -# -[ -target_feature -( -enable -= -" -neon -" -) -] -unsafe -fn -example -( -) -{ -let -v -= -load -( -[ -0 -0 -0 -0 -0 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert_eq -! -( -vmaxvq_u8 -( -v -) -1 -) -; -} -unsafe -{ -example -( -) -} -} -# -[ -test -] -fn -example_vmaxvq_u8_zero -( -) -{ -# -[ -target_feature -( -enable -= -" -neon -" -) -] -unsafe -fn -example -( -) -{ -let -v -= -load -( -[ -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert_eq -! -( -vmaxvq_u8 -( -v -) -0 -) -; -} -unsafe -{ -example -( -) -} -} -# -[ -test -] -fn -example_vpmaxq_u8_non_zero -( -) -{ -# -[ -target_feature -( -enable -= -" -neon -" -) -] -unsafe -fn -example -( -) -{ -let -v -= -load -( -[ -0 -0 -0 -0 -0 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -let -r -= -vpmaxq_u8 -( -v -v -) -; -assert_eq -! -( -unload -( -r -) -[ -0 -0 -1 -0 -0 -0 -0 -0 -0 -0 -1 -0 -0 -0 -0 -0 -] -) -; -} -unsafe -{ -example -( -) -} -} -# -[ -test -] -fn -example_vpmaxq_u8_self -( -) -{ -# -[ -target_feature -( -enable -= -" -neon -" -) -] -unsafe -fn -example -( -) -{ -let -v -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -r -= -vpmaxq_u8 -( -v -v -) -; -assert_eq -! -( -unload -( -r -) -[ -2 -4 -6 -8 -10 -12 -14 -16 -2 -4 -6 -8 -10 -12 -14 -16 -] -) -; -} -unsafe -{ -example -( -) -} -} -# -[ -test -] -fn -example_vpmaxq_u8_other -( -) -{ -# -[ -target_feature -( -enable -= -" -neon -" -) -] -unsafe -fn -example -( -) -{ -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 -= -load -( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -let -r -= -vpmaxq_u8 -( -v1 -v2 -) -; -assert_eq -! -( -unload -( -r -) -[ -2 -4 -6 -8 -10 -12 -14 -16 -18 -20 -22 -24 -26 -28 -30 -32 -] -) -; -} -unsafe -{ -example -( -) -} -} -# -[ -test -] -fn -vector_splat -( -) -{ -# -[ -target_feature -( -enable -= -" -neon -" -) -] -unsafe -fn -test -( -) -{ -let -v -= -uint8x16_t -: -: -splat -( -0xAF -) -; -assert_eq -! -( -unload -( -v -) -[ -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -0xAF -] -) +* ; -} -unsafe -{ -test -( -) -} -} -# -[ -test -] -fn -vector_is_zero -( -) -{ # [ target_feature @@ -8120,104 +17,43 @@ target_feature enable = " -neon +avx2 " ) ] +pub unsafe fn -test +alignr256_14 ( +a +: +__m256i +b +: +__m256i ) +- +> +__m256i { let v = -load -( -[ -0 -0 -0 -0 -0 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) -; -assert -! -( -! -v -. -is_zero -( -) -) -; -let -v -= -load +_mm256_permute2x128_si256 ( -[ -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] +b +a +0x21 ) ; -assert -! +_mm256_alignr_epi8 ( +a v -. -is_zero -( -) -) -; -} -unsafe -{ -test -( +14 ) } -} -# -[ -test -] -fn -vector_cmpeq -( -) -{ # [ target_feature @@ -8225,115 +61,43 @@ target_feature enable = " -neon +avx2 " ) ] +pub unsafe fn -test +alignr256_15 ( +a +: +__m256i +b +: +__m256i ) +- +> +__m256i { let -v1 +v = -load +_mm256_permute2x128_si256 ( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -1 -] +b +a +0x21 ) ; -let -v2 -= -load +_mm256_alignr_epi8 ( -[ -16 +a +v 15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 -] -) -; -assert_eq -! -( -unload -( -v1 -. -cmpeq -( -v2 -) -) -[ -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0xFF -] -) -; -} -unsafe -{ -test -( ) } -} -# -[ -test -] -fn -vector_and -( -) -{ # [ target_feature @@ -8341,115 +105,46 @@ target_feature enable = " -neon +ssse3 " ) ] +pub unsafe fn -test +unpack64x128 ( +a +: +__m128i ) -{ -let -v1 -= -load -( +- +> [ -0 -0 -0 -0 -0 -0b1001 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] -) +u64 ; -let -v2 -= -load -( -[ -0 -0 -0 -0 -0 -0b1010 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 +2 ] -) -; -assert_eq -! +{ +[ +_mm_cvtsi128_si64 ( -unload +a +) +as +u64 +_mm_cvtsi128_si64 ( -v1 -. -and +_mm_srli_si128 ( -v2 +a +8 ) ) -[ -0 -0 -0 -0 -0 -0b1000 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 +as +u64 ] -) -; -} -unsafe -{ -test -( -) } -} -# -[ -test -] -fn -vector_or -( -) -{ # [ target_feature @@ -8457,115 +152,80 @@ target_feature enable = " -neon +avx2 " ) ] +pub unsafe fn -test +unpack64x256 ( +a +: +__m256i ) +- +> +[ +u64 +; +4 +] { let -v1 +lo = -load +_mm256_extracti128_si256 ( -[ -0 -0 -0 -0 +a 0 -0b1001 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] ) ; let -v2 +hi = -load +_mm256_extracti128_si256 ( -[ -0 -0 -0 -0 -0 -0b1010 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] +a +1 ) ; -assert_eq -! +[ +_mm_cvtsi128_si64 ( -unload +lo +) +as +u64 +_mm_cvtsi128_si64 ( -v1 -. -or +_mm_srli_si128 ( -v2 -) +lo +8 ) -[ -0 -0 -0 -0 -0 -0b1011 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] ) -; -} -unsafe -{ -test +as +u64 +_mm_cvtsi128_si64 ( +hi ) -} -} -# -[ -test -] -fn -vector_shift_8bit_lane_right +as +u64 +_mm_cvtsi128_si64 +( +_mm_srli_si128 ( +hi +8 ) -{ +) +as +u64 +] +} # [ target_feature @@ -8573,94 +233,81 @@ target_feature enable = " -neon +avx2 " ) ] +pub unsafe fn -test +unpacklo64x256 ( +a +: +__m256i +b +: +__m256i ) +- +> +[ +u64 +; +4 +] { let -v +lo = -load +_mm256_castsi256_si128 ( -[ -0 -0 -0 -0 -0b1011 -0b0101 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] +a ) ; -assert_eq -! -( -unload +let +hi += +_mm256_castsi256_si128 ( -v -. -shift_8bit_lane_right -: -: -< -2 -> +b +) +; +[ +_mm_cvtsi128_si64 ( +lo ) +as +u64 +_mm_cvtsi128_si64 +( +_mm_srli_si128 +( +lo +8 ) -[ -0 -0 -0 -0 -0b0010 -0b0001 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -] ) -; -} -unsafe -{ -test +as +u64 +_mm_cvtsi128_si64 ( +hi ) -} -} -# -[ -test -] -fn -vector_shift_in_one_byte +as +u64 +_mm_cvtsi128_si64 ( +_mm_srli_si128 +( +hi +8 ) -{ +) +as +u64 +] +} # [ target_feature @@ -8668,115 +315,89 @@ target_feature enable = " -neon +ssse3 " ) ] +pub unsafe fn -test +is_all_zeroes128 ( +a +: +__m128i ) +- +> +bool { let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 +cmp = -load -( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] -) -; -assert_eq -! -( -unload +_mm_cmpeq_epi8 ( -v1 -. -shift_in_one_byte +a +zeroes128 ( -v2 -) ) -[ -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -] ) ; -} -unsafe -{ -test +_mm_movemask_epi8 ( +cmp ) -} +as +u32 += += +0xFFFF } # [ -test +target_feature +( +enable += +" +avx2 +" +) ] +pub +unsafe fn -vector_shift_in_two_bytes +is_all_zeroes256 ( +a +: +__m256i ) +- +> +bool { +let +cmp += +_mm256_cmpeq_epi8 +( +a +zeroes256 +( +) +) +; +_mm256_movemask_epi8 +( +cmp +) +as +u32 += += +0xFFFFFFFF +} # [ target_feature @@ -8784,115 +405,58 @@ target_feature enable = " -neon +sse2 " ) ] +pub unsafe fn -test -( -) -{ -let -v1 -= -load +loadu128 ( +slice +: +& [ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 +u8 ] +at +: +usize ) -; +- +> +__m128i +{ let -v2 +ptr = -load +slice +. +get_unchecked ( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] +at +. +. ) -; -assert_eq -! -( -unload -( -v1 . -shift_in_two_bytes +as_ptr ( -v2 -) -) -[ -31 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -] ) ; -} -unsafe -{ -test +_mm_loadu_si128 ( +ptr +as +* +const +u8 +as +* +const +__m128i ) } -} -# -[ -test -] -fn -vector_shift_in_three_bytes -( -) -{ # [ target_feature @@ -8900,115 +464,58 @@ target_feature enable = " -neon +avx2 " ) ] +pub unsafe fn -test -( -) -{ -let -v1 -= -load +loadu256 ( +slice +: +& [ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 +u8 ] +at +: +usize ) -; +- +> +__m256i +{ let -v2 +ptr = -load +slice +. +get_unchecked ( -[ -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -] +at +. +. ) -; -assert_eq -! -( -unload -( -v1 . -shift_in_three_bytes +as_ptr ( -v2 -) -) -[ -30 -31 -32 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -] ) ; -} -unsafe -{ -test +_mm256_loadu_si256 ( +ptr +as +* +const +u8 +as +* +const +__m256i ) } -} -# -[ -test -] -fn -vector_shuffle_bytes -( -) -{ # [ target_feature @@ -9016,115 +523,51 @@ target_feature enable = " -neon +sse2 " ) ] +pub unsafe fn -test +zeroes128 ( ) +- +> +__m128i { -let -v1 -= -load -( -[ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -] -) -; -let -v2 -= -load +_mm_set1_epi8 ( -[ -0 -0 0 -0 -4 -4 -4 -4 -8 -8 -8 -8 -12 -12 -12 -12 -] -) -; -assert_eq -! -( -unload -( -v1 -. -shuffle_bytes -( -v2 -) -) -[ -1 -1 -1 -1 -5 -5 -5 -5 -9 -9 -9 -9 -13 -13 -13 -13 -] -) -; -} -unsafe -{ -test -( ) } -} # [ -test +target_feature +( +enable += +" +avx2 +" +) ] +pub +unsafe fn -vector_for_each_64bit_lane +zeroes256 ( ) +- +> +__m256i { +_mm256_set1_epi8 +( +0 +) +} # [ target_feature @@ -9132,93 +575,56 @@ target_feature enable = " -neon +sse2 " ) ] +pub unsafe fn -test +ones128 ( ) +- +> +__m128i { -let -v -= -load +_mm_set1_epi8 ( -[ -0x01 -0x02 -0x03 -0x04 -0x05 -0x06 -0x07 -0x08 -0x09 -0x0A -0x0B -0x0C -0x0D -0x0E -0x0F -0x10 -] +0xFF +as +u8 +as +i8 ) -; -let -mut -lanes -= +} +# [ -0u64 -; -2 -] -; -v -. -for_each_64bit_lane +target_feature ( -| -i -lane -| -{ -lanes -[ -i -] +enable = -lane -; -None -: -: -< -( -) -> -} +" +avx2 +" ) -; -assert_eq -! -( -lanes -[ -0x0807060504030201 -0x100F0E0D0C0B0A09 ] -) -; -} +pub unsafe +fn +ones256 +( +) +- +> +__m256i { -test +_mm256_set1_epi8 ( +0xFF +as +u8 +as +i8 ) } -} -} diff --git a/third_party/rust/aho-corasick/src/util/prefilter.rs b/third_party/rust/aho-corasick/src/prefilter.rs similarity index 73% rename from third_party/rust/aho-corasick/src/util/prefilter.rs rename to third_party/rust/aho-corasick/src/prefilter.rs index 33a7ba892b61b..1721c591cdf2b 100644 --- a/third_party/rust/aho-corasick/src/util/prefilter.rs +++ b/third_party/rust/aho-corasick/src/prefilter.rs @@ -1,13 +1,19 @@ use -core +std : : -{ cmp +; +use +std +: +: fmt +; +use +std : : -Debug panic : : @@ -15,133 +21,44 @@ panic RefUnwindSafe UnwindSafe } -u8 -} ; use -alloc -: -: -{ -sync +std : : -Arc -vec -vec +u8 +; +use +memchr : : -Vec +{ +memchr +memchr2 +memchr3 } ; use crate : : -{ -packed -util -: -: -{ -alphabet -: -: -ByteSet -search +ahocorasick : : -{ -Match MatchKind -Span -} -} -} ; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Prefilter -{ -finder +use +crate : -Arc -< -dyn -PrefilterI -> -memory_usage : -usize -} -impl -Prefilter -{ -# -[ -inline -] -pub -fn -find_in -( -& -self -haystack +packed +; +use +crate : -& -[ -u8 -] -span : -Span -) -- -> -Candidate -{ -self -. -finder -. -find_in -( -haystack -span -) -} -# -[ -inline -] -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -memory_usage -} -} +Match +; # [ derive @@ -224,8 +141,9 @@ start } } } +pub trait -PrefilterI +Prefilter : Send + @@ -235,68 +153,125 @@ RefUnwindSafe + UnwindSafe + +fmt +: +: Debug -+ -' -static { fn -find_in +next_candidate ( & self +state +: +& +mut +PrefilterState haystack : & [ u8 ] -span +at : -Span +usize ) - > Candidate ; +fn +clone_prefilter +( +& +self +) +- +> +Box +< +dyn +Prefilter +> +; +fn +heap_bytes +( +& +self +) +- +> +usize +; +fn +reports_false_positives +( +& +self +) +- +> +bool +{ +true +} +fn +looks_for_non_start_of_match +( +& +self +) +- +> +bool +{ +false +} } impl < +' +a P : -PrefilterI +Prefilter + ? Sized > -PrefilterI +Prefilter for -Arc -< +& +' +a P -> { # [ inline -( -always -) ] fn -find_in +next_candidate ( & self +state +: +& +mut +PrefilterState haystack : & [ u8 ] -span +at : -Span +usize ) - > @@ -308,82 +283,486 @@ Candidate self ) . -find_in +next_candidate ( +state haystack -span +at ) } -} -# -[ -derive -( -Debug -) -] -pub +fn +clone_prefilter ( -crate +& +self ) -struct -Builder -{ -count -: -usize -ascii_case_insensitive -: -bool -start_bytes -: -StartBytesBuilder -rare_bytes -: -RareBytesBuilder -memmem -: -MemmemBuilder -packed -: -Option +- +> +Box < -packed -: -: -Builder +dyn +Prefilter > -enabled -: -bool -} -impl -Builder { -pub ( -crate +* +* +self ) +. +clone_prefilter +( +) +} fn -new +heap_bytes ( -kind -: -MatchKind +& +self ) - > -Builder +usize { -let -pbuilder -= -kind -. -as_packed ( -) -. +* +* +self +) +. +heap_bytes +( +) +} +fn +reports_false_positives +( +& +self +) +- +> +bool +{ +( +* +* +self +) +. +reports_false_positives +( +) +} +} +# +[ +derive +( +Debug +) +] +pub +struct +PrefilterObj +( +Box +< +dyn +Prefilter +> +) +; +impl +Clone +for +PrefilterObj +{ +fn +clone +( +& +self +) +- +> +Self +{ +PrefilterObj +( +self +. +0 +. +clone_prefilter +( +) +) +} +} +impl +PrefilterObj +{ +pub +fn +new +< +T +: +Prefilter ++ +' +static +> +( +t +: +T +) +- +> +PrefilterObj +{ +PrefilterObj +( +Box +: +: +new +( +t +) +) +} +pub +fn +as_ref +( +& +self +) +- +> +& +dyn +Prefilter +{ +& +* +self +. +0 +} +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +PrefilterState +{ +skips +: +usize +skipped +: +usize +max_match_len +: +usize +inert +: +bool +last_scan_at +: +usize +} +impl +PrefilterState +{ +const +MIN_SKIPS +: +usize += +40 +; +const +MIN_AVG_FACTOR +: +usize += +2 +; +pub +fn +new +( +max_match_len +: +usize +) +- +> +PrefilterState +{ +PrefilterState +{ +skips +: +0 +skipped +: +0 +max_match_len +inert +: +false +last_scan_at +: +0 +} +} +pub +fn +disabled +( +) +- +> +PrefilterState +{ +PrefilterState +{ +skips +: +0 +skipped +: +0 +max_match_len +: +0 +inert +: +true +last_scan_at +: +0 +} +} +# +[ +inline +] +fn +update_skipped_bytes +( +& +mut +self +skipped +: +usize +) +{ +self +. +skips ++ += +1 +; +self +. +skipped ++ += +skipped +; +} +# +[ +inline +] +fn +update_at +( +& +mut +self +at +: +usize +) +{ +if +at +> +self +. +last_scan_at +{ +self +. +last_scan_at += +at +; +} +} +# +[ +inline +] +pub +fn +is_effective +( +& +mut +self +at +: +usize +) +- +> +bool +{ +if +self +. +inert +{ +return +false +; +} +if +at +< +self +. +last_scan_at +{ +return +false +; +} +if +self +. +skips +< +PrefilterState +: +: +MIN_SKIPS +{ +return +true +; +} +let +min_avg += +PrefilterState +: +: +MIN_AVG_FACTOR +* +self +. +max_match_len +; +if +self +. +skipped +> += +min_avg +* +self +. +skips +{ +return +true +; +} +self +. +inert += +true +; +false +} +} +# +[ +derive +( +Debug +) +] +pub +struct +Builder +{ +count +: +usize +ascii_case_insensitive +: +bool +start_bytes +: +StartBytesBuilder +rare_bytes +: +RareBytesBuilder +packed +: +Option +< +packed +: +: +Builder +> +} +impl +Builder +{ +pub +fn +new +( +kind +: +MatchKind +) +- +> +Builder +{ +let +pbuilder += +kind +. +as_packed +( +) +. map ( | @@ -433,26 +812,12 @@ RareBytesBuilder new ( ) -memmem -: -MemmemBuilder -: -: -default -( -) packed : pbuilder -enabled -: -true } } pub -( -crate -) fn ascii_case_insensitive ( @@ -500,255 +865,20 @@ yes ; self } -pub -( -crate -) -fn -build -( -& -self -) -- -> -Option -< -Prefilter -> -{ -if -! -self -. -enabled -{ -debug -! -( -" -prefilter -not -enabled -skipping -" -) -; -return -None -; -} -if -! -self -. -ascii_case_insensitive -{ -if -let -Some -( -pre -) -= -self -. -memmem -. -build -( -) -{ -debug -! -( -" -using -memmem -prefilter -" -) -; -return -Some -( -pre -) -; -} -} -let -( -packed -patlen -minlen -) -= -if -self -. -ascii_case_insensitive -{ -( -None -usize -: -: -MAX -0 -) -} -else -{ -let -patlen -= -self -. -packed -. -as_ref -( -) -. -map_or -( -usize -: -: -MAX -| -p -| -p -. -len -( -) -) -; -let -minlen -= -self -. -packed -. -as_ref -( -) -. -map_or -( -0 -| -p -| -p -. -minimum_len -( -) -) -; -let -packed -= -self -. -packed -. -as_ref -( -) -. -and_then -( -| -b -| -b -. -build -( -) -) -. -map -( -| -s -| -{ -let -memory_usage -= -s -. -memory_usage -( -) -; -debug -! -( -" -built -packed -prefilter -( -len -: -{ -} -\ -minimum -pattern -len -: -{ -} -memory -usage -: -{ -} -) -\ -for -consideration -" -patlen -minlen -memory_usage -) -; -Prefilter -{ -finder -: -Arc -: -: -new -( -Packed -( -s -) -) -memory_usage -} -} -) -; +pub +fn +build ( -packed -patlen -minlen +& +self ) -} -; +- +> +Option +< +PrefilterObj +> +{ match ( self @@ -782,125 +912,6 @@ _ = > { -debug -! -( -" -both -start -( -len -= -{ -} -rank -= -{ -} -) -and -\ -rare -( -len -= -{ -} -rank -= -{ -} -) -byte -prefilters -\ -are -available -" -self -. -start_bytes -. -count -self -. -start_bytes -. -rank_sum -self -. -rare_bytes -. -count -self -. -rare_bytes -. -rank_sum -) -; -if -patlen -< -= -16 -& -& -minlen -> -= -2 -& -& -self -. -start_bytes -. -count -> -= -3 -& -& -self -. -rare_bytes -. -count -> -= -3 -{ -debug -! -( -" -start -and -rare -byte -prefilters -available -but -\ -they -' -re -probably -slower -than -packed -so -using -\ -packed -" -) -; -return -packed -; -} let has_fewer_bytes = @@ -936,90 +947,14 @@ rank_sum ; if has_fewer_bytes -{ -debug -! -( -" -using -start -byte -prefilter -because -it -has -fewer -bytes -to -search -for -than -the -rare -byte -prefilter -" -) -; -prestart -} -else -if +| +| has_rarer_bytes { -debug -! -( -" -using -start -byte -prefilter -because -its -byte -\ -frequency -rank -was -determined -to -be -\ -\ -" -good -enough -\ -" -relative -to -the -rare -byte -prefilter -\ -byte -frequency -rank -" -) -; prestart } else { -debug -! -( -" -using -rare -byte -prefilter -" -) -; prerare } } @@ -1033,81 +968,7 @@ None ) = > -{ -if -patlen -< -= -16 -& -& -minlen -> -= -2 -& -& -self -. -start_bytes -. -count -> -= -3 -{ -debug -! -( -" -start -byte -prefilter -available -but -\ -it -' -s -probably -slower -than -packed -so -using -\ -packed -" -) -; -return -packed -; -} -debug -! -( -" -have -start -byte -prefilter -but -not -rare -byte -prefilter -\ -so -using -start -byte -prefilter -" -) -; prestart -} ( None prerare @@ -1118,81 +979,7 @@ _ ) = > -{ -if -patlen -< -= -16 -& -& -minlen -> -= -2 -& -& -self -. -rare_bytes -. -count -> -= -3 -{ -debug -! -( -" -rare -byte -prefilter -available -but -\ -it -' -s -probably -slower -than -packed -so -using -\ -packed -" -) -; -return -packed -; -} -debug -! -( -" -have -rare -byte -prefilter -but -not -start -byte -prefilter -\ -so -using -rare -byte -prefilter -" -) -; prerare -} ( None None @@ -1203,80 +990,52 @@ self ascii_case_insensitive = > -{ -debug -! -( -" -no -start -or -rare -byte -prefilter -and -ASCII -case -\ -insensitivity -was -enabled -so -skipping -prefilter -" -) -; None -} ( None None ) = > -{ -if +self +. packed . -is_some +as_ref ( ) -{ -debug -! +. +and_then +( +| +b +| +b +. +build ( -" -falling -back -to -packed -prefilter -" ) -; -} -else -{ -debug -! +) +. +map ( -" -no -prefilter -available -" +| +s +| +PrefilterObj +: +: +new +( +Packed +( +s +) +) ) -; -} -packed -} } } pub -( -crate -) fn add ( @@ -1291,29 +1050,6 @@ u8 ] ) { -if -bytes -. -is_empty -( -) -{ -self -. -enabled -= -false -; -} -if -! -self -. -enabled -{ -return -; -} self . count @@ -1339,15 +1075,6 @@ add bytes ) ; -self -. -memmem -. -add -( -bytes -) -; if let Some @@ -1389,321 +1116,115 @@ Searcher ) ; impl -PrefilterI +Prefilter for Packed { fn -find_in +next_candidate ( & self -haystack -: -& -[ -u8 -] -span +_state : -Span -) -- -> -Candidate -{ -self -. -0 -. -find_in -( & +mut +PrefilterState haystack -span -) -. -map_or -( -Candidate -: -: -None -Candidate -: -: -Match -) -} -} -# -[ -derive -( -Debug -Default -) -] -struct -MemmemBuilder -{ -count : -usize -one -: -Option -< -Vec -< -u8 -> -> -} -impl -MemmemBuilder -{ -fn -build -( & -self -) -- -> -Option -< -Prefilter -> -{ -# [ -cfg -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -" -) -) +u8 ] -fn -imp -( -builder +at : -& -MemmemBuilder +usize ) - > -Option -< -Prefilter -> -{ -let -pattern -= -builder -. -one -. -as_ref -( -) -? -; -assert_eq -! -( -1 -builder -. -count -) -; -let -finder -= -Arc -: -: -new -( -Memmem -( -memchr -: -: -memmem -: -: -Finder -: -: -new -( -pattern -) -. -into_owned -( -) -) -) -; -let -memory_usage -= -pattern -. -len -( -) -; -Some -( -Prefilter -{ -finder -memory_usage -} -) -} -# -[ -cfg -( -not -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -" -) +Candidate +{ +self +. +0 +. +find_at +( +haystack +at ) +. +map_or +( +Candidate +: +: +None +Candidate +: +: +Match ) -] +} fn -imp +clone_prefilter ( -_ -: & -MemmemBuilder +self ) - > -Option +Box < +dyn Prefilter > { -None -} -imp +Box +: +: +new ( self +. +clone +( +) ) } fn -add +heap_bytes ( & -mut self -bytes -: -& -[ -u8 -] ) +- +> +usize { self . -count -+ -= -1 -; -if -self -. -count -= -= -1 -{ -self -. -one -= -Some -( -bytes +0 . -to_vec +heap_bytes ( ) -) -; } -else -{ +fn +reports_false_positives +( +& self -. -one -= -None -; -} +) +- +> +bool +{ +false } } # [ -cfg -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -" -) -) -] -# -[ derive ( Clone @@ -1711,180 +1232,216 @@ Debug ) ] struct -Memmem -( -memchr +RareBytesBuilder +{ +ascii_case_insensitive : +bool +rare_set : -memmem +ByteSet +byte_offsets : +RareByteOffsets +available : -Finder -< -' -static -> -) -; +bool +count +: +usize +rank_sum +: +u16 +} # [ -cfg -( -all +derive ( -feature -= -" -std -" -feature -= -" -perf -- -literal -" -) +Clone +Copy ) ] +struct +ByteSet +( +[ +bool +; +256 +] +) +; impl -PrefilterI -for -Memmem +ByteSet +{ +fn +empty +( +) +- +> +ByteSet { +ByteSet +( +[ +false +; +256 +] +) +} fn -find_in +insert ( & +mut self -haystack +b : -& -[ u8 -] -span -: -Span ) - > -Candidate +bool { -use -crate -: -: -util -: -: -primitives -: -: -PatternID +let +new += +! +self +. +contains +( +b +) ; self . 0 -. -find -( -& -haystack [ -span +b +as +usize ] += +true +; +new +} +fn +contains +( +& +self +b +: +u8 ) +- +> +bool +{ +self . -map_or +0 +[ +b +as +usize +] +} +} +impl +fmt +: +: +Debug +for +ByteSet +{ +fn +fmt ( -Candidate +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt : : -None -| -i -| +Result { let -start +mut +bytes = -span -. -start -+ -i +vec +! +[ +] ; -let -end +for +b +in +0 +. +. = -start -+ +255 +{ +if self . -0 -. -needle +contains ( +b ) +{ +bytes . -len +push ( +b ) ; -Candidate -: -: -Match -( -Match -: -: -new -( -PatternID -: -: -ZERO -start -. +} +} +f . -end -) +debug_struct +( +" +ByteSet +" ) -} +. +field +( +" +set +" +& +bytes ) -} -} -# -[ -derive +. +finish ( -Clone -Debug ) -] -struct -RareBytesBuilder -{ -ascii_case_insensitive -: -bool -rare_set -: -ByteSet -byte_offsets -: -RareByteOffsets -available -: -bool -count -: -usize -rank_sum -: -u16 +} } # [ @@ -1909,9 +1466,6 @@ impl RareByteOffsets { pub -( -crate -) fn empty ( @@ -1937,9 +1491,6 @@ default } } pub -( -crate -) fn set ( @@ -1988,9 +1539,6 @@ max } } impl -core -: -: fmt : : @@ -2007,9 +1555,6 @@ f : & mut -core -: -: fmt : : @@ -2021,9 +1566,6 @@ _ ) - > -core -: -: fmt : : @@ -2244,45 +1786,17 @@ self > Option < -Prefilter -> -{ -# -[ -cfg -( -feature -= -" -perf -- -literal -" -) -] -fn -imp -( -builder -: -& -RareBytesBuilder -) -- -> -Option -< -Prefilter +PrefilterObj > { if ! -builder +self . available | | -builder +self . count > @@ -2319,7 +1833,7 @@ in 255 { if -builder +self . rare_set . @@ -2344,27 +1858,19 @@ len ; } } -let -finder -: -Arc -< -dyn -PrefilterI -> -= match len { 0 = > -return None 1 = > -Arc +Some +( +PrefilterObj : : new @@ -2379,7 +1885,7 @@ bytes ] offset : -builder +self . byte_offsets . @@ -2394,10 +1900,13 @@ usize ] } ) +) 2 = > -Arc +Some +( +PrefilterObj : : new @@ -2406,7 +1915,7 @@ RareBytesTwo { offsets : -builder +self . byte_offsets byte1 @@ -2423,10 +1932,13 @@ bytes ] } ) +) 3 = > -Arc +Some +( +PrefilterObj : : new @@ -2435,7 +1947,7 @@ RareBytesThree { offsets : -builder +self . byte_offsets byte1 @@ -2458,6 +1970,7 @@ bytes ] } ) +) _ = > @@ -2466,55 +1979,6 @@ unreachable ( ) } -; -Some -( -Prefilter -{ -finder -memory_usage -: -0 -} -) -} -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -" -) -) -] -fn -imp -( -_ -: -& -RareBytesBuilder -) -- -> -Option -< -Prefilter -> -{ -None -} -imp -( -self -) } fn add @@ -2805,27 +2269,17 @@ u8 ) { if -! self . rare_set . -contains +insert ( byte ) { self . -rare_set -. -add -( -byte -) -; -self -. count + = @@ -2848,19 +2302,6 @@ u16 } # [ -cfg -( -feature -= -" -perf -- -literal -" -) -] -# -[ derive ( Clone @@ -2877,47 +2318,36 @@ offset : RareByteOffset } -# -[ -cfg -( -feature -= -" -perf -- -literal -" -) -] impl -PrefilterI +Prefilter for RareBytesOne { fn -find_in +next_candidate ( & self +state +: +& +mut +PrefilterState haystack : & [ u8 ] -span +at : -Span +usize ) - > Candidate { memchr -: -: -memchr ( self . @@ -2925,7 +2355,9 @@ byte1 & haystack [ -span +at +. +. ] ) . @@ -2938,35 +2370,33 @@ i let pos = -span -. -start +at + i ; +state +. +last_scan_at += +pos +; cmp : : max ( -span -. -start +at pos . saturating_sub ( -usize -: -: -from -( self . offset . max -) +as +usize ) ) } @@ -2984,20 +2414,57 @@ Candidate PossibleStartOfMatch ) } +fn +clone_prefilter +( +& +self +) +- +> +Box +< +dyn +Prefilter +> +{ +Box +: +: +new +( +self +. +clone +( +) +) } -# -[ -cfg +fn +heap_bytes ( -feature -= -" -perf +& +self +) - -literal -" +> +usize +{ +0 +} +fn +looks_for_non_start_of_match +( +& +self ) -] +- +> +bool +{ +true +} +} # [ derive @@ -3019,46 +2486,35 @@ byte2 : u8 } -# -[ -cfg -( -feature -= -" -perf -- -literal -" -) -] impl -PrefilterI +Prefilter for RareBytesTwo { fn -find_in +next_candidate ( & self +state +: +& +mut +PrefilterState haystack : & [ u8 ] -span +at : -Span +usize ) - > Candidate { -memchr -: -: memchr2 ( self @@ -3070,7 +2526,9 @@ byte2 & haystack [ -span +at +. +. ] ) . @@ -3083,12 +2541,17 @@ i let pos = -span -. -start +at + i ; +state +. +update_at +( +pos +) +; let offset = @@ -3098,16 +2561,12 @@ offsets . set [ -usize -: -: -from -( haystack [ pos ] -) +as +usize ] . max @@ -3117,20 +2576,14 @@ cmp : max ( -span -. -start +at pos . saturating_sub ( -usize -: -: -from -( offset -) +as +usize ) ) } @@ -3148,20 +2601,57 @@ Candidate PossibleStartOfMatch ) } +fn +clone_prefilter +( +& +self +) +- +> +Box +< +dyn +Prefilter +> +{ +Box +: +: +new +( +self +. +clone +( +) +) } -# -[ -cfg +fn +heap_bytes ( -feature -= -" -perf +& +self +) - -literal -" +> +usize +{ +0 +} +fn +looks_for_non_start_of_match +( +& +self ) -] +- +> +bool +{ +true +} +} # [ derive @@ -3186,46 +2676,35 @@ byte3 : u8 } -# -[ -cfg -( -feature -= -" -perf -- -literal -" -) -] impl -PrefilterI +Prefilter for RareBytesThree { fn -find_in +next_candidate ( & self +state +: +& +mut +PrefilterState haystack : & [ u8 ] -span +at : -Span +usize ) - > Candidate { -memchr -: -: memchr3 ( self @@ -3240,7 +2719,9 @@ byte3 & haystack [ -span +at +. +. ] ) . @@ -3253,12 +2734,17 @@ i let pos = -span -. -start +at + i ; +state +. +update_at +( +pos +) +; let offset = @@ -3268,16 +2754,12 @@ offsets . set [ -usize -: -: -from -( haystack [ pos ] -) +as +usize ] . max @@ -3287,20 +2769,14 @@ cmp : max ( -span -. -start +at pos . saturating_sub ( -usize -: -: -from -( offset -) +as +usize ) ) } @@ -3318,6 +2794,56 @@ Candidate PossibleStartOfMatch ) } +fn +clone_prefilter +( +& +self +) +- +> +Box +< +dyn +Prefilter +> +{ +Box +: +: +new +( +self +. +clone +( +) +) +} +fn +heap_bytes +( +& +self +) +- +> +usize +{ +0 +} +fn +looks_for_non_start_of_match +( +& +self +) +- +> +bool +{ +true +} } # [ @@ -3401,48 +2927,20 @@ yes self } fn -build -( -& -self -) -- -> -Option -< -Prefilter -> -{ -# -[ -cfg -( -feature -= -" -perf -- -literal -" -) -] -fn -imp +build ( -builder -: & -StartBytesBuilder +self ) - > Option < -Prefilter +PrefilterObj > { if -builder +self . count > @@ -3479,7 +2977,7 @@ in { if ! -builder +self . byteset [ @@ -3513,27 +3011,19 @@ len 1 ; } -let -finder -: -Arc -< -dyn -PrefilterI -> -= match len { 0 = > -return None 1 = > -Arc +Some +( +PrefilterObj : : new @@ -3548,10 +3038,13 @@ bytes ] } ) +) 2 = > -Arc +Some +( +PrefilterObj : : new @@ -3572,10 +3065,13 @@ bytes ] } ) +) 3 = > -Arc +Some +( +PrefilterObj : : new @@ -3602,6 +3098,7 @@ bytes ] } ) +) _ = > @@ -3610,55 +3107,6 @@ unreachable ( ) } -; -Some -( -Prefilter -{ -finder -memory_usage -: -0 -} -) -} -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -" -) -) -] -fn -imp -( -_ -: -& -StartBytesBuilder -) -- -> -Option -< -Prefilter -> -{ -None -} -imp -( -self -) } fn add @@ -3781,19 +3229,6 @@ u16 } # [ -cfg -( -feature -= -" -perf -- -literal -" -) -] -# -[ derive ( Clone @@ -3807,47 +3242,36 @@ byte1 : u8 } -# -[ -cfg -( -feature -= -" -perf -- -literal -" -) -] impl -PrefilterI +Prefilter for StartBytesOne { fn -find_in +next_candidate ( & self +_state +: +& +mut +PrefilterState haystack : & [ u8 ] -span +at : -Span +usize ) - > Candidate { memchr -: -: -memchr ( self . @@ -3855,7 +3279,9 @@ byte1 & haystack [ -span +at +. +. ] ) . @@ -3864,9 +3290,7 @@ map | i | -span -. -start +at + i ) @@ -3883,20 +3307,45 @@ Candidate PossibleStartOfMatch ) } -} -# -[ -cfg +fn +clone_prefilter ( -feature -= -" -perf +& +self +) - -literal -" +> +Box +< +dyn +Prefilter +> +{ +Box +: +: +new +( +self +. +clone +( ) -] +) +} +fn +heap_bytes +( +& +self +) +- +> +usize +{ +0 +} +} # [ derive @@ -3915,47 +3364,164 @@ byte2 : u8 } -# +impl +Prefilter +for +StartBytesTwo +{ +fn +next_candidate +( +& +self +_state +: +& +mut +PrefilterState +haystack +: +& [ -cfg +u8 +] +at +: +usize +) +- +> +Candidate +{ +memchr2 ( -feature -= -" -perf +self +. +byte1 +self +. +byte2 +& +haystack +[ +at +. +. +] +) +. +map +( +| +i +| +at ++ +i +) +. +map_or +( +Candidate +: +: +None +Candidate +: +: +PossibleStartOfMatch +) +} +fn +clone_prefilter +( +& +self +) - -literal -" +> +Box +< +dyn +Prefilter +> +{ +Box +: +: +new +( +self +. +clone +( +) +) +} +fn +heap_bytes +( +& +self +) +- +> +usize +{ +0 +} +} +# +[ +derive +( +Clone +Debug ) ] +struct +StartBytesThree +{ +byte1 +: +u8 +byte2 +: +u8 +byte3 +: +u8 +} impl -PrefilterI +Prefilter for -StartBytesTwo +StartBytesThree { fn -find_in +next_candidate ( & self +_state +: +& +mut +PrefilterState haystack : & [ u8 ] -span +at : -Span +usize ) - > Candidate { -memchr -: -: -memchr2 +memchr3 ( self . @@ -3963,10 +3529,15 @@ byte1 self . byte2 +self +. +byte3 & haystack [ -span +at +. +. ] ) . @@ -3975,9 +3546,7 @@ map | i | -span -. -start +at + i ) @@ -3994,128 +3563,165 @@ Candidate PossibleStartOfMatch ) } -} -# -[ -cfg +fn +clone_prefilter ( -feature -= -" -perf +& +self +) - -literal -" +> +Box +< +dyn +Prefilter +> +{ +Box +: +: +new +( +self +. +clone +( ) -] -# -[ -derive +) +} +fn +heap_bytes ( -Clone -Debug +& +self ) -] -struct -StartBytesThree +- +> +usize { -byte1 -: -u8 -byte2 -: -u8 -byte3 -: -u8 +0 +} } # [ -cfg -( -feature -= -" -perf -- -literal -" -) +inline ] -impl -PrefilterI -for -StartBytesThree -{ +pub fn -find_in +next +< +P +: +Prefilter +> ( +prestate +: & -self +mut +PrefilterState +prefilter +: +P haystack : & [ u8 ] -span +at : -Span +usize ) - > Candidate { -memchr -: -: -memchr3 -( -self -. -byte1 -self -. -byte2 -self +let +cand += +prefilter . -byte3 -& +next_candidate +( +prestate haystack -[ -span -] +at ) +; +match +cand +{ +Candidate +: +: +None += +> +{ +prestate . -map +update_skipped_bytes ( -| -i -| -span -. -start -+ -i -) +haystack . -map_or +len ( +) +- +at +) +; +} Candidate : : -None +Match +( +ref +m +) += +> +{ +prestate +. +update_skipped_bytes +( +m +. +start +( +) +- +at +) +; +} Candidate : : PossibleStartOfMatch +( +i +) += +> +{ +prestate +. +update_skipped_bytes +( +i +- +at ) +; +} } +cand } pub -( -crate -) fn opposite_ascii_case ( @@ -4196,9 +3802,6 @@ use crate : : -util -: -: byte_frequencies : : @@ -4211,3 +3814,90 @@ as usize ] } +# +[ +cfg +( +test +) +] +mod +tests +{ +use +super +: +: +* +; +# +[ +test +] +fn +scratch +( +) +{ +let +mut +b += +Builder +: +: +new +( +MatchKind +: +: +LeftmostFirst +) +; +b +. +add +( +b +" +Sherlock +" +) +; +b +. +add +( +b +" +locjaw +" +) +; +let +s += +b +. +build +( +) +. +unwrap +( +) +; +println +! +( +" +{ +: +? +} +" +s +) +; +} +} diff --git a/third_party/rust/aho-corasick/src/state_id.rs b/third_party/rust/aho-corasick/src/state_id.rs new file mode 100644 index 0000000000000..7045b244aea95 --- /dev/null +++ b/third_party/rust/aho-corasick/src/state_id.rs @@ -0,0 +1,679 @@ +use +std +: +: +fmt +: +: +Debug +; +use +std +: +: +hash +: +: +Hash +; +use +crate +: +: +error +: +: +{ +Error +Result +} +; +pub +fn +premultiply_overflow_error +< +S +: +StateID +> +( +last_state +: +S +alphabet_len +: +usize +) +- +> +Result +< +( +) +> +{ +let +requested += +match +last_state +. +to_usize +( +) +. +checked_mul +( +alphabet_len +) +{ +Some +( +requested +) += +> +requested +None += +> +return +Err +( +Error +: +: +premultiply_overflow +( +0 +0 +) +) +} +; +if +requested +> +S +: +: +max_id +( +) +{ +return +Err +( +Error +: +: +premultiply_overflow +( +S +: +: +max_id +( +) +requested +) +) +; +} +Ok +( +( +) +) +} +pub +fn +usize_to_state_id +< +S +: +StateID +> +( +value +: +usize +) +- +> +Result +< +S +> +{ +if +value +> +S +: +: +max_id +( +) +{ +Err +( +Error +: +: +state_id_overflow +( +S +: +: +max_id +( +) +) +) +} +else +{ +Ok +( +S +: +: +from_usize +( +value +) +) +} +} +pub +fn +fail_id +< +S +: +StateID +> +( +) +- +> +S +{ +S +: +: +from_usize +( +0 +) +} +pub +fn +dead_id +< +S +: +StateID +> +( +) +- +> +S +{ +S +: +: +from_usize +( +1 +) +} +mod +private +{ +pub +trait +Sealed +{ +} +impl +Sealed +for +u8 +{ +} +impl +Sealed +for +u16 +{ +} +impl +Sealed +for +u32 +{ +} +impl +Sealed +for +u64 +{ +} +impl +Sealed +for +usize +{ +} +} +pub +trait +StateID +: +private +: +: +Sealed ++ +Clone ++ +Copy ++ +Debug ++ +Eq ++ +Hash ++ +PartialEq ++ +PartialOrd ++ +Ord +{ +fn +from_usize +( +n +: +usize +) +- +> +Self +; +fn +to_usize +( +self +) +- +> +usize +; +fn +max_id +( +) +- +> +usize +; +} +impl +StateID +for +usize +{ +# +[ +inline +] +fn +from_usize +( +n +: +usize +) +- +> +usize +{ +n +} +# +[ +inline +] +fn +to_usize +( +self +) +- +> +usize +{ +self +} +# +[ +inline +] +fn +max_id +( +) +- +> +usize +{ +: +: +std +: +: +usize +: +: +MAX +} +} +impl +StateID +for +u8 +{ +# +[ +inline +] +fn +from_usize +( +n +: +usize +) +- +> +u8 +{ +n +as +u8 +} +# +[ +inline +] +fn +to_usize +( +self +) +- +> +usize +{ +self +as +usize +} +# +[ +inline +] +fn +max_id +( +) +- +> +usize +{ +: +: +std +: +: +u8 +: +: +MAX +as +usize +} +} +impl +StateID +for +u16 +{ +# +[ +inline +] +fn +from_usize +( +n +: +usize +) +- +> +u16 +{ +n +as +u16 +} +# +[ +inline +] +fn +to_usize +( +self +) +- +> +usize +{ +self +as +usize +} +# +[ +inline +] +fn +max_id +( +) +- +> +usize +{ +: +: +std +: +: +u16 +: +: +MAX +as +usize +} +} +# +[ +cfg +( +any +( +target_pointer_width += +" +32 +" +target_pointer_width += +" +64 +" +) +) +] +impl +StateID +for +u32 +{ +# +[ +inline +] +fn +from_usize +( +n +: +usize +) +- +> +u32 +{ +n +as +u32 +} +# +[ +inline +] +fn +to_usize +( +self +) +- +> +usize +{ +self +as +usize +} +# +[ +inline +] +fn +max_id +( +) +- +> +usize +{ +: +: +std +: +: +u32 +: +: +MAX +as +usize +} +} +# +[ +cfg +( +target_pointer_width += +" +64 +" +) +] +impl +StateID +for +u64 +{ +# +[ +inline +] +fn +from_usize +( +n +: +usize +) +- +> +u64 +{ +n +as +u64 +} +# +[ +inline +] +fn +to_usize +( +self +) +- +> +usize +{ +self +as +usize +} +# +[ +inline +] +fn +max_id +( +) +- +> +usize +{ +: +: +std +: +: +u64 +: +: +MAX +as +usize +} +} diff --git a/third_party/rust/aho-corasick/src/tests.rs b/third_party/rust/aho-corasick/src/tests.rs index ae7cf6951169b..07e13efdda545 100644 --- a/third_party/rust/aho-corasick/src/tests.rs +++ b/third_party/rust/aho-corasick/src/tests.rs @@ -2,35 +2,31 @@ use std : : -{ collections : : HashMap -format -string +; +use +std : : -String -vec +io +; +use +std : : -Vec -} +usize ; use crate : : { -AhoCorasick AhoCorasickBuilder -AhoCorasickKind -Anchored -Input Match MatchKind -StartKind } ; # @@ -178,6 +174,17 @@ REGRESSION ] ; const +AC_STANDARD_ANCHORED_OVERLAPPING +: +TestCollection += +& +[ +ANCHORED_BASICS +ANCHORED_OVERLAPPING +] +; +const AC_LEFTMOST_FIRST : TestCollection @@ -263,32 +270,6 @@ basic001 & [ " -" -] -" -a -" -& -[ -( -0 -0 -0 -) -( -0 -1 -1 -) -] -) -t -! -( -basic002 -& -[ -" a " ] @@ -1275,34 +1256,6 @@ abasic000 t ! ( -abasic001 -& -[ -] -" -a -" -& -[ -] -) -t -! -( -abasic002 -& -[ -] -" -abc -" -& -[ -] -) -t -! -( abasic010 & [ @@ -1339,11 +1292,6 @@ a 0 0 ) -( -0 -1 -1 -) ] ) t @@ -1365,21 +1313,6 @@ abc 0 0 ) -( -0 -1 -1 -) -( -0 -2 -2 -) -( -0 -3 -3 -) ] ) t @@ -1424,11 +1357,6 @@ aa 0 1 ) -( -0 -1 -2 -) ] ) t @@ -1454,11 +1382,6 @@ ab 0 1 ) -( -1 -1 -2 -) ] ) t @@ -1484,11 +1407,6 @@ ba 0 1 ) -( -0 -1 -2 -) ] ) t @@ -1541,34 +1459,6 @@ foo ) ] ) -t -! -( -abasic200 -& -[ -" -foo -" -] -" -foofoo -foo -" -& -[ -( -0 -0 -3 -) -( -0 -3 -6 -) -] -) ] ; const @@ -2052,11 +1942,6 @@ a 0 0 ) -( -1 -1 -1 -) ] ) t @@ -2112,11 +1997,6 @@ a 0 0 ) -( -0 -1 -1 -) ] ) t @@ -2141,16 +2021,6 @@ aa 0 0 ) -( -0 -1 -1 -) -( -0 -2 -2 -) ] ) t @@ -2177,11 +2047,6 @@ a 0 0 ) -( -0 -1 -1 -) ] ) t @@ -2208,11 +2073,6 @@ a 0 0 ) -( -1 -1 -1 -) ] ) t @@ -2239,11 +2099,6 @@ a 0 0 ) -( -0 -1 -1 -) ] ) ] @@ -2307,34 +2162,10 @@ a 0 1 ) -] -) -t -! ( -leftmost011 -& -[ -" -a -" -" -" -] -" -ab -" -& -[ -( -0 -0 1 -) -( 1 -2 -2 +1 ) ] ) @@ -2902,11 +2733,6 @@ a 0 0 ) -( -0 -1 -1 -) ] ) t @@ -2932,11 +2758,6 @@ aa 0 1 ) -( -0 -1 -2 -) ] ) t @@ -2962,11 +2783,6 @@ aa 0 1 ) -( -1 -1 -2 -) ] ) t @@ -3015,37 +2831,6 @@ abce t ! ( -aleftmost301 -& -[ -" -abcd -" -" -bcd -" -" -cd -" -" -b -" -] -" -abcd -" -& -[ -( -0 -0 -4 -) -] -) -t -! -( aleftmost310 & [ @@ -3346,7 +3131,7 @@ abcdefgh " ] " -abcdefghzyz +abcdefghz " & [ @@ -3355,11 +3140,6 @@ abcdefghzyz 0 8 ) -( -0 -8 -9 -) ] ) ] @@ -3485,6 +3265,11 @@ a 0 1 ) +( +1 +1 +1 +) ] ) t @@ -3521,64 +3306,11 @@ a t ! ( -leftfirst014 +leftfirst020 & [ " -a -" -" -" -] -" -a -" -& -[ -( -0 -0 -1 -) -] -) -t -! -( -leftfirst015 -& -[ -" -a -" -" -" -] -" -ab -" -& -[ -( -0 -0 -1 -) -( -1 -2 -2 -) -] -) -t -! -( -leftfirst020 -& -[ -" -abcd +abcd " " ab @@ -3926,11 +3658,6 @@ a 0 0 ) -( -0 -1 -1 -) ] ) t @@ -3957,11 +3684,6 @@ a 0 0 ) -( -0 -1 -1 -) ] ) t @@ -4014,11 +3736,6 @@ a 0 0 ) -( -0 -1 -1 -) ] ) t @@ -4362,6 +4079,11 @@ a 0 1 ) +( +0 +1 +1 +) ] ) t @@ -4388,6 +4110,11 @@ a 0 1 ) +( +0 +1 +1 +) ] ) t @@ -4414,6 +4141,11 @@ a 0 1 ) +( +1 +1 +1 +) ] ) t @@ -4440,34 +4172,10 @@ a 0 1 ) -] -) -t -! -( -leftlong024 -& -[ -" -" -" -a -" -] -" -ab -" -& -[ ( -1 0 1 -) -( -0 -2 -2 +1 ) ] ) @@ -4498,6 +4206,11 @@ aa 1 2 ) +( +0 +2 +2 +) ] ) t @@ -4997,11 +4710,6 @@ aa 0 1 ) -( -1 -1 -2 -) ] ) t @@ -5595,16 +5303,6 @@ abababa 0 2 ) -( -0 -2 -4 -) -( -0 -4 -6 -) ] ) t @@ -5675,11 +5373,6 @@ a 0 0 ) -( -0 -1 -1 -) ] ) ] @@ -6297,7 +5990,7 @@ foofoo ] ; const -ASCII_CASE_INSENSITIVE +ANCHORED_OVERLAPPING : & ' @@ -6311,60 +6004,82 @@ SearchTest t ! ( -acasei000 +aover000 & [ " -a +abcd +" +" +bcd +" +" +cd +" +" +b " ] " -A +abcd " & [ ( 0 0 -1 +4 ) ] ) t ! ( -acasei010 +aover010 & [ " -Samwise +bcd +" +" +cd +" +" +b +" +" +abcd " ] " -SAMWISE +abcd " & [ ( +3 0 -0 -7 +4 ) ] ) t ! ( -acasei011 +aover020 & [ " -Samwise +abcd +" +" +bcd +" +" +cd " ] " -SAMWISE -. abcd " & @@ -6372,113 +6087,126 @@ abcd ( 0 0 -7 +4 ) ] ) t ! ( -acasei020 +aover030 & [ " -fOoBaR +bcd +" +" +abcd +" +" +cd " ] " -quux -foobar -baz +abcd " & [ ( +1 0 -5 -11 +4 ) ] ) -] -; -const -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -: +t +! +( +aover040 & -' -static [ -SearchTest +" +bcd +" +" +cd +" +" +abcd +" ] -= +" +abcd +" & [ +( +2 +0 +4 +) +] +) t ! ( -acasei000 +aover050 & [ " -foo +abc " " -FOO +bc " ] " -fOo +zazabcz " & [ -( -0 -0 -3 -) ] ) t ! ( -acasei000 +aover100 & [ " -FOO +ab " " -foo +ba " ] " -fOo +abababa " & [ ( 0 0 -3 +2 ) ] ) t ! ( -acasei010 +aover200 & [ " -abc +foo " " -def +foo " ] " -abcdef +foobarfoo " & [ @@ -6489,2562 +6217,1103 @@ abcdef ) ( 1 +0 3 -6 ) ] ) -] -; -const -ASCII_CASE_INSENSITIVE_OVERLAPPING -: +t +! +( +aover300 & -' -static [ -SearchTest +" +" +" +" ] -= +" +" & [ +( +0 +0 +0 +) +( +1 +0 +0 +) +] +) t ! ( -acasei000 +aover310 & [ " -foo " " -FOO " ] " -fOo +a " & [ ( 0 0 -3 +0 ) ( 1 0 -3 +0 ) ] ) t ! ( -acasei001 +aover320 & [ " -FOO " " -foo +a " ] " -fOo +a " & [ ( 0 0 -3 +0 ) ( 1 0 -3 +1 ) ] ) t ! ( -acasei010 +aover330 & [ " -abc " " -def +a " " -abcdef " ] " -abcdef +a " & [ ( 0 0 -3 +0 ) ( 2 0 -6 +0 ) ( 1 -3 -6 +0 +1 ) ] ) -] -; -const -REGRESSION -: +t +! +( +aover340 & -' -static [ -SearchTest +" +a +" +" +" +" +" ] -= +" +a +" & [ +( +1 +0 +0 +) +( +2 +0 +0 +) +( +0 +0 +1 +) +] +) t ! ( -regression010 +aover350 & [ " -inf " " -ind +" +" +a " ] " -infind +a " & [ ( 0 0 -3 +0 ) ( 1 -3 -6 +0 +0 +) +( +2 +0 +1 ) ] ) t ! ( -regression020 +aover360 & [ " -ind +foo " " -inf +foofoo " ] " -infind +foofoo " & [ ( -1 +0 0 3 ) ( +1 0 -3 6 ) ] ) +] +; +const +ASCII_CASE_INSENSITIVE +: +& +' +static +[ +SearchTest +] += +& +[ t ! ( -regression030 +acasei000 & [ " -libcore -/ -" -" -libstd -/ +a " ] " -libcore -/ -char -/ -methods -. -rs +A " & [ ( 0 0 -8 +1 ) ] ) t ! ( -regression040 +acasei010 & [ " -libstd -/ -" -" -libcore -/ +Samwise " ] " -libcore -/ -char -/ -methods -. -rs +SAMWISE " & [ ( -1 0 -8 +0 +7 ) ] ) t ! ( -regression050 +acasei011 & [ " -\ -x00 -\ -x00 -\ -x01 -" -" -\ -x00 -\ -x00 -\ -x00 +Samwise " ] " -\ -x00 -\ -x00 -\ -x00 +SAMWISE +. +abcd " & [ ( -1 0 -3 +0 +7 ) ] ) t ! ( -regression060 +acasei020 & [ " -\ -x00 -\ -x00 -\ -x00 -" -" -\ -x00 -\ -x00 -\ -x01 +fOoBaR " ] " -\ -x00 -\ -x00 -\ -x00 +quux +foobar +baz " & [ ( 0 -0 -3 +5 +11 ) ] ) ] ; -macro_rules -! -testconfig -{ -( -anchored -name -: -ident -collection -: -expr -kind -: -ident -with -: -expr -) -= -> -{ -# -[ -test -] -fn -name -( -) -{ -run_search_tests -( -collection -| -test -| -{ -let -mut -builder -= -AhoCorasick -: -: -builder -( -) -; -with -( -& -mut -builder -) -; -let -input -= -Input -: -: -new -( -test -. -haystack -) -. -anchored -( -Anchored -: -: -Yes -) -; -builder -. -match_kind -( -MatchKind -: -: -kind -) -. -build -( -test -. -patterns -) -. -unwrap -( -) -. -try_find_iter -( -input -) -. -unwrap -( -) -. -collect -( -) -} -) -; -} -} -; -( -overlapping -name -: -ident -collection -: -expr -kind -: -ident -with -: -expr -) -= -> -{ -# -[ -test -] -fn -name -( -) -{ -run_search_tests -( -collection -| -test -| -{ -let -mut -builder -= -AhoCorasick -: -: -builder -( -) -; -with -( -& -mut -builder -) -; -builder -. -match_kind -( -MatchKind -: -: -kind -) -. -build -( -test -. -patterns -) -. -unwrap -( -) -. -find_overlapping_iter -( -test -. -haystack -) -. -collect -( -) -} -) -; -} -} -; -( -stream -name -: -ident -collection -: -expr -kind -: -ident -with -: -expr -) -= -> -{ -# -[ -test -] -fn -name -( -) -{ -run_stream_search_tests -( -collection -| -test -| -{ -let -buf -= -std -: -: -io -: -: -BufReader -: -: -with_capacity -( -1 -test -. -haystack -. -as_bytes -( -) -) -; -let -mut -builder -= -AhoCorasick -: -: -builder -( -) -; -with -( -& -mut -builder -) -; -builder -. -match_kind -( -MatchKind -: -: -kind -) -. -build -( -test -. -patterns -) -. -unwrap -( -) -. -stream_find_iter -( -buf -) -. -map -( -| -result -| -result -. -unwrap -( -) -) -. -collect -( -) -} -) -; -} -} -; -( -name -: -ident -collection -: -expr -kind -: -ident -with -: -expr -) -= -> -{ -# -[ -test -] -fn -name -( -) -{ -run_search_tests -( -collection -| -test -| -{ -let -mut -builder -= -AhoCorasick -: -: -builder -( -) -; -with -( -& -mut -builder -) -; -builder -. -match_kind -( -MatchKind -: -: -kind -) -. -build -( -test -. -patterns -) -. -unwrap -( -) -. -find_iter -( -test -. -haystack -) -. -collect -( -) -} -) -; -} -} -; -} -macro_rules -! -testcombo -{ -( -name -: -ident -collection -: -expr -kind -: -ident -) -= -> -{ -mod -name -{ -use -super -: -: -* -; -testconfig -! -( -default -collection -kind -| -_ -| -( -) -) -; -testconfig -! -( -nfa_default -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -NoncontiguousNFA -) -) -; -} -) -; -testconfig -! -( -nfa_noncontig_no_prefilter -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -NoncontiguousNFA -) -) -. -prefilter -( -false -) -; -} -) -; -testconfig -! -( -nfa_noncontig_all_sparse -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -NoncontiguousNFA -) -) -. -dense_depth -( -0 -) -; -} -) -; -testconfig -! -( -nfa_noncontig_all_dense -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -NoncontiguousNFA -) -) -. -dense_depth -( -usize -: -: -MAX -) -; -} -) -; -testconfig -! -( -nfa_contig_default -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -; -} -) -; -testconfig -! -( -nfa_contig_no_prefilter -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -. -prefilter -( -false -) -; -} -) -; -testconfig -! -( -nfa_contig_all_sparse -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -. -dense_depth -( -0 -) -; -} -) -; -testconfig -! -( -nfa_contig_all_dense -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -. -dense_depth -( -usize -: -: -MAX -) -; -} -) -; -testconfig -! -( -nfa_contig_no_byte_class -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -. -byte_classes -( -false -) -; -} -) -; -testconfig -! -( -dfa_default -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -; -} -) -; -testconfig -! -( -dfa_start_both -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -start_kind -( -StartKind -: -: -Both -) -; -} -) -; -testconfig -! -( -dfa_no_prefilter -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -prefilter -( -false -) -; -} -) -; -testconfig -! -( -dfa_start_both_no_prefilter -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -start_kind -( -StartKind -: -: -Both -) -. -prefilter -( -false -) -; -} -) -; -testconfig -! -( -dfa_no_byte_class -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -byte_classes -( -false -) -; -} -) -; -testconfig -! -( -dfa_start_both_no_byte_class -collection -kind -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -start_kind -( -StartKind -: -: -Both -) -. -byte_classes -( -false -) -; -} -) -; -} -} -; -} -testcombo -! -( -search_leftmost_longest -AC_LEFTMOST_LONGEST -LeftmostLongest -) -; -testcombo -! -( -search_leftmost_first -AC_LEFTMOST_FIRST -LeftmostFirst -) -; -testcombo -! -( -search_standard_nonoverlapping -AC_STANDARD_NON_OVERLAPPING -Standard -) -; -testconfig -! -( -overlapping -search_standard_overlapping_default -AC_STANDARD_OVERLAPPING -Standard -| -_ -| -( -) -) -; -testconfig -! -( -overlapping -search_standard_overlapping_nfa_noncontig_default -AC_STANDARD_OVERLAPPING -Standard -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -NoncontiguousNFA -) -) -; -} -) -; -testconfig -! -( -overlapping -search_standard_overlapping_nfa_noncontig_no_prefilter -AC_STANDARD_OVERLAPPING -Standard -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -NoncontiguousNFA -) -) -. -prefilter -( -false -) -; -} -) -; -testconfig -! -( -overlapping -search_standard_overlapping_nfa_contig_default -AC_STANDARD_OVERLAPPING -Standard -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -; -} -) -; -testconfig -! -( -overlapping -search_standard_overlapping_nfa_contig_no_prefilter -AC_STANDARD_OVERLAPPING -Standard -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -. -prefilter -( -false -) -; -} -) -; -testconfig -! -( -overlapping -search_standard_overlapping_nfa_contig_all_sparse -AC_STANDARD_OVERLAPPING -Standard -| -b +const +ASCII_CASE_INSENSITIVE_NON_OVERLAPPING : & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -. -dense_depth -( -0 -) -; -} -) -; -testconfig -! -( -overlapping -search_standard_overlapping_nfa_contig_all_dense -AC_STANDARD_OVERLAPPING -Standard -| -b -: +' +static +[ +SearchTest +] += & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -. -dense_depth -( -usize -: -: -MAX -) -; -} -) -; -testconfig +[ +t ! ( -overlapping -search_standard_overlapping_dfa_default -AC_STANDARD_OVERLAPPING -Standard -| -b -: +acasei000 & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -; -} -) -; -testconfig -! -( -overlapping -search_standard_overlapping_dfa_start_both -AC_STANDARD_OVERLAPPING -Standard -| -b -: +[ +" +foo +" +" +FOO +" +] +" +fOo +" & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -start_kind +[ ( -StartKind -: -: -Both +0 +0 +3 ) -; -} +] ) -; -testconfig +t ! ( -overlapping -search_standard_overlapping_dfa_no_prefilter -AC_STANDARD_OVERLAPPING -Standard -| -b -: +acasei000 & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -prefilter -( -false -) -; -} -) -; -testconfig -! -( -overlapping -search_standard_overlapping_dfa_start_both_no_prefilter -AC_STANDARD_OVERLAPPING -Standard -| -b -: +[ +" +FOO +" +" +foo +" +] +" +fOo +" & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -start_kind -( -StartKind -: -: -Both -) -. -prefilter +[ ( -false +0 +0 +3 ) -; -} +] ) -; -testconfig +t ! ( -overlapping -search_standard_overlapping_dfa_no_byte_class -AC_STANDARD_OVERLAPPING -Standard -| -b -: +acasei010 & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some +[ +" +abc +" +" +def +" +] +" +abcdef +" +& +[ ( -AhoCorasickKind -: -: -DFA -) +0 +0 +3 ) -. -byte_classes ( -false +1 +3 +6 ) -; -} +] ) +] ; -testconfig -! -( -overlapping -search_standard_overlapping_dfa_start_both_no_byte_class -AC_STANDARD_OVERLAPPING -Standard -| -b +const +ASCII_CASE_INSENSITIVE_OVERLAPPING : & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some +' +static +[ +SearchTest +] += +& +[ +t +! ( -AhoCorasickKind -: -: -DFA -) -) -. -start_kind +acasei000 +& +[ +" +foo +" +" +FOO +" +] +" +fOo +" +& +[ ( -StartKind -: -: -Both +0 +0 +3 ) -. -byte_classes ( -false +1 +0 +3 ) -; -} +] ) -; -# -[ -cfg +t +! ( -feature -= +acasei001 +& +[ " -std +FOO +" +" +foo " -) ] -testconfig -! +" +fOo +" +& +[ ( -stream -search_standard_stream_default -AC_STANDARD_NON_OVERLAPPING -Standard -| -_ -| +0 +0 +3 +) ( +1 +0 +3 ) +] ) -; -# -[ -cfg +t +! ( -feature -= +acasei010 +& +[ " -std +abc +" +" +def +" +" +abcdef " -) ] -testconfig -! -( -stream -search_standard_stream_nfa_noncontig_default -AC_STANDARD_NON_OVERLAPPING -Standard -| -b -: +" +abcdef +" & -mut -AhoCorasickBuilder -| -{ -b -. -kind +[ ( -Some +0 +0 +3 +) ( -AhoCorasickKind -: -: -NoncontiguousNFA +2 +0 +6 ) +( +1 +3 +6 ) -; -} +] ) +] ; -# +const +REGRESSION +: +& +' +static [ -cfg -( -feature +SearchTest +] = +& +[ +t +! +( +regression010 +& +[ " -std +inf +" +" +ind " -) ] -testconfig -! -( -stream -search_standard_stream_nfa_contig_default -AC_STANDARD_NON_OVERLAPPING -Standard -| -b -: +" +infind +" & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some +[ ( -AhoCorasickKind -: -: -ContiguousNFA +0 +0 +3 ) +( +1 +3 +6 ) -; -} +] ) -; -# -[ -cfg +t +! ( -feature -= +regression020 +& +[ " -std +ind +" +" +inf " -) ] -testconfig -! -( -stream -search_standard_stream_dfa_default -AC_STANDARD_NON_OVERLAPPING -Standard -| -b -: +" +infind +" & -mut -AhoCorasickBuilder -| -{ -b -. -kind -( -Some +[ ( -AhoCorasickKind -: -: -DFA +1 +0 +3 ) +( +0 +3 +6 ) -; -} +] ) -; -testconfig +t ! ( -anchored -search_standard_anchored_default -AC_STANDARD_ANCHORED_NON_OVERLAPPING -Standard -| -b -: +regression030 & -mut -AhoCorasickBuilder -| -{ -b +[ +" +libcore +/ +" +" +libstd +/ +" +] +" +libcore +/ +char +/ +methods . -start_kind +rs +" +& +[ ( -StartKind -: -: -Anchored +0 +0 +8 ) -; -} +] ) -; -testconfig +t ! ( -anchored -search_standard_anchored_nfa_noncontig_default -AC_STANDARD_ANCHORED_NON_OVERLAPPING -Standard -| -b -: +regression040 & -mut -AhoCorasickBuilder -| -{ -b -. -start_kind -( -StartKind -: -: -Anchored -) +[ +" +libstd +/ +" +" +libcore +/ +" +] +" +libcore +/ +char +/ +methods . -kind -( -Some +rs +" +& +[ ( -AhoCorasickKind -: -: -NoncontiguousNFA -) +1 +0 +8 ) -; -} +] ) -; -testconfig +t ! ( -anchored -search_standard_anchored_nfa_contig_default -AC_STANDARD_ANCHORED_NON_OVERLAPPING -Standard -| -b -: +regression050 & -mut -AhoCorasickBuilder -| -{ -b -. -start_kind -( -StartKind -: -: -Anchored -) -. -kind -( -Some +[ +" +\ +x00 +\ +x00 +\ +x01 +" +" +\ +x00 +\ +x00 +\ +x00 +" +] +" +\ +x00 +\ +x00 +\ +x00 +" +& +[ ( -AhoCorasickKind -: -: -ContiguousNFA -) +1 +0 +3 ) -; -} +] ) -; -testconfig +t ! ( -anchored -search_standard_anchored_dfa_default -AC_STANDARD_ANCHORED_NON_OVERLAPPING -Standard -| -b -: +regression060 & -mut -AhoCorasickBuilder -| -{ -b -. -start_kind -( -StartKind -: -: -Anchored -) -. -kind -( -Some +[ +" +\ +x00 +\ +x00 +\ +x00 +" +" +\ +x00 +\ +x00 +\ +x01 +" +] +" +\ +x00 +\ +x00 +\ +x00 +" +& +[ ( -AhoCorasickKind -: -: -DFA -) +0 +0 +3 ) -; -} +] ) +] ; -testconfig +macro_rules ! -( -anchored -search_standard_anchored_dfa_start_both -AC_STANDARD_ANCHORED_NON_OVERLAPPING -Standard -| -b -: -& -mut -AhoCorasickBuilder -| +testconfig { -b -. -start_kind ( -StartKind +overlapping +name : +ident +collection : -Both -) -. +expr kind -( -Some -( -AhoCorasickKind : +ident +with : -DFA -) +expr ) -; -} += +> +{ +# +[ +test +] +fn +name +( ) -; -testconfig -! +{ +run_search_tests ( -anchored -search_leftmost_first_anchored_default -AC_LEFTMOST_FIRST_ANCHORED -LeftmostFirst +collection | -b -: -& -mut -AhoCorasickBuilder +test | { -b -. -start_kind -( -StartKind +let +mut +builder += +AhoCorasickBuilder : : -Anchored -) -; -} +new +( ) ; -testconfig -! +with ( -anchored -search_leftmost_first_anchored_nfa_noncontig_default -AC_LEFTMOST_FIRST_ANCHORED -LeftmostFirst -| -b -: & mut -AhoCorasickBuilder -| -{ -b +builder +) +; +builder . -start_kind +match_kind ( -StartKind +MatchKind : : -Anchored +kind ) . -kind -( -Some +build ( -AhoCorasickKind -: -: -NoncontiguousNFA -) -) -; -} +test +. +patterns ) -; -testconfig -! -( -anchored -search_leftmost_first_anchored_nfa_contig_default -AC_LEFTMOST_FIRST_ANCHORED -LeftmostFirst -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b . -start_kind +find_overlapping_iter ( -StartKind -: -: -Anchored +test +. +haystack ) . -kind -( -Some +collect ( -AhoCorasickKind -: -: -ContiguousNFA ) +} ) ; } -) +} ; -testconfig -! -( -anchored -search_leftmost_first_anchored_dfa_default -AC_LEFTMOST_FIRST_ANCHORED -LeftmostFirst -| -b -: -& -mut -AhoCorasickBuilder -| -{ -b -. -start_kind ( -StartKind +stream +name : +ident +collection : -Anchored -) -. +expr kind -( -Some -( -AhoCorasickKind : +ident +with : -DFA -) +expr ) -; -} += +> +{ +# +[ +test +] +fn +name +( ) -; -testconfig -! +{ +run_search_tests ( -anchored -search_leftmost_first_anchored_dfa_start_both -AC_LEFTMOST_FIRST_ANCHORED -LeftmostFirst +collection | -b -: -& -mut -AhoCorasickBuilder +test | { -b -. -start_kind -( -StartKind +let +buf += +io : : -Both -) -. -kind -( -Some -( -AhoCorasickKind +BufReader : : -DFA +with_capacity +( +1 +test +. +haystack +. +as_bytes +( ) ) ; -} +let +mut +builder += +AhoCorasickBuilder +: +: +new +( ) ; -testconfig -! +with ( -anchored -search_leftmost_longest_anchored_default -AC_LEFTMOST_LONGEST_ANCHORED -LeftmostLongest -| -b -: & mut -AhoCorasickBuilder -| -{ -b +builder +) +; +builder . -start_kind +match_kind ( -StartKind +MatchKind : : -Anchored +kind ) -; -} +. +build +( +test +. +patterns ) -; -testconfig -! +. +stream_find_iter +( +buf +) +. +map ( -anchored -search_leftmost_longest_anchored_nfa_noncontig_default -AC_LEFTMOST_LONGEST_ANCHORED -LeftmostLongest | -b -: -& -mut -AhoCorasickBuilder +result | -{ -b +result . -start_kind +unwrap ( -StartKind -: -: -Anchored +) ) . -kind -( -Some +collect ( -AhoCorasickKind -: -: -NoncontiguousNFA ) +} ) ; } -) +} ; -testconfig -! ( -anchored -search_leftmost_longest_anchored_nfa_contig_default -AC_LEFTMOST_LONGEST_ANCHORED -LeftmostLongest -| -b +name : -& -mut -AhoCorasickBuilder -| -{ -b -. -start_kind -( -StartKind +ident +collection +: +expr +kind : +ident +with : -Anchored +expr ) -. -kind += +> +{ +# +[ +test +] +fn +name ( -Some +) +{ +run_search_tests ( -AhoCorasickKind +collection +| +test +| +{ +let +mut +builder += +AhoCorasickBuilder : : -ContiguousNFA -) -) -; -} +new +( ) ; -testconfig -! +with ( -anchored -search_leftmost_longest_anchored_dfa_default -AC_LEFTMOST_LONGEST_ANCHORED -LeftmostLongest -| -b -: & mut -AhoCorasickBuilder -| -{ -b +builder +) +; +builder . -start_kind +match_kind ( -StartKind +MatchKind : : -Anchored +kind ) . -kind +build ( -Some +test +. +patterns +) +. +find_iter ( -AhoCorasickKind -: -: -DFA +test +. +haystack ) +. +collect +( ) -; } ) ; -testconfig +} +} +; +} +macro_rules ! -( -anchored -search_leftmost_longest_anchored_dfa_start_both -AC_LEFTMOST_LONGEST_ANCHORED -LeftmostLongest -| -b -: -& -mut -AhoCorasickBuilder -| +testcombo { -b -. -start_kind ( -StartKind +name : +ident +collection : -Both -) -. +expr kind -( -Some -( -AhoCorasickKind : -: -DFA -) -) -; -} +ident ) += +> +{ +mod +name +{ +use +super +: +: +* ; testconfig ! ( -acasei_standard_default -& -[ -ASCII_CASE_INSENSITIVE -] -Standard +nfa_default +collection +kind | -b -: -& -mut -AhoCorasickBuilder +_ | -{ -b -. -prefilter -( -false -) -. -ascii_case_insensitive ( -true ) -; -} ) ; testconfig ! ( -acasei_standard_nfa_noncontig_default -& -[ -ASCII_CASE_INSENSITIVE -] -Standard +nfa_no_prefilter +collection +kind | b : @@ -9055,26 +7324,10 @@ AhoCorasickBuilder { b . -kind -( -Some -( -AhoCorasickKind -: -: -NoncontiguousNFA -) -) -. prefilter ( false ) -. -ascii_case_insensitive -( -true -) ; } ) @@ -9082,12 +7335,9 @@ true testconfig ! ( -acasei_standard_nfa_contig_default -& -[ -ASCII_CASE_INSENSITIVE -] -Standard +nfa_all_sparse +collection +kind | b : @@ -9098,25 +7348,9 @@ AhoCorasickBuilder { b . -kind -( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) -) -. -prefilter -( -false -) -. -ascii_case_insensitive +dense_depth ( -true +0 ) ; } @@ -9125,13 +7359,9 @@ true testconfig ! ( -acasei_standard_dfa_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -] -Standard +nfa_all_dense +collection +kind | b : @@ -9142,20 +7372,12 @@ AhoCorasickBuilder { b . -kind -( -Some +dense_depth ( -AhoCorasickKind +usize : : -DFA -) -) -. -ascii_case_insensitive -( -true +MAX ) ; } @@ -9164,14 +7386,9 @@ true testconfig ! ( -overlapping -acasei_standard_overlapping_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_OVERLAPPING -] -Standard +dfa_default +collection +kind | b : @@ -9182,7 +7399,7 @@ AhoCorasickBuilder { b . -ascii_case_insensitive +dfa ( true ) @@ -9190,17 +7407,12 @@ true } ) ; -testconfig -! -( -overlapping -acasei_standard_overlapping_nfa_noncontig_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_OVERLAPPING -] -Standard +testconfig +! +( +dfa_no_prefilter +collection +kind | b : @@ -9211,20 +7423,14 @@ AhoCorasickBuilder { b . -kind -( -Some +dfa ( -AhoCorasickKind -: -: -NoncontiguousNFA -) +true ) . -ascii_case_insensitive +prefilter ( -true +false ) ; } @@ -9233,14 +7439,9 @@ true testconfig ! ( -overlapping -acasei_standard_overlapping_nfa_contig_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_OVERLAPPING -] -Standard +dfa_all_sparse +collection +kind | b : @@ -9251,20 +7452,14 @@ AhoCorasickBuilder { b . -kind +dfa ( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) +true ) . -ascii_case_insensitive +dense_depth ( -true +0 ) ; } @@ -9273,14 +7468,9 @@ true testconfig ! ( -overlapping -acasei_standard_overlapping_dfa_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_OVERLAPPING -] -Standard +dfa_all_dense +collection +kind | b : @@ -9291,20 +7481,17 @@ AhoCorasickBuilder { b . -kind +dfa ( -Some -( -AhoCorasickKind -: -: -DFA -) +true ) . -ascii_case_insensitive +dense_depth ( -true +usize +: +: +MAX ) ; } @@ -9313,13 +7500,9 @@ true testconfig ! ( -acasei_leftmost_first_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -] -LeftmostFirst +dfa_no_byte_class +collection +kind | b : @@ -9328,12 +7511,35 @@ mut AhoCorasickBuilder | { +/ +/ +TODO +: +remove +tests +when +option +is +removed +. +# +[ +allow +( +deprecated +) +] b . -ascii_case_insensitive +dfa ( true ) +. +byte_classes +( +false +) ; } ) @@ -9341,13 +7547,9 @@ true testconfig ! ( -acasei_leftmost_first_nfa_noncontig_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -] -LeftmostFirst +dfa_no_premultiply +collection +kind | b : @@ -9356,23 +7558,35 @@ mut AhoCorasickBuilder | { -b +/ +/ +TODO +: +remove +tests +when +option +is +removed . -kind -( -Some +# +[ +allow ( -AhoCorasickKind -: -: -NoncontiguousNFA -) +deprecated ) +] +b . -ascii_case_insensitive +dfa ( true ) +. +premultiply +( +false +) ; } ) @@ -9380,13 +7594,9 @@ true testconfig ! ( -acasei_leftmost_first_nfa_contig_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -] -LeftmostFirst +dfa_no_byte_class_no_premultiply +collection +kind | b : @@ -9395,37 +7605,93 @@ mut AhoCorasickBuilder | { -b +/ +/ +TODO +: +remove +tests +when +options +are +removed . -kind +# +[ +allow ( -Some +deprecated +) +] +b +. +dfa ( -AhoCorasickKind -: -: -ContiguousNFA +true ) +. +byte_classes +( +false ) . -ascii_case_insensitive +premultiply ( -true +false ) ; } ) ; -testconfig +} +} +; +} +testcombo ! ( -acasei_leftmost_first_dfa_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -] +search_leftmost_longest +AC_LEFTMOST_LONGEST +LeftmostLongest +) +; +testcombo +! +( +search_leftmost_first +AC_LEFTMOST_FIRST LeftmostFirst +) +; +testcombo +! +( +search_standard_nonoverlapping +AC_STANDARD_NON_OVERLAPPING +Standard +) +; +testconfig +! +( +overlapping +search_standard_overlapping_nfa_default +AC_STANDARD_OVERLAPPING +Standard +| +_ +| +( +) +) +; +testconfig +! +( +overlapping +search_standard_overlapping_nfa_all_sparse +AC_STANDARD_OVERLAPPING +Standard | b : @@ -9436,20 +7702,9 @@ AhoCorasickBuilder { b . -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -ascii_case_insensitive +dense_depth ( -true +0 ) ; } @@ -9458,13 +7713,10 @@ true testconfig ! ( -acasei_leftmost_longest_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -] -LeftmostLongest +overlapping +search_standard_overlapping_nfa_all_dense +AC_STANDARD_OVERLAPPING +Standard | b : @@ -9475,9 +7727,12 @@ AhoCorasickBuilder { b . -ascii_case_insensitive +dense_depth ( -true +usize +: +: +MAX ) ; } @@ -9486,13 +7741,10 @@ true testconfig ! ( -acasei_leftmost_longest_nfa_noncontig_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -] -LeftmostLongest +overlapping +search_standard_overlapping_dfa_default +AC_STANDARD_OVERLAPPING +Standard | b : @@ -9503,18 +7755,7 @@ AhoCorasickBuilder { b . -kind -( -Some -( -AhoCorasickKind -: -: -NoncontiguousNFA -) -) -. -ascii_case_insensitive +dfa ( true ) @@ -9525,13 +7766,10 @@ true testconfig ! ( -acasei_leftmost_longest_nfa_contig_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -] -LeftmostLongest +overlapping +search_standard_overlapping_dfa_all_sparse +AC_STANDARD_OVERLAPPING +Standard | b : @@ -9542,20 +7780,14 @@ AhoCorasickBuilder { b . -kind +dfa ( -Some -( -AhoCorasickKind -: -: -ContiguousNFA -) +true ) . -ascii_case_insensitive +dense_depth ( -true +0 ) ; } @@ -9564,13 +7796,10 @@ true testconfig ! ( -acasei_leftmost_longest_dfa_default -& -[ -ASCII_CASE_INSENSITIVE -ASCII_CASE_INSENSITIVE_NON_OVERLAPPING -] -LeftmostLongest +overlapping +search_standard_overlapping_dfa_all_dense +AC_STANDARD_OVERLAPPING +Standard | b : @@ -9581,1048 +7810,1056 @@ AhoCorasickBuilder { b . -kind +dfa ( -Some -( -AhoCorasickKind -: -: -DFA -) +true ) . -ascii_case_insensitive +dense_depth ( -true +usize +: +: +MAX ) ; } ) ; -fn -run_search_tests -< -F -: -FnMut -( -& -SearchTest -) -- -> -Vec -< -Match -> -> +testconfig +! ( -which -: -TestCollection -mut -f -: -F -) -{ -let -get_match_triples -= +overlapping +search_standard_overlapping_dfa_no_byte_class +AC_STANDARD_OVERLAPPING +Standard | -matches +b : -Vec -< -Match -> +& +mut +AhoCorasickBuilder | -- -> -Vec -< -( -usize -usize -usize -) -> { -matches -. -into_iter -( -) -. -map -( -| -m -| -( -m -. -pattern -( -) -. -as_usize -( -) -m +/ +/ +TODO +: +remove +tests +when +option +is +removed . -start +# +[ +allow ( +deprecated ) -m +] +b . -end +dfa ( -) -) +true ) . -collect +byte_classes ( +false ) +; } +) ; -for -& -tests -in -which -{ -for -test -in -tests -{ -assert_eq +testconfig ! ( -test -. -matches -get_match_triples -( -f -( -& -test -) -) -. -as_slice -( -) -" -test -: -{ -} -patterns -: -{ -: -? -} -haystack +overlapping +search_standard_overlapping_dfa_no_premultiply +AC_STANDARD_OVERLAPPING +Standard +| +b : +& +mut +AhoCorasickBuilder +| { +/ +/ +TODO : -? -} -" -test -. -name -test -. -patterns -test +remove +tests +when +option +is +removed . -haystack -) -; -} -} -} # [ -cfg +allow ( -feature -= -" -std -" +deprecated ) ] -fn -run_stream_search_tests -< -F -: -FnMut -( -& -SearchTest -) -- -> -Vec -< -Match -> -> -( -which -: -TestCollection -mut -f -: -F -) -{ -let -get_match_triples -= -| -matches -: -Vec -< -Match -> -| -- -> -Vec -< +b +. +dfa ( -usize -usize -usize +true ) -> -{ -matches . -into_iter +premultiply ( +false ) -. -map +; +} +) +; +testconfig +! ( +overlapping +search_standard_overlapping_dfa_no_byte_class_no_premultiply +AC_STANDARD_OVERLAPPING +Standard | -m +b +: +& +mut +AhoCorasickBuilder | -( -m +{ +/ +/ +TODO +: +remove +tests +when +options +are +removed . -pattern +# +[ +allow ( +deprecated ) +] +b . -as_usize +dfa ( +true ) -m . -start +byte_classes ( +false ) -m . -end +premultiply ( +false ) +; +} ) -) -. -collect +; +testconfig +! +( +stream +search_standard_stream_nfa_default +AC_STANDARD_NON_OVERLAPPING +Standard +| +_ +| ( ) -} +) ; -for +testconfig +! +( +stream +search_standard_stream_dfa_default +AC_STANDARD_NON_OVERLAPPING +Standard +| +b +: & -tests -in -which -{ -for -test -in -tests +mut +AhoCorasickBuilder +| { -if -test -. -patterns +b . -iter +dfa ( +true ) -. -any +; +} +) +; +testconfig +! ( +search_standard_anchored_nfa_default +AC_STANDARD_ANCHORED_NON_OVERLAPPING +Standard | -p +b +: +& +mut +AhoCorasickBuilder | -p +{ +b . -is_empty +anchored ( +true ) -) -{ -continue ; } -assert_eq +) +; +testconfig ! ( -test +search_standard_anchored_dfa_default +AC_STANDARD_ANCHORED_NON_OVERLAPPING +Standard +| +b +: +& +mut +AhoCorasickBuilder +| +{ +b . -matches -get_match_triples -( -f +anchored ( -& -test -) +true ) . -as_slice +dfa ( +true ) -" -test -: -{ -} -patterns -: -{ -: -? -} -haystack -: -{ -: -? +; } -" -test -. -name -test -. -patterns -test -. -haystack ) ; -} -} -} -# -[ -test -] -fn -search_tests_have_unique_names +testconfig +! ( -) -{ -let -assert -= +overlapping +search_standard_anchored_overlapping_nfa_default +AC_STANDARD_ANCHORED_OVERLAPPING +Standard | -constname -tests +b : & -[ -SearchTest -] +mut +AhoCorasickBuilder | { -let -mut -seen -= -HashMap -: -: -new +b +. +anchored ( +true ) ; -for -( -i -test +} ) -in -tests +; +testconfig +! +( +overlapping +search_standard_anchored_overlapping_dfa_default +AC_STANDARD_ANCHORED_OVERLAPPING +Standard +| +b +: +& +mut +AhoCorasickBuilder +| +{ +b . -iter +anchored ( +true ) . -enumerate +dfa ( +true ) -{ -if +; +} +) +; +testconfig ! -seen -. -contains_key ( -test +search_leftmost_first_anchored_nfa_default +AC_LEFTMOST_FIRST_ANCHORED +LeftmostFirst +| +b +: +& +mut +AhoCorasickBuilder +| +{ +b . -name +anchored +( +true +) +; +} ) +; +testconfig +! +( +search_leftmost_first_anchored_dfa_default +AC_LEFTMOST_FIRST_ANCHORED +LeftmostFirst +| +b +: +& +mut +AhoCorasickBuilder +| { -seen +b . -insert +anchored ( -test +true +) . -name -i +dfa +( +true ) ; } -else -{ -let -last -= -seen -[ -test -. -name -] +) ; -panic +testconfig ! ( -" -{ -} -tests -have -duplicate -names -at -positions -{ -} -and +search_leftmost_longest_anchored_nfa_default +AC_LEFTMOST_LONGEST_ANCHORED +LeftmostLongest +| +b +: +& +mut +AhoCorasickBuilder +| { -} -" -constname -last -i +b +. +anchored +( +true ) ; } -} -} +) ; -assert +testconfig +! ( -" -BASICS -" -BASICS +search_leftmost_longest_anchored_dfa_default +AC_LEFTMOST_LONGEST_ANCHORED +LeftmostLongest +| +b +: +& +mut +AhoCorasickBuilder +| +{ +b +. +anchored +( +true ) -; -assert +. +dfa ( -" -STANDARD -" -STANDARD +true ) ; -assert -( -" -LEFTMOST -" -LEFTMOST +} ) ; -assert +testconfig +! ( -" -LEFTMOST_FIRST -" -LEFTMOST_FIRST +acasei_standard_nfa_default +& +[ +ASCII_CASE_INSENSITIVE +] +Standard +| +b +: +& +mut +AhoCorasickBuilder +| +{ +b +. +prefilter +( +false ) -; -assert +. +ascii_case_insensitive ( -" -LEFTMOST_LONGEST -" -LEFTMOST_LONGEST +true ) ; -assert -( -" -NON_OVERLAPPING -" -NON_OVERLAPPING +} ) ; -assert +testconfig +! ( -" -OVERLAPPING -" -OVERLAPPING +acasei_standard_dfa_default +& +[ +ASCII_CASE_INSENSITIVE +ASCII_CASE_INSENSITIVE_NON_OVERLAPPING +] +Standard +| +b +: +& +mut +AhoCorasickBuilder +| +{ +b +. +ascii_case_insensitive +( +true ) -; -assert +. +dfa ( -" -REGRESSION -" -REGRESSION +true ) ; } -# -[ -cfg -( -feature -= -" -std -" ) -] -# -[ -test -] -# +; +testconfig +! +( +overlapping +acasei_standard_overlapping_nfa_default +& [ -should_panic +ASCII_CASE_INSENSITIVE +ASCII_CASE_INSENSITIVE_OVERLAPPING ] -fn -stream_not_allowed_leftmost_first -( -) -{ -let -fsm -= -AhoCorasick -: +Standard +| +b : -builder +& +mut +AhoCorasickBuilder +| +{ +b +. +ascii_case_insensitive ( +true ) -. -match_kind +; +} +) +; +testconfig +! ( -MatchKind -: +overlapping +acasei_standard_overlapping_dfa_default +& +[ +ASCII_CASE_INSENSITIVE +ASCII_CASE_INSENSITIVE_OVERLAPPING +] +Standard +| +b : -LeftmostFirst -) +& +mut +AhoCorasickBuilder +| +{ +b . -build +ascii_case_insensitive ( -None -: -: -< -String -> +true ) . -unwrap +dfa ( +true +) +; +} ) ; -assert_eq +testconfig ! ( -fsm -. -stream_find_iter -( +acasei_leftmost_first_nfa_default & -b -" -" [ -. -. +ASCII_CASE_INSENSITIVE +ASCII_CASE_INSENSITIVE_NON_OVERLAPPING ] -) +LeftmostFirst +| +b +: +& +mut +AhoCorasickBuilder +| +{ +b . -count +ascii_case_insensitive ( -) -0 +true ) ; } -# -[ -cfg -( -feature -= -" -std -" ) -] -# -[ -test -] -# +; +testconfig +! +( +acasei_leftmost_first_dfa_default +& [ -should_panic +ASCII_CASE_INSENSITIVE +ASCII_CASE_INSENSITIVE_NON_OVERLAPPING ] -fn -stream_not_allowed_leftmost_longest -( -) -{ -let -fsm -= -AhoCorasick -: +LeftmostFirst +| +b : -builder +& +mut +AhoCorasickBuilder +| +{ +b +. +ascii_case_insensitive ( +true ) . -match_kind +dfa ( -MatchKind -: -: -LeftmostLongest +true ) -. -build +; +} +) +; +testconfig +! ( -None -: +acasei_leftmost_longest_nfa_default +& +[ +ASCII_CASE_INSENSITIVE +ASCII_CASE_INSENSITIVE_NON_OVERLAPPING +] +LeftmostLongest +| +b : -< -String -> -) +& +mut +AhoCorasickBuilder +| +{ +b . -unwrap +ascii_case_insensitive ( +true ) ; -assert_eq +} +) +; +testconfig ! ( -fsm -. -stream_find_iter -( +acasei_leftmost_longest_dfa_default & -b -" -" [ -. -. +ASCII_CASE_INSENSITIVE +ASCII_CASE_INSENSITIVE_NON_OVERLAPPING ] -) +LeftmostLongest +| +b +: +& +mut +AhoCorasickBuilder +| +{ +b . -count +ascii_case_insensitive ( +true ) -0 +. +dfa +( +true ) ; } -# -[ -test -] -# -[ -should_panic -] -fn -overlapping_not_allowed_leftmost_first -( ) -{ -let -fsm -= -AhoCorasick -: +; +fn +run_search_tests +< +F : -builder +FnMut ( +& +SearchTest ) -. -match_kind +- +> +Vec +< +Match +> +> ( -MatchKind +which : +TestCollection +mut +f : -LeftmostFirst +F ) -. -build -( -None -: +{ +let +get_match_triples += +| +matches : +Vec < -String +Match > -) -. -unwrap +| +- +> +Vec +< ( +usize +usize +usize ) -; -assert_eq -! -( -fsm +> +{ +matches . -find_overlapping_iter +into_iter ( -" -" ) . -count +map ( -) -0 -) -; -} -# -[ -test -] -# -[ -should_panic -] -fn -overlapping_not_allowed_leftmost_longest +| +m +| ( -) -{ -let -fsm -= -AhoCorasick -: -: -builder +m +. +pattern ( ) +m . -match_kind +start ( -MatchKind -: -: -LeftmostLongest ) +m . -build +end ( -None -: -: -< -String -> +) +) ) . -unwrap +collect ( ) +} ; +for +& +tests +in +which +{ +for +test +in +tests +{ assert_eq ! ( -fsm +test . -find_overlapping_iter +matches +get_match_triples ( -" -" +f +( +& +test +) ) . -count +as_slice ( ) -0 +" +test +: +{ +} +patterns +: +{ +: +? +} +haystack +: +{ +: +? +} +" +test +. +name +test +. +patterns +test +. +haystack ) ; } +} +} # [ test ] fn -anchored_not_allowed_even_if_technically_available +search_tests_have_unique_names ( ) { let -ac +assert = -AhoCorasick -: +| +constname +tests : -builder -( -) -. -kind -( -Some -( -AhoCorasickKind +& +[ +SearchTest +] +| +{ +let +mut +seen += +HashMap : : -NoncontiguousNFA -) +new +( ) -. -start_kind +; +for ( -StartKind -: -: -Unanchored +i +test ) +in +tests . -build +iter ( -& -[ -" -foo -" -] ) . -unwrap +enumerate ( ) -; -assert +{ +if ! -( -ac +seen . -try_find -( -Input -: -: -new +contains_key ( -" -foo -" -) +test . -anchored -( -Anchored -: -: -Yes -) +name ) +{ +seen . -is_err +insert ( -) +test +. +name +i ) ; +} +else +{ let -ac +last = -AhoCorasick -: -: -builder -( -) +seen +[ +test . -kind -( -Some +name +] +; +panic +! ( -AhoCorasickKind -: -: -ContiguousNFA +" +{ +} +tests +have +duplicate +names +at +positions +{ +} +and +{ +} +" +constname +last +i ) +; +} +} +} +; +assert +( +" +BASICS +" +BASICS ) -. -start_kind +; +assert ( -StartKind -: -: -Unanchored +" +STANDARD +" +STANDARD ) -. -build +; +assert ( -& -[ " -foo +LEFTMOST " -] +LEFTMOST ) -. -unwrap +; +assert ( +" +LEFTMOST_FIRST +" +LEFTMOST_FIRST ) ; assert -! ( -ac -. -try_find +" +LEFTMOST_LONGEST +" +LEFTMOST_LONGEST +) +; +assert ( -Input -: -: -new +" +NON_OVERLAPPING +" +NON_OVERLAPPING +) +; +assert ( " -foo +OVERLAPPING " +OVERLAPPING ) -. -anchored +; +assert ( -Anchored -: -: -Yes -) +" +REGRESSION +" +REGRESSION ) -. -is_err +; +} +# +[ +test +] +# +[ +should_panic +] +fn +stream_not_allowed_leftmost_first ( ) -) -; +{ let -ac +fsm = -AhoCorasick +AhoCorasickBuilder : : -builder +new ( ) . -kind -( -Some +match_kind ( -AhoCorasickKind +MatchKind : : -DFA -) +LeftmostFirst ) . -start_kind +build ( -StartKind +None : : -Unanchored -) -. -build -( -& -[ -" -foo -" -] -) -. -unwrap -( +< +String +> ) ; -assert +assert_eq ! ( -ac +fsm . -try_find -( -Input -: -: -new +stream_find_iter ( +& +b " -foo " -) +[ . -anchored -( -Anchored -: -: -Yes -) +. +] ) . -is_err +count ( ) +0 ) ; } @@ -10630,231 +8867,182 @@ is_err [ test ] +# +[ +should_panic +] fn -unanchored_not_allowed_even_if_technically_available +stream_not_allowed_leftmost_longest ( ) { let -ac +fsm = -AhoCorasick +AhoCorasickBuilder : : -builder +new ( ) . -kind -( -Some +match_kind ( -AhoCorasickKind +MatchKind : : -NoncontiguousNFA -) +LeftmostLongest ) . -start_kind +build ( -StartKind +None : : -Anchored -) -. -build -( -& -[ -" -foo -" -] -) -. -unwrap -( +< +String +> ) ; -assert +assert_eq ! ( -ac +fsm . -try_find -( -Input -: -: -new +stream_find_iter ( +& +b " -foo " -) +[ . -anchored -( -Anchored -: -: -No -) +. +] ) . -is_err +count ( ) +0 ) ; +} +# +[ +test +] +# +[ +should_panic +] +fn +overlapping_not_allowed_leftmost_first +( +) +{ let -ac +fsm = -AhoCorasick +AhoCorasickBuilder : : -builder +new ( ) . -kind -( -Some +match_kind ( -AhoCorasickKind +MatchKind : : -ContiguousNFA -) +LeftmostFirst ) . -start_kind +build ( -StartKind +None : : -Anchored -) -. -build -( -& -[ -" -foo -" -] -) -. -unwrap -( +< +String +> ) ; -assert +assert_eq ! ( -ac +fsm . -try_find -( -Input -: -: -new +find_overlapping_iter ( " -foo " ) . -anchored +count ( -Anchored -: -: -No ) +0 ) -. -is_err +; +} +# +[ +test +] +# +[ +should_panic +] +fn +overlapping_not_allowed_leftmost_longest ( ) -) -; +{ let -ac +fsm = -AhoCorasick -: -: -builder -( -) -. -kind -( -Some -( -AhoCorasickKind -: -: -DFA -) -) -. -start_kind -( -StartKind +AhoCorasickBuilder : : -Anchored -) -. -build -( -& -[ -" -foo -" -] -) -. -unwrap +new ( ) -; -assert -! -( -ac . -try_find +match_kind ( -Input +MatchKind : : -new -( -" -foo -" +LeftmostLongest ) . -anchored +build ( -Anchored +None : : -No +< +String +> ) +; +assert_eq +! +( +fsm +. +find_overlapping_iter +( +" +" ) . -is_err +count ( ) +0 ) ; } @@ -10863,88 +9051,151 @@ is_err test ] fn -prefilter_stays_in_bounds +state_id_too_small ( ) { let -ac +mut +patterns = -AhoCorasick -: -: -builder +vec +! +[ +] +; +for +c1 +in ( +b +' +a +' +. +. +b +' +z +' ) . -match_kind +map ( -MatchKind -: -: -LeftmostFirst +| +b +| +b +as +char ) +{ +for +c2 +in +( +b +' +a +' . -build +. +b +' +z +' +) +. +map ( -& -[ -" -sam -" -" -frodo -" -" -pippin -" -" -merry -" -" -gandalf -" -" -sauron -" -] +| +b +| +b +as +char +) +{ +for +c3 +in +( +b +' +a +' +. +. +b +' +z +' ) . -unwrap +map +( +| +b +| +b +as +char +) +{ +patterns +. +push ( +format +! +( +" +{ +} +{ +} +{ +} +" +c1 +c2 +c3 +) ) ; +} +} +} let -haystack +result = -" -foo -gandalf -" -; -assert_eq -! -( -None -ac -. -find -( -Input +AhoCorasickBuilder : : new ( -haystack ) . -range +build_with_size +: +: +< +u8 +_ +_ +> ( -0 -. -. -10 +& +patterns ) +; +assert +! +( +result +. +is_err +( ) ) ; @@ -10961,10 +9212,10 @@ regression_ascii_case_insensitive_no_exponential let ac = -AhoCorasick +AhoCorasickBuilder : : -builder +new ( ) . @@ -10987,10 +9238,6 @@ Vol01 " ] ) -. -unwrap -( -) ; assert ! @@ -11030,7 +9277,7 @@ ac AhoCorasick : : -new +new_auto_configured ( & [ @@ -11046,10 +9293,6 @@ x " ] ) -. -unwrap -( -) ; assert ! @@ -11077,6 +9320,12 @@ regression_case_insensitive_prefilter ( ) { +use +crate +: +: +AhoCorasickBuilder +; for c in @@ -11151,10 +9400,10 @@ to_uppercase let ac = -AhoCorasick +AhoCorasickBuilder : : -builder +new ( ) . @@ -11176,10 +9425,6 @@ build needle ] ) -. -unwrap -( -) ; assert_eq ! @@ -11231,17 +9476,6 @@ ac } # [ -cfg -( -feature -= -" -std -" -) -] -# -[ test ] fn @@ -11278,7 +9512,7 @@ BEGIN : usize = -65_535 +8191 ; # [ @@ -11315,6 +9549,8 @@ u8 ) - > +: +: std : : @@ -11537,6 +9773,8 @@ run ) - > +: +: std : : @@ -11552,16 +9790,11 @@ Result let aut = -AhoCorasick +AhoCorasickBuilder : : -builder -( -) -. -byte_classes +new ( -false ) . build @@ -11572,18 +9805,11 @@ build MAGIC ] ) -. -unwrap -( -) ; let mut buf = -alloc -: -: vec ! [ @@ -11631,24 +9857,12 @@ let mut file = -std -: -: -io -: -: -BufReader -: -: -new -( R : : default ( ) -) ; let begin diff --git a/third_party/rust/aho-corasick/src/transducer.rs b/third_party/rust/aho-corasick/src/transducer.rs deleted file mode 100644 index a32a5342b6066..0000000000000 --- a/third_party/rust/aho-corasick/src/transducer.rs +++ /dev/null @@ -1,1191 +0,0 @@ -use -crate -: -: -{ -automaton -: -: -{ -Automaton -StateID -} -Anchored -as -AcAnchored -Input -MatchError -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Unanchored -< -A -> -( -A -) -; -impl -< -A -: -Automaton -> -Unanchored -< -A -> -{ -pub -fn -new -( -aut -: -A -) -- -> -Result -< -Unanchored -< -A -> -MatchError -> -{ -let -input -= -Input -: -: -new -( -" -" -) -. -anchored -( -AcAnchored -: -: -No -) -; -let -_ -= -aut -. -start_state -( -& -input -) -? -; -Ok -( -Unanchored -( -aut -) -) -} -pub -fn -as_ref -( -& -self -) -- -> -& -A -{ -& -self -. -0 -} -pub -fn -into_inner -( -self -) -- -> -A -{ -self -. -0 -} -} -impl -< -A -: -Automaton -> -fst -: -: -Automaton -for -Unanchored -< -A -> -{ -type -State -= -StateID -; -# -[ -inline -] -fn -start -( -& -self -) -- -> -StateID -{ -let -input -= -Input -: -: -new -( -" -" -) -. -anchored -( -AcAnchored -: -: -No -) -; -self -. -0 -. -start_state -( -& -input -) -. -expect -( -" -support -for -unanchored -searches -" -) -} -# -[ -inline -] -fn -is_match -( -& -self -state -: -& -StateID -) -- -> -bool -{ -self -. -0 -. -is_match -( -* -state -) -} -# -[ -inline -] -fn -accept -( -& -self -state -: -& -StateID -byte -: -u8 -) -- -> -StateID -{ -if -fst -: -: -Automaton -: -: -is_match -( -self -state -) -{ -return -* -state -; -} -self -. -0 -. -next_state -( -AcAnchored -: -: -No -* -state -byte -) -} -# -[ -inline -] -fn -can_match -( -& -self -state -: -& -StateID -) -- -> -bool -{ -! -self -. -0 -. -is_dead -( -* -state -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Anchored -< -A -> -( -A -) -; -impl -< -A -: -Automaton -> -Anchored -< -A -> -{ -pub -fn -new -( -aut -: -A -) -- -> -Result -< -Anchored -< -A -> -MatchError -> -{ -let -input -= -Input -: -: -new -( -" -" -) -. -anchored -( -AcAnchored -: -: -Yes -) -; -let -_ -= -aut -. -start_state -( -& -input -) -? -; -Ok -( -Anchored -( -aut -) -) -} -pub -fn -as_ref -( -& -self -) -- -> -& -A -{ -& -self -. -0 -} -pub -fn -into_inner -( -self -) -- -> -A -{ -self -. -0 -} -} -impl -< -A -: -Automaton -> -fst -: -: -Automaton -for -Anchored -< -A -> -{ -type -State -= -StateID -; -# -[ -inline -] -fn -start -( -& -self -) -- -> -StateID -{ -let -input -= -Input -: -: -new -( -" -" -) -. -anchored -( -AcAnchored -: -: -Yes -) -; -self -. -0 -. -start_state -( -& -input -) -. -expect -( -" -support -for -unanchored -searches -" -) -} -# -[ -inline -] -fn -is_match -( -& -self -state -: -& -StateID -) -- -> -bool -{ -self -. -0 -. -is_match -( -* -state -) -} -# -[ -inline -] -fn -accept -( -& -self -state -: -& -StateID -byte -: -u8 -) -- -> -StateID -{ -if -fst -: -: -Automaton -: -: -is_match -( -self -state -) -{ -return -* -state -; -} -self -. -0 -. -next_state -( -AcAnchored -: -: -Yes -* -state -byte -) -} -# -[ -inline -] -fn -can_match -( -& -self -state -: -& -StateID -) -- -> -bool -{ -! -self -. -0 -. -is_dead -( -* -state -) -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -alloc -: -: -{ -string -: -: -String -vec -vec -: -: -Vec -} -; -use -fst -: -: -{ -Automaton -IntoStreamer -Set -Streamer -} -; -use -crate -: -: -{ -dfa -: -: -DFA -nfa -: -: -{ -contiguous -noncontiguous -} -StartKind -} -; -use -super -: -: -* -; -fn -search -< -A -: -Automaton -D -: -AsRef -< -[ -u8 -] -> -> -( -set -: -& -Set -< -D -> -aut -: -A -) -- -> -Vec -< -String -> -{ -let -mut -stream -= -set -. -search -( -aut -) -. -into_stream -( -) -; -let -mut -results -= -vec -! -[ -] -; -while -let -Some -( -key -) -= -stream -. -next -( -) -{ -results -. -push -( -String -: -: -from -( -core -: -: -str -: -: -from_utf8 -( -key -) -. -unwrap -( -) -) -) -; -} -results -} -# -[ -test -] -fn -unanchored -( -) -{ -let -set -= -Set -: -: -from_iter -( -& -[ -" -a -" -" -bar -" -" -baz -" -" -wat -" -" -xba -" -" -xbax -" -" -z -" -] -) -. -unwrap -( -) -; -let -patterns -= -vec -! -[ -" -baz -" -" -bax -" -] -; -let -expected -= -vec -! -[ -" -baz -" -" -xbax -" -] -; -let -aut -= -Unanchored -( -noncontiguous -: -: -NFA -: -: -new -( -& -patterns -) -. -unwrap -( -) -) -; -let -got -= -search -( -& -set -& -aut -) -; -assert_eq -! -( -got -expected -) -; -let -aut -= -Unanchored -( -contiguous -: -: -NFA -: -: -new -( -& -patterns -) -. -unwrap -( -) -) -; -let -got -= -search -( -& -set -& -aut -) -; -assert_eq -! -( -got -expected -) -; -let -aut -= -Unanchored -( -DFA -: -: -new -( -& -patterns -) -. -unwrap -( -) -) -; -let -got -= -search -( -& -set -& -aut -) -; -assert_eq -! -( -got -expected -) -; -} -# -[ -test -] -fn -anchored -( -) -{ -let -set -= -Set -: -: -from_iter -( -& -[ -" -a -" -" -bar -" -" -baz -" -" -wat -" -" -xba -" -" -xbax -" -" -z -" -] -) -. -unwrap -( -) -; -let -patterns -= -vec -! -[ -" -baz -" -" -bax -" -] -; -let -expected -= -vec -! -[ -" -baz -" -] -; -let -aut -= -Anchored -( -noncontiguous -: -: -NFA -: -: -new -( -& -patterns -) -. -unwrap -( -) -) -; -let -got -= -search -( -& -set -& -aut -) -; -assert_eq -! -( -got -expected -) -; -let -aut -= -Anchored -( -contiguous -: -: -NFA -: -: -new -( -& -patterns -) -. -unwrap -( -) -) -; -let -got -= -search -( -& -set -& -aut -) -; -assert_eq -! -( -got -expected -) -; -let -aut -= -Anchored -( -DFA -: -: -builder -( -) -. -start_kind -( -StartKind -: -: -Anchored -) -. -build -( -& -patterns -) -. -unwrap -( -) -) -; -let -got -= -search -( -& -set -& -aut -) -; -assert_eq -! -( -got -expected -) -; -} -} diff --git a/third_party/rust/aho-corasick/src/util/alphabet.rs b/third_party/rust/aho-corasick/src/util/alphabet.rs deleted file mode 100644 index 7e09650575e5e..0000000000000 --- a/third_party/rust/aho-corasick/src/util/alphabet.rs +++ /dev/null @@ -1,2485 +0,0 @@ -use -crate -: -: -util -: -: -int -: -: -Usize -; -# -[ -derive -( -Clone -Copy -) -] -pub -( -crate -) -struct -ByteClasses -( -[ -u8 -; -256 -] -) -; -impl -ByteClasses -{ -pub -( -crate -) -fn -empty -( -) -- -> -ByteClasses -{ -ByteClasses -( -[ -0 -; -256 -] -) -} -pub -( -crate -) -fn -singletons -( -) -- -> -ByteClasses -{ -let -mut -classes -= -ByteClasses -: -: -empty -( -) -; -for -b -in -0 -. -. -= -255 -{ -classes -. -set -( -b -b -) -; -} -classes -} -# -[ -inline -] -pub -( -crate -) -fn -set -( -& -mut -self -byte -: -u8 -class -: -u8 -) -{ -self -. -0 -[ -usize -: -: -from -( -byte -) -] -= -class -; -} -# -[ -inline -] -pub -( -crate -) -fn -get -( -& -self -byte -: -u8 -) -- -> -u8 -{ -self -. -0 -[ -usize -: -: -from -( -byte -) -] -} -# -[ -inline -] -pub -( -crate -) -fn -alphabet_len -( -& -self -) -- -> -usize -{ -usize -: -: -from -( -self -. -0 -[ -255 -] -) -+ -1 -} -pub -( -crate -) -fn -stride2 -( -& -self -) -- -> -usize -{ -let -zeros -= -self -. -alphabet_len -( -) -. -next_power_of_two -( -) -. -trailing_zeros -( -) -; -usize -: -: -try_from -( -zeros -) -. -unwrap -( -) -} -pub -( -crate -) -fn -stride -( -& -self -) -- -> -usize -{ -1 -< -< -self -. -stride2 -( -) -} -# -[ -inline -] -pub -( -crate -) -fn -is_singleton -( -& -self -) -- -> -bool -{ -self -. -alphabet_len -( -) -= -= -256 -} -pub -( -crate -) -fn -iter -( -& -self -) -- -> -ByteClassIter -{ -ByteClassIter -{ -it -: -0 -. -. -self -. -alphabet_len -( -) -} -} -pub -( -crate -) -fn -elements -( -& -self -class -: -u8 -) -- -> -ByteClassElements -{ -ByteClassElements -{ -classes -: -self -class -bytes -: -0 -. -. -= -255 -} -} -fn -element_ranges -( -& -self -class -: -u8 -) -- -> -ByteClassElementRanges -{ -ByteClassElementRanges -{ -elements -: -self -. -elements -( -class -) -range -: -None -} -} -} -impl -core -: -: -fmt -: -: -Debug -for -ByteClasses -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -if -self -. -is_singleton -( -) -{ -write -! -( -f -" -ByteClasses -( -< -one -- -class -- -per -- -byte -> -) -" -) -} -else -{ -write -! -( -f -" -ByteClasses -( -" -) -? -; -for -( -i -class -) -in -self -. -iter -( -) -. -enumerate -( -) -{ -if -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -write -! -( -f -" -{ -: -? -} -= -> -[ -" -class -) -? -; -for -( -start -end -) -in -self -. -element_ranges -( -class -) -{ -if -start -= -= -end -{ -write -! -( -f -" -{ -: -? -} -" -start -) -? -; -} -else -{ -write -! -( -f -" -{ -: -? -} -- -{ -: -? -} -" -start -end -) -? -; -} -} -write -! -( -f -" -] -" -) -? -; -} -write -! -( -f -" -) -" -) -} -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -ByteClassIter -{ -it -: -core -: -: -ops -: -: -Range -< -usize -> -} -impl -Iterator -for -ByteClassIter -{ -type -Item -= -u8 -; -fn -next -( -& -mut -self -) -- -> -Option -< -u8 -> -{ -self -. -it -. -next -( -) -. -map -( -| -class -| -class -. -as_u8 -( -) -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -ByteClassElements -< -' -a -> -{ -classes -: -& -' -a -ByteClasses -class -: -u8 -bytes -: -core -: -: -ops -: -: -RangeInclusive -< -u8 -> -} -impl -< -' -a -> -Iterator -for -ByteClassElements -< -' -a -> -{ -type -Item -= -u8 -; -fn -next -( -& -mut -self -) -- -> -Option -< -u8 -> -{ -while -let -Some -( -byte -) -= -self -. -bytes -. -next -( -) -{ -if -self -. -class -= -= -self -. -classes -. -get -( -byte -) -{ -return -Some -( -byte -) -; -} -} -None -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -ByteClassElementRanges -< -' -a -> -{ -elements -: -ByteClassElements -< -' -a -> -range -: -Option -< -( -u8 -u8 -) -> -} -impl -< -' -a -> -Iterator -for -ByteClassElementRanges -< -' -a -> -{ -type -Item -= -( -u8 -u8 -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -u8 -u8 -) -> -{ -loop -{ -let -element -= -match -self -. -elements -. -next -( -) -{ -None -= -> -return -self -. -range -. -take -( -) -Some -( -element -) -= -> -element -} -; -match -self -. -range -. -take -( -) -{ -None -= -> -{ -self -. -range -= -Some -( -( -element -element -) -) -; -} -Some -( -( -start -end -) -) -= -> -{ -if -usize -: -: -from -( -end -) -+ -1 -! -= -usize -: -: -from -( -element -) -{ -self -. -range -= -Some -( -( -element -element -) -) -; -return -Some -( -( -start -end -) -) -; -} -self -. -range -= -Some -( -( -start -element -) -) -; -} -} -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -ByteClassSet -( -ByteSet -) -; -impl -Default -for -ByteClassSet -{ -fn -default -( -) -- -> -ByteClassSet -{ -ByteClassSet -: -: -empty -( -) -} -} -impl -ByteClassSet -{ -pub -( -crate -) -fn -empty -( -) -- -> -Self -{ -ByteClassSet -( -ByteSet -: -: -empty -( -) -) -} -pub -( -crate -) -fn -set_range -( -& -mut -self -start -: -u8 -end -: -u8 -) -{ -debug_assert -! -( -start -< -= -end -) -; -if -start -> -0 -{ -self -. -0 -. -add -( -start -- -1 -) -; -} -self -. -0 -. -add -( -end -) -; -} -pub -( -crate -) -fn -byte_classes -( -& -self -) -- -> -ByteClasses -{ -let -mut -classes -= -ByteClasses -: -: -empty -( -) -; -let -mut -class -= -0u8 -; -let -mut -b -= -0u8 -; -loop -{ -classes -. -set -( -b -class -) -; -if -b -= -= -255 -{ -break -; -} -if -self -. -0 -. -contains -( -b -) -{ -class -= -class -. -checked_add -( -1 -) -. -unwrap -( -) -; -} -b -= -b -. -checked_add -( -1 -) -. -unwrap -( -) -; -} -classes -} -} -# -[ -derive -( -Clone -Copy -Debug -Default -Eq -PartialEq -) -] -pub -( -crate -) -struct -ByteSet -{ -bits -: -BitSet -} -# -[ -derive -( -Clone -Copy -Default -Eq -PartialEq -) -] -struct -BitSet -( -[ -u128 -; -2 -] -) -; -impl -ByteSet -{ -pub -( -crate -) -fn -empty -( -) -- -> -ByteSet -{ -ByteSet -{ -bits -: -BitSet -( -[ -0 -; -2 -] -) -} -} -pub -( -crate -) -fn -add -( -& -mut -self -byte -: -u8 -) -{ -let -bucket -= -byte -/ -128 -; -let -bit -= -byte -% -128 -; -self -. -bits -. -0 -[ -usize -: -: -from -( -bucket -) -] -| -= -1 -< -< -bit -; -} -pub -( -crate -) -fn -contains -( -& -self -byte -: -u8 -) -- -> -bool -{ -let -bucket -= -byte -/ -128 -; -let -bit -= -byte -% -128 -; -self -. -bits -. -0 -[ -usize -: -: -from -( -bucket -) -] -& -( -1 -< -< -bit -) -> -0 -} -} -impl -core -: -: -fmt -: -: -Debug -for -BitSet -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -let -mut -fmtd -= -f -. -debug_set -( -) -; -for -b -in -0u8 -. -. -= -255 -{ -if -( -ByteSet -{ -bits -: -* -self -} -) -. -contains -( -b -) -{ -fmtd -. -entry -( -& -b -) -; -} -} -fmtd -. -finish -( -) -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -super -: -: -* -; -# -[ -test -] -fn -byte_classes -( -) -{ -let -mut -set -= -ByteClassSet -: -: -empty -( -) -; -set -. -set_range -( -b -' -a -' -b -' -z -' -) -; -let -classes -= -set -. -byte_classes -( -) -; -assert_eq -! -( -classes -. -get -( -0 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -1 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -2 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -b -' -a -' -- -1 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -b -' -a -' -) -1 -) -; -assert_eq -! -( -classes -. -get -( -b -' -m -' -) -1 -) -; -assert_eq -! -( -classes -. -get -( -b -' -z -' -) -1 -) -; -assert_eq -! -( -classes -. -get -( -b -' -z -' -+ -1 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -254 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -255 -) -2 -) -; -let -mut -set -= -ByteClassSet -: -: -empty -( -) -; -set -. -set_range -( -0 -2 -) -; -set -. -set_range -( -4 -6 -) -; -let -classes -= -set -. -byte_classes -( -) -; -assert_eq -! -( -classes -. -get -( -0 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -1 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -2 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -3 -) -1 -) -; -assert_eq -! -( -classes -. -get -( -4 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -5 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -6 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -7 -) -3 -) -; -assert_eq -! -( -classes -. -get -( -255 -) -3 -) -; -} -# -[ -test -] -fn -full_byte_classes -( -) -{ -let -mut -set -= -ByteClassSet -: -: -empty -( -) -; -for -b -in -0u8 -. -. -= -255 -{ -set -. -set_range -( -b -b -) -; -} -assert_eq -! -( -set -. -byte_classes -( -) -. -alphabet_len -( -) -256 -) -; -} -# -[ -test -] -fn -elements_typical -( -) -{ -let -mut -set -= -ByteClassSet -: -: -empty -( -) -; -set -. -set_range -( -b -' -b -' -b -' -d -' -) -; -set -. -set_range -( -b -' -g -' -b -' -m -' -) -; -set -. -set_range -( -b -' -z -' -b -' -z -' -) -; -let -classes -= -set -. -byte_classes -( -) -; -assert_eq -! -( -classes -. -alphabet_len -( -) -7 -) -; -let -elements -= -classes -. -elements -( -0 -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -. -len -( -) -98 -) -; -assert_eq -! -( -elements -[ -0 -] -b -' -\ -x00 -' -) -; -assert_eq -! -( -elements -[ -97 -] -b -' -a -' -) -; -let -elements -= -classes -. -elements -( -1 -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -b -' -b -' -b -' -c -' -b -' -d -' -] -) -; -let -elements -= -classes -. -elements -( -2 -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -b -' -e -' -b -' -f -' -] -) -; -let -elements -= -classes -. -elements -( -3 -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -b -' -g -' -b -' -h -' -b -' -i -' -b -' -j -' -b -' -k -' -b -' -l -' -b -' -m -' -] -) -; -let -elements -= -classes -. -elements -( -4 -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -. -len -( -) -12 -) -; -assert_eq -! -( -elements -[ -0 -] -b -' -n -' -) -; -assert_eq -! -( -elements -[ -11 -] -b -' -y -' -) -; -let -elements -= -classes -. -elements -( -5 -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -b -' -z -' -] -) -; -let -elements -= -classes -. -elements -( -6 -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -. -len -( -) -133 -) -; -assert_eq -! -( -elements -[ -0 -] -b -' -\ -x7B -' -) -; -assert_eq -! -( -elements -[ -132 -] -b -' -\ -xFF -' -) -; -} -# -[ -test -] -fn -elements_singletons -( -) -{ -let -classes -= -ByteClasses -: -: -singletons -( -) -; -assert_eq -! -( -classes -. -alphabet_len -( -) -256 -) -; -let -elements -= -classes -. -elements -( -b -' -a -' -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -b -' -a -' -] -) -; -} -# -[ -test -] -fn -elements_empty -( -) -{ -let -classes -= -ByteClasses -: -: -empty -( -) -; -assert_eq -! -( -classes -. -alphabet_len -( -) -1 -) -; -let -elements -= -classes -. -elements -( -0 -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -. -len -( -) -256 -) -; -assert_eq -! -( -elements -[ -0 -] -b -' -\ -x00 -' -) -; -assert_eq -! -( -elements -[ -255 -] -b -' -\ -xFF -' -) -; -} -} diff --git a/third_party/rust/aho-corasick/src/util/debug.rs b/third_party/rust/aho-corasick/src/util/debug.rs deleted file mode 100644 index 1a08d6b35079f..0000000000000 --- a/third_party/rust/aho-corasick/src/util/debug.rs +++ /dev/null @@ -1,188 +0,0 @@ -pub -( -crate -) -struct -DebugByte -( -pub -( -crate -) -u8 -) -; -impl -core -: -: -fmt -: -: -Debug -for -DebugByte -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -if -self -. -0 -= -= -b -' -' -{ -return -write -! -( -f -" -' -' -" -) -; -} -let -mut -bytes -= -[ -0u8 -; -10 -] -; -let -mut -len -= -0 -; -for -( -i -mut -b -) -in -core -: -: -ascii -: -: -escape_default -( -self -. -0 -) -. -enumerate -( -) -{ -if -i -> -= -2 -& -& -b -' -a -' -< -= -b -& -& -b -< -= -b -' -f -' -{ -b -- -= -32 -; -} -bytes -[ -len -] -= -b -; -len -+ -= -1 -; -} -write -! -( -f -" -{ -} -" -core -: -: -str -: -: -from_utf8 -( -& -bytes -[ -. -. -len -] -) -. -unwrap -( -) -) -} -} diff --git a/third_party/rust/aho-corasick/src/util/error.rs b/third_party/rust/aho-corasick/src/util/error.rs deleted file mode 100644 index 0c0822dadf83a..0000000000000 --- a/third_party/rust/aho-corasick/src/util/error.rs +++ /dev/null @@ -1,806 +0,0 @@ -use -crate -: -: -util -: -: -{ -primitives -: -: -{ -PatternID -SmallIndex -} -search -: -: -MatchKind -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -BuildError -{ -kind -: -ErrorKind -} -# -[ -derive -( -Clone -Debug -) -] -enum -ErrorKind -{ -StateIDOverflow -{ -max -: -u64 -requested_max -: -u64 -} -PatternIDOverflow -{ -max -: -u64 -requested_max -: -u64 -} -PatternTooLong -{ -pattern -: -PatternID -len -: -usize -} -} -impl -BuildError -{ -pub -( -crate -) -fn -state_id_overflow -( -max -: -u64 -requested_max -: -u64 -) -- -> -BuildError -{ -BuildError -{ -kind -: -ErrorKind -: -: -StateIDOverflow -{ -max -requested_max -} -} -} -pub -( -crate -) -fn -pattern_id_overflow -( -max -: -u64 -requested_max -: -u64 -) -- -> -BuildError -{ -BuildError -{ -kind -: -ErrorKind -: -: -PatternIDOverflow -{ -max -requested_max -} -} -} -pub -( -crate -) -fn -pattern_too_long -( -pattern -: -PatternID -len -: -usize -) -- -> -BuildError -{ -BuildError -{ -kind -: -ErrorKind -: -: -PatternTooLong -{ -pattern -len -} -} -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -BuildError -{ -} -impl -core -: -: -fmt -: -: -Display -for -BuildError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -match -self -. -kind -{ -ErrorKind -: -: -StateIDOverflow -{ -max -requested_max -} -= -> -{ -write -! -( -f -" -state -identifier -overflow -: -failed -to -create -state -ID -\ -from -{ -} -which -exceeds -the -max -of -{ -} -" -requested_max -max -) -} -ErrorKind -: -: -PatternIDOverflow -{ -max -requested_max -} -= -> -{ -write -! -( -f -" -pattern -identifier -overflow -: -failed -to -create -pattern -ID -\ -from -{ -} -which -exceeds -the -max -of -{ -} -" -requested_max -max -) -} -ErrorKind -: -: -PatternTooLong -{ -pattern -len -} -= -> -{ -write -! -( -f -" -pattern -{ -} -with -length -{ -} -exceeds -\ -the -maximum -pattern -length -of -{ -} -" -pattern -. -as_usize -( -) -len -SmallIndex -: -: -MAX -. -as_usize -( -) -) -} -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -MatchError -( -alloc -: -: -boxed -: -: -Box -< -MatchErrorKind -> -) -; -impl -MatchError -{ -pub -fn -new -( -kind -: -MatchErrorKind -) -- -> -MatchError -{ -MatchError -( -alloc -: -: -boxed -: -: -Box -: -: -new -( -kind -) -) -} -pub -fn -kind -( -& -self -) -- -> -& -MatchErrorKind -{ -& -self -. -0 -} -pub -fn -invalid_input_anchored -( -) -- -> -MatchError -{ -MatchError -: -: -new -( -MatchErrorKind -: -: -InvalidInputAnchored -) -} -pub -fn -invalid_input_unanchored -( -) -- -> -MatchError -{ -MatchError -: -: -new -( -MatchErrorKind -: -: -InvalidInputUnanchored -) -} -pub -fn -unsupported_stream -( -got -: -MatchKind -) -- -> -MatchError -{ -MatchError -: -: -new -( -MatchErrorKind -: -: -UnsupportedStream -{ -got -} -) -} -pub -fn -unsupported_overlapping -( -got -: -MatchKind -) -- -> -MatchError -{ -MatchError -: -: -new -( -MatchErrorKind -: -: -UnsupportedOverlapping -{ -got -} -) -} -pub -fn -unsupported_empty -( -) -- -> -MatchError -{ -MatchError -: -: -new -( -MatchErrorKind -: -: -UnsupportedEmpty -) -} -} -# -[ -non_exhaustive -] -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -enum -MatchErrorKind -{ -InvalidInputAnchored -InvalidInputUnanchored -UnsupportedStream -{ -got -: -MatchKind -} -UnsupportedOverlapping -{ -got -: -MatchKind -} -UnsupportedEmpty -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -MatchError -{ -} -impl -core -: -: -fmt -: -: -Display -for -MatchError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -match -* -self -. -kind -( -) -{ -MatchErrorKind -: -: -InvalidInputAnchored -= -> -{ -write -! -( -f -" -anchored -searches -are -not -supported -or -enabled -" -) -} -MatchErrorKind -: -: -InvalidInputUnanchored -= -> -{ -write -! -( -f -" -unanchored -searches -are -not -supported -or -enabled -" -) -} -MatchErrorKind -: -: -UnsupportedStream -{ -got -} -= -> -{ -write -! -( -f -" -match -kind -{ -: -? -} -does -not -support -stream -searching -" -got -) -} -MatchErrorKind -: -: -UnsupportedOverlapping -{ -got -} -= -> -{ -write -! -( -f -" -match -kind -{ -: -? -} -does -not -support -overlapping -searches -" -got -) -} -MatchErrorKind -: -: -UnsupportedEmpty -= -> -{ -write -! -( -f -" -matching -with -an -empty -pattern -string -is -not -\ -supported -for -this -operation -" -) -} -} -} -} diff --git a/third_party/rust/aho-corasick/src/util/int.rs b/third_party/rust/aho-corasick/src/util/int.rs deleted file mode 100644 index 5b6e1629a57e5..0000000000000 --- a/third_party/rust/aho-corasick/src/util/int.rs +++ /dev/null @@ -1,1138 +0,0 @@ -pub -( -crate -) -trait -U8 -{ -fn -as_usize -( -self -) -- -> -usize -; -} -impl -U8 -for -u8 -{ -fn -as_usize -( -self -) -- -> -usize -{ -usize -: -: -from -( -self -) -} -} -pub -( -crate -) -trait -U16 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -low_u8 -( -self -) -- -> -u8 -; -fn -high_u8 -( -self -) -- -> -u8 -; -} -impl -U16 -for -u16 -{ -fn -as_usize -( -self -) -- -> -usize -{ -usize -: -: -from -( -self -) -} -fn -low_u8 -( -self -) -- -> -u8 -{ -self -as -u8 -} -fn -high_u8 -( -self -) -- -> -u8 -{ -( -self -> -> -8 -) -as -u8 -} -} -pub -( -crate -) -trait -U32 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -low_u8 -( -self -) -- -> -u8 -; -fn -low_u16 -( -self -) -- -> -u16 -; -fn -high_u16 -( -self -) -- -> -u16 -; -} -impl -U32 -for -u32 -{ -# -[ -inline -] -fn -as_usize -( -self -) -- -> -usize -{ -# -[ -cfg -( -debug_assertions -) -] -{ -usize -: -: -try_from -( -self -) -. -expect -( -" -u32 -overflowed -usize -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -usize -} -} -fn -low_u8 -( -self -) -- -> -u8 -{ -self -as -u8 -} -fn -low_u16 -( -self -) -- -> -u16 -{ -self -as -u16 -} -fn -high_u16 -( -self -) -- -> -u16 -{ -( -self -> -> -16 -) -as -u16 -} -} -pub -( -crate -) -trait -U64 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -low_u8 -( -self -) -- -> -u8 -; -fn -low_u16 -( -self -) -- -> -u16 -; -fn -low_u32 -( -self -) -- -> -u32 -; -fn -high_u32 -( -self -) -- -> -u32 -; -} -impl -U64 -for -u64 -{ -fn -as_usize -( -self -) -- -> -usize -{ -# -[ -cfg -( -debug_assertions -) -] -{ -usize -: -: -try_from -( -self -) -. -expect -( -" -u64 -overflowed -usize -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -usize -} -} -fn -low_u8 -( -self -) -- -> -u8 -{ -self -as -u8 -} -fn -low_u16 -( -self -) -- -> -u16 -{ -self -as -u16 -} -fn -low_u32 -( -self -) -- -> -u32 -{ -self -as -u32 -} -fn -high_u32 -( -self -) -- -> -u32 -{ -( -self -> -> -32 -) -as -u32 -} -} -pub -( -crate -) -trait -I8 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -to_bits -( -self -) -- -> -u8 -; -fn -from_bits -( -n -: -u8 -) -- -> -i8 -; -} -impl -I8 -for -i8 -{ -fn -as_usize -( -self -) -- -> -usize -{ -# -[ -cfg -( -debug_assertions -) -] -{ -usize -: -: -try_from -( -self -) -. -expect -( -" -i8 -overflowed -usize -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -usize -} -} -fn -to_bits -( -self -) -- -> -u8 -{ -self -as -u8 -} -fn -from_bits -( -n -: -u8 -) -- -> -i8 -{ -n -as -i8 -} -} -pub -( -crate -) -trait -I32 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -to_bits -( -self -) -- -> -u32 -; -fn -from_bits -( -n -: -u32 -) -- -> -i32 -; -} -impl -I32 -for -i32 -{ -fn -as_usize -( -self -) -- -> -usize -{ -# -[ -cfg -( -debug_assertions -) -] -{ -usize -: -: -try_from -( -self -) -. -expect -( -" -i32 -overflowed -usize -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -usize -} -} -fn -to_bits -( -self -) -- -> -u32 -{ -self -as -u32 -} -fn -from_bits -( -n -: -u32 -) -- -> -i32 -{ -n -as -i32 -} -} -pub -( -crate -) -trait -I64 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -to_bits -( -self -) -- -> -u64 -; -fn -from_bits -( -n -: -u64 -) -- -> -i64 -; -} -impl -I64 -for -i64 -{ -fn -as_usize -( -self -) -- -> -usize -{ -# -[ -cfg -( -debug_assertions -) -] -{ -usize -: -: -try_from -( -self -) -. -expect -( -" -i64 -overflowed -usize -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -usize -} -} -fn -to_bits -( -self -) -- -> -u64 -{ -self -as -u64 -} -fn -from_bits -( -n -: -u64 -) -- -> -i64 -{ -n -as -i64 -} -} -pub -( -crate -) -trait -Usize -{ -fn -as_u8 -( -self -) -- -> -u8 -; -fn -as_u16 -( -self -) -- -> -u16 -; -fn -as_u32 -( -self -) -- -> -u32 -; -fn -as_u64 -( -self -) -- -> -u64 -; -} -impl -Usize -for -usize -{ -fn -as_u8 -( -self -) -- -> -u8 -{ -# -[ -cfg -( -debug_assertions -) -] -{ -u8 -: -: -try_from -( -self -) -. -expect -( -" -usize -overflowed -u8 -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -u8 -} -} -fn -as_u16 -( -self -) -- -> -u16 -{ -# -[ -cfg -( -debug_assertions -) -] -{ -u16 -: -: -try_from -( -self -) -. -expect -( -" -usize -overflowed -u16 -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -u16 -} -} -fn -as_u32 -( -self -) -- -> -u32 -{ -# -[ -cfg -( -debug_assertions -) -] -{ -u32 -: -: -try_from -( -self -) -. -expect -( -" -usize -overflowed -u32 -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -u32 -} -} -fn -as_u64 -( -self -) -- -> -u64 -{ -# -[ -cfg -( -debug_assertions -) -] -{ -u64 -: -: -try_from -( -self -) -. -expect -( -" -usize -overflowed -u64 -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -u64 -} -} -} -pub -( -crate -) -trait -Pointer -{ -fn -as_usize -( -self -) -- -> -usize -; -} -impl -< -T -> -Pointer -for -* -const -T -{ -fn -as_usize -( -self -) -- -> -usize -{ -self -as -usize -} -} -pub -( -crate -) -trait -PointerMut -{ -fn -as_usize -( -self -) -- -> -usize -; -} -impl -< -T -> -PointerMut -for -* -mut -T -{ -fn -as_usize -( -self -) -- -> -usize -{ -self -as -usize -} -} diff --git a/third_party/rust/aho-corasick/src/util/mod.rs b/third_party/rust/aho-corasick/src/util/mod.rs deleted file mode 100644 index 9587fd58b7993..0000000000000 --- a/third_party/rust/aho-corasick/src/util/mod.rs +++ /dev/null @@ -1,88 +0,0 @@ -pub -( -crate -) -mod -alphabet -; -# -[ -cfg -( -feature -= -" -std -" -) -] -pub -( -crate -) -mod -buffer -; -pub -( -crate -) -mod -byte_frequencies -; -pub -( -crate -) -mod -debug -; -pub -( -crate -) -mod -error -; -pub -( -crate -) -mod -int -; -pub -( -crate -) -mod -prefilter -; -pub -( -crate -) -mod -primitives -; -pub -( -crate -) -mod -remapper -; -pub -( -crate -) -mod -search -; -pub -( -crate -) -mod -special -; diff --git a/third_party/rust/aho-corasick/src/util/primitives.rs b/third_party/rust/aho-corasick/src/util/primitives.rs deleted file mode 100644 index 5df43bc0fe9fb..0000000000000 --- a/third_party/rust/aho-corasick/src/util/primitives.rs +++ /dev/null @@ -1,3716 +0,0 @@ -# -! -[ -allow -( -dead_code -) -] -use -alloc -: -: -vec -: -: -Vec -; -use -crate -: -: -util -: -: -int -: -: -{ -Usize -U16 -U32 -U64 -} -; -# -[ -derive -( -Clone -Copy -Debug -Default -Eq -Hash -PartialEq -PartialOrd -Ord -) -] -# -[ -repr -( -transparent -) -] -pub -( -crate -) -struct -SmallIndex -( -u32 -) -; -impl -SmallIndex -{ -# -[ -cfg -( -any -( -target_pointer_width -= -" -32 -" -target_pointer_width -= -" -64 -" -) -) -] -pub -const -MAX -: -SmallIndex -= -SmallIndex -: -: -new_unchecked -( -core -: -: -i32 -: -: -MAX -as -usize -- -1 -) -; -# -[ -cfg -( -target_pointer_width -= -" -16 -" -) -] -pub -const -MAX -: -SmallIndex -= -SmallIndex -: -: -new_unchecked -( -core -: -: -isize -: -: -MAX -- -1 -) -; -pub -const -LIMIT -: -usize -= -SmallIndex -: -: -MAX -. -as_usize -( -) -+ -1 -; -pub -const -ZERO -: -SmallIndex -= -SmallIndex -: -: -new_unchecked -( -0 -) -; -pub -const -SIZE -: -usize -= -core -: -: -mem -: -: -size_of -: -: -< -SmallIndex -> -( -) -; -# -[ -inline -] -pub -fn -new -( -index -: -usize -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -SmallIndex -: -: -try_from -( -index -) -} -# -[ -inline -] -pub -const -fn -new_unchecked -( -index -: -usize -) -- -> -SmallIndex -{ -SmallIndex -: -: -from_u32_unchecked -( -index -as -u32 -) -} -# -[ -inline -] -pub -const -fn -from_u32_unchecked -( -index -: -u32 -) -- -> -SmallIndex -{ -SmallIndex -( -index -) -} -# -[ -inline -] -pub -fn -must -( -index -: -usize -) -- -> -SmallIndex -{ -SmallIndex -: -: -new -( -index -) -. -expect -( -" -invalid -small -index -" -) -} -# -[ -inline -] -pub -const -fn -as_usize -( -& -self -) -- -> -usize -{ -self -. -0 -as -usize -} -# -[ -inline -] -pub -const -fn -as_u64 -( -& -self -) -- -> -u64 -{ -self -. -0 -as -u64 -} -# -[ -inline -] -pub -const -fn -as_u32 -( -& -self -) -- -> -u32 -{ -self -. -0 -} -# -[ -inline -] -pub -const -fn -as_i32 -( -& -self -) -- -> -i32 -{ -self -. -0 -as -i32 -} -# -[ -inline -] -pub -fn -one_more -( -& -self -) -- -> -usize -{ -self -. -as_usize -( -) -+ -1 -} -# -[ -inline -] -pub -fn -from_ne_bytes -( -bytes -: -[ -u8 -; -4 -] -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -let -id -= -u32 -: -: -from_ne_bytes -( -bytes -) -; -if -id -> -SmallIndex -: -: -MAX -. -as_u32 -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -u64 -: -: -from -( -id -) -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -id -. -as_usize -( -) -) -) -} -# -[ -inline -] -pub -fn -from_ne_bytes_unchecked -( -bytes -: -[ -u8 -; -4 -] -) -- -> -SmallIndex -{ -SmallIndex -: -: -new_unchecked -( -u32 -: -: -from_ne_bytes -( -bytes -) -. -as_usize -( -) -) -} -# -[ -inline -] -pub -fn -to_ne_bytes -( -& -self -) -- -> -[ -u8 -; -4 -] -{ -self -. -0 -. -to_ne_bytes -( -) -} -} -impl -< -T -> -core -: -: -ops -: -: -Index -< -SmallIndex -> -for -[ -T -] -{ -type -Output -= -T -; -# -[ -inline -] -fn -index -( -& -self -index -: -SmallIndex -) -- -> -& -T -{ -& -self -[ -index -. -as_usize -( -) -] -} -} -impl -< -T -> -core -: -: -ops -: -: -IndexMut -< -SmallIndex -> -for -[ -T -] -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -SmallIndex -) -- -> -& -mut -T -{ -& -mut -self -[ -index -. -as_usize -( -) -] -} -} -impl -< -T -> -core -: -: -ops -: -: -Index -< -SmallIndex -> -for -Vec -< -T -> -{ -type -Output -= -T -; -# -[ -inline -] -fn -index -( -& -self -index -: -SmallIndex -) -- -> -& -T -{ -& -self -[ -index -. -as_usize -( -) -] -} -} -impl -< -T -> -core -: -: -ops -: -: -IndexMut -< -SmallIndex -> -for -Vec -< -T -> -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -SmallIndex -) -- -> -& -mut -T -{ -& -mut -self -[ -index -. -as_usize -( -) -] -} -} -impl -From -< -StateID -> -for -SmallIndex -{ -fn -from -( -sid -: -StateID -) -- -> -SmallIndex -{ -sid -. -0 -} -} -impl -From -< -PatternID -> -for -SmallIndex -{ -fn -from -( -pid -: -PatternID -) -- -> -SmallIndex -{ -pid -. -0 -} -} -impl -From -< -u8 -> -for -SmallIndex -{ -fn -from -( -index -: -u8 -) -- -> -SmallIndex -{ -SmallIndex -: -: -new_unchecked -( -usize -: -: -from -( -index -) -) -} -} -impl -TryFrom -< -u16 -> -for -SmallIndex -{ -type -Error -= -SmallIndexError -; -fn -try_from -( -index -: -u16 -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -if -u32 -: -: -from -( -index -) -> -SmallIndex -: -: -MAX -. -as_u32 -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -u64 -: -: -from -( -index -) -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -index -. -as_usize -( -) -) -) -} -} -impl -TryFrom -< -u32 -> -for -SmallIndex -{ -type -Error -= -SmallIndexError -; -fn -try_from -( -index -: -u32 -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -if -index -> -SmallIndex -: -: -MAX -. -as_u32 -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -u64 -: -: -from -( -index -) -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -index -. -as_usize -( -) -) -) -} -} -impl -TryFrom -< -u64 -> -for -SmallIndex -{ -type -Error -= -SmallIndexError -; -fn -try_from -( -index -: -u64 -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -if -index -> -SmallIndex -: -: -MAX -. -as_u64 -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -index -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -index -. -as_usize -( -) -) -) -} -} -impl -TryFrom -< -usize -> -for -SmallIndex -{ -type -Error -= -SmallIndexError -; -fn -try_from -( -index -: -usize -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -if -index -> -SmallIndex -: -: -MAX -. -as_usize -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -index -. -as_u64 -( -) -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -index -) -) -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -SmallIndexError -{ -attempted -: -u64 -} -impl -SmallIndexError -{ -pub -fn -attempted -( -& -self -) -- -> -u64 -{ -self -. -attempted -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -SmallIndexError -{ -} -impl -core -: -: -fmt -: -: -Display -for -SmallIndexError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -failed -to -create -small -index -from -{ -: -? -} -which -exceeds -{ -: -? -} -" -self -. -attempted -( -) -SmallIndex -: -: -MAX -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -SmallIndexIter -{ -rng -: -core -: -: -ops -: -: -Range -< -usize -> -} -impl -Iterator -for -SmallIndexIter -{ -type -Item -= -SmallIndex -; -fn -next -( -& -mut -self -) -- -> -Option -< -SmallIndex -> -{ -if -self -. -rng -. -start -> -= -self -. -rng -. -end -{ -return -None -; -} -let -next_id -= -self -. -rng -. -start -+ -1 -; -let -id -= -core -: -: -mem -: -: -replace -( -& -mut -self -. -rng -. -start -next_id -) -; -Some -( -SmallIndex -: -: -new_unchecked -( -id -) -) -} -} -macro_rules -! -index_type_impls -{ -( -name -: -ident -err -: -ident -iter -: -ident -withiter -: -ident -) -= -> -{ -impl -name -{ -/ -/ -/ -The -maximum -value -. -pub -const -MAX -: -name -= -name -( -SmallIndex -: -: -MAX -) -; -/ -/ -/ -The -total -number -of -values -that -can -be -represented -. -pub -const -LIMIT -: -usize -= -SmallIndex -: -: -LIMIT -; -/ -/ -/ -The -zero -value -. -pub -const -ZERO -: -name -= -name -( -SmallIndex -: -: -ZERO -) -; -/ -/ -/ -The -number -of -bytes -that -a -single -value -uses -in -memory -. -pub -const -SIZE -: -usize -= -SmallIndex -: -: -SIZE -; -/ -/ -/ -Create -a -new -value -that -is -represented -by -a -" -small -index -. -" -/ -/ -/ -/ -/ -/ -If -the -given -index -exceeds -the -maximum -allowed -value -then -this -/ -/ -/ -returns -an -error -. -# -[ -inline -] -pub -fn -new -( -value -: -usize -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -new -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -/ -/ -/ -Create -a -new -value -without -checking -whether -the -given -argument -/ -/ -/ -exceeds -the -maximum -. -/ -/ -/ -/ -/ -/ -Using -this -routine -with -an -invalid -value -will -result -in -/ -/ -/ -unspecified -behavior -but -* -not -* -undefined -behavior -. -In -/ -/ -/ -particular -an -invalid -ID -value -is -likely -to -cause -panics -or -/ -/ -/ -possibly -even -silent -logical -errors -. -/ -/ -/ -/ -/ -/ -Callers -must -never -rely -on -this -type -to -be -within -a -certain -/ -/ -/ -range -for -memory -safety -. -# -[ -inline -] -pub -const -fn -new_unchecked -( -value -: -usize -) -- -> -name -{ -name -( -SmallIndex -: -: -new_unchecked -( -value -) -) -} -/ -/ -/ -Create -a -new -value -from -a -u32 -without -checking -whether -the -/ -/ -/ -given -value -exceeds -the -maximum -. -/ -/ -/ -/ -/ -/ -Using -this -routine -with -an -invalid -value -will -result -in -/ -/ -/ -unspecified -behavior -but -* -not -* -undefined -behavior -. -In -/ -/ -/ -particular -an -invalid -ID -value -is -likely -to -cause -panics -or -/ -/ -/ -possibly -even -silent -logical -errors -. -/ -/ -/ -/ -/ -/ -Callers -must -never -rely -on -this -type -to -be -within -a -certain -/ -/ -/ -range -for -memory -safety -. -# -[ -inline -] -pub -const -fn -from_u32_unchecked -( -index -: -u32 -) -- -> -name -{ -name -( -SmallIndex -: -: -from_u32_unchecked -( -index -) -) -} -/ -/ -/ -Like -new -but -panics -if -the -given -value -is -not -valid -. -# -[ -inline -] -pub -fn -must -( -value -: -usize -) -- -> -name -{ -name -: -: -new -( -value -) -. -expect -( -concat -! -( -" -invalid -" -stringify -! -( -name -) -" -value -" -) -) -} -/ -/ -/ -Return -the -internal -value -as -a -usize -. -This -is -guaranteed -to -/ -/ -/ -never -overflow -usize -. -# -[ -inline -] -pub -const -fn -as_usize -( -& -self -) -- -> -usize -{ -self -. -0 -. -as_usize -( -) -} -/ -/ -/ -Return -the -internal -value -as -a -u64 -. -This -is -guaranteed -to -/ -/ -/ -never -overflow -. -# -[ -inline -] -pub -const -fn -as_u64 -( -& -self -) -- -> -u64 -{ -self -. -0 -. -as_u64 -( -) -} -/ -/ -/ -Return -the -internal -value -as -a -u32 -. -This -is -guaranteed -to -/ -/ -/ -never -overflow -u32 -. -# -[ -inline -] -pub -const -fn -as_u32 -( -& -self -) -- -> -u32 -{ -self -. -0 -. -as_u32 -( -) -} -/ -/ -/ -Return -the -internal -value -as -a -i32 -. -This -is -guaranteed -to -/ -/ -/ -never -overflow -an -i32 -. -# -[ -inline -] -pub -const -fn -as_i32 -( -& -self -) -- -> -i32 -{ -self -. -0 -. -as_i32 -( -) -} -/ -/ -/ -Returns -one -more -than -this -value -as -a -usize -. -/ -/ -/ -/ -/ -/ -Since -values -represented -by -a -" -small -index -" -have -constraints -/ -/ -/ -on -their -maximum -value -adding -1 -to -it -will -always -fit -in -a -/ -/ -/ -usize -u32 -and -a -i32 -. -# -[ -inline -] -pub -fn -one_more -( -& -self -) -- -> -usize -{ -self -. -0 -. -one_more -( -) -} -/ -/ -/ -Decode -this -value -from -the -bytes -given -using -the -native -endian -/ -/ -/ -byte -order -for -the -current -target -. -/ -/ -/ -/ -/ -/ -If -the -decoded -integer -is -not -representable -as -a -small -index -/ -/ -/ -for -the -current -target -then -this -returns -an -error -. -# -[ -inline -] -pub -fn -from_ne_bytes -( -bytes -: -[ -u8 -; -4 -] -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -from_ne_bytes -( -bytes -) -. -map -( -name -) -. -map_err -( -err -) -} -/ -/ -/ -Decode -this -value -from -the -bytes -given -using -the -native -endian -/ -/ -/ -byte -order -for -the -current -target -. -/ -/ -/ -/ -/ -/ -This -is -analogous -to -new_unchecked -in -that -is -does -not -check -/ -/ -/ -whether -the -decoded -integer -is -representable -as -a -small -index -. -# -[ -inline -] -pub -fn -from_ne_bytes_unchecked -( -bytes -: -[ -u8 -; -4 -] -) -- -> -name -{ -name -( -SmallIndex -: -: -from_ne_bytes_unchecked -( -bytes -) -) -} -/ -/ -/ -Return -the -underlying -integer -as -raw -bytes -in -native -endian -/ -/ -/ -format -. -# -[ -inline -] -pub -fn -to_ne_bytes -( -& -self -) -- -> -[ -u8 -; -4 -] -{ -self -. -0 -. -to_ne_bytes -( -) -} -/ -/ -/ -Returns -an -iterator -over -all -values -from -0 -up -to -and -not -/ -/ -/ -including -the -given -length -. -/ -/ -/ -/ -/ -/ -If -the -given -length -exceeds -this -type -' -s -limit -then -this -/ -/ -/ -panics -. -pub -( -crate -) -fn -iter -( -len -: -usize -) -- -> -iter -{ -iter -: -: -new -( -len -) -} -} -/ -/ -We -write -our -own -Debug -impl -so -that -we -get -things -like -PatternID -( -5 -) -/ -/ -instead -of -PatternID -( -SmallIndex -( -5 -) -) -. -impl -core -: -: -fmt -: -: -Debug -for -name -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_tuple -( -stringify -! -( -name -) -) -. -field -( -& -self -. -as_u32 -( -) -) -. -finish -( -) -} -} -impl -< -T -> -core -: -: -ops -: -: -Index -< -name -> -for -[ -T -] -{ -type -Output -= -T -; -# -[ -inline -] -fn -index -( -& -self -index -: -name -) -- -> -& -T -{ -& -self -[ -index -. -as_usize -( -) -] -} -} -impl -< -T -> -core -: -: -ops -: -: -IndexMut -< -name -> -for -[ -T -] -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -name -) -- -> -& -mut -T -{ -& -mut -self -[ -index -. -as_usize -( -) -] -} -} -impl -< -T -> -core -: -: -ops -: -: -Index -< -name -> -for -Vec -< -T -> -{ -type -Output -= -T -; -# -[ -inline -] -fn -index -( -& -self -index -: -name -) -- -> -& -T -{ -& -self -[ -index -. -as_usize -( -) -] -} -} -impl -< -T -> -core -: -: -ops -: -: -IndexMut -< -name -> -for -Vec -< -T -> -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -name -) -- -> -& -mut -T -{ -& -mut -self -[ -index -. -as_usize -( -) -] -} -} -impl -From -< -SmallIndex -> -for -name -{ -fn -from -( -index -: -SmallIndex -) -- -> -name -{ -name -( -index -) -} -} -impl -From -< -u8 -> -for -name -{ -fn -from -( -value -: -u8 -) -- -> -name -{ -name -( -SmallIndex -: -: -from -( -value -) -) -} -} -impl -TryFrom -< -u16 -> -for -name -{ -type -Error -= -err -; -fn -try_from -( -value -: -u16 -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -try_from -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -} -impl -TryFrom -< -u32 -> -for -name -{ -type -Error -= -err -; -fn -try_from -( -value -: -u32 -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -try_from -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -} -impl -TryFrom -< -u64 -> -for -name -{ -type -Error -= -err -; -fn -try_from -( -value -: -u64 -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -try_from -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -} -impl -TryFrom -< -usize -> -for -name -{ -type -Error -= -err -; -fn -try_from -( -value -: -usize -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -try_from -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -} -/ -/ -/ -This -error -occurs -when -an -ID -could -not -be -constructed -. -/ -/ -/ -/ -/ -/ -This -occurs -when -given -an -integer -exceeding -the -maximum -allowed -/ -/ -/ -value -. -/ -/ -/ -/ -/ -/ -When -the -std -feature -is -enabled -this -implements -the -Error -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -err -( -SmallIndexError -) -; -impl -err -{ -/ -/ -/ -Returns -the -value -that -could -not -be -converted -to -an -ID -. -pub -fn -attempted -( -& -self -) -- -> -u64 -{ -self -. -0 -. -attempted -( -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -err -{ -} -impl -core -: -: -fmt -: -: -Display -for -err -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -failed -to -create -{ -} -from -{ -: -? -} -which -exceeds -{ -: -? -} -" -stringify -! -( -name -) -self -. -attempted -( -) -name -: -: -MAX -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -iter -( -SmallIndexIter -) -; -impl -iter -{ -fn -new -( -len -: -usize -) -- -> -iter -{ -assert -! -( -len -< -= -name -: -: -LIMIT -" -cannot -create -iterator -for -{ -} -when -number -of -\ -elements -exceed -{ -: -? -} -" -stringify -! -( -name -) -name -: -: -LIMIT -) -; -iter -( -SmallIndexIter -{ -rng -: -0 -. -. -len -} -) -} -} -impl -Iterator -for -iter -{ -type -Item -= -name -; -fn -next -( -& -mut -self -) -- -> -Option -< -name -> -{ -self -. -0 -. -next -( -) -. -map -( -name -) -} -} -/ -/ -/ -An -iterator -adapter -that -is -like -std -: -: -iter -: -: -Enumerate -but -attaches -/ -/ -/ -small -index -values -instead -. -It -requires -ExactSizeIterator -. -At -/ -/ -/ -construction -it -ensures -that -the -index -of -each -element -in -the -/ -/ -/ -iterator -is -representable -in -the -corresponding -small -index -type -. -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -withiter -< -I -> -{ -it -: -I -ids -: -iter -} -impl -< -I -: -Iterator -+ -ExactSizeIterator -> -withiter -< -I -> -{ -fn -new -( -it -: -I -) -- -> -withiter -< -I -> -{ -let -ids -= -name -: -: -iter -( -it -. -len -( -) -) -; -withiter -{ -it -ids -} -} -} -impl -< -I -: -Iterator -+ -ExactSizeIterator -> -Iterator -for -withiter -< -I -> -{ -type -Item -= -( -name -I -: -: -Item -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -name -I -: -: -Item -) -> -{ -let -item -= -self -. -it -. -next -( -) -? -; -/ -/ -Number -of -elements -in -this -iterator -must -match -according -/ -/ -to -contract -of -ExactSizeIterator -. -let -id -= -self -. -ids -. -next -( -) -. -unwrap -( -) -; -Some -( -( -id -item -) -) -} -} -} -; -} -# -[ -derive -( -Clone -Copy -Default -Eq -Hash -PartialEq -PartialOrd -Ord -) -] -# -[ -repr -( -transparent -) -] -pub -struct -PatternID -( -SmallIndex -) -; -# -[ -derive -( -Clone -Copy -Default -Eq -Hash -PartialEq -PartialOrd -Ord -) -] -# -[ -repr -( -transparent -) -] -pub -struct -StateID -( -SmallIndex -) -; -index_type_impls -! -( -PatternID -PatternIDError -PatternIDIter -WithPatternIDIter -) -; -index_type_impls -! -( -StateID -StateIDError -StateIDIter -WithStateIDIter -) -; -pub -( -crate -) -trait -IteratorIndexExt -: -Iterator -{ -fn -with_pattern_ids -( -self -) -- -> -WithPatternIDIter -< -Self -> -where -Self -: -Sized -+ -ExactSizeIterator -{ -WithPatternIDIter -: -: -new -( -self -) -} -fn -with_state_ids -( -self -) -- -> -WithStateIDIter -< -Self -> -where -Self -: -Sized -+ -ExactSizeIterator -{ -WithStateIDIter -: -: -new -( -self -) -} -} -impl -< -I -: -Iterator -> -IteratorIndexExt -for -I -{ -} diff --git a/third_party/rust/aho-corasick/src/util/remapper.rs b/third_party/rust/aho-corasick/src/util/remapper.rs deleted file mode 100644 index 1855488c56347..0000000000000 --- a/third_party/rust/aho-corasick/src/util/remapper.rs +++ /dev/null @@ -1,537 +0,0 @@ -use -alloc -: -: -vec -: -: -Vec -; -use -crate -: -: -{ -nfa -: -: -noncontiguous -util -: -: -primitives -: -: -StateID -} -; -pub -( -crate -) -trait -Remappable -: -core -: -: -fmt -: -: -Debug -{ -fn -state_len -( -& -self -) -- -> -usize -; -fn -swap_states -( -& -mut -self -id1 -: -StateID -id2 -: -StateID -) -; -fn -remap -( -& -mut -self -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -; -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -Remapper -{ -map -: -Vec -< -StateID -> -idx -: -IndexMapper -} -impl -Remapper -{ -pub -( -crate -) -fn -new -( -r -: -& -impl -Remappable -stride2 -: -usize -) -- -> -Remapper -{ -let -idx -= -IndexMapper -{ -stride2 -} -; -let -map -= -( -0 -. -. -r -. -state_len -( -) -) -. -map -( -| -i -| -idx -. -to_state_id -( -i -) -) -. -collect -( -) -; -Remapper -{ -map -idx -} -} -pub -( -crate -) -fn -swap -( -& -mut -self -r -: -& -mut -impl -Remappable -id1 -: -StateID -id2 -: -StateID -) -{ -if -id1 -= -= -id2 -{ -return -; -} -r -. -swap_states -( -id1 -id2 -) -; -self -. -map -. -swap -( -self -. -idx -. -to_index -( -id1 -) -self -. -idx -. -to_index -( -id2 -) -) -; -} -pub -( -crate -) -fn -remap -( -mut -self -r -: -& -mut -impl -Remappable -) -{ -let -oldmap -= -self -. -map -. -clone -( -) -; -for -i -in -0 -. -. -r -. -state_len -( -) -{ -let -cur_id -= -self -. -idx -. -to_state_id -( -i -) -; -let -mut -new_id -= -oldmap -[ -i -] -; -if -cur_id -= -= -new_id -{ -continue -; -} -loop -{ -let -id -= -oldmap -[ -self -. -idx -. -to_index -( -new_id -) -] -; -if -cur_id -= -= -id -{ -self -. -map -[ -i -] -= -new_id -; -break -; -} -new_id -= -id -; -} -} -r -. -remap -( -| -sid -| -self -. -map -[ -self -. -idx -. -to_index -( -sid -) -] -) -; -} -} -# -[ -derive -( -Debug -) -] -struct -IndexMapper -{ -stride2 -: -usize -} -impl -IndexMapper -{ -fn -to_index -( -& -self -id -: -StateID -) -- -> -usize -{ -id -. -as_usize -( -) -> -> -self -. -stride2 -} -fn -to_state_id -( -& -self -index -: -usize -) -- -> -StateID -{ -StateID -: -: -new_unchecked -( -index -< -< -self -. -stride2 -) -} -} -impl -Remappable -for -noncontiguous -: -: -NFA -{ -fn -state_len -( -& -self -) -- -> -usize -{ -noncontiguous -: -: -NFA -: -: -states -( -self -) -. -len -( -) -} -fn -swap_states -( -& -mut -self -id1 -: -StateID -id2 -: -StateID -) -{ -noncontiguous -: -: -NFA -: -: -swap_states -( -self -id1 -id2 -) -} -fn -remap -( -& -mut -self -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -{ -noncontiguous -: -: -NFA -: -: -remap -( -self -map -) -} -} diff --git a/third_party/rust/aho-corasick/src/util/search.rs b/third_party/rust/aho-corasick/src/util/search.rs deleted file mode 100644 index 2e1f2b803d9e2..0000000000000 --- a/third_party/rust/aho-corasick/src/util/search.rs +++ /dev/null @@ -1,2280 +0,0 @@ -use -core -: -: -ops -: -: -{ -Range -RangeBounds -} -; -use -crate -: -: -util -: -: -primitives -: -: -PatternID -; -# -[ -derive -( -Clone -) -] -pub -struct -Input -< -' -h -> -{ -haystack -: -& -' -h -[ -u8 -] -span -: -Span -anchored -: -Anchored -earliest -: -bool -} -impl -< -' -h -> -Input -< -' -h -> -{ -# -[ -inline -] -pub -fn -new -< -H -: -? -Sized -+ -AsRef -< -[ -u8 -] -> -> -( -haystack -: -& -' -h -H -) -- -> -Input -< -' -h -> -{ -Input -{ -haystack -: -haystack -. -as_ref -( -) -span -: -Span -{ -start -: -0 -end -: -haystack -. -as_ref -( -) -. -len -( -) -} -anchored -: -Anchored -: -: -No -earliest -: -false -} -} -# -[ -inline -] -pub -fn -span -< -S -: -Into -< -Span -> -> -( -mut -self -span -: -S -) -- -> -Input -< -' -h -> -{ -self -. -set_span -( -span -) -; -self -} -# -[ -inline -] -pub -fn -range -< -R -: -RangeBounds -< -usize -> -> -( -mut -self -range -: -R -) -- -> -Input -< -' -h -> -{ -self -. -set_range -( -range -) -; -self -} -# -[ -inline -] -pub -fn -anchored -( -mut -self -mode -: -Anchored -) -- -> -Input -< -' -h -> -{ -self -. -set_anchored -( -mode -) -; -self -} -# -[ -inline -] -pub -fn -earliest -( -mut -self -yes -: -bool -) -- -> -Input -< -' -h -> -{ -self -. -set_earliest -( -yes -) -; -self -} -# -[ -inline -] -pub -fn -set_span -< -S -: -Into -< -Span -> -> -( -& -mut -self -span -: -S -) -{ -let -span -= -span -. -into -( -) -; -assert -! -( -span -. -end -< -= -self -. -haystack -. -len -( -) -& -& -span -. -start -< -= -span -. -end -. -wrapping_add -( -1 -) -" -invalid -span -{ -: -? -} -for -haystack -of -length -{ -} -" -span -self -. -haystack -. -len -( -) -) -; -self -. -span -= -span -; -} -# -[ -inline -] -pub -fn -set_range -< -R -: -RangeBounds -< -usize -> -> -( -& -mut -self -range -: -R -) -{ -use -core -: -: -ops -: -: -Bound -; -let -start -= -match -range -. -start_bound -( -) -{ -Bound -: -: -Included -( -& -i -) -= -> -i -Bound -: -: -Excluded -( -& -i -) -= -> -i -. -checked_add -( -1 -) -. -unwrap -( -) -Bound -: -: -Unbounded -= -> -0 -} -; -let -end -= -match -range -. -end_bound -( -) -{ -Bound -: -: -Included -( -& -i -) -= -> -i -. -checked_add -( -1 -) -. -unwrap -( -) -Bound -: -: -Excluded -( -& -i -) -= -> -i -Bound -: -: -Unbounded -= -> -self -. -haystack -( -) -. -len -( -) -} -; -self -. -set_span -( -Span -{ -start -end -} -) -; -} -# -[ -inline -] -pub -fn -set_start -( -& -mut -self -start -: -usize -) -{ -self -. -set_span -( -Span -{ -start -. -. -self -. -get_span -( -) -} -) -; -} -# -[ -inline -] -pub -fn -set_end -( -& -mut -self -end -: -usize -) -{ -self -. -set_span -( -Span -{ -end -. -. -self -. -get_span -( -) -} -) -; -} -# -[ -inline -] -pub -fn -set_anchored -( -& -mut -self -mode -: -Anchored -) -{ -self -. -anchored -= -mode -; -} -# -[ -inline -] -pub -fn -set_earliest -( -& -mut -self -yes -: -bool -) -{ -self -. -earliest -= -yes -; -} -# -[ -inline -] -pub -fn -haystack -( -& -self -) -- -> -& -[ -u8 -] -{ -self -. -haystack -} -# -[ -inline -] -pub -fn -start -( -& -self -) -- -> -usize -{ -self -. -get_span -( -) -. -start -} -# -[ -inline -] -pub -fn -end -( -& -self -) -- -> -usize -{ -self -. -get_span -( -) -. -end -} -# -[ -inline -] -pub -fn -get_span -( -& -self -) -- -> -Span -{ -self -. -span -} -# -[ -inline -] -pub -fn -get_range -( -& -self -) -- -> -Range -< -usize -> -{ -self -. -get_span -( -) -. -range -( -) -} -# -[ -inline -] -pub -fn -get_anchored -( -& -self -) -- -> -Anchored -{ -self -. -anchored -} -# -[ -inline -] -pub -fn -get_earliest -( -& -self -) -- -> -bool -{ -self -. -earliest -} -# -[ -inline -] -pub -fn -is_done -( -& -self -) -- -> -bool -{ -self -. -get_span -( -) -. -start -> -self -. -get_span -( -) -. -end -} -} -impl -< -' -h -> -core -: -: -fmt -: -: -Debug -for -Input -< -' -h -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -let -mut -fmter -= -f -. -debug_struct -( -" -Input -" -) -; -match -core -: -: -str -: -: -from_utf8 -( -self -. -haystack -( -) -) -{ -Ok -( -nice -) -= -> -fmter -. -field -( -" -haystack -" -& -nice -) -Err -( -_ -) -= -> -fmter -. -field -( -" -haystack -" -& -self -. -haystack -( -) -) -} -. -field -( -" -span -" -& -self -. -span -) -. -field -( -" -anchored -" -& -self -. -anchored -) -. -field -( -" -earliest -" -& -self -. -earliest -) -. -finish -( -) -} -} -impl -< -' -h -H -: -? -Sized -+ -AsRef -< -[ -u8 -] -> -> -From -< -& -' -h -H -> -for -Input -< -' -h -> -{ -# -[ -inline -] -fn -from -( -haystack -: -& -' -h -H -) -- -> -Input -< -' -h -> -{ -Input -: -: -new -( -haystack -) -} -} -# -[ -derive -( -Clone -Copy -Eq -Hash -PartialEq -) -] -pub -struct -Span -{ -pub -start -: -usize -pub -end -: -usize -} -impl -Span -{ -# -[ -inline -] -pub -fn -range -( -& -self -) -- -> -Range -< -usize -> -{ -Range -: -: -from -( -* -self -) -} -# -[ -inline -] -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -start -> -= -self -. -end -} -# -[ -inline -] -pub -fn -len -( -& -self -) -- -> -usize -{ -self -. -end -. -saturating_sub -( -self -. -start -) -} -# -[ -inline -] -pub -fn -contains -( -& -self -offset -: -usize -) -- -> -bool -{ -! -self -. -is_empty -( -) -& -& -self -. -start -< -= -offset -& -& -offset -< -= -self -. -end -} -# -[ -inline -] -pub -fn -offset -( -& -self -offset -: -usize -) -- -> -Span -{ -Span -{ -start -: -self -. -start -+ -offset -end -: -self -. -end -+ -offset -} -} -} -impl -core -: -: -fmt -: -: -Debug -for -Span -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -{ -} -. -. -{ -} -" -self -. -start -self -. -end -) -} -} -impl -core -: -: -ops -: -: -Index -< -Span -> -for -[ -u8 -] -{ -type -Output -= -[ -u8 -] -; -# -[ -inline -] -fn -index -( -& -self -index -: -Span -) -- -> -& -[ -u8 -] -{ -& -self -[ -index -. -range -( -) -] -} -} -impl -core -: -: -ops -: -: -IndexMut -< -Span -> -for -[ -u8 -] -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -Span -) -- -> -& -mut -[ -u8 -] -{ -& -mut -self -[ -index -. -range -( -) -] -} -} -impl -core -: -: -ops -: -: -Index -< -Span -> -for -str -{ -type -Output -= -str -; -# -[ -inline -] -fn -index -( -& -self -index -: -Span -) -- -> -& -str -{ -& -self -[ -index -. -range -( -) -] -} -} -impl -From -< -Range -< -usize -> -> -for -Span -{ -# -[ -inline -] -fn -from -( -range -: -Range -< -usize -> -) -- -> -Span -{ -Span -{ -start -: -range -. -start -end -: -range -. -end -} -} -} -impl -From -< -Span -> -for -Range -< -usize -> -{ -# -[ -inline -] -fn -from -( -span -: -Span -) -- -> -Range -< -usize -> -{ -Range -{ -start -: -span -. -start -end -: -span -. -end -} -} -} -impl -PartialEq -< -Range -< -usize -> -> -for -Span -{ -# -[ -inline -] -fn -eq -( -& -self -range -: -& -Range -< -usize -> -) -- -> -bool -{ -self -. -start -= -= -range -. -start -& -& -self -. -end -= -= -range -. -end -} -} -impl -PartialEq -< -Span -> -for -Range -< -usize -> -{ -# -[ -inline -] -fn -eq -( -& -self -span -: -& -Span -) -- -> -bool -{ -self -. -start -= -= -span -. -start -& -& -self -. -end -= -= -span -. -end -} -} -# -[ -non_exhaustive -] -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -Anchored -{ -No -Yes -} -impl -Anchored -{ -# -[ -inline -] -pub -fn -is_anchored -( -& -self -) -- -> -bool -{ -matches -! -( -* -self -Anchored -: -: -Yes -) -} -} -# -[ -derive -( -Clone -Copy -Debug -Eq -Hash -PartialEq -) -] -pub -struct -Match -{ -pattern -: -PatternID -span -: -Span -} -impl -Match -{ -# -[ -inline -] -pub -fn -new -< -S -: -Into -< -Span -> -> -( -pattern -: -PatternID -span -: -S -) -- -> -Match -{ -let -span -= -span -. -into -( -) -; -assert -! -( -span -. -start -< -= -span -. -end -" -invalid -match -span -" -) -; -Match -{ -pattern -span -} -} -# -[ -inline -] -pub -fn -must -< -S -: -Into -< -Span -> -> -( -pattern -: -usize -span -: -S -) -- -> -Match -{ -Match -: -: -new -( -PatternID -: -: -must -( -pattern -) -span -) -} -# -[ -inline -] -pub -fn -pattern -( -& -self -) -- -> -PatternID -{ -self -. -pattern -} -# -[ -inline -] -pub -fn -start -( -& -self -) -- -> -usize -{ -self -. -span -( -) -. -start -} -# -[ -inline -] -pub -fn -end -( -& -self -) -- -> -usize -{ -self -. -span -( -) -. -end -} -# -[ -inline -] -pub -fn -range -( -& -self -) -- -> -core -: -: -ops -: -: -Range -< -usize -> -{ -self -. -span -( -) -. -range -( -) -} -# -[ -inline -] -pub -fn -span -( -& -self -) -- -> -Span -{ -self -. -span -} -# -[ -inline -] -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -span -( -) -. -is_empty -( -) -} -# -[ -inline -] -pub -fn -len -( -& -self -) -- -> -usize -{ -self -. -span -( -) -. -len -( -) -} -# -[ -inline -] -pub -fn -offset -( -& -self -offset -: -usize -) -- -> -Match -{ -Match -{ -pattern -: -self -. -pattern -span -: -Span -{ -start -: -self -. -start -( -) -+ -offset -end -: -self -. -end -( -) -+ -offset -} -} -} -} -# -[ -non_exhaustive -] -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -MatchKind -{ -Standard -LeftmostFirst -LeftmostLongest -} -impl -Default -for -MatchKind -{ -fn -default -( -) -- -> -MatchKind -{ -MatchKind -: -: -Standard -} -} -impl -MatchKind -{ -# -[ -inline -] -pub -( -crate -) -fn -is_standard -( -& -self -) -- -> -bool -{ -matches -! -( -* -self -MatchKind -: -: -Standard -) -} -# -[ -inline -] -pub -( -crate -) -fn -is_leftmost -( -& -self -) -- -> -bool -{ -matches -! -( -* -self -MatchKind -: -: -LeftmostFirst -| -MatchKind -: -: -LeftmostLongest -) -} -# -[ -inline -] -pub -( -crate -) -fn -is_leftmost_first -( -& -self -) -- -> -bool -{ -matches -! -( -* -self -MatchKind -: -: -LeftmostFirst -) -} -# -[ -inline -] -pub -( -crate -) -fn -as_packed -( -& -self -) -- -> -Option -< -crate -: -: -packed -: -: -MatchKind -> -{ -match -* -self -{ -MatchKind -: -: -Standard -= -> -None -MatchKind -: -: -LeftmostFirst -= -> -{ -Some -( -crate -: -: -packed -: -: -MatchKind -: -: -LeftmostFirst -) -} -MatchKind -: -: -LeftmostLongest -= -> -{ -Some -( -crate -: -: -packed -: -: -MatchKind -: -: -LeftmostLongest -) -} -} -} -} -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -StartKind -{ -Both -Unanchored -Anchored -} -impl -Default -for -StartKind -{ -fn -default -( -) -- -> -StartKind -{ -StartKind -: -: -Unanchored -} -} diff --git a/third_party/rust/aho-corasick/src/util/special.rs b/third_party/rust/aho-corasick/src/util/special.rs deleted file mode 100644 index af5421afc1066..0000000000000 --- a/third_party/rust/aho-corasick/src/util/special.rs +++ /dev/null @@ -1,100 +0,0 @@ -use -crate -: -: -util -: -: -primitives -: -: -StateID -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -Special -{ -pub -( -crate -) -max_special_id -: -StateID -pub -( -crate -) -max_match_id -: -StateID -pub -( -crate -) -start_unanchored_id -: -StateID -pub -( -crate -) -start_anchored_id -: -StateID -} -impl -Special -{ -pub -( -crate -) -fn -zero -( -) -- -> -Special -{ -Special -{ -max_special_id -: -StateID -: -: -ZERO -max_match_id -: -StateID -: -: -ZERO -start_unanchored_id -: -StateID -: -: -ZERO -start_anchored_id -: -StateID -: -: -ZERO -} -} -} diff --git a/third_party/rust/regex-automata/.cargo-checksum.json b/third_party/rust/regex-automata/.cargo-checksum.json deleted file mode 100644 index 0d1f1e65e776a..0000000000000 --- a/third_party/rust/regex-automata/.cargo-checksum.json +++ /dev/null @@ -1,1656 +0,0 @@ -{ -" -files -" -: -{ -" -Cargo -. -toml -" -: -" -755761361da0023ecaa0d56bb9aeb406e3d6c2c1d5d355e0cc3e46b3cffe7a8f -" -" -LICENSE -- -APACHE -" -: -" -a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 -" -" -LICENSE -- -MIT -" -: -" -6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb -" -" -README -. -md -" -: -" -61db25dbf26092fc80e8db89165692e55f9fb86b14e8451ebb28303f45932254 -" -" -src -/ -dfa -/ -accel -. -rs -" -: -" -800dada38f7a1d0fa443821dc04a8611c6cf06ef431e517f16867a27cbb4f27d -" -" -src -/ -dfa -/ -automaton -. -rs -" -: -" -565ebf211769b4710091c4a15b5733296e9fbbc2a137d6eeb1c521b7b69463a0 -" -" -src -/ -dfa -/ -dense -. -rs -" -: -" -73c9c7662c0b4b7901eb17632187aac10bb24e16a89a4dfe78a7bf17bc98f9f1 -" -" -src -/ -dfa -/ -determinize -. -rs -" -: -" -91b9f69d28bdd064aa86716fe0772e4145050fd458bb7869a28660b4f7b64872 -" -" -src -/ -dfa -/ -minimize -. -rs -" -: -" -b5cadb462b9f24cd4aa7a665e75fb813cd06858a92b8986c9c5ae7fd9a60dfab -" -" -src -/ -dfa -/ -mod -. -rs -" -: -" -e7210af01805f2f390374cd5b40ee502f9dc7633d6a57d988dcb17dfd93864cb -" -" -src -/ -dfa -/ -onepass -. -rs -" -: -" -d1b29d531545ce30167d58eb24ac15ba10bce158e73483c09f219d5971c8e83c -" -" -src -/ -dfa -/ -regex -. -rs -" -: -" -f970028c874e2a156db1591bbdc3915027ffa7f47d66d5bd6e97dace5a6a3d5b -" -" -src -/ -dfa -/ -remapper -. -rs -" -: -" -ca096abc0f8e45c43a2adf3a7743b8857714ae7411a623edea41cc3ce906a169 -" -" -src -/ -dfa -/ -search -. -rs -" -: -" -237cdb8c6239ece5fe8279c4b6209c8094502cdecc9a4e3f977e469e60fd32ec -" -" -src -/ -dfa -/ -sparse -. -rs -" -: -" -c3a05451a0019850b538dfd640fb12c92ac127b8a69c55f23489bd42c1c1f289 -" -" -src -/ -dfa -/ -special -. -rs -" -: -" -c2e60de5b98e68c9c45aaffbc67a08f049831a764a1ed29d1d1db0fb68efdce5 -" -" -src -/ -dfa -/ -start -. -rs -" -: -" -46b1dbaf8e4518ddddda6bbe596621aae36f8ba694390483a22355d9d799be8e -" -" -src -/ -hybrid -/ -dfa -. -rs -" -: -" -861b3602bb9ac8b10abe0eae18a2641b2145fcfc7fb22b250ed2e3a345762f4c -" -" -src -/ -hybrid -/ -error -. -rs -" -: -" -ffc6e65fd9e4694a67902f3516970e3e6cd6e33a7f59a5ab2ac16f740a049d9c -" -" -src -/ -hybrid -/ -id -. -rs -" -: -" -6168aad5c81c627494ba0575a24d61fd0ae7efabaaceeadb8ff28472275e2813 -" -" -src -/ -hybrid -/ -mod -. -rs -" -: -" -49abcf332f19d2fe87c0a729b1b7715a87794e64f411f4d2bab9d8a4331d6ace -" -" -src -/ -hybrid -/ -regex -. -rs -" -: -" -9f40aa2cfa89d7a97f9c9e32cb2ae591f4b6f3d51ddec41308d99ce924e130cf -" -" -src -/ -hybrid -/ -search -. -rs -" -: -" -2aae7ab24c7e6b8d1a1aa81a2f6081f949e9fa42e960fd3fea29f57db8db9f68 -" -" -src -/ -lib -. -rs -" -: -" -4e831d41057760c5f2f1274a206fa5a42f59dbca8f98ad3e782fe0fba0d6c37f -" -" -src -/ -macros -. -rs -" -: -" -3e4b39252bfa471fad384160a43f113ebfec7bec46a85d16f006622881dd2081 -" -" -src -/ -meta -/ -error -. -rs -" -: -" -710a6813314b1b11ace1b016a827067fff8b2624d47e15c7f52043bff5ab57da -" -" -src -/ -meta -/ -limited -. -rs -" -: -" -cf629b08d64cb2e1c17d196a1ad6084f733a41e1c947715d9c0ea99ba7f7657d -" -" -src -/ -meta -/ -literal -. -rs -" -: -" -52da98bb30995dedd22786e4728cb84e84c6093a284168bd91196b999dd0f6ec -" -" -src -/ -meta -/ -mod -. -rs -" -: -" -f3b10b96fa08efaba3e4c9b81883cf40aac6e4c1f6ae55a497a534cf5805b46d -" -" -src -/ -meta -/ -regex -. -rs -" -: -" -12ec35a66b889172439c4abebde5f9fb41e85765d6613f4bf622429e83d47b3c -" -" -src -/ -meta -/ -reverse_inner -. -rs -" -: -" -945d6c2d4c7538e1609dbd430a096784d22abd33db58b1ba65c9c9af45a7d3c0 -" -" -src -/ -meta -/ -stopat -. -rs -" -: -" -b786cd0bd21f66c6f63df2d4bc2e544cd041d548d8001b4a818be1e0f84b6747 -" -" -src -/ -meta -/ -strategy -. -rs -" -: -" -4ee8d21def7323105e5b1101bdb1e152c5befa870a11f2bf0fa85ffbac5a6609 -" -" -src -/ -meta -/ -wrappers -. -rs -" -: -" -6998ff14226905eded36697f885a8ca7508b50ffb05c4b78348ff0e9463857d5 -" -" -src -/ -nfa -/ -mod -. -rs -" -: -" -1a731e217ed4053714500e84e58cc127f402e4e075f7d0e5b9aea715cd52405a -" -" -src -/ -nfa -/ -thompson -/ -backtrack -. -rs -" -: -" -e9a986d71aa9b0145d9f871c92f466e1b992592d8ac87f7fde36ede2e8016324 -" -" -src -/ -nfa -/ -thompson -/ -builder -. -rs -" -: -" -77bdd42a7fbdedb8d6756f0161d278e677ab1fbe622ca77115c8b506a2a6db21 -" -" -src -/ -nfa -/ -thompson -/ -compiler -. -rs -" -: -" -9cc351398c2d9ce10ac11a1c285f675bc351ecb816d3f33321513dd6bfcdc335 -" -" -src -/ -nfa -/ -thompson -/ -error -. -rs -" -: -" -78488c2fdb85f819f53cc30bb11c7f96169112da5dd14c351e5cc3bcccf0e10e -" -" -src -/ -nfa -/ -thompson -/ -literal_trie -. -rs -" -: -" -c2d1d09b44da4648db797386c2410cbf63337afef8cb62e6e78cf34786892a11 -" -" -src -/ -nfa -/ -thompson -/ -map -. -rs -" -: -" -96cdf3195f7efb374bcb1791ef5cc12a1cde189ab90402bf01d9b46fb7796b60 -" -" -src -/ -nfa -/ -thompson -/ -mod -. -rs -" -: -" -0651520debd6f023ae1a2c422806aab37f8491e5bb092e20dfdc4fe4179d695c -" -" -src -/ -nfa -/ -thompson -/ -nfa -. -rs -" -: -" -9782d44b05986370b7f948067977fb20120562e2eca0e4366e35d7d18e81a679 -" -" -src -/ -nfa -/ -thompson -/ -pikevm -. -rs -" -: -" -aaf792832d1bf15fad8a8f0b2e6597170361eb3cbcb9343eb5bd242ff346d750 -" -" -src -/ -nfa -/ -thompson -/ -range_trie -. -rs -" -: -" -c9614074628bb56c9d0a137c1db7e13259a6500e4a46cdc7ddc84bee8f7e928f -" -" -src -/ -util -/ -alphabet -. -rs -" -: -" -94cd73ce2f4e34e0ae0a146d3efdc85478263afdfefd6dc105e0abf0ec79d82b -" -" -src -/ -util -/ -captures -. -rs -" -: -" -7aee3aae2836a397c1ad6e4535e0e0d177faf2d99e61476e8fb2710f69763668 -" -" -src -/ -util -/ -determinize -/ -mod -. -rs -" -: -" -32fea73cf4a7a04238c3d3b09ea7afc7fd7c85e87dc115c6152f464ab88bddb2 -" -" -src -/ -util -/ -determinize -/ -state -. -rs -" -: -" -2a0082d5cd2bd47ab75c3f04488655a3c47f1f75075b5d6f9b6e4eeb8980823e -" -" -src -/ -util -/ -empty -. -rs -" -: -" -13ec7d6cbd1520db5b4c1dae294f4419fa88d39d2bfc16f4ef258473d609f91c -" -" -src -/ -util -/ -escape -. -rs -" -: -" -5b2731b41a55cb50ab688132bb5640dbd51f14f141adaa864b9db7f0aa092c74 -" -" -src -/ -util -/ -int -. -rs -" -: -" -b7eec0a6cab0798ba66707988fce3ecfc841b93418028a7b1408c5d0f6271351 -" -" -src -/ -util -/ -interpolate -. -rs -" -: -" -5e4e6b6fb6e5a7603e393bf05c609735d86a7d1f54c2436e42111b4e1409b6dd -" -" -src -/ -util -/ -iter -. -rs -" -: -" -58ae97b4156d7160a46b909f4635d88d10354d9d892d2fcb4c5e18e24cf38f14 -" -" -src -/ -util -/ -lazy -. -rs -" -: -" -e489a96fce952e9d196fd3f5564cf8ea3374eb4aef630ff8f12d82f194ed4336 -" -" -src -/ -util -/ -look -. -rs -" -: -" -e7a5a51f8ed70c2f97edaf3dfbe8859de37b570341447634c6028cb89ff412d7 -" -" -src -/ -util -/ -memchr -. -rs -" -: -" -573109ce4983907083ae0b29a084a324b9b53da369b4d96f7f3a21fd5c8eb5c9 -" -" -src -/ -util -/ -mod -. -rs -" -: -" -16c5fd72263d3a4df994111b81aca36da17f591f4853f21a6a906ac725843f97 -" -" -src -/ -util -/ -pool -. -rs -" -: -" -5e231307962d0918888f98fd1a2bf51c2fc08bf910fa472762136f24cd040cf2 -" -" -src -/ -util -/ -prefilter -/ -aho_corasick -. -rs -" -: -" -c54fa95f4d9e7ab53e2c6463a43f8953df6a440997fc9cd528f225db0dd32582 -" -" -src -/ -util -/ -prefilter -/ -byteset -. -rs -" -: -" -1c80fa432acc23223a75a5181e37c40034764dffe42410e4b77af6f24f48bd5c -" -" -src -/ -util -/ -prefilter -/ -memchr -. -rs -" -: -" -36c6fe6354b2e729db6830166dd4862e439bc48c9e59258d88e4b6c5654e20ef -" -" -src -/ -util -/ -prefilter -/ -memmem -. -rs -" -: -" -6f6ed9450b14abf3e4a33d395337e51fbaa9743a0a16aac0009f7680aa60c500 -" -" -src -/ -util -/ -prefilter -/ -mod -. -rs -" -: -" -2818e2e92632aee1c46b0dc01b654e544bfbf460236be86d28a2d836e9fc189a -" -" -src -/ -util -/ -prefilter -/ -teddy -. -rs -" -: -" -ed54d26858b56e1c8c87e44afae5f63d81ab930787d79e671f3a3513f576e9cd -" -" -src -/ -util -/ -primitives -. -rs -" -: -" -8a9cc19ef2e1ab183943cdc2d2f095b02252476e32b7e9fff4a06a251749b068 -" -" -src -/ -util -/ -search -. -rs -" -: -" -66bf320ebbe403c119a966f3dfbd53178de0ceebd2ca1922f1ddbb79aed36837 -" -" -src -/ -util -/ -sparse_set -. -rs -" -: -" -3d4aa30b6aa9fc875d36506487a5095dbe8ed528b89e4146a65c7e7497520a4d -" -" -src -/ -util -/ -start -. -rs -" -: -" -8d2fe005698c0bd3680a0dbfc4a34eebfe2f51081ec1584968383ac4c86fd5fe -" -" -src -/ -util -/ -syntax -. -rs -" -: -" -720ac0d6600fad33f5967b5afe4e3de2096b857e4cda6fa16ba93b10a8230cab -" -" -src -/ -util -/ -unicode_data -/ -mod -. -rs -" -: -" -54c3e10bbc393e9881bfac3295815b160f59e69e2056bc29ee7cf0addd8e3cf7 -" -" -src -/ -util -/ -unicode_data -/ -perl_word -. -rs -" -: -" -2e1a5d889598bd4e73af17d3a9f7d6b4cf2f6ab24920a5336e496bb255281e56 -" -" -src -/ -util -/ -utf8 -. -rs -" -: -" -7a068009fdf07e693e521b1f0264725c0e6118dbe1eab55da9d0eab21785fcc1 -" -" -src -/ -util -/ -wire -. -rs -" -: -" -bfdf52615c516b6c07db3ce9c333ea61fdc535bd0b79560bbd7f6864ab83946e -" -" -test -" -: -" -39d79ce3532c31a51c0be89a2939816fad0e4868d2b03992c202cbe64dce9f6c -" -" -tests -/ -dfa -/ -api -. -rs -" -: -" -cc28e366b6bcbfcf379265acd492a92c62743c3f20e7a2b273019679aa9e1291 -" -" -tests -/ -dfa -/ -mod -. -rs -" -: -" -924d8fff500b9b7b140082623023e78007058a87323151cd8e361462945e4f16 -" -" -tests -/ -dfa -/ -onepass -/ -mod -. -rs -" -: -" -d08f4ecb8ec243be584944c9602af1ed3a48a8732dd11cd573b0d1d182171303 -" -" -tests -/ -dfa -/ -onepass -/ -suite -. -rs -" -: -" -6d63ec5469e6876656ae607cdbe07e6a4e17ace7836b67435763c9b1d233438a -" -" -tests -/ -dfa -/ -regression -. -rs -" -: -" -ebcf2645290286aa7531eb2b7951385e5ed8167532437aeca2ad2049768fd796 -" -" -tests -/ -dfa -/ -suite -. -rs -" -: -" -cf08499bc8838d2ff16ea9b20b07ad03c9b89d6efe093f081e2982a21ea6d666 -" -" -tests -/ -fuzz -/ -dense -. -rs -" -: -" -3e1099a0cce61e85abc0ad81bc592e85f497f159ef0e5d1d32bac1936aa6f20c -" -" -tests -/ -fuzz -/ -mod -. -rs -" -: -" -043773510e02f51def43ee0c2b8b867c53ecc8638c8a9233b2ac098de9c3ac1e -" -" -tests -/ -fuzz -/ -sparse -. -rs -" -: -" -ba61db4927ab28953037a4b20317399c86d01b4d774e46c020ade19029215e25 -" -" -tests -/ -fuzz -/ -testdata -/ -deserialize_dense_crash -- -9486fb7c8a93b12c12a62166b43d31640c0208a9 -" -: -" -8961279a8237c3e318452024dd971b1d5a26b058260c297382a74daca1b7f0d1 -" -" -tests -/ -fuzz -/ -testdata -/ -deserialize_dense_minimized -- -from -- -9486fb7c8a93b12c12a62166b43d31640c0208a9 -" -: -" -c2d52e3dea78d3f159b5b521d433358a7fee45ce20ed1545067d461f45ef66b8 -" -" -tests -/ -fuzz -/ -testdata -/ -deserialize_sparse_crash -- -0da59c0434eaf35e5a6b470fa9244bb79c72b000 -" -: -" -5b2d273023de3fb04037eaf2e6b4f51cced4c5a08d2e6b44e4be540774f939b9 -" -" -tests -/ -fuzz -/ -testdata -/ -deserialize_sparse_crash -- -18cfc246f2ddfc3dfc92b0c7893178c7cf65efa9 -" -: -" -e2e22e2f46a9a75b5c876476442276cf675fe244c5cf918789e4f6b14078fbd9 -" -" -tests -/ -fuzz -/ -testdata -/ -deserialize_sparse_crash -- -61fd8e3003bf9d99f6c1e5a8488727eefd234b98 -" -: -" -24a12712e1f2ba0a40b5782707908a74dd19941dc372ef525d65a7134f91988c -" -" -tests -/ -fuzz -/ -testdata -/ -deserialize_sparse_crash -- -a1b839d899ced76d5d7d0f78f9edb7a421505838 -" -: -" -a97f39b2febf9c73535681f7a86201e4b06d5a1ffcf135299c96c1cabfa9f6c4 -" -" -tests -/ -fuzz -/ -testdata -/ -deserialize_sparse_crash -- -c383ae07ec5e191422eadc492117439011816570 -" -: -" -44fe3ef878d35e2d51c2c17ff89bbbe3a4650e09d0cbbd48625c0f5e4dd0848b -" -" -tests -/ -fuzz -/ -testdata -/ -deserialize_sparse_crash -- -d07703ceb94b10dcd9e4acb809f2051420449e2b -" -: -" -d5534be36653b4af6cb94a7c63be58869bb8c204c5c63d67a4d6c986b44bb2e1 -" -" -tests -/ -fuzz -/ -testdata -/ -deserialize_sparse_crash -- -dbb8172d3984e7e7d03f4b5f8bb86ecd1460eff9 -" -: -" -77b844898610560afa09f2b8de73a85a0ba9a3b8cee4ff1bbf26b8c97ad4e8a2 -" -" -tests -/ -gen -/ -README -. -md -" -: -" -c3bfdf2f9ced501dd5bd75d01509a34e503efb2dff2f5f7b260580dde5519ed4 -" -" -tests -/ -gen -/ -dense -/ -mod -. -rs -" -: -" -5ae1cfb46212a674118ada2f66f37b25188e84643d406b95eb4665d722344262 -" -" -tests -/ -gen -/ -dense -/ -multi_pattern_v2 -. -rs -" -: -" -29b1e9a799adecbdbe7cd05e9748f664c2b915b10b1d2f5d36cfb6453826d1d2 -" -" -tests -/ -gen -/ -dense -/ -multi_pattern_v2_fwd -. -bigendian -. -dfa -" -: -" -8421d5a1bfc0b6c3bdc8fc90dff591a046b0aaf8e06ef7de7cc293004a35d061 -" -" -tests -/ -gen -/ -dense -/ -multi_pattern_v2_fwd -. -littleendian -. -dfa -" -: -" -dcf2fd5fd49f5f53cf1ec66f61623402f39401cb3aea30d6677b98bb1e9541bf -" -" -tests -/ -gen -/ -dense -/ -multi_pattern_v2_rev -. -bigendian -. -dfa -" -: -" -73c4f20d984e544dfa4cf05f3009d0a9b52fa84bc97b501ea0ccd179e2def4bc -" -" -tests -/ -gen -/ -dense -/ -multi_pattern_v2_rev -. -littleendian -. -dfa -" -: -" -74471209f05754e8e20c8a0222a5877b1b15b8b8f33cd8cac89ea65f708b4aff -" -" -tests -/ -gen -/ -mod -. -rs -" -: -" -043773510e02f51def43ee0c2b8b867c53ecc8638c8a9233b2ac098de9c3ac1e -" -" -tests -/ -gen -/ -sparse -/ -mod -. -rs -" -: -" -5ae1cfb46212a674118ada2f66f37b25188e84643d406b95eb4665d722344262 -" -" -tests -/ -gen -/ -sparse -/ -multi_pattern_v2 -. -rs -" -: -" -e00fb2a510a215460aab84573196b1f51bb65884ff494c2382534c04f6fdbfe9 -" -" -tests -/ -gen -/ -sparse -/ -multi_pattern_v2_fwd -. -bigendian -. -dfa -" -: -" -3287956bd2003cd69653b125f82aade95d99adbb20229bfdbb4958b8877c0a0b -" -" -tests -/ -gen -/ -sparse -/ -multi_pattern_v2_fwd -. -littleendian -. -dfa -" -: -" -bdf285901eaaac4596380115c5bbb20ab2f42f593d8d9e9238a00ed69863f9c9 -" -" -tests -/ -gen -/ -sparse -/ -multi_pattern_v2_rev -. -bigendian -. -dfa -" -: -" -e466dc085dd68b2d2220932a0e4d28759edd161c1fdad652240aa3825fd85268 -" -" -tests -/ -gen -/ -sparse -/ -multi_pattern_v2_rev -. -littleendian -. -dfa -" -: -" -80358d0c26c1cc7284065b0075f5b8804d83e673a8a8c8327f93a1c1ff455399 -" -" -tests -/ -hybrid -/ -api -. -rs -" -: -" -4b8592c412e6ad0ce4a27ed1c1496acc92366ccb1c7ec23c6fd0596fc6ebbdfb -" -" -tests -/ -hybrid -/ -mod -. -rs -" -: -" -4856a49a4d9b5e9e079c2719a5e75c32408b37e9b76cbdea057b388a3537af6d -" -" -tests -/ -hybrid -/ -suite -. -rs -" -: -" -688972275c5ef38cdc5112a1e6e54ccd2bf8290008ae2b17344c6c81e17e3a5a -" -" -tests -/ -lib -. -rs -" -: -" -5e8a014d53097dba1f865e5e35c35a69cd12f54fad74b5c49a387f8768c30847 -" -" -tests -/ -meta -/ -mod -. -rs -" -: -" -d08f4ecb8ec243be584944c9602af1ed3a48a8732dd11cd573b0d1d182171303 -" -" -tests -/ -meta -/ -suite -. -rs -" -: -" -4c441f9df82508a5e60dd08f266183f772fc9b2b236fbf69cab87650ecf3b424 -" -" -tests -/ -nfa -/ -mod -. -rs -" -: -" -49055c358e38d97e42acb1602c671f97dddf24cafe089490f0e79ed208d74d9b -" -" -tests -/ -nfa -/ -thompson -/ -backtrack -/ -mod -. -rs -" -: -" -d08f4ecb8ec243be584944c9602af1ed3a48a8732dd11cd573b0d1d182171303 -" -" -tests -/ -nfa -/ -thompson -/ -backtrack -/ -suite -. -rs -" -: -" -4e7baff70fc98b98b8297c6fd6d5818beb20343379e16cdb95bee46207ac4bd6 -" -" -tests -/ -nfa -/ -thompson -/ -mod -. -rs -" -: -" -de9f5bcea1a8d1f03c85c55ad8c0747877d69e344fcd6c6886b0a402f0661291 -" -" -tests -/ -nfa -/ -thompson -/ -pikevm -/ -mod -. -rs -" -: -" -d08f4ecb8ec243be584944c9602af1ed3a48a8732dd11cd573b0d1d182171303 -" -" -tests -/ -nfa -/ -thompson -/ -pikevm -/ -suite -. -rs -" -: -" -263837ebf5b2e1906a06237982ea875386d83567e399b4ec1f669f10b1422599 -" -} -" -package -" -: -" -49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629 -" -} diff --git a/third_party/rust/regex-automata/Cargo.toml b/third_party/rust/regex-automata/Cargo.toml deleted file mode 100644 index 9d94823c34f4c..0000000000000 --- a/third_party/rust/regex-automata/Cargo.toml +++ /dev/null @@ -1,991 +0,0 @@ -# -THIS -FILE -IS -AUTOMATICALLY -GENERATED -BY -CARGO -# -# -When -uploading -crates -to -the -registry -Cargo -will -automatically -# -" -normalize -" -Cargo -. -toml -files -for -maximal -compatibility -# -with -all -versions -of -Cargo -and -also -rewrite -path -dependencies -# -to -registry -( -e -. -g -. -crates -. -io -) -dependencies -. -# -# -If -you -are -reading -this -file -be -aware -that -the -original -Cargo -. -toml -# -will -likely -look -very -different -( -and -much -more -reasonable -) -. -# -See -Cargo -. -toml -. -orig -for -the -original -contents -. -[ -package -] -edition -= -" -2021 -" -name -= -" -regex -- -automata -" -version -= -" -0 -. -3 -. -7 -" -authors -= -[ -" -The -Rust -Project -Developers -" -" -Andrew -Gallant -< -jamslam -gmail -. -com -> -" -] -autoexamples -= -false -description -= -" -Automata -construction -and -matching -using -regular -expressions -. -" -documentation -= -" -https -: -/ -/ -docs -. -rs -/ -regex -- -automata -" -readme -= -" -README -. -md -" -keywords -= -[ -" -regex -" -" -dfa -" -" -automata -" -" -automaton -" -" -nfa -" -] -categories -= -[ -" -text -- -processing -" -] -license -= -" -MIT -OR -Apache -- -2 -. -0 -" -repository -= -" -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -tree -/ -master -/ -regex -- -automata -" -[ -lib -] -bench -= -false -[ -[ -test -] -] -name -= -" -integration -" -path -= -" -tests -/ -lib -. -rs -" -[ -dependencies -. -aho -- -corasick -] -version -= -" -1 -. -0 -. -0 -" -optional -= -true -default -- -features -= -false -[ -dependencies -. -log -] -version -= -" -0 -. -4 -. -14 -" -optional -= -true -[ -dependencies -. -memchr -] -version -= -" -2 -. -5 -. -0 -" -optional -= -true -default -- -features -= -false -[ -dependencies -. -regex -- -syntax -] -version -= -" -0 -. -7 -. -4 -" -optional -= -true -default -- -features -= -false -[ -dev -- -dependencies -. -anyhow -] -version -= -" -1 -. -0 -. -69 -" -[ -dev -- -dependencies -. -bstr -] -version -= -" -1 -. -3 -. -0 -" -features -= -[ -" -std -" -] -default -- -features -= -false -[ -dev -- -dependencies -. -doc -- -comment -] -version -= -" -0 -. -3 -. -3 -" -[ -dev -- -dependencies -. -env_logger -] -version -= -" -0 -. -9 -. -3 -" -features -= -[ -" -atty -" -" -humantime -" -" -termcolor -" -] -default -- -features -= -false -[ -dev -- -dependencies -. -quickcheck -] -version -= -" -1 -. -0 -. -3 -" -default -- -features -= -false -[ -dev -- -dependencies -. -regex -- -test -] -version -= -" -0 -. -1 -. -0 -" -[ -features -] -alloc -= -[ -] -default -= -[ -" -std -" -" -syntax -" -" -perf -" -" -unicode -" -" -meta -" -" -nfa -" -" -dfa -" -" -hybrid -" -] -dfa -= -[ -" -dfa -- -build -" -" -dfa -- -search -" -" -dfa -- -onepass -" -] -dfa -- -build -= -[ -" -nfa -- -thompson -" -" -dfa -- -search -" -] -dfa -- -onepass -= -[ -" -nfa -- -thompson -" -] -dfa -- -search -= -[ -] -hybrid -= -[ -" -alloc -" -" -nfa -- -thompson -" -] -internal -- -instrument -= -[ -" -internal -- -instrument -- -pikevm -" -] -internal -- -instrument -- -pikevm -= -[ -" -logging -" -" -std -" -] -logging -= -[ -" -dep -: -log -" -" -aho -- -corasick -? -/ -logging -" -] -meta -= -[ -" -syntax -" -" -nfa -- -pikevm -" -] -nfa -= -[ -" -nfa -- -thompson -" -" -nfa -- -pikevm -" -" -nfa -- -backtrack -" -] -nfa -- -backtrack -= -[ -" -nfa -- -thompson -" -] -nfa -- -pikevm -= -[ -" -nfa -- -thompson -" -] -nfa -- -thompson -= -[ -" -alloc -" -] -perf -= -[ -" -perf -- -inline -" -" -perf -- -literal -" -] -perf -- -inline -= -[ -] -perf -- -literal -= -[ -" -perf -- -literal -- -substring -" -" -perf -- -literal -- -multisubstring -" -] -perf -- -literal -- -multisubstring -= -[ -" -std -" -" -dep -: -aho -- -corasick -" -] -perf -- -literal -- -substring -= -[ -" -aho -- -corasick -? -/ -perf -- -literal -" -" -dep -: -memchr -" -] -std -= -[ -" -regex -- -syntax -? -/ -std -" -" -memchr -? -/ -std -" -" -aho -- -corasick -? -/ -std -" -" -alloc -" -] -syntax -= -[ -" -dep -: -regex -- -syntax -" -" -alloc -" -] -unicode -= -[ -" -unicode -- -age -" -" -unicode -- -bool -" -" -unicode -- -case -" -" -unicode -- -gencat -" -" -unicode -- -perl -" -" -unicode -- -script -" -" -unicode -- -segment -" -" -unicode -- -word -- -boundary -" -" -regex -- -syntax -? -/ -unicode -" -] -unicode -- -age -= -[ -" -regex -- -syntax -? -/ -unicode -- -age -" -] -unicode -- -bool -= -[ -" -regex -- -syntax -? -/ -unicode -- -bool -" -] -unicode -- -case -= -[ -" -regex -- -syntax -? -/ -unicode -- -case -" -] -unicode -- -gencat -= -[ -" -regex -- -syntax -? -/ -unicode -- -gencat -" -] -unicode -- -perl -= -[ -" -regex -- -syntax -? -/ -unicode -- -perl -" -] -unicode -- -script -= -[ -" -regex -- -syntax -? -/ -unicode -- -script -" -] -unicode -- -segment -= -[ -" -regex -- -syntax -? -/ -unicode -- -segment -" -] -unicode -- -word -- -boundary -= -[ -] diff --git a/third_party/rust/regex-automata/LICENSE-APACHE b/third_party/rust/regex-automata/LICENSE-APACHE deleted file mode 100644 index 689c90d245bbc..0000000000000 --- a/third_party/rust/regex-automata/LICENSE-APACHE +++ /dev/null @@ -1,1794 +0,0 @@ -Apache -License -Version -2 -. -0 -January -2004 -http -: -/ -/ -www -. -apache -. -org -/ -licenses -/ -TERMS -AND -CONDITIONS -FOR -USE -REPRODUCTION -AND -DISTRIBUTION -1 -. -Definitions -. -" -License -" -shall -mean -the -terms -and -conditions -for -use -reproduction -and -distribution -as -defined -by -Sections -1 -through -9 -of -this -document -. -" -Licensor -" -shall -mean -the -copyright -owner -or -entity -authorized -by -the -copyright -owner -that -is -granting -the -License -. -" -Legal -Entity -" -shall -mean -the -union -of -the -acting -entity -and -all -other -entities -that -control -are -controlled -by -or -are -under -common -control -with -that -entity -. -For -the -purposes -of -this -definition -" -control -" -means -( -i -) -the -power -direct -or -indirect -to -cause -the -direction -or -management -of -such -entity -whether -by -contract -or -otherwise -or -( -ii -) -ownership -of -fifty -percent -( -50 -% -) -or -more -of -the -outstanding -shares -or -( -iii -) -beneficial -ownership -of -such -entity -. -" -You -" -( -or -" -Your -" -) -shall -mean -an -individual -or -Legal -Entity -exercising -permissions -granted -by -this -License -. -" -Source -" -form -shall -mean -the -preferred -form -for -making -modifications -including -but -not -limited -to -software -source -code -documentation -source -and -configuration -files -. -" -Object -" -form -shall -mean -any -form -resulting -from -mechanical -transformation -or -translation -of -a -Source -form -including -but -not -limited -to -compiled -object -code -generated -documentation -and -conversions -to -other -media -types -. -" -Work -" -shall -mean -the -work -of -authorship -whether -in -Source -or -Object -form -made -available -under -the -License -as -indicated -by -a -copyright -notice -that -is -included -in -or -attached -to -the -work -( -an -example -is -provided -in -the -Appendix -below -) -. -" -Derivative -Works -" -shall -mean -any -work -whether -in -Source -or -Object -form -that -is -based -on -( -or -derived -from -) -the -Work -and -for -which -the -editorial -revisions -annotations -elaborations -or -other -modifications -represent -as -a -whole -an -original -work -of -authorship -. -For -the -purposes -of -this -License -Derivative -Works -shall -not -include -works -that -remain -separable -from -or -merely -link -( -or -bind -by -name -) -to -the -interfaces -of -the -Work -and -Derivative -Works -thereof -. -" -Contribution -" -shall -mean -any -work -of -authorship -including -the -original -version -of -the -Work -and -any -modifications -or -additions -to -that -Work -or -Derivative -Works -thereof -that -is -intentionally -submitted -to -Licensor -for -inclusion -in -the -Work -by -the -copyright -owner -or -by -an -individual -or -Legal -Entity -authorized -to -submit -on -behalf -of -the -copyright -owner -. -For -the -purposes -of -this -definition -" -submitted -" -means -any -form -of -electronic -verbal -or -written -communication -sent -to -the -Licensor -or -its -representatives -including -but -not -limited -to -communication -on -electronic -mailing -lists -source -code -control -systems -and -issue -tracking -systems -that -are -managed -by -or -on -behalf -of -the -Licensor -for -the -purpose -of -discussing -and -improving -the -Work -but -excluding -communication -that -is -conspicuously -marked -or -otherwise -designated -in -writing -by -the -copyright -owner -as -" -Not -a -Contribution -. -" -" -Contributor -" -shall -mean -Licensor -and -any -individual -or -Legal -Entity -on -behalf -of -whom -a -Contribution -has -been -received -by -Licensor -and -subsequently -incorporated -within -the -Work -. -2 -. -Grant -of -Copyright -License -. -Subject -to -the -terms -and -conditions -of -this -License -each -Contributor -hereby -grants -to -You -a -perpetual -worldwide -non -- -exclusive -no -- -charge -royalty -- -free -irrevocable -copyright -license -to -reproduce -prepare -Derivative -Works -of -publicly -display -publicly -perform -sublicense -and -distribute -the -Work -and -such -Derivative -Works -in -Source -or -Object -form -. -3 -. -Grant -of -Patent -License -. -Subject -to -the -terms -and -conditions -of -this -License -each -Contributor -hereby -grants -to -You -a -perpetual -worldwide -non -- -exclusive -no -- -charge -royalty -- -free -irrevocable -( -except -as -stated -in -this -section -) -patent -license -to -make -have -made -use -offer -to -sell -sell -import -and -otherwise -transfer -the -Work -where -such -license -applies -only -to -those -patent -claims -licensable -by -such -Contributor -that -are -necessarily -infringed -by -their -Contribution -( -s -) -alone -or -by -combination -of -their -Contribution -( -s -) -with -the -Work -to -which -such -Contribution -( -s -) -was -submitted -. -If -You -institute -patent -litigation -against -any -entity -( -including -a -cross -- -claim -or -counterclaim -in -a -lawsuit -) -alleging -that -the -Work -or -a -Contribution -incorporated -within -the -Work -constitutes -direct -or -contributory -patent -infringement -then -any -patent -licenses -granted -to -You -under -this -License -for -that -Work -shall -terminate -as -of -the -date -such -litigation -is -filed -. -4 -. -Redistribution -. -You -may -reproduce -and -distribute -copies -of -the -Work -or -Derivative -Works -thereof -in -any -medium -with -or -without -modifications -and -in -Source -or -Object -form -provided -that -You -meet -the -following -conditions -: -( -a -) -You -must -give -any -other -recipients -of -the -Work -or -Derivative -Works -a -copy -of -this -License -; -and -( -b -) -You -must -cause -any -modified -files -to -carry -prominent -notices -stating -that -You -changed -the -files -; -and -( -c -) -You -must -retain -in -the -Source -form -of -any -Derivative -Works -that -You -distribute -all -copyright -patent -trademark -and -attribution -notices -from -the -Source -form -of -the -Work -excluding -those -notices -that -do -not -pertain -to -any -part -of -the -Derivative -Works -; -and -( -d -) -If -the -Work -includes -a -" -NOTICE -" -text -file -as -part -of -its -distribution -then -any -Derivative -Works -that -You -distribute -must -include -a -readable -copy -of -the -attribution -notices -contained -within -such -NOTICE -file -excluding -those -notices -that -do -not -pertain -to -any -part -of -the -Derivative -Works -in -at -least -one -of -the -following -places -: -within -a -NOTICE -text -file -distributed -as -part -of -the -Derivative -Works -; -within -the -Source -form -or -documentation -if -provided -along -with -the -Derivative -Works -; -or -within -a -display -generated -by -the -Derivative -Works -if -and -wherever -such -third -- -party -notices -normally -appear -. -The -contents -of -the -NOTICE -file -are -for -informational -purposes -only -and -do -not -modify -the -License -. -You -may -add -Your -own -attribution -notices -within -Derivative -Works -that -You -distribute -alongside -or -as -an -addendum -to -the -NOTICE -text -from -the -Work -provided -that -such -additional -attribution -notices -cannot -be -construed -as -modifying -the -License -. -You -may -add -Your -own -copyright -statement -to -Your -modifications -and -may -provide -additional -or -different -license -terms -and -conditions -for -use -reproduction -or -distribution -of -Your -modifications -or -for -any -such -Derivative -Works -as -a -whole -provided -Your -use -reproduction -and -distribution -of -the -Work -otherwise -complies -with -the -conditions -stated -in -this -License -. -5 -. -Submission -of -Contributions -. -Unless -You -explicitly -state -otherwise -any -Contribution -intentionally -submitted -for -inclusion -in -the -Work -by -You -to -the -Licensor -shall -be -under -the -terms -and -conditions -of -this -License -without -any -additional -terms -or -conditions -. -Notwithstanding -the -above -nothing -herein -shall -supersede -or -modify -the -terms -of -any -separate -license -agreement -you -may -have -executed -with -Licensor -regarding -such -Contributions -. -6 -. -Trademarks -. -This -License -does -not -grant -permission -to -use -the -trade -names -trademarks -service -marks -or -product -names -of -the -Licensor -except -as -required -for -reasonable -and -customary -use -in -describing -the -origin -of -the -Work -and -reproducing -the -content -of -the -NOTICE -file -. -7 -. -Disclaimer -of -Warranty -. -Unless -required -by -applicable -law -or -agreed -to -in -writing -Licensor -provides -the -Work -( -and -each -Contributor -provides -its -Contributions -) -on -an -" -AS -IS -" -BASIS -WITHOUT -WARRANTIES -OR -CONDITIONS -OF -ANY -KIND -either -express -or -implied -including -without -limitation -any -warranties -or -conditions -of -TITLE -NON -- -INFRINGEMENT -MERCHANTABILITY -or -FITNESS -FOR -A -PARTICULAR -PURPOSE -. -You -are -solely -responsible -for -determining -the -appropriateness -of -using -or -redistributing -the -Work -and -assume -any -risks -associated -with -Your -exercise -of -permissions -under -this -License -. -8 -. -Limitation -of -Liability -. -In -no -event -and -under -no -legal -theory -whether -in -tort -( -including -negligence -) -contract -or -otherwise -unless -required -by -applicable -law -( -such -as -deliberate -and -grossly -negligent -acts -) -or -agreed -to -in -writing -shall -any -Contributor -be -liable -to -You -for -damages -including -any -direct -indirect -special -incidental -or -consequential -damages -of -any -character -arising -as -a -result -of -this -License -or -out -of -the -use -or -inability -to -use -the -Work -( -including -but -not -limited -to -damages -for -loss -of -goodwill -work -stoppage -computer -failure -or -malfunction -or -any -and -all -other -commercial -damages -or -losses -) -even -if -such -Contributor -has -been -advised -of -the -possibility -of -such -damages -. -9 -. -Accepting -Warranty -or -Additional -Liability -. -While -redistributing -the -Work -or -Derivative -Works -thereof -You -may -choose -to -offer -and -charge -a -fee -for -acceptance -of -support -warranty -indemnity -or -other -liability -obligations -and -/ -or -rights -consistent -with -this -License -. -However -in -accepting -such -obligations -You -may -act -only -on -Your -own -behalf -and -on -Your -sole -responsibility -not -on -behalf -of -any -other -Contributor -and -only -if -You -agree -to -indemnify -defend -and -hold -each -Contributor -harmless -for -any -liability -incurred -by -or -claims -asserted -against -such -Contributor -by -reason -of -your -accepting -any -such -warranty -or -additional -liability -. -END -OF -TERMS -AND -CONDITIONS -APPENDIX -: -How -to -apply -the -Apache -License -to -your -work -. -To -apply -the -Apache -License -to -your -work -attach -the -following -boilerplate -notice -with -the -fields -enclosed -by -brackets -" -[ -] -" -replaced -with -your -own -identifying -information -. -( -Don -' -t -include -the -brackets -! -) -The -text -should -be -enclosed -in -the -appropriate -comment -syntax -for -the -file -format -. -We -also -recommend -that -a -file -or -class -name -and -description -of -purpose -be -included -on -the -same -" -printed -page -" -as -the -copyright -notice -for -easier -identification -within -third -- -party -archives -. -Copyright -[ -yyyy -] -[ -name -of -copyright -owner -] -Licensed -under -the -Apache -License -Version -2 -. -0 -( -the -" -License -" -) -; -you -may -not -use -this -file -except -in -compliance -with -the -License -. -You -may -obtain -a -copy -of -the -License -at -http -: -/ -/ -www -. -apache -. -org -/ -licenses -/ -LICENSE -- -2 -. -0 -Unless -required -by -applicable -law -or -agreed -to -in -writing -software -distributed -under -the -License -is -distributed -on -an -" -AS -IS -" -BASIS -WITHOUT -WARRANTIES -OR -CONDITIONS -OF -ANY -KIND -either -express -or -implied -. -See -the -License -for -the -specific -language -governing -permissions -and -limitations -under -the -License -. diff --git a/third_party/rust/regex-automata/README.md b/third_party/rust/regex-automata/README.md deleted file mode 100644 index d4dc71db4ac0e..0000000000000 --- a/third_party/rust/regex-automata/README.md +++ /dev/null @@ -1,1310 +0,0 @@ -regex -- -automata -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -crate -exposes -a -variety -of -regex -engines -used -by -the -regex -crate -. -It -provides -a -vast -sprawling -and -" -expert -" -level -API -to -each -regex -engine -. -The -regex -engines -provided -by -this -crate -focus -heavily -on -finite -automata -implementations -and -specifically -guarantee -worst -case -O -( -m -* -n -) -time -complexity -for -all -searches -. -( -Where -m -~ -len -( -regex -) -and -n -~ -len -( -haystack -) -. -) -[ -! -[ -Build -status -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -workflows -/ -ci -/ -badge -. -svg -) -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -actions -) -[ -! -[ -Crates -. -io -] -( -https -: -/ -/ -img -. -shields -. -io -/ -crates -/ -v -/ -regex -- -automata -. -svg -) -] -( -https -: -/ -/ -crates -. -io -/ -crates -/ -regex -- -automata -) -# -# -# -Documentation -https -: -/ -/ -docs -. -rs -/ -regex -- -automata -# -# -# -Example -This -example -shows -how -to -search -for -matches -of -multiple -regexes -where -each -regex -uses -the -same -capture -group -names -to -parse -different -key -- -value -formats -. -rust -use -regex_automata -: -: -{ -meta -: -: -Regex -PatternID -} -; -let -re -= -Regex -: -: -new_many -( -& -[ -r -# -" -( -? -m -) -^ -( -? -< -key -> -[ -[ -: -word -: -] -] -+ -) -= -( -? -< -val -> -[ -[ -: -word -: -] -] -+ -) -" -# -r -# -" -( -? -m -) -^ -( -? -< -key -> -[ -[ -: -word -: -] -] -+ -) -= -" -( -? -< -val -> -[ -^ -" -] -+ -) -" -" -# -r -# -" -( -? -m -) -^ -( -? -< -key -> -[ -[ -: -word -: -] -] -+ -) -= -' -( -? -< -val -> -[ -^ -' -] -+ -) -' -" -# -r -# -" -( -? -m -) -^ -( -? -< -key -> -[ -[ -: -word -: -] -] -+ -) -: -\ -s -* -( -? -< -val -> -[ -[ -: -word -: -] -] -+ -) -" -# -] -) -. -unwrap -( -) -; -let -hay -= -r -# -" -best_album -= -" -Blow -Your -Face -Out -" -best_quote -= -' -" -then -as -it -was -then -again -it -will -be -" -' -best_year -= -1973 -best_simpsons_episode -: -HOMR -" -# -; -let -mut -kvs -= -vec -! -[ -] -; -for -caps -in -re -. -captures_iter -( -hay -) -{ -/ -/ -N -. -B -. -One -could -use -capture -indices -' -1 -' -and -' -2 -' -here -/ -/ -as -well -. -Capture -indices -are -local -to -each -pattern -. -/ -/ -( -Just -like -names -are -. -) -let -key -= -& -hay -[ -caps -. -get_group_by_name -( -" -key -" -) -. -unwrap -( -) -] -; -let -val -= -& -hay -[ -caps -. -get_group_by_name -( -" -val -" -) -. -unwrap -( -) -] -; -kvs -. -push -( -( -key -val -) -) -; -} -assert_eq -! -( -kvs -vec -! -[ -( -" -best_album -" -" -Blow -Your -Face -Out -" -) -( -" -best_quote -" -" -\ -" -then -as -it -was -then -again -it -will -be -\ -" -" -) -( -" -best_year -" -" -1973 -" -) -( -" -best_simpsons_episode -" -" -HOMR -" -) -] -) -; -# -# -# -Safety -* -* -I -welcome -audits -of -unsafe -code -. -* -* -This -crate -tries -to -be -extremely -conservative -in -its -use -of -unsafe -but -does -use -it -in -a -few -spots -. -In -general -I -am -very -open -to -removing -uses -of -unsafe -if -it -doesn -' -t -result -in -measurable -performance -regressions -and -doesn -' -t -result -in -significantly -more -complex -code -. -Below -is -an -outline -of -how -unsafe -is -used -in -this -crate -. -* -util -: -: -pool -: -: -Pool -makes -use -of -unsafe -to -implement -a -fast -path -for -accessing -an -element -of -the -pool -. -The -fast -path -applies -to -the -first -thread -that -uses -the -pool -. -In -effect -the -fast -path -is -fast -because -it -avoid -a -mutex -lock -. -unsafe -is -also -used -in -the -no -- -std -version -of -Pool -to -implement -a -spin -lock -for -synchronization -. -* -util -: -: -lazy -: -: -Lazy -uses -unsafe -to -implement -a -variant -of -once_cell -: -: -sync -: -: -Lazy -that -works -in -no -- -std -environments -. -A -no -- -std -no -- -alloc -implementation -is -also -provided -that -requires -use -of -unsafe -. -* -The -dfa -module -makes -extensive -use -of -unsafe -to -support -zero -- -copy -deserialization -of -DFAs -. -The -high -level -problem -is -that -you -need -to -get -from -& -[ -u8 -] -to -the -internal -representation -of -a -DFA -without -doing -any -copies -. -This -is -required -for -support -in -no -- -std -no -- -alloc -environments -. -It -also -makes -deserialization -extremely -cheap -. -* -The -dfa -and -hybrid -modules -use -unsafe -to -explicitly -elide -bounds -checks -in -the -core -search -loops -. -This -makes -the -codegen -tighter -and -typically -leads -to -consistent -5 -- -10 -% -performance -improvements -on -some -workloads -. -In -general -the -above -reflect -the -only -uses -of -unsafe -throughout -the -entire -regex -crate -. -At -present -there -are -no -plans -to -meaningfully -expand -the -use -of -unsafe -. -With -that -said -one -thing -folks -have -been -asking -for -is -cheap -deserialization -of -a -regex -: -: -Regex -. -My -sense -is -that -this -feature -will -require -a -lot -more -unsafe -in -places -to -support -zero -- -copy -deserialization -. -It -is -unclear -at -this -point -whether -this -will -be -pursued -. -# -# -# -Motivation -I -started -out -building -this -crate -because -I -wanted -to -re -- -work -the -regex -crate -internals -to -make -it -more -amenable -to -optimizations -. -It -turns -out -that -there -are -a -lot -of -different -ways -to -build -regex -engines -and -even -more -ways -to -compose -them -. -Moreover -heuristic -literal -optimizations -are -often -tricky -to -get -correct -but -the -fruit -they -bear -is -attractive -. -All -of -these -things -were -difficult -to -expand -upon -without -risking -the -introduction -of -more -bugs -. -So -I -decided -to -tear -things -down -and -start -fresh -. -In -the -course -of -doing -so -I -ended -up -designing -strong -boundaries -between -each -component -so -that -each -component -could -be -reasoned -and -tested -independently -. -This -also -made -it -somewhat -natural -to -expose -the -components -as -a -library -unto -itself -. -Namely -folks -have -been -asking -for -more -capabilities -in -the -regex -crate -for -a -long -time -but -these -capabilities -usually -come -with -additional -API -complexity -that -I -didn -' -t -want -to -introduce -in -the -regex -crate -proper -. -But -exposing -them -in -an -" -expert -" -level -crate -like -regex -- -automata -seemed -quite -fine -. -In -the -end -I -do -still -somewhat -consider -this -crate -an -experiment -. -It -is -unclear -whether -the -strong -boundaries -between -components -will -be -an -impediment -to -ongoing -development -or -not -. -De -- -coupling -tends -to -lead -to -slower -development -in -my -experience -and -when -you -mix -in -the -added -cost -of -not -introducing -breaking -changes -all -of -the -time -things -can -get -quite -complicated -. -But -I -don -' -t -think -anyone -has -ever -release -the -internals -of -a -regex -engine -as -a -library -before -. -So -it -will -be -interesting -to -see -how -it -plays -out -! diff --git a/third_party/rust/regex-automata/src/dfa/accel.rs b/third_party/rust/regex-automata/src/dfa/accel.rs deleted file mode 100644 index 97a458f63e0a2..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/accel.rs +++ /dev/null @@ -1,2352 +0,0 @@ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -util -: -: -{ -int -: -: -Pointer -memchr -wire -: -: -{ -self -DeserializeError -Endian -SerializeError -} -} -; -type -AccelTy -= -u32 -; -const -ACCEL_TY_SIZE -: -usize -= -core -: -: -mem -: -: -size_of -: -: -< -AccelTy -> -( -) -; -const -ACCEL_LEN -: -usize -= -4 -; -const -ACCEL_CAP -: -usize -= -8 -; -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -find_fwd -( -needles -: -& -[ -u8 -] -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -Option -< -usize -> -{ -let -bs -= -needles -; -let -i -= -match -needles -. -len -( -) -{ -1 -= -> -memchr -: -: -memchr -( -bs -[ -0 -] -& -haystack -[ -at -. -. -] -) -? -2 -= -> -memchr -: -: -memchr2 -( -bs -[ -0 -] -bs -[ -1 -] -& -haystack -[ -at -. -. -] -) -? -3 -= -> -memchr -: -: -memchr3 -( -bs -[ -0 -] -bs -[ -1 -] -bs -[ -2 -] -& -haystack -[ -at -. -. -] -) -? -0 -= -> -panic -! -( -" -cannot -find -with -empty -needles -" -) -n -= -> -panic -! -( -" -invalid -needles -length -: -{ -} -" -n -) -} -; -Some -( -at -+ -i -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -find_rev -( -needles -: -& -[ -u8 -] -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -Option -< -usize -> -{ -let -bs -= -needles -; -match -needles -. -len -( -) -{ -1 -= -> -memchr -: -: -memrchr -( -bs -[ -0 -] -& -haystack -[ -. -. -at -] -) -2 -= -> -memchr -: -: -memrchr2 -( -bs -[ -0 -] -bs -[ -1 -] -& -haystack -[ -. -. -at -] -) -3 -= -> -memchr -: -: -memrchr3 -( -bs -[ -0 -] -bs -[ -1 -] -bs -[ -2 -] -& -haystack -[ -. -. -at -] -) -0 -= -> -panic -! -( -" -cannot -find -with -empty -needles -" -) -n -= -> -panic -! -( -" -invalid -needles -length -: -{ -} -" -n -) -} -} -# -[ -derive -( -Clone -) -] -pub -( -crate -) -struct -Accels -< -A -> -{ -accels -: -A -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -Accels -< -Vec -< -AccelTy -> -> -{ -pub -fn -empty -( -) -- -> -Accels -< -Vec -< -AccelTy -> -> -{ -Accels -{ -accels -: -vec -! -[ -0 -] -} -} -pub -fn -add -( -& -mut -self -accel -: -Accel -) -{ -self -. -accels -. -extend_from_slice -( -& -accel -. -as_accel_tys -( -) -) -; -let -len -= -self -. -len -( -) -; -self -. -set_len -( -len -+ -1 -) -; -} -fn -set_len -( -& -mut -self -new_len -: -usize -) -{ -let -new_len -= -AccelTy -: -: -try_from -( -new_len -) -. -unwrap -( -) -; -self -. -accels -[ -0 -] -= -new_len -; -} -} -impl -< -' -a -> -Accels -< -& -' -a -[ -AccelTy -] -> -{ -pub -fn -from_bytes_unchecked -( -mut -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -Accels -< -& -' -a -[ -AccelTy -] -> -usize -) -DeserializeError -> -{ -let -slice_start -= -slice -. -as_ptr -( -) -. -as_usize -( -) -; -let -( -accel_len -_ -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -accelerators -length -" -) -? -; -let -accel_tys_len -= -wire -: -: -add -( -wire -: -: -mul -( -accel_len -2 -" -total -number -of -accelerator -accel_tys -" -) -? -1 -" -total -number -of -accel_tys -" -) -? -; -let -accel_tys_bytes_len -= -wire -: -: -mul -( -ACCEL_TY_SIZE -accel_tys_len -" -total -number -of -bytes -in -accelerators -" -) -? -; -wire -: -: -check_slice_len -( -slice -accel_tys_bytes_len -" -accelerators -" -) -? -; -wire -: -: -check_alignment -: -: -< -AccelTy -> -( -slice -) -? -; -let -accel_tys -= -& -slice -[ -. -. -accel_tys_bytes_len -] -; -slice -= -& -slice -[ -accel_tys_bytes_len -. -. -] -; -let -accels -= -unsafe -{ -core -: -: -slice -: -: -from_raw_parts -( -accel_tys -. -as_ptr -( -) -. -cast -: -: -< -AccelTy -> -( -) -accel_tys_len -) -} -; -Ok -( -( -Accels -{ -accels -} -slice -. -as_ptr -( -) -. -as_usize -( -) -- -slice_start -) -) -} -} -impl -< -A -: -AsRef -< -[ -AccelTy -] -> -> -Accels -< -A -> -{ -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -fn -to_owned -( -& -self -) -- -> -Accels -< -alloc -: -: -vec -: -: -Vec -< -AccelTy -> -> -{ -Accels -{ -accels -: -self -. -accels -. -as_ref -( -) -. -to_vec -( -) -} -} -pub -fn -as_ref -( -& -self -) -- -> -Accels -< -& -[ -AccelTy -] -> -{ -Accels -{ -accels -: -self -. -accels -. -as_ref -( -) -} -} -pub -fn -as_bytes -( -& -self -) -- -> -& -[ -u8 -] -{ -let -accels -= -self -. -accels -. -as_ref -( -) -; -unsafe -{ -core -: -: -slice -: -: -from_raw_parts -( -accels -. -as_ptr -( -) -. -cast -: -: -< -u8 -> -( -) -accels -. -len -( -) -* -ACCEL_TY_SIZE -) -} -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -as_bytes -( -) -. -len -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -fn -needles -( -& -self -i -: -usize -) -- -> -& -[ -u8 -] -{ -if -i -> -= -self -. -len -( -) -{ -panic -! -( -" -invalid -accelerator -index -{ -} -" -i -) -; -} -let -bytes -= -self -. -as_bytes -( -) -; -let -offset -= -ACCEL_TY_SIZE -+ -i -* -ACCEL_CAP -; -let -len -= -usize -: -: -from -( -bytes -[ -offset -] -) -; -& -bytes -[ -offset -+ -1 -. -. -offset -+ -1 -+ -len -] -} -pub -fn -len -( -& -self -) -- -> -usize -{ -usize -: -: -try_from -( -self -. -accels -. -as_ref -( -) -[ -0 -] -) -. -unwrap -( -) -} -fn -get -( -& -self -i -: -usize -) -- -> -Option -< -Accel -> -{ -if -i -> -= -self -. -len -( -) -{ -return -None -; -} -let -offset -= -ACCEL_TY_SIZE -+ -i -* -ACCEL_CAP -; -let -accel -= -Accel -: -: -from_slice -( -& -self -. -as_bytes -( -) -[ -offset -. -. -] -) -. -expect -( -" -Accels -must -contain -valid -accelerators -" -) -; -Some -( -accel -) -} -fn -iter -( -& -self -) -- -> -IterAccels -< -' -_ -A -> -{ -IterAccels -{ -accels -: -self -i -: -0 -} -} -pub -fn -write_to -< -E -: -Endian -> -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -assert_eq -! -( -nwrite -% -ACCEL_TY_SIZE -0 -" -expected -accelerator -bytes -written -to -be -a -multiple -of -{ -} -" -ACCEL_TY_SIZE -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -accelerators -" -) -) -; -} -E -: -: -write_u32 -( -AccelTy -: -: -try_from -( -self -. -len -( -) -) -. -unwrap -( -) -dst -) -; -dst -[ -ACCEL_TY_SIZE -. -. -nwrite -] -. -copy_from_slice -( -& -self -. -as_bytes -( -) -[ -ACCEL_TY_SIZE -. -. -nwrite -] -) -; -Ok -( -nwrite -) -} -pub -fn -validate -( -& -self -) -- -> -Result -< -( -) -DeserializeError -> -{ -for -chunk -in -self -. -as_bytes -( -) -[ -ACCEL_TY_SIZE -. -. -] -. -chunks -( -ACCEL_CAP -) -{ -let -_ -= -Accel -: -: -from_slice -( -chunk -) -? -; -} -Ok -( -( -) -) -} -pub -fn -write_to_len -( -& -self -) -- -> -usize -{ -self -. -as_bytes -( -) -. -len -( -) -} -} -impl -< -A -: -AsRef -< -[ -AccelTy -] -> -> -core -: -: -fmt -: -: -Debug -for -Accels -< -A -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -Accels -( -" -) -? -; -let -mut -list -= -f -. -debug_list -( -) -; -for -a -in -self -. -iter -( -) -{ -list -. -entry -( -& -a -) -; -} -list -. -finish -( -) -? -; -write -! -( -f -" -) -" -) -} -} -# -[ -derive -( -Debug -) -] -struct -IterAccels -< -' -a -A -: -AsRef -< -[ -AccelTy -] -> -> -{ -accels -: -& -' -a -Accels -< -A -> -i -: -usize -} -impl -< -' -a -A -: -AsRef -< -[ -AccelTy -] -> -> -Iterator -for -IterAccels -< -' -a -A -> -{ -type -Item -= -Accel -; -fn -next -( -& -mut -self -) -- -> -Option -< -Accel -> -{ -let -accel -= -self -. -accels -. -get -( -self -. -i -) -? -; -self -. -i -+ -= -1 -; -Some -( -accel -) -} -} -# -[ -derive -( -Clone -) -] -pub -( -crate -) -struct -Accel -{ -bytes -: -[ -u8 -; -ACCEL_CAP -] -} -impl -Accel -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -new -( -) -- -> -Accel -{ -Accel -{ -bytes -: -[ -0 -; -ACCEL_CAP -] -} -} -pub -fn -from_slice -( -mut -slice -: -& -[ -u8 -] -) -- -> -Result -< -Accel -DeserializeError -> -{ -slice -= -& -slice -[ -. -. -core -: -: -cmp -: -: -min -( -ACCEL_LEN -slice -. -len -( -) -) -] -; -let -bytes -= -slice -. -try_into -( -) -. -map_err -( -| -_ -| -DeserializeError -: -: -buffer_too_small -( -" -accelerator -" -) -) -? -; -Accel -: -: -from_bytes -( -bytes -) -} -fn -from_bytes -( -bytes -: -[ -u8 -; -4 -] -) -- -> -Result -< -Accel -DeserializeError -> -{ -if -usize -: -: -from -( -bytes -[ -0 -] -) -> -= -ACCEL_LEN -{ -return -Err -( -DeserializeError -: -: -generic -( -" -accelerator -bytes -cannot -have -length -more -than -3 -" -) -) -; -} -Ok -( -Accel -: -: -from_bytes_unchecked -( -bytes -) -) -} -fn -from_bytes_unchecked -( -bytes -: -[ -u8 -; -4 -] -) -- -> -Accel -{ -Accel -{ -bytes -: -[ -bytes -[ -0 -] -bytes -[ -1 -] -bytes -[ -2 -] -bytes -[ -3 -] -0 -0 -0 -0 -] -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -add -( -& -mut -self -byte -: -u8 -) -- -> -bool -{ -if -self -. -len -( -) -> -= -3 -{ -return -false -; -} -if -byte -= -= -b -' -' -{ -return -false -; -} -assert -! -( -! -self -. -contains -( -byte -) -" -accelerator -already -contains -{ -: -? -} -" -crate -: -: -util -: -: -escape -: -: -DebugByte -( -byte -) -) -; -self -. -bytes -[ -self -. -len -( -) -+ -1 -] -= -byte -; -self -. -bytes -[ -0 -] -+ -= -1 -; -true -} -pub -fn -len -( -& -self -) -- -> -usize -{ -usize -: -: -from -( -self -. -bytes -[ -0 -] -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -len -( -) -= -= -0 -} -fn -needles -( -& -self -) -- -> -& -[ -u8 -] -{ -& -self -. -bytes -[ -1 -. -. -1 -+ -self -. -len -( -) -] -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -fn -contains -( -& -self -byte -: -u8 -) -- -> -bool -{ -self -. -needles -( -) -. -iter -( -) -. -position -( -| -& -b -| -b -= -= -byte -) -. -is_some -( -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -fn -as_accel_tys -( -& -self -) -- -> -[ -AccelTy -; -2 -] -{ -assert_eq -! -( -ACCEL_CAP -8 -) -; -let -first -= -AccelTy -: -: -from_ne_bytes -( -self -. -bytes -[ -0 -. -. -4 -] -. -try_into -( -) -. -unwrap -( -) -) -; -let -second -= -AccelTy -: -: -from_ne_bytes -( -self -. -bytes -[ -4 -. -. -8 -] -. -try_into -( -) -. -unwrap -( -) -) -; -[ -first -second -] -} -} -impl -core -: -: -fmt -: -: -Debug -for -Accel -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -Accel -( -" -) -? -; -let -mut -set -= -f -. -debug_set -( -) -; -for -& -b -in -self -. -needles -( -) -{ -set -. -entry -( -& -crate -: -: -util -: -: -escape -: -: -DebugByte -( -b -) -) -; -} -set -. -finish -( -) -? -; -write -! -( -f -" -) -" -) -} -} diff --git a/third_party/rust/regex-automata/src/dfa/automaton.rs b/third_party/rust/regex-automata/src/dfa/automaton.rs deleted file mode 100644 index 6734d73255bcc..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/automaton.rs +++ /dev/null @@ -1,2486 +0,0 @@ -# -[ -cfg -( -feature -= -" -alloc -" -) -] -use -crate -: -: -util -: -: -search -: -: -PatternSet -; -use -crate -: -: -{ -dfa -: -: -search -util -: -: -{ -empty -prefilter -: -: -Prefilter -primitives -: -: -{ -PatternID -StateID -} -search -: -: -{ -Anchored -HalfMatch -Input -MatchError -} -} -} -; -pub -unsafe -trait -Automaton -{ -fn -next_state -( -& -self -current -: -StateID -input -: -u8 -) -- -> -StateID -; -unsafe -fn -next_state_unchecked -( -& -self -current -: -StateID -input -: -u8 -) -- -> -StateID -; -fn -next_eoi_state -( -& -self -current -: -StateID -) -- -> -StateID -; -fn -start_state_forward -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -; -fn -start_state_reverse -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -; -# -[ -inline -] -fn -universal_start_state -( -& -self -_mode -: -Anchored -) -- -> -Option -< -StateID -> -{ -None -} -fn -is_special_state -( -& -self -id -: -StateID -) -- -> -bool -; -fn -is_dead_state -( -& -self -id -: -StateID -) -- -> -bool -; -fn -is_quit_state -( -& -self -id -: -StateID -) -- -> -bool -; -fn -is_match_state -( -& -self -id -: -StateID -) -- -> -bool -; -fn -is_start_state -( -& -self -id -: -StateID -) -- -> -bool -; -fn -is_accel_state -( -& -self -id -: -StateID -) -- -> -bool -; -fn -pattern_len -( -& -self -) -- -> -usize -; -fn -match_len -( -& -self -id -: -StateID -) -- -> -usize -; -fn -match_pattern -( -& -self -id -: -StateID -index -: -usize -) -- -> -PatternID -; -fn -has_empty -( -& -self -) -- -> -bool -; -fn -is_utf8 -( -& -self -) -- -> -bool -; -fn -is_always_start_anchored -( -& -self -) -- -> -bool -; -# -[ -inline -] -fn -accelerator -( -& -self -_id -: -StateID -) -- -> -& -[ -u8 -] -{ -& -[ -] -} -# -[ -inline -] -fn -get_prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -None -} -# -[ -inline -] -fn -try_search_fwd -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -utf8empty -= -self -. -has_empty -( -) -& -& -self -. -is_utf8 -( -) -; -let -hm -= -match -search -: -: -find_fwd -( -& -self -input -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -hm -) -if -! -utf8empty -= -> -return -Ok -( -Some -( -hm -) -) -Some -( -hm -) -= -> -hm -} -; -empty -: -: -skip_splits_fwd -( -input -hm -hm -. -offset -( -) -| -input -| -{ -let -got -= -search -: -: -find_fwd -( -& -self -input -) -? -; -Ok -( -got -. -map -( -| -hm -| -( -hm -hm -. -offset -( -) -) -) -) -} -) -} -# -[ -inline -] -fn -try_search_rev -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -utf8empty -= -self -. -has_empty -( -) -& -& -self -. -is_utf8 -( -) -; -let -hm -= -match -search -: -: -find_rev -( -self -input -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -hm -) -if -! -utf8empty -= -> -return -Ok -( -Some -( -hm -) -) -Some -( -hm -) -= -> -hm -} -; -empty -: -: -skip_splits_rev -( -input -hm -hm -. -offset -( -) -| -input -| -{ -let -got -= -search -: -: -find_rev -( -self -input -) -? -; -Ok -( -got -. -map -( -| -hm -| -( -hm -hm -. -offset -( -) -) -) -) -} -) -} -# -[ -inline -] -fn -try_search_overlapping_fwd -( -& -self -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -let -utf8empty -= -self -. -has_empty -( -) -& -& -self -. -is_utf8 -( -) -; -search -: -: -find_overlapping_fwd -( -self -input -state -) -? -; -match -state -. -get_match -( -) -{ -None -= -> -Ok -( -( -) -) -Some -( -_ -) -if -! -utf8empty -= -> -Ok -( -( -) -) -Some -( -_ -) -= -> -skip_empty_utf8_splits_overlapping -( -input -state -| -input -state -| -{ -search -: -: -find_overlapping_fwd -( -self -input -state -) -} -) -} -} -# -[ -inline -] -fn -try_search_overlapping_rev -( -& -self -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -let -utf8empty -= -self -. -has_empty -( -) -& -& -self -. -is_utf8 -( -) -; -search -: -: -find_overlapping_rev -( -self -input -state -) -? -; -match -state -. -get_match -( -) -{ -None -= -> -Ok -( -( -) -) -Some -( -_ -) -if -! -utf8empty -= -> -Ok -( -( -) -) -Some -( -_ -) -= -> -skip_empty_utf8_splits_overlapping -( -input -state -| -input -state -| -{ -search -: -: -find_overlapping_rev -( -self -input -state -) -} -) -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -# -[ -inline -] -fn -try_which_overlapping_matches -( -& -self -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -- -> -Result -< -( -) -MatchError -> -{ -let -mut -state -= -OverlappingState -: -: -start -( -) -; -while -let -Some -( -m -) -= -{ -self -. -try_search_overlapping_fwd -( -input -& -mut -state -) -? -; -state -. -get_match -( -) -} -{ -let -_ -= -patset -. -insert -( -m -. -pattern -( -) -) -; -if -patset -. -is_full -( -) -| -| -input -. -get_earliest -( -) -{ -break -; -} -} -Ok -( -( -) -) -} -} -unsafe -impl -< -' -a -A -: -Automaton -+ -? -Sized -> -Automaton -for -& -' -a -A -{ -# -[ -inline -] -fn -next_state -( -& -self -current -: -StateID -input -: -u8 -) -- -> -StateID -{ -( -* -* -self -) -. -next_state -( -current -input -) -} -# -[ -inline -] -unsafe -fn -next_state_unchecked -( -& -self -current -: -StateID -input -: -u8 -) -- -> -StateID -{ -( -* -* -self -) -. -next_state_unchecked -( -current -input -) -} -# -[ -inline -] -fn -next_eoi_state -( -& -self -current -: -StateID -) -- -> -StateID -{ -( -* -* -self -) -. -next_eoi_state -( -current -) -} -# -[ -inline -] -fn -start_state_forward -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -{ -( -* -* -self -) -. -start_state_forward -( -input -) -} -# -[ -inline -] -fn -start_state_reverse -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -{ -( -* -* -self -) -. -start_state_reverse -( -input -) -} -# -[ -inline -] -fn -universal_start_state -( -& -self -mode -: -Anchored -) -- -> -Option -< -StateID -> -{ -( -* -* -self -) -. -universal_start_state -( -mode -) -} -# -[ -inline -] -fn -is_special_state -( -& -self -id -: -StateID -) -- -> -bool -{ -( -* -* -self -) -. -is_special_state -( -id -) -} -# -[ -inline -] -fn -is_dead_state -( -& -self -id -: -StateID -) -- -> -bool -{ -( -* -* -self -) -. -is_dead_state -( -id -) -} -# -[ -inline -] -fn -is_quit_state -( -& -self -id -: -StateID -) -- -> -bool -{ -( -* -* -self -) -. -is_quit_state -( -id -) -} -# -[ -inline -] -fn -is_match_state -( -& -self -id -: -StateID -) -- -> -bool -{ -( -* -* -self -) -. -is_match_state -( -id -) -} -# -[ -inline -] -fn -is_start_state -( -& -self -id -: -StateID -) -- -> -bool -{ -( -* -* -self -) -. -is_start_state -( -id -) -} -# -[ -inline -] -fn -is_accel_state -( -& -self -id -: -StateID -) -- -> -bool -{ -( -* -* -self -) -. -is_accel_state -( -id -) -} -# -[ -inline -] -fn -pattern_len -( -& -self -) -- -> -usize -{ -( -* -* -self -) -. -pattern_len -( -) -} -# -[ -inline -] -fn -match_len -( -& -self -id -: -StateID -) -- -> -usize -{ -( -* -* -self -) -. -match_len -( -id -) -} -# -[ -inline -] -fn -match_pattern -( -& -self -id -: -StateID -index -: -usize -) -- -> -PatternID -{ -( -* -* -self -) -. -match_pattern -( -id -index -) -} -# -[ -inline -] -fn -has_empty -( -& -self -) -- -> -bool -{ -( -* -* -self -) -. -has_empty -( -) -} -# -[ -inline -] -fn -is_utf8 -( -& -self -) -- -> -bool -{ -( -* -* -self -) -. -is_utf8 -( -) -} -# -[ -inline -] -fn -is_always_start_anchored -( -& -self -) -- -> -bool -{ -( -* -* -self -) -. -is_always_start_anchored -( -) -} -# -[ -inline -] -fn -accelerator -( -& -self -id -: -StateID -) -- -> -& -[ -u8 -] -{ -( -* -* -self -) -. -accelerator -( -id -) -} -# -[ -inline -] -fn -get_prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -( -* -* -self -) -. -get_prefilter -( -) -} -# -[ -inline -] -fn -try_search_fwd -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -( -* -* -self -) -. -try_search_fwd -( -input -) -} -# -[ -inline -] -fn -try_search_rev -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -( -* -* -self -) -. -try_search_rev -( -input -) -} -# -[ -inline -] -fn -try_search_overlapping_fwd -( -& -self -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -( -* -* -self -) -. -try_search_overlapping_fwd -( -input -state -) -} -# -[ -inline -] -fn -try_search_overlapping_rev -( -& -self -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -( -* -* -self -) -. -try_search_overlapping_rev -( -input -state -) -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -# -[ -inline -] -fn -try_which_overlapping_matches -( -& -self -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -- -> -Result -< -( -) -MatchError -> -{ -( -* -* -self -) -. -try_which_overlapping_matches -( -input -patset -) -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -OverlappingState -{ -pub -( -crate -) -mat -: -Option -< -HalfMatch -> -pub -( -crate -) -id -: -Option -< -StateID -> -pub -( -crate -) -at -: -usize -pub -( -crate -) -next_match_index -: -Option -< -usize -> -pub -( -crate -) -rev_eoi -: -bool -} -impl -OverlappingState -{ -pub -fn -start -( -) -- -> -OverlappingState -{ -OverlappingState -{ -mat -: -None -id -: -None -at -: -0 -next_match_index -: -None -rev_eoi -: -false -} -} -pub -fn -get_match -( -& -self -) -- -> -Option -< -HalfMatch -> -{ -self -. -mat -} -} -# -[ -cold -] -# -[ -inline -( -never -) -] -fn -skip_empty_utf8_splits_overlapping -< -F -> -( -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -mut -search -: -F -) -- -> -Result -< -( -) -MatchError -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -let -mut -hm -= -match -state -. -get_match -( -) -{ -None -= -> -return -Ok -( -( -) -) -Some -( -hm -) -= -> -hm -} -; -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -if -! -input -. -is_char_boundary -( -hm -. -offset -( -) -) -{ -state -. -mat -= -None -; -} -return -Ok -( -( -) -) -; -} -while -! -input -. -is_char_boundary -( -hm -. -offset -( -) -) -{ -search -( -input -state -) -? -; -hm -= -match -state -. -get_match -( -) -{ -None -= -> -return -Ok -( -( -) -) -Some -( -hm -) -= -> -hm -} -; -} -Ok -( -( -) -) -} -pub -( -crate -) -fn -fmt_state_indicator -< -A -: -Automaton -> -( -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -dfa -: -A -id -: -StateID -) -- -> -core -: -: -fmt -: -: -Result -{ -if -dfa -. -is_dead_state -( -id -) -{ -write -! -( -f -" -D -" -) -? -; -if -dfa -. -is_start_state -( -id -) -{ -write -! -( -f -" -> -" -) -? -; -} -else -{ -write -! -( -f -" -" -) -? -; -} -} -else -if -dfa -. -is_quit_state -( -id -) -{ -write -! -( -f -" -Q -" -) -? -; -} -else -if -dfa -. -is_start_state -( -id -) -{ -if -dfa -. -is_accel_state -( -id -) -{ -write -! -( -f -" -A -> -" -) -? -; -} -else -{ -write -! -( -f -" -> -" -) -? -; -} -} -else -if -dfa -. -is_match_state -( -id -) -{ -if -dfa -. -is_accel_state -( -id -) -{ -write -! -( -f -" -A -* -" -) -? -; -} -else -{ -write -! -( -f -" -* -" -) -? -; -} -} -else -if -dfa -. -is_accel_state -( -id -) -{ -write -! -( -f -" -A -" -) -? -; -} -else -{ -write -! -( -f -" -" -) -? -; -} -Ok -( -( -) -) -} -# -[ -cfg -( -all -( -test -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -mod -tests -{ -# -[ -test -] -fn -object_safe -( -) -{ -use -crate -: -: -{ -dfa -: -: -{ -dense -Automaton -} -HalfMatch -Input -} -; -let -dfa -= -dense -: -: -DFA -: -: -new -( -" -abc -" -) -. -unwrap -( -) -; -let -dfa -: -& -dyn -Automaton -= -& -dfa -; -assert_eq -! -( -Ok -( -Some -( -HalfMatch -: -: -must -( -0 -6 -) -) -) -dfa -. -try_search_fwd -( -& -Input -: -: -new -( -b -" -xyzabcxyz -" -) -) -) -; -} -} diff --git a/third_party/rust/regex-automata/src/dfa/dense.rs b/third_party/rust/regex-automata/src/dfa/dense.rs deleted file mode 100644 index c7857d1159813..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/dense.rs +++ /dev/null @@ -1,17532 +0,0 @@ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -use -core -: -: -cmp -; -use -core -: -: -{ -convert -: -: -TryFrom -fmt -iter -mem -: -: -size_of -slice -} -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -use -alloc -: -: -{ -collections -: -: -{ -BTreeMap -BTreeSet -} -vec -vec -: -: -Vec -} -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -use -crate -: -: -{ -dfa -: -: -{ -accel -: -: -Accel -determinize -minimize -: -: -Minimizer -remapper -: -: -Remapper -sparse -} -nfa -: -: -thompson -util -: -: -{ -look -: -: -LookMatcher -search -: -: -MatchKind -} -} -; -use -crate -: -: -{ -dfa -: -: -{ -accel -: -: -Accels -automaton -: -: -{ -fmt_state_indicator -Automaton -} -special -: -: -Special -start -: -: -StartKind -DEAD -} -util -: -: -{ -alphabet -: -: -{ -self -ByteClasses -ByteSet -} -int -: -: -{ -Pointer -Usize -} -prefilter -: -: -Prefilter -primitives -: -: -{ -PatternID -StateID -} -search -: -: -{ -Anchored -Input -MatchError -} -start -: -: -{ -Start -StartByteMap -} -wire -: -: -{ -self -DeserializeError -Endian -SerializeError -} -} -} -; -const -LABEL -: -& -str -= -" -rust -- -regex -- -automata -- -dfa -- -dense -" -; -const -VERSION -: -u32 -= -2 -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -Config -{ -accelerate -: -Option -< -bool -> -pre -: -Option -< -Option -< -Prefilter -> -> -minimize -: -Option -< -bool -> -match_kind -: -Option -< -MatchKind -> -start_kind -: -Option -< -StartKind -> -starts_for_each_pattern -: -Option -< -bool -> -byte_classes -: -Option -< -bool -> -unicode_word_boundary -: -Option -< -bool -> -quitset -: -Option -< -ByteSet -> -specialize_start_states -: -Option -< -bool -> -dfa_size_limit -: -Option -< -Option -< -usize -> -> -determinize_size_limit -: -Option -< -Option -< -usize -> -> -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -Config -{ -pub -fn -new -( -) -- -> -Config -{ -Config -: -: -default -( -) -} -pub -fn -accelerate -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -accelerate -= -Some -( -yes -) -; -self -} -pub -fn -prefilter -( -mut -self -pre -: -Option -< -Prefilter -> -) -- -> -Config -{ -self -. -pre -= -Some -( -pre -) -; -if -self -. -specialize_start_states -. -is_none -( -) -{ -self -. -specialize_start_states -= -Some -( -self -. -get_prefilter -( -) -. -is_some -( -) -) -; -} -self -} -pub -fn -minimize -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -minimize -= -Some -( -yes -) -; -self -} -pub -fn -match_kind -( -mut -self -kind -: -MatchKind -) -- -> -Config -{ -self -. -match_kind -= -Some -( -kind -) -; -self -} -pub -fn -start_kind -( -mut -self -kind -: -StartKind -) -- -> -Config -{ -self -. -start_kind -= -Some -( -kind -) -; -self -} -pub -fn -starts_for_each_pattern -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -starts_for_each_pattern -= -Some -( -yes -) -; -self -} -pub -fn -byte_classes -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -byte_classes -= -Some -( -yes -) -; -self -} -pub -fn -unicode_word_boundary -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -unicode_word_boundary -= -Some -( -yes -) -; -self -} -pub -fn -quit -( -mut -self -byte -: -u8 -yes -: -bool -) -- -> -Config -{ -if -self -. -get_unicode_word_boundary -( -) -& -& -! -byte -. -is_ascii -( -) -& -& -! -yes -{ -panic -! -( -" -cannot -set -non -- -ASCII -byte -to -be -non -- -quit -when -\ -Unicode -word -boundaries -are -enabled -" -) -; -} -if -self -. -quitset -. -is_none -( -) -{ -self -. -quitset -= -Some -( -ByteSet -: -: -empty -( -) -) -; -} -if -yes -{ -self -. -quitset -. -as_mut -( -) -. -unwrap -( -) -. -add -( -byte -) -; -} -else -{ -self -. -quitset -. -as_mut -( -) -. -unwrap -( -) -. -remove -( -byte -) -; -} -self -} -pub -fn -specialize_start_states -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -specialize_start_states -= -Some -( -yes -) -; -self -} -pub -fn -dfa_size_limit -( -mut -self -bytes -: -Option -< -usize -> -) -- -> -Config -{ -self -. -dfa_size_limit -= -Some -( -bytes -) -; -self -} -pub -fn -determinize_size_limit -( -mut -self -bytes -: -Option -< -usize -> -) -- -> -Config -{ -self -. -determinize_size_limit -= -Some -( -bytes -) -; -self -} -pub -fn -get_accelerate -( -& -self -) -- -> -bool -{ -self -. -accelerate -. -unwrap_or -( -true -) -} -pub -fn -get_prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -self -. -pre -. -as_ref -( -) -. -unwrap_or -( -& -None -) -. -as_ref -( -) -} -pub -fn -get_minimize -( -& -self -) -- -> -bool -{ -self -. -minimize -. -unwrap_or -( -false -) -} -pub -fn -get_match_kind -( -& -self -) -- -> -MatchKind -{ -self -. -match_kind -. -unwrap_or -( -MatchKind -: -: -LeftmostFirst -) -} -pub -fn -get_starts -( -& -self -) -- -> -StartKind -{ -self -. -start_kind -. -unwrap_or -( -StartKind -: -: -Both -) -} -pub -fn -get_starts_for_each_pattern -( -& -self -) -- -> -bool -{ -self -. -starts_for_each_pattern -. -unwrap_or -( -false -) -} -pub -fn -get_byte_classes -( -& -self -) -- -> -bool -{ -self -. -byte_classes -. -unwrap_or -( -true -) -} -pub -fn -get_unicode_word_boundary -( -& -self -) -- -> -bool -{ -self -. -unicode_word_boundary -. -unwrap_or -( -false -) -} -pub -fn -get_quit -( -& -self -byte -: -u8 -) -- -> -bool -{ -self -. -quitset -. -map_or -( -false -| -q -| -q -. -contains -( -byte -) -) -} -pub -fn -get_specialize_start_states -( -& -self -) -- -> -bool -{ -self -. -specialize_start_states -. -unwrap_or -( -false -) -} -pub -fn -get_dfa_size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -dfa_size_limit -. -unwrap_or -( -None -) -} -pub -fn -get_determinize_size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -determinize_size_limit -. -unwrap_or -( -None -) -} -pub -( -crate -) -fn -overwrite -( -& -self -o -: -Config -) -- -> -Config -{ -Config -{ -accelerate -: -o -. -accelerate -. -or -( -self -. -accelerate -) -pre -: -o -. -pre -. -or_else -( -| -| -self -. -pre -. -clone -( -) -) -minimize -: -o -. -minimize -. -or -( -self -. -minimize -) -match_kind -: -o -. -match_kind -. -or -( -self -. -match_kind -) -start_kind -: -o -. -start_kind -. -or -( -self -. -start_kind -) -starts_for_each_pattern -: -o -. -starts_for_each_pattern -. -or -( -self -. -starts_for_each_pattern -) -byte_classes -: -o -. -byte_classes -. -or -( -self -. -byte_classes -) -unicode_word_boundary -: -o -. -unicode_word_boundary -. -or -( -self -. -unicode_word_boundary -) -quitset -: -o -. -quitset -. -or -( -self -. -quitset -) -specialize_start_states -: -o -. -specialize_start_states -. -or -( -self -. -specialize_start_states -) -dfa_size_limit -: -o -. -dfa_size_limit -. -or -( -self -. -dfa_size_limit -) -determinize_size_limit -: -o -. -determinize_size_limit -. -or -( -self -. -determinize_size_limit -) -} -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -config -: -Config -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -{ -config -: -Config -: -: -default -( -) -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -: -: -new -( -) -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build -( -& -self -pattern -: -& -str -) -- -> -Result -< -OwnedDFA -BuildError -> -{ -self -. -build_many -( -& -[ -pattern -] -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build_many -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -OwnedDFA -BuildError -> -{ -let -nfa -= -self -. -thompson -. -clone -( -) -. -configure -( -thompson -: -: -Config -: -: -new -( -) -. -which_captures -( -thompson -: -: -WhichCaptures -: -: -None -) -) -. -build_many -( -patterns -) -. -map_err -( -BuildError -: -: -nfa -) -? -; -self -. -build_from_nfa -( -& -nfa -) -} -pub -fn -build_from_nfa -( -& -self -nfa -: -& -thompson -: -: -NFA -) -- -> -Result -< -OwnedDFA -BuildError -> -{ -let -mut -quitset -= -self -. -config -. -quitset -. -unwrap_or -( -ByteSet -: -: -empty -( -) -) -; -if -self -. -config -. -get_unicode_word_boundary -( -) -& -& -nfa -. -look_set_any -( -) -. -contains_word_unicode -( -) -{ -for -b -in -0x80 -. -. -= -0xFF -{ -quitset -. -add -( -b -) -; -} -} -let -classes -= -if -! -self -. -config -. -get_byte_classes -( -) -{ -ByteClasses -: -: -singletons -( -) -} -else -{ -let -mut -set -= -nfa -. -byte_class_set -( -) -. -clone -( -) -; -if -! -quitset -. -is_empty -( -) -{ -set -. -add_set -( -& -quitset -) -; -} -set -. -byte_classes -( -) -} -; -let -mut -dfa -= -DFA -: -: -initial -( -classes -nfa -. -pattern_len -( -) -self -. -config -. -get_starts -( -) -nfa -. -look_matcher -( -) -self -. -config -. -get_starts_for_each_pattern -( -) -self -. -config -. -get_prefilter -( -) -. -map -( -| -p -| -p -. -clone -( -) -) -quitset -Flags -: -: -from_nfa -( -& -nfa -) -) -? -; -determinize -: -: -Config -: -: -new -( -) -. -match_kind -( -self -. -config -. -get_match_kind -( -) -) -. -quit -( -quitset -) -. -dfa_size_limit -( -self -. -config -. -get_dfa_size_limit -( -) -) -. -determinize_size_limit -( -self -. -config -. -get_determinize_size_limit -( -) -) -. -run -( -nfa -& -mut -dfa -) -? -; -if -self -. -config -. -get_minimize -( -) -{ -dfa -. -minimize -( -) -; -} -if -self -. -config -. -get_accelerate -( -) -{ -dfa -. -accelerate -( -) -; -} -if -! -self -. -config -. -get_specialize_start_states -( -) -{ -dfa -. -special -. -set_no_special_start_states -( -) -; -} -dfa -. -set_universal_starts -( -) -; -Ok -( -dfa -) -} -pub -fn -configure -( -& -mut -self -config -: -Config -) -- -> -& -mut -Builder -{ -self -. -config -= -self -. -config -. -overwrite -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -syntax -( -& -mut -self -config -: -crate -: -: -util -: -: -syntax -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -syntax -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -thompson -( -& -mut -self -config -: -thompson -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -configure -( -config -) -; -self -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -Default -for -Builder -{ -fn -default -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -( -crate -) -type -OwnedDFA -= -DFA -< -alloc -: -: -vec -: -: -Vec -< -u32 -> -> -; -# -[ -derive -( -Clone -) -] -pub -struct -DFA -< -T -> -{ -tt -: -TransitionTable -< -T -> -st -: -StartTable -< -T -> -ms -: -MatchStates -< -T -> -special -: -Special -accels -: -Accels -< -T -> -pre -: -Option -< -Prefilter -> -quitset -: -ByteSet -flags -: -Flags -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -OwnedDFA -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new -( -pattern -: -& -str -) -- -> -Result -< -OwnedDFA -BuildError -> -{ -Builder -: -: -new -( -) -. -build -( -pattern -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -OwnedDFA -BuildError -> -{ -Builder -: -: -new -( -) -. -build_many -( -patterns -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -OwnedDFA -{ -pub -fn -always_match -( -) -- -> -Result -< -OwnedDFA -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -always_match -( -) -; -Builder -: -: -new -( -) -. -build_from_nfa -( -& -nfa -) -} -pub -fn -never_match -( -) -- -> -Result -< -OwnedDFA -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -never_match -( -) -; -Builder -: -: -new -( -) -. -build_from_nfa -( -& -nfa -) -} -fn -initial -( -classes -: -ByteClasses -pattern_len -: -usize -starts -: -StartKind -lookm -: -& -LookMatcher -starts_for_each_pattern -: -bool -pre -: -Option -< -Prefilter -> -quitset -: -ByteSet -flags -: -Flags -) -- -> -Result -< -OwnedDFA -BuildError -> -{ -let -start_pattern_len -= -if -starts_for_each_pattern -{ -Some -( -pattern_len -) -} -else -{ -None -} -; -Ok -( -DFA -{ -tt -: -TransitionTable -: -: -minimal -( -classes -) -st -: -StartTable -: -: -dead -( -starts -lookm -start_pattern_len -) -? -ms -: -MatchStates -: -: -empty -( -pattern_len -) -special -: -Special -: -: -new -( -) -accels -: -Accels -: -: -empty -( -) -pre -quitset -flags -} -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -DFA -< -& -[ -u32 -] -> -{ -pub -fn -config -( -) -- -> -Config -{ -Config -: -: -new -( -) -} -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -} -impl -< -T -: -AsRef -< -[ -u32 -] -> -> -DFA -< -T -> -{ -pub -fn -as_ref -( -& -self -) -- -> -DFA -< -& -' -_ -[ -u32 -] -> -{ -DFA -{ -tt -: -self -. -tt -. -as_ref -( -) -st -: -self -. -st -. -as_ref -( -) -ms -: -self -. -ms -. -as_ref -( -) -special -: -self -. -special -accels -: -self -. -accels -( -) -pre -: -self -. -pre -. -clone -( -) -quitset -: -self -. -quitset -flags -: -self -. -flags -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -fn -to_owned -( -& -self -) -- -> -OwnedDFA -{ -DFA -{ -tt -: -self -. -tt -. -to_owned -( -) -st -: -self -. -st -. -to_owned -( -) -ms -: -self -. -ms -. -to_owned -( -) -special -: -self -. -special -accels -: -self -. -accels -( -) -. -to_owned -( -) -pre -: -self -. -pre -. -clone -( -) -quitset -: -self -. -quitset -flags -: -self -. -flags -} -} -pub -fn -start_kind -( -& -self -) -- -> -StartKind -{ -self -. -st -. -kind -} -pub -( -crate -) -fn -start_map -( -& -self -) -- -> -& -StartByteMap -{ -& -self -. -st -. -start_map -} -pub -fn -starts_for_each_pattern -( -& -self -) -- -> -bool -{ -self -. -st -. -pattern_len -. -is_some -( -) -} -pub -fn -byte_classes -( -& -self -) -- -> -& -ByteClasses -{ -& -self -. -tt -. -classes -} -pub -fn -alphabet_len -( -& -self -) -- -> -usize -{ -self -. -tt -. -alphabet_len -( -) -} -pub -fn -stride2 -( -& -self -) -- -> -usize -{ -self -. -tt -. -stride2 -} -pub -fn -stride -( -& -self -) -- -> -usize -{ -self -. -tt -. -stride -( -) -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -tt -. -memory_usage -( -) -+ -self -. -st -. -memory_usage -( -) -+ -self -. -ms -. -memory_usage -( -) -+ -self -. -accels -. -memory_usage -( -) -} -} -impl -< -T -: -AsRef -< -[ -u32 -] -> -> -DFA -< -T -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -to_sparse -( -& -self -) -- -> -Result -< -sparse -: -: -DFA -< -Vec -< -u8 -> -> -BuildError -> -{ -sparse -: -: -DFA -: -: -from_dense -( -self -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -to_bytes_little_endian -( -& -self -) -- -> -( -Vec -< -u8 -> -usize -) -{ -self -. -to_bytes -: -: -< -wire -: -: -LE -> -( -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -to_bytes_big_endian -( -& -self -) -- -> -( -Vec -< -u8 -> -usize -) -{ -self -. -to_bytes -: -: -< -wire -: -: -BE -> -( -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -to_bytes_native_endian -( -& -self -) -- -> -( -Vec -< -u8 -> -usize -) -{ -self -. -to_bytes -: -: -< -wire -: -: -NE -> -( -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -fn -to_bytes -< -E -: -Endian -> -( -& -self -) -- -> -( -Vec -< -u8 -> -usize -) -{ -let -len -= -self -. -write_to_len -( -) -; -let -( -mut -buf -padding -) -= -wire -: -: -alloc_aligned_buffer -: -: -< -u32 -> -( -len -) -; -self -. -as_ref -( -) -. -write_to -: -: -< -E -> -( -& -mut -buf -[ -padding -. -. -] -) -. -unwrap -( -) -; -( -buf -padding -) -} -pub -fn -write_to_little_endian -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -self -. -as_ref -( -) -. -write_to -: -: -< -wire -: -: -LE -> -( -dst -) -} -pub -fn -write_to_big_endian -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -self -. -as_ref -( -) -. -write_to -: -: -< -wire -: -: -BE -> -( -dst -) -} -pub -fn -write_to_native_endian -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -self -. -as_ref -( -) -. -write_to -: -: -< -wire -: -: -NE -> -( -dst -) -} -pub -fn -write_to_len -( -& -self -) -- -> -usize -{ -wire -: -: -write_label_len -( -LABEL -) -+ -wire -: -: -write_endianness_check_len -( -) -+ -wire -: -: -write_version_len -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -self -. -flags -. -write_to_len -( -) -+ -self -. -tt -. -write_to_len -( -) -+ -self -. -st -. -write_to_len -( -) -+ -self -. -ms -. -write_to_len -( -) -+ -self -. -special -. -write_to_len -( -) -+ -self -. -accels -. -write_to_len -( -) -+ -self -. -quitset -. -write_to_len -( -) -} -} -impl -< -' -a -> -DFA -< -& -' -a -[ -u32 -] -> -{ -pub -fn -from_bytes -( -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -DFA -< -& -' -a -[ -u32 -] -> -usize -) -DeserializeError -> -{ -let -( -dfa -nread -) -= -unsafe -{ -DFA -: -: -from_bytes_unchecked -( -slice -) -? -} -; -dfa -. -tt -. -validate -( -& -dfa -. -special -) -? -; -dfa -. -st -. -validate -( -& -dfa -. -tt -) -? -; -dfa -. -ms -. -validate -( -& -dfa -) -? -; -dfa -. -accels -. -validate -( -) -? -; -Ok -( -( -dfa -nread -) -) -} -pub -unsafe -fn -from_bytes_unchecked -( -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -DFA -< -& -' -a -[ -u32 -] -> -usize -) -DeserializeError -> -{ -let -mut -nr -= -0 -; -nr -+ -= -wire -: -: -skip_initial_padding -( -slice -) -; -wire -: -: -check_alignment -: -: -< -StateID -> -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -wire -: -: -read_label -( -& -slice -[ -nr -. -. -] -LABEL -) -? -; -nr -+ -= -wire -: -: -read_endianness_check -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -wire -: -: -read_version -( -& -slice -[ -nr -. -. -] -VERSION -) -? -; -let -_unused -= -wire -: -: -try_read_u32 -( -& -slice -[ -nr -. -. -] -" -unused -space -" -) -? -; -nr -+ -= -size_of -: -: -< -u32 -> -( -) -; -let -( -flags -nread -) -= -Flags -: -: -from_bytes -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -( -tt -nread -) -= -TransitionTable -: -: -from_bytes_unchecked -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -( -st -nread -) -= -StartTable -: -: -from_bytes_unchecked -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -( -ms -nread -) -= -MatchStates -: -: -from_bytes_unchecked -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -( -special -nread -) -= -Special -: -: -from_bytes -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -special -. -validate_state_len -( -tt -. -len -( -) -tt -. -stride2 -) -? -; -let -( -accels -nread -) -= -Accels -: -: -from_bytes_unchecked -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -( -quitset -nread -) -= -ByteSet -: -: -from_bytes -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -pre -= -None -; -Ok -( -( -DFA -{ -tt -st -ms -special -accels -pre -quitset -flags -} -nr -) -) -} -fn -write_to -< -E -: -Endian -> -( -& -self -mut -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -dense -DFA -" -) -) -; -} -dst -= -& -mut -dst -[ -. -. -nwrite -] -; -let -mut -nw -= -0 -; -nw -+ -= -wire -: -: -write_label -( -LABEL -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -wire -: -: -write_endianness_check -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -wire -: -: -write_version -: -: -< -E -> -( -VERSION -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -{ -E -: -: -write_u32 -( -0 -& -mut -dst -[ -nw -. -. -] -) -; -size_of -: -: -< -u32 -> -( -) -} -; -nw -+ -= -self -. -flags -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -tt -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -st -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -ms -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -special -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -accels -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -quitset -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -Ok -( -nw -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -OwnedDFA -{ -pub -( -crate -) -fn -set_start_state -( -& -mut -self -anchored -: -Anchored -start -: -Start -id -: -StateID -) -{ -assert -! -( -self -. -tt -. -is_valid -( -id -) -" -invalid -start -state -" -) -; -self -. -st -. -set_start -( -anchored -start -id -) -; -} -pub -( -crate -) -fn -set_transition -( -& -mut -self -from -: -StateID -byte -: -alphabet -: -: -Unit -to -: -StateID -) -{ -self -. -tt -. -set -( -from -byte -to -) -; -} -pub -( -crate -) -fn -add_empty_state -( -& -mut -self -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -tt -. -add_empty_state -( -) -} -pub -( -crate -) -fn -swap_states -( -& -mut -self -id1 -: -StateID -id2 -: -StateID -) -{ -self -. -tt -. -swap -( -id1 -id2 -) -; -} -pub -( -crate -) -fn -remap -( -& -mut -self -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -{ -for -sid -in -self -. -tt -. -table_mut -( -) -. -iter_mut -( -) -{ -* -sid -= -map -( -* -sid -) -; -} -for -sid -in -self -. -st -. -table_mut -( -) -. -iter_mut -( -) -{ -* -sid -= -map -( -* -sid -) -; -} -} -pub -( -crate -) -fn -remap_state -( -& -mut -self -id -: -StateID -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -{ -self -. -tt -. -remap -( -id -map -) -; -} -pub -( -crate -) -fn -truncate_states -( -& -mut -self -len -: -usize -) -{ -self -. -tt -. -truncate -( -len -) -; -} -pub -( -crate -) -fn -minimize -( -& -mut -self -) -{ -Minimizer -: -: -new -( -self -) -. -run -( -) -; -} -pub -( -crate -) -fn -set_pattern_map -( -& -mut -self -map -: -& -BTreeMap -< -StateID -Vec -< -PatternID -> -> -) -- -> -Result -< -( -) -BuildError -> -{ -self -. -ms -= -self -. -ms -. -new_with_map -( -map -) -? -; -Ok -( -( -) -) -} -pub -( -crate -) -fn -accelerate -( -& -mut -self -) -{ -if -self -. -state_len -( -) -< -= -2 -{ -return -; -} -let -mut -accels -= -BTreeMap -: -: -new -( -) -; -let -( -mut -cmatch -mut -cstart -mut -cnormal -) -= -( -0 -0 -0 -) -; -for -state -in -self -. -states -( -) -{ -if -let -Some -( -accel -) -= -state -. -accelerate -( -self -. -byte_classes -( -) -) -{ -debug -! -( -" -accelerating -full -DFA -state -{ -} -: -{ -: -? -} -" -state -. -id -( -) -. -as_usize -( -) -accel -) -; -accels -. -insert -( -state -. -id -( -) -accel -) -; -if -self -. -is_match_state -( -state -. -id -( -) -) -{ -cmatch -+ -= -1 -; -} -else -if -self -. -is_start_state -( -state -. -id -( -) -) -{ -cstart -+ -= -1 -; -} -else -{ -assert -! -( -! -self -. -is_dead_state -( -state -. -id -( -) -) -) -; -assert -! -( -! -self -. -is_quit_state -( -state -. -id -( -) -) -) -; -cnormal -+ -= -1 -; -} -} -} -if -accels -. -is_empty -( -) -{ -return -; -} -let -original_accels_len -= -accels -. -len -( -) -; -let -mut -remapper -= -Remapper -: -: -new -( -self -) -; -let -mut -new_matches -= -self -. -ms -. -to_map -( -self -) -; -self -. -special -. -min_accel -= -StateID -: -: -MAX -; -self -. -special -. -max_accel -= -StateID -: -: -ZERO -; -let -update_special_accel -= -| -special -: -& -mut -Special -accel_id -: -StateID -| -{ -special -. -min_accel -= -cmp -: -: -min -( -special -. -min_accel -accel_id -) -; -special -. -max_accel -= -cmp -: -: -max -( -special -. -max_accel -accel_id -) -; -} -; -if -cmatch -> -0 -& -& -self -. -special -. -matches -( -) -{ -let -mut -next_id -= -self -. -special -. -max_match -; -let -mut -cur_id -= -next_id -; -while -cur_id -> -= -self -. -special -. -min_match -{ -if -let -Some -( -accel -) -= -accels -. -remove -( -& -cur_id -) -{ -accels -. -insert -( -next_id -accel -) -; -update_special_accel -( -& -mut -self -. -special -next_id -) -; -if -cur_id -! -= -next_id -{ -remapper -. -swap -( -self -cur_id -next_id -) -; -let -cur_pids -= -new_matches -. -remove -( -& -cur_id -) -. -unwrap -( -) -; -let -next_pids -= -new_matches -. -remove -( -& -next_id -) -. -unwrap -( -) -; -new_matches -. -insert -( -cur_id -next_pids -) -; -new_matches -. -insert -( -next_id -cur_pids -) -; -} -next_id -= -self -. -tt -. -prev_state_id -( -next_id -) -; -} -cur_id -= -self -. -tt -. -prev_state_id -( -cur_id -) -; -} -} -if -cnormal -> -0 -{ -let -mut -next_start_id -= -self -. -special -. -min_start -; -let -mut -cur_id -= -self -. -to_state_id -( -self -. -state_len -( -) -- -1 -) -; -let -mut -next_norm_id -= -self -. -tt -. -next_state_id -( -self -. -special -. -max_start -) -; -while -cur_id -> -= -next_norm_id -{ -if -let -Some -( -accel -) -= -accels -. -remove -( -& -cur_id -) -{ -remapper -. -swap -( -self -next_start_id -cur_id -) -; -remapper -. -swap -( -self -next_norm_id -cur_id -) -; -if -let -Some -( -accel2 -) -= -accels -. -remove -( -& -next_norm_id -) -{ -accels -. -insert -( -cur_id -accel2 -) -; -} -if -let -Some -( -accel2 -) -= -accels -. -remove -( -& -next_start_id -) -{ -accels -. -insert -( -next_norm_id -accel2 -) -; -} -accels -. -insert -( -next_start_id -accel -) -; -update_special_accel -( -& -mut -self -. -special -next_start_id -) -; -self -. -special -. -min_start -= -self -. -tt -. -next_state_id -( -self -. -special -. -min_start -) -; -self -. -special -. -max_start -= -self -. -tt -. -next_state_id -( -self -. -special -. -max_start -) -; -next_start_id -= -self -. -tt -. -next_state_id -( -next_start_id -) -; -next_norm_id -= -self -. -tt -. -next_state_id -( -next_norm_id -) -; -} -if -! -accels -. -contains_key -( -& -cur_id -) -{ -cur_id -= -self -. -tt -. -prev_state_id -( -cur_id -) -; -} -} -} -if -cstart -> -0 -{ -let -mut -next_id -= -self -. -special -. -min_start -; -let -mut -cur_id -= -next_id -; -while -cur_id -< -= -self -. -special -. -max_start -{ -if -let -Some -( -accel -) -= -accels -. -remove -( -& -cur_id -) -{ -remapper -. -swap -( -self -cur_id -next_id -) -; -accels -. -insert -( -next_id -accel -) -; -update_special_accel -( -& -mut -self -. -special -next_id -) -; -next_id -= -self -. -tt -. -next_state_id -( -next_id -) -; -} -cur_id -= -self -. -tt -. -next_state_id -( -cur_id -) -; -} -} -remapper -. -remap -( -self -) -; -self -. -set_pattern_map -( -& -new_matches -) -. -unwrap -( -) -; -self -. -special -. -set_max -( -) -; -self -. -special -. -validate -( -) -. -expect -( -" -special -state -ranges -should -validate -" -) -; -self -. -special -. -validate_state_len -( -self -. -state_len -( -) -self -. -stride2 -( -) -) -. -expect -( -" -special -state -ranges -should -be -consistent -with -state -length -" -) -; -assert_eq -! -( -self -. -special -. -accel_len -( -self -. -stride -( -) -) -/ -/ -We -record -the -number -of -accelerated -states -initially -detected -/ -/ -since -the -accels -map -is -itself -mutated -in -the -process -above -. -/ -/ -If -mutated -incorrectly -its -size -may -change -and -thus -can -' -t -be -/ -/ -trusted -as -a -source -of -truth -of -how -many -accelerated -states -we -/ -/ -expected -there -to -be -. -original_accels_len -" -mismatch -with -expected -number -of -accelerated -states -" -) -; -let -mut -prev -: -Option -< -StateID -> -= -None -; -for -( -id -accel -) -in -accels -{ -assert -! -( -prev -. -map_or -( -true -| -p -| -self -. -tt -. -next_state_id -( -p -) -= -= -id -) -) -; -prev -= -Some -( -id -) -; -self -. -accels -. -add -( -accel -) -; -} -} -pub -( -crate -) -fn -shuffle -( -& -mut -self -mut -matches -: -BTreeMap -< -StateID -Vec -< -PatternID -> -> -) -- -> -Result -< -( -) -BuildError -> -{ -self -. -special -. -quit_id -= -self -. -to_state_id -( -1 -) -; -if -self -. -state_len -( -) -< -= -2 -{ -self -. -special -. -set_max -( -) -; -return -Ok -( -( -) -) -; -} -let -mut -is_start -: -BTreeSet -< -StateID -> -= -BTreeSet -: -: -new -( -) -; -for -( -start_id -_ -_ -) -in -self -. -starts -( -) -{ -if -start_id -= -= -DEAD -{ -continue -; -} -assert -! -( -! -matches -. -contains_key -( -& -start_id -) -" -{ -: -? -} -is -both -a -start -and -a -match -state -which -is -not -allowed -" -start_id -) -; -is_start -. -insert -( -start_id -) -; -} -let -mut -remapper -= -Remapper -: -: -new -( -self -) -; -if -matches -. -is_empty -( -) -{ -self -. -special -. -min_match -= -DEAD -; -self -. -special -. -max_match -= -DEAD -; -} -else -{ -let -mut -next_id -= -self -. -to_state_id -( -2 -) -; -let -mut -new_matches -= -BTreeMap -: -: -new -( -) -; -self -. -special -. -min_match -= -next_id -; -for -( -id -pids -) -in -matches -{ -remapper -. -swap -( -self -next_id -id -) -; -new_matches -. -insert -( -next_id -pids -) -; -if -is_start -. -contains -( -& -next_id -) -{ -is_start -. -remove -( -& -next_id -) -; -is_start -. -insert -( -id -) -; -} -next_id -= -self -. -tt -. -next_state_id -( -next_id -) -; -} -matches -= -new_matches -; -self -. -special -. -max_match -= -cmp -: -: -max -( -self -. -special -. -min_match -self -. -tt -. -prev_state_id -( -next_id -) -) -; -} -{ -let -mut -next_id -= -self -. -to_state_id -( -2 -) -; -if -self -. -special -. -matches -( -) -{ -next_id -= -self -. -tt -. -next_state_id -( -self -. -special -. -max_match -) -; -} -self -. -special -. -min_start -= -next_id -; -for -id -in -is_start -{ -remapper -. -swap -( -self -next_id -id -) -; -next_id -= -self -. -tt -. -next_state_id -( -next_id -) -; -} -self -. -special -. -max_start -= -cmp -: -: -max -( -self -. -special -. -min_start -self -. -tt -. -prev_state_id -( -next_id -) -) -; -} -remapper -. -remap -( -self -) -; -self -. -set_pattern_map -( -& -matches -) -? -; -self -. -special -. -set_max -( -) -; -self -. -special -. -validate -( -) -. -expect -( -" -special -state -ranges -should -validate -" -) -; -self -. -special -. -validate_state_len -( -self -. -state_len -( -) -self -. -stride2 -( -) -) -. -expect -( -" -special -state -ranges -should -be -consistent -with -state -length -" -) -; -Ok -( -( -) -) -} -fn -set_universal_starts -( -& -mut -self -) -{ -assert_eq -! -( -6 -Start -: -: -len -( -) -" -expected -6 -start -configurations -" -) -; -let -start_id -= -| -dfa -: -& -mut -OwnedDFA -inp -: -& -Input -< -' -_ -> -start -: -Start -| -{ -dfa -. -st -. -start -( -inp -start -) -. -expect -( -" -valid -Input -configuration -" -) -} -; -if -self -. -start_kind -( -) -. -has_unanchored -( -) -{ -let -inp -= -Input -: -: -new -( -" -" -) -. -anchored -( -Anchored -: -: -No -) -; -let -sid -= -start_id -( -self -& -inp -Start -: -: -NonWordByte -) -; -if -sid -= -= -start_id -( -self -& -inp -Start -: -: -WordByte -) -& -& -sid -= -= -start_id -( -self -& -inp -Start -: -: -Text -) -& -& -sid -= -= -start_id -( -self -& -inp -Start -: -: -LineLF -) -& -& -sid -= -= -start_id -( -self -& -inp -Start -: -: -LineCR -) -& -& -sid -= -= -start_id -( -self -& -inp -Start -: -: -CustomLineTerminator -) -{ -self -. -st -. -universal_start_unanchored -= -Some -( -sid -) -; -} -} -if -self -. -start_kind -( -) -. -has_anchored -( -) -{ -let -inp -= -Input -: -: -new -( -" -" -) -. -anchored -( -Anchored -: -: -Yes -) -; -let -sid -= -start_id -( -self -& -inp -Start -: -: -NonWordByte -) -; -if -sid -= -= -start_id -( -self -& -inp -Start -: -: -WordByte -) -& -& -sid -= -= -start_id -( -self -& -inp -Start -: -: -Text -) -& -& -sid -= -= -start_id -( -self -& -inp -Start -: -: -LineLF -) -& -& -sid -= -= -start_id -( -self -& -inp -Start -: -: -LineCR -) -& -& -sid -= -= -start_id -( -self -& -inp -Start -: -: -CustomLineTerminator -) -{ -self -. -st -. -universal_start_anchored -= -Some -( -sid -) -; -} -} -} -} -impl -< -T -: -AsRef -< -[ -u32 -] -> -> -DFA -< -T -> -{ -pub -( -crate -) -fn -special -( -& -self -) -- -> -& -Special -{ -& -self -. -special -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -special_mut -( -& -mut -self -) -- -> -& -mut -Special -{ -& -mut -self -. -special -} -pub -( -crate -) -fn -quitset -( -& -self -) -- -> -& -ByteSet -{ -& -self -. -quitset -} -pub -( -crate -) -fn -flags -( -& -self -) -- -> -& -Flags -{ -& -self -. -flags -} -pub -( -crate -) -fn -states -( -& -self -) -- -> -StateIter -< -' -_ -T -> -{ -self -. -tt -. -states -( -) -} -pub -( -crate -) -fn -state_len -( -& -self -) -- -> -usize -{ -self -. -tt -. -len -( -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -pattern_id_slice -( -& -self -id -: -StateID -) -- -> -& -[ -PatternID -] -{ -assert -! -( -self -. -is_match_state -( -id -) -) -; -self -. -ms -. -pattern_id_slice -( -self -. -match_state_index -( -id -) -) -} -pub -( -crate -) -fn -match_pattern_len -( -& -self -id -: -StateID -) -- -> -usize -{ -assert -! -( -self -. -is_match_state -( -id -) -) -; -self -. -ms -. -pattern_len -( -self -. -match_state_index -( -id -) -) -} -pub -( -crate -) -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -ms -. -pattern_len -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -pattern_map -( -& -self -) -- -> -BTreeMap -< -StateID -Vec -< -PatternID -> -> -{ -self -. -ms -. -to_map -( -self -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -quit_id -( -& -self -) -- -> -StateID -{ -self -. -to_state_id -( -1 -) -} -pub -( -crate -) -fn -to_index -( -& -self -id -: -StateID -) -- -> -usize -{ -self -. -tt -. -to_index -( -id -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -to_state_id -( -& -self -index -: -usize -) -- -> -StateID -{ -self -. -tt -. -to_state_id -( -index -) -} -pub -( -crate -) -fn -starts -( -& -self -) -- -> -StartStateIter -< -' -_ -> -{ -self -. -st -. -iter -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -match_state_index -( -& -self -id -: -StateID -) -- -> -usize -{ -debug_assert -! -( -self -. -is_match_state -( -id -) -) -; -let -min -= -self -. -special -( -) -. -min_match -. -as_usize -( -) -; -self -. -to_index -( -StateID -: -: -new_unchecked -( -id -. -as_usize -( -) -- -min -) -) -} -fn -accelerator_index -( -& -self -id -: -StateID -) -- -> -usize -{ -let -min -= -self -. -special -( -) -. -min_accel -. -as_usize -( -) -; -self -. -to_index -( -StateID -: -: -new_unchecked -( -id -. -as_usize -( -) -- -min -) -) -} -fn -accels -( -& -self -) -- -> -Accels -< -& -[ -u32 -] -> -{ -self -. -accels -. -as_ref -( -) -} -fn -trans -( -& -self -) -- -> -& -[ -StateID -] -{ -self -. -tt -. -table -( -) -} -} -impl -< -T -: -AsRef -< -[ -u32 -] -> -> -fmt -: -: -Debug -for -DFA -< -T -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -writeln -! -( -f -" -dense -: -: -DFA -( -" -) -? -; -for -state -in -self -. -states -( -) -{ -fmt_state_indicator -( -f -self -state -. -id -( -) -) -? -; -let -id -= -if -f -. -alternate -( -) -{ -state -. -id -( -) -. -as_usize -( -) -} -else -{ -self -. -to_index -( -state -. -id -( -) -) -} -; -write -! -( -f -" -{ -: -06 -? -} -: -" -id -) -? -; -state -. -fmt -( -f -) -? -; -write -! -( -f -" -\ -n -" -) -? -; -} -writeln -! -( -f -" -" -) -? -; -for -( -i -( -start_id -anchored -sty -) -) -in -self -. -starts -( -) -. -enumerate -( -) -{ -let -id -= -if -f -. -alternate -( -) -{ -start_id -. -as_usize -( -) -} -else -{ -self -. -to_index -( -start_id -) -} -; -if -i -% -self -. -st -. -stride -= -= -0 -{ -match -anchored -{ -Anchored -: -: -No -= -> -writeln -! -( -f -" -START -- -GROUP -( -unanchored -) -" -) -? -Anchored -: -: -Yes -= -> -writeln -! -( -f -" -START -- -GROUP -( -anchored -) -" -) -? -Anchored -: -: -Pattern -( -pid -) -= -> -{ -writeln -! -( -f -" -START_GROUP -( -pattern -: -{ -: -? -} -) -" -pid -) -? -} -} -} -writeln -! -( -f -" -{ -: -? -} -= -> -{ -: -06 -? -} -" -sty -id -) -? -; -} -if -self -. -pattern_len -( -) -> -1 -{ -writeln -! -( -f -" -" -) -? -; -for -i -in -0 -. -. -self -. -ms -. -len -( -) -{ -let -id -= -self -. -ms -. -match_state_id -( -self -i -) -; -let -id -= -if -f -. -alternate -( -) -{ -id -. -as_usize -( -) -} -else -{ -self -. -to_index -( -id -) -} -; -write -! -( -f -" -MATCH -( -{ -: -06 -? -} -) -: -" -id -) -? -; -for -( -i -& -pid -) -in -self -. -ms -. -pattern_id_slice -( -i -) -. -iter -( -) -. -enumerate -( -) -{ -if -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -write -! -( -f -" -{ -: -? -} -" -pid -) -? -; -} -writeln -! -( -f -" -" -) -? -; -} -} -writeln -! -( -f -" -state -length -: -{ -: -? -} -" -self -. -state_len -( -) -) -? -; -writeln -! -( -f -" -pattern -length -: -{ -: -? -} -" -self -. -pattern_len -( -) -) -? -; -writeln -! -( -f -" -flags -: -{ -: -? -} -" -self -. -flags -) -? -; -writeln -! -( -f -" -) -" -) -? -; -Ok -( -( -) -) -} -} -unsafe -impl -< -T -: -AsRef -< -[ -u32 -] -> -> -Automaton -for -DFA -< -T -> -{ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_special_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_special_state -( -id -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_dead_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_dead_state -( -id -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_quit_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_quit_state -( -id -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_match_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_match_state -( -id -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_start_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_start_state -( -id -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_accel_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_accel_state -( -id -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -next_state -( -& -self -current -: -StateID -input -: -u8 -) -- -> -StateID -{ -let -input -= -self -. -byte_classes -( -) -. -get -( -input -) -; -let -o -= -current -. -as_usize -( -) -+ -usize -: -: -from -( -input -) -; -self -. -trans -( -) -[ -o -] -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -unsafe -fn -next_state_unchecked -( -& -self -current -: -StateID -byte -: -u8 -) -- -> -StateID -{ -let -class -= -self -. -byte_classes -( -) -. -get -( -byte -) -; -let -o -= -current -. -as_usize -( -) -+ -usize -: -: -from -( -class -) -; -let -next -= -* -self -. -trans -( -) -. -get_unchecked -( -o -) -; -next -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -next_eoi_state -( -& -self -current -: -StateID -) -- -> -StateID -{ -let -eoi -= -self -. -byte_classes -( -) -. -eoi -( -) -. -as_usize -( -) -; -let -o -= -current -. -as_usize -( -) -+ -eoi -; -self -. -trans -( -) -[ -o -] -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -ms -. -pattern_len -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -match_len -( -& -self -id -: -StateID -) -- -> -usize -{ -self -. -match_pattern_len -( -id -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -match_pattern -( -& -self -id -: -StateID -match_index -: -usize -) -- -> -PatternID -{ -if -self -. -ms -. -pattern_len -= -= -1 -{ -return -PatternID -: -: -ZERO -; -} -let -state_index -= -self -. -match_state_index -( -id -) -; -self -. -ms -. -pattern_id -( -state_index -match_index -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -has_empty -( -& -self -) -- -> -bool -{ -self -. -flags -. -has_empty -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_utf8 -( -& -self -) -- -> -bool -{ -self -. -flags -. -is_utf8 -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_always_start_anchored -( -& -self -) -- -> -bool -{ -self -. -flags -. -is_always_start_anchored -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -start_state_forward -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -{ -if -! -self -. -quitset -. -is_empty -( -) -& -& -input -. -start -( -) -> -0 -{ -let -offset -= -input -. -start -( -) -- -1 -; -let -byte -= -input -. -haystack -( -) -[ -offset -] -; -if -self -. -quitset -. -contains -( -byte -) -{ -return -Err -( -MatchError -: -: -quit -( -byte -offset -) -) -; -} -} -let -start -= -self -. -st -. -start_map -. -fwd -( -& -input -) -; -self -. -st -. -start -( -input -start -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -start_state_reverse -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -{ -if -! -self -. -quitset -. -is_empty -( -) -& -& -input -. -end -( -) -< -input -. -haystack -( -) -. -len -( -) -{ -let -offset -= -input -. -end -( -) -; -let -byte -= -input -. -haystack -( -) -[ -offset -] -; -if -self -. -quitset -. -contains -( -byte -) -{ -return -Err -( -MatchError -: -: -quit -( -byte -offset -) -) -; -} -} -let -start -= -self -. -st -. -start_map -. -rev -( -& -input -) -; -self -. -st -. -start -( -input -start -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -universal_start_state -( -& -self -mode -: -Anchored -) -- -> -Option -< -StateID -> -{ -match -mode -{ -Anchored -: -: -No -= -> -self -. -st -. -universal_start_unanchored -Anchored -: -: -Yes -= -> -self -. -st -. -universal_start_anchored -Anchored -: -: -Pattern -( -_ -) -= -> -None -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -accelerator -( -& -self -id -: -StateID -) -- -> -& -[ -u8 -] -{ -if -! -self -. -is_accel_state -( -id -) -{ -return -& -[ -] -; -} -self -. -accels -. -needles -( -self -. -accelerator_index -( -id -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -get_prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -self -. -pre -. -as_ref -( -) -} -} -# -[ -derive -( -Clone -) -] -pub -( -crate -) -struct -TransitionTable -< -T -> -{ -table -: -T -classes -: -ByteClasses -stride2 -: -usize -} -impl -< -' -a -> -TransitionTable -< -& -' -a -[ -u32 -] -> -{ -unsafe -fn -from_bytes_unchecked -( -mut -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -TransitionTable -< -& -' -a -[ -u32 -] -> -usize -) -DeserializeError -> -{ -let -slice_start -= -slice -. -as_ptr -( -) -. -as_usize -( -) -; -let -( -state_len -nr -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -state -length -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -stride2 -nr -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -stride2 -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -classes -nr -) -= -ByteClasses -: -: -from_bytes -( -slice -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -if -stride2 -> -9 -{ -return -Err -( -DeserializeError -: -: -generic -( -" -dense -DFA -has -invalid -stride2 -( -too -big -) -" -) -) -; -} -if -stride2 -< -1 -{ -return -Err -( -DeserializeError -: -: -generic -( -" -dense -DFA -has -invalid -stride2 -( -too -small -) -" -) -) -; -} -let -stride -= -1usize -. -checked_shl -( -u32 -: -: -try_from -( -stride2 -) -. -unwrap -( -) -) -. -unwrap -( -) -; -if -classes -. -alphabet_len -( -) -> -stride -{ -return -Err -( -DeserializeError -: -: -generic -( -" -alphabet -size -cannot -be -bigger -than -transition -table -stride -" -) -) -; -} -let -trans_len -= -wire -: -: -shl -( -state_len -stride2 -" -dense -table -transition -length -" -) -? -; -let -table_bytes_len -= -wire -: -: -mul -( -trans_len -StateID -: -: -SIZE -" -dense -table -state -byte -length -" -) -? -; -wire -: -: -check_slice_len -( -slice -table_bytes_len -" -transition -table -" -) -? -; -wire -: -: -check_alignment -: -: -< -StateID -> -( -slice -) -? -; -let -table_bytes -= -& -slice -[ -. -. -table_bytes_len -] -; -slice -= -& -slice -[ -table_bytes_len -. -. -] -; -let -table -= -core -: -: -slice -: -: -from_raw_parts -( -table_bytes -. -as_ptr -( -) -. -cast -: -: -< -u32 -> -( -) -trans_len -) -; -let -tt -= -TransitionTable -{ -table -classes -stride2 -} -; -Ok -( -( -tt -slice -. -as_ptr -( -) -. -as_usize -( -) -- -slice_start -) -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -TransitionTable -< -Vec -< -u32 -> -> -{ -fn -minimal -( -classes -: -ByteClasses -) -- -> -TransitionTable -< -Vec -< -u32 -> -> -{ -let -mut -tt -= -TransitionTable -{ -table -: -vec -! -[ -] -classes -stride2 -: -classes -. -stride2 -( -) -} -; -tt -. -add_empty_state -( -) -. -unwrap -( -) -; -tt -. -add_empty_state -( -) -. -unwrap -( -) -; -tt -} -fn -set -( -& -mut -self -from -: -StateID -unit -: -alphabet -: -: -Unit -to -: -StateID -) -{ -assert -! -( -self -. -is_valid -( -from -) -" -invalid -' -from -' -state -" -) -; -assert -! -( -self -. -is_valid -( -to -) -" -invalid -' -to -' -state -" -) -; -self -. -table -[ -from -. -as_usize -( -) -+ -self -. -classes -. -get_by_unit -( -unit -) -] -= -to -. -as_u32 -( -) -; -} -fn -add_empty_state -( -& -mut -self -) -- -> -Result -< -StateID -BuildError -> -{ -let -next -= -self -. -table -. -len -( -) -; -let -id -= -StateID -: -: -new -( -next -) -. -map_err -( -| -_ -| -BuildError -: -: -too_many_states -( -) -) -? -; -self -. -table -. -extend -( -iter -: -: -repeat -( -0 -) -. -take -( -self -. -stride -( -) -) -) -; -Ok -( -id -) -} -fn -swap -( -& -mut -self -id1 -: -StateID -id2 -: -StateID -) -{ -assert -! -( -self -. -is_valid -( -id1 -) -" -invalid -' -id1 -' -state -: -{ -: -? -} -" -id1 -) -; -assert -! -( -self -. -is_valid -( -id2 -) -" -invalid -' -id2 -' -state -: -{ -: -? -} -" -id2 -) -; -for -b -in -0 -. -. -self -. -classes -. -alphabet_len -( -) -{ -self -. -table -. -swap -( -id1 -. -as_usize -( -) -+ -b -id2 -. -as_usize -( -) -+ -b -) -; -} -} -fn -remap -( -& -mut -self -id -: -StateID -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -{ -for -byte -in -0 -. -. -self -. -alphabet_len -( -) -{ -let -i -= -id -. -as_usize -( -) -+ -byte -; -let -next -= -self -. -table -( -) -[ -i -] -; -self -. -table_mut -( -) -[ -id -. -as_usize -( -) -+ -byte -] -= -map -( -next -) -; -} -} -fn -truncate -( -& -mut -self -len -: -usize -) -{ -self -. -table -. -truncate -( -len -< -< -self -. -stride2 -) -; -} -} -impl -< -T -: -AsRef -< -[ -u32 -] -> -> -TransitionTable -< -T -> -{ -fn -write_to -< -E -: -Endian -> -( -& -self -mut -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -transition -table -" -) -) -; -} -dst -= -& -mut -dst -[ -. -. -nwrite -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -len -( -) -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -stride2 -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -let -n -= -self -. -classes -. -write_to -( -dst -) -? -; -dst -= -& -mut -dst -[ -n -. -. -] -; -for -& -sid -in -self -. -table -( -) -{ -let -n -= -wire -: -: -write_state_id -: -: -< -E -> -( -sid -& -mut -dst -) -; -dst -= -& -mut -dst -[ -n -. -. -] -; -} -Ok -( -nwrite -) -} -fn -write_to_len -( -& -self -) -- -> -usize -{ -size_of -: -: -< -u32 -> -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -self -. -classes -. -write_to_len -( -) -+ -( -self -. -table -( -) -. -len -( -) -* -StateID -: -: -SIZE -) -} -fn -validate -( -& -self -sp -: -& -Special -) -- -> -Result -< -( -) -DeserializeError -> -{ -for -state -in -self -. -states -( -) -{ -if -sp -. -is_special_state -( -state -. -id -( -) -) -{ -let -is_actually_special -= -sp -. -is_dead_state -( -state -. -id -( -) -) -| -| -sp -. -is_quit_state -( -state -. -id -( -) -) -| -| -sp -. -is_match_state -( -state -. -id -( -) -) -| -| -sp -. -is_start_state -( -state -. -id -( -) -) -| -| -sp -. -is_accel_state -( -state -. -id -( -) -) -; -if -! -is_actually_special -{ -return -Err -( -DeserializeError -: -: -generic -( -" -found -dense -state -tagged -as -special -but -\ -wasn -' -t -actually -special -" -) -) -; -} -} -for -( -_ -to -) -in -state -. -transitions -( -) -{ -if -! -self -. -is_valid -( -to -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -found -invalid -state -ID -in -transition -table -" -) -) -; -} -} -} -Ok -( -( -) -) -} -fn -as_ref -( -& -self -) -- -> -TransitionTable -< -& -' -_ -[ -u32 -] -> -{ -TransitionTable -{ -table -: -self -. -table -. -as_ref -( -) -classes -: -self -. -classes -. -clone -( -) -stride2 -: -self -. -stride2 -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -fn -to_owned -( -& -self -) -- -> -TransitionTable -< -alloc -: -: -vec -: -: -Vec -< -u32 -> -> -{ -TransitionTable -{ -table -: -self -. -table -. -as_ref -( -) -. -to_vec -( -) -classes -: -self -. -classes -. -clone -( -) -stride2 -: -self -. -stride2 -} -} -fn -state -( -& -self -id -: -StateID -) -- -> -State -< -' -_ -> -{ -assert -! -( -self -. -is_valid -( -id -) -) -; -let -i -= -id -. -as_usize -( -) -; -State -{ -id -stride2 -: -self -. -stride2 -transitions -: -& -self -. -table -( -) -[ -i -. -. -i -+ -self -. -alphabet_len -( -) -] -} -} -fn -states -( -& -self -) -- -> -StateIter -< -' -_ -T -> -{ -StateIter -{ -tt -: -self -it -: -self -. -table -( -) -. -chunks -( -self -. -stride -( -) -) -. -enumerate -( -) -} -} -fn -to_index -( -& -self -id -: -StateID -) -- -> -usize -{ -id -. -as_usize -( -) -> -> -self -. -stride2 -} -fn -to_state_id -( -& -self -index -: -usize -) -- -> -StateID -{ -StateID -: -: -new_unchecked -( -index -< -< -self -. -stride2 -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -fn -next_state_id -( -& -self -id -: -StateID -) -- -> -StateID -{ -self -. -to_state_id -( -self -. -to_index -( -id -) -. -checked_add -( -1 -) -. -unwrap -( -) -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -fn -prev_state_id -( -& -self -id -: -StateID -) -- -> -StateID -{ -self -. -to_state_id -( -self -. -to_index -( -id -) -. -checked_sub -( -1 -) -. -unwrap -( -) -) -} -fn -table -( -& -self -) -- -> -& -[ -StateID -] -{ -wire -: -: -u32s_to_state_ids -( -self -. -table -. -as_ref -( -) -) -} -fn -len -( -& -self -) -- -> -usize -{ -self -. -table -( -) -. -len -( -) -> -> -self -. -stride2 -} -fn -stride -( -& -self -) -- -> -usize -{ -1 -< -< -self -. -stride2 -} -fn -alphabet_len -( -& -self -) -- -> -usize -{ -self -. -classes -. -alphabet_len -( -) -} -fn -is_valid -( -& -self -id -: -StateID -) -- -> -bool -{ -let -id -= -id -. -as_usize -( -) -; -id -< -self -. -table -( -) -. -len -( -) -& -& -id -% -self -. -stride -( -) -= -= -0 -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -table -( -) -. -len -( -) -* -StateID -: -: -SIZE -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -< -T -: -AsMut -< -[ -u32 -] -> -> -TransitionTable -< -T -> -{ -fn -table_mut -( -& -mut -self -) -- -> -& -mut -[ -StateID -] -{ -wire -: -: -u32s_to_state_ids_mut -( -self -. -table -. -as_mut -( -) -) -} -} -# -[ -derive -( -Clone -) -] -pub -( -crate -) -struct -StartTable -< -T -> -{ -table -: -T -kind -: -StartKind -start_map -: -StartByteMap -stride -: -usize -pattern_len -: -Option -< -usize -> -universal_start_unanchored -: -Option -< -StateID -> -universal_start_anchored -: -Option -< -StateID -> -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -StartTable -< -Vec -< -u32 -> -> -{ -fn -dead -( -kind -: -StartKind -lookm -: -& -LookMatcher -pattern_len -: -Option -< -usize -> -) -- -> -Result -< -StartTable -< -Vec -< -u32 -> -> -BuildError -> -{ -if -let -Some -( -len -) -= -pattern_len -{ -assert -! -( -len -< -= -PatternID -: -: -LIMIT -) -; -} -let -stride -= -Start -: -: -len -( -) -; -let -starts_len -= -stride -. -checked_mul -( -2 -) -. -unwrap -( -) -; -let -pattern_starts_len -= -match -stride -. -checked_mul -( -pattern_len -. -unwrap_or -( -0 -) -) -{ -Some -( -x -) -= -> -x -None -= -> -return -Err -( -BuildError -: -: -too_many_start_states -( -) -) -} -; -let -table_len -= -match -starts_len -. -checked_add -( -pattern_starts_len -) -{ -Some -( -x -) -= -> -x -None -= -> -return -Err -( -BuildError -: -: -too_many_start_states -( -) -) -} -; -if -let -Err -( -_ -) -= -isize -: -: -try_from -( -table_len -) -{ -return -Err -( -BuildError -: -: -too_many_start_states -( -) -) -; -} -let -table -= -vec -! -[ -DEAD -. -as_u32 -( -) -; -table_len -] -; -let -start_map -= -StartByteMap -: -: -new -( -lookm -) -; -Ok -( -StartTable -{ -table -kind -start_map -stride -pattern_len -universal_start_unanchored -: -None -universal_start_anchored -: -None -} -) -} -} -impl -< -' -a -> -StartTable -< -& -' -a -[ -u32 -] -> -{ -unsafe -fn -from_bytes_unchecked -( -mut -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -StartTable -< -& -' -a -[ -u32 -] -> -usize -) -DeserializeError -> -{ -let -slice_start -= -slice -. -as_ptr -( -) -. -as_usize -( -) -; -let -( -kind -nr -) -= -StartKind -: -: -from_bytes -( -slice -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -start_map -nr -) -= -StartByteMap -: -: -from_bytes -( -slice -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -stride -nr -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -start -table -stride -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -if -stride -! -= -Start -: -: -len -( -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -invalid -starting -table -stride -" -) -) -; -} -let -( -maybe_pattern_len -nr -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -start -table -patterns -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -pattern_len -= -if -maybe_pattern_len -. -as_u32 -( -) -= -= -u32 -: -: -MAX -{ -None -} -else -{ -Some -( -maybe_pattern_len -) -} -; -if -pattern_len -. -map_or -( -false -| -len -| -len -> -PatternID -: -: -LIMIT -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -invalid -number -of -patterns -" -) -) -; -} -let -( -universal_unanchored -nr -) -= -wire -: -: -try_read_u32 -( -slice -" -universal -unanchored -start -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -universal_start_unanchored -= -if -universal_unanchored -= -= -u32 -: -: -MAX -{ -None -} -else -{ -Some -( -StateID -: -: -try_from -( -universal_unanchored -) -. -map_err -( -| -e -| -{ -DeserializeError -: -: -state_id_error -( -e -" -universal -unanchored -start -" -) -} -) -? -) -} -; -let -( -universal_anchored -nr -) -= -wire -: -: -try_read_u32 -( -slice -" -universal -anchored -start -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -universal_start_anchored -= -if -universal_anchored -= -= -u32 -: -: -MAX -{ -None -} -else -{ -Some -( -StateID -: -: -try_from -( -universal_anchored -) -. -map_err -( -| -e -| -{ -DeserializeError -: -: -state_id_error -( -e -" -universal -anchored -start -" -) -} -) -? -) -} -; -let -pattern_table_size -= -wire -: -: -mul -( -stride -pattern_len -. -unwrap_or -( -0 -) -" -invalid -pattern -length -" -) -? -; -let -start_state_len -= -wire -: -: -add -( -wire -: -: -mul -( -2 -stride -" -start -state -stride -too -big -" -) -? -pattern_table_size -" -invalid -' -any -' -pattern -starts -size -" -) -? -; -let -table_bytes_len -= -wire -: -: -mul -( -start_state_len -StateID -: -: -SIZE -" -pattern -table -bytes -length -" -) -? -; -wire -: -: -check_slice_len -( -slice -table_bytes_len -" -start -ID -table -" -) -? -; -wire -: -: -check_alignment -: -: -< -StateID -> -( -slice -) -? -; -let -table_bytes -= -& -slice -[ -. -. -table_bytes_len -] -; -slice -= -& -slice -[ -table_bytes_len -. -. -] -; -let -table -= -core -: -: -slice -: -: -from_raw_parts -( -table_bytes -. -as_ptr -( -) -. -cast -: -: -< -u32 -> -( -) -start_state_len -) -; -let -st -= -StartTable -{ -table -kind -start_map -stride -pattern_len -universal_start_unanchored -universal_start_anchored -} -; -Ok -( -( -st -slice -. -as_ptr -( -) -. -as_usize -( -) -- -slice_start -) -) -} -} -impl -< -T -: -AsRef -< -[ -u32 -] -> -> -StartTable -< -T -> -{ -fn -write_to -< -E -: -Endian -> -( -& -self -mut -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -starting -table -ids -" -) -) -; -} -dst -= -& -mut -dst -[ -. -. -nwrite -] -; -let -nw -= -self -. -kind -. -write_to -: -: -< -E -> -( -dst -) -? -; -dst -= -& -mut -dst -[ -nw -. -. -] -; -let -nw -= -self -. -start_map -. -write_to -( -dst -) -? -; -dst -= -& -mut -dst -[ -nw -. -. -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -stride -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -pattern_len -. -unwrap_or -( -0xFFFF_FFFF -) -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -E -: -: -write_u32 -( -self -. -universal_start_unanchored -. -map_or -( -u32 -: -: -MAX -| -sid -| -sid -. -as_u32 -( -) -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -E -: -: -write_u32 -( -self -. -universal_start_anchored -. -map_or -( -u32 -: -: -MAX -| -sid -| -sid -. -as_u32 -( -) -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -for -& -sid -in -self -. -table -( -) -{ -let -n -= -wire -: -: -write_state_id -: -: -< -E -> -( -sid -& -mut -dst -) -; -dst -= -& -mut -dst -[ -n -. -. -] -; -} -Ok -( -nwrite -) -} -fn -write_to_len -( -& -self -) -- -> -usize -{ -self -. -kind -. -write_to_len -( -) -+ -self -. -start_map -. -write_to_len -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -( -self -. -table -( -) -. -len -( -) -* -StateID -: -: -SIZE -) -} -fn -validate -( -& -self -tt -: -& -TransitionTable -< -T -> -) -- -> -Result -< -( -) -DeserializeError -> -{ -if -! -self -. -universal_start_unanchored -. -map_or -( -true -| -s -| -tt -. -is_valid -( -s -) -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -found -invalid -universal -unanchored -starting -state -ID -" -) -) -; -} -if -! -self -. -universal_start_anchored -. -map_or -( -true -| -s -| -tt -. -is_valid -( -s -) -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -found -invalid -universal -anchored -starting -state -ID -" -) -) -; -} -for -& -id -in -self -. -table -( -) -{ -if -! -tt -. -is_valid -( -id -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -found -invalid -starting -state -ID -" -) -) -; -} -} -Ok -( -( -) -) -} -fn -as_ref -( -& -self -) -- -> -StartTable -< -& -' -_ -[ -u32 -] -> -{ -StartTable -{ -table -: -self -. -table -. -as_ref -( -) -kind -: -self -. -kind -start_map -: -self -. -start_map -. -clone -( -) -stride -: -self -. -stride -pattern_len -: -self -. -pattern_len -universal_start_unanchored -: -self -. -universal_start_unanchored -universal_start_anchored -: -self -. -universal_start_anchored -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -fn -to_owned -( -& -self -) -- -> -StartTable -< -alloc -: -: -vec -: -: -Vec -< -u32 -> -> -{ -StartTable -{ -table -: -self -. -table -. -as_ref -( -) -. -to_vec -( -) -kind -: -self -. -kind -start_map -: -self -. -start_map -. -clone -( -) -stride -: -self -. -stride -pattern_len -: -self -. -pattern_len -universal_start_unanchored -: -self -. -universal_start_unanchored -universal_start_anchored -: -self -. -universal_start_anchored -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -start -( -& -self -input -: -& -Input -< -' -_ -> -start -: -Start -) -- -> -Result -< -StateID -MatchError -> -{ -let -start_index -= -start -. -as_usize -( -) -; -let -mode -= -input -. -get_anchored -( -) -; -let -index -= -match -mode -{ -Anchored -: -: -No -= -> -{ -if -! -self -. -kind -. -has_unanchored -( -) -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -mode -) -) -; -} -start_index -} -Anchored -: -: -Yes -= -> -{ -if -! -self -. -kind -. -has_anchored -( -) -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -mode -) -) -; -} -self -. -stride -+ -start_index -} -Anchored -: -: -Pattern -( -pid -) -= -> -{ -let -len -= -match -self -. -pattern_len -{ -None -= -> -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -mode -) -) -} -Some -( -len -) -= -> -len -} -; -if -pid -. -as_usize -( -) -> -= -len -{ -return -Ok -( -DEAD -) -; -} -( -2 -* -self -. -stride -) -+ -( -self -. -stride -* -pid -. -as_usize -( -) -) -+ -start_index -} -} -; -Ok -( -self -. -table -( -) -[ -index -] -) -} -fn -iter -( -& -self -) -- -> -StartStateIter -< -' -_ -> -{ -StartStateIter -{ -st -: -self -. -as_ref -( -) -i -: -0 -} -} -fn -table -( -& -self -) -- -> -& -[ -StateID -] -{ -wire -: -: -u32s_to_state_ids -( -self -. -table -. -as_ref -( -) -) -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -table -( -) -. -len -( -) -* -StateID -: -: -SIZE -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -< -T -: -AsMut -< -[ -u32 -] -> -> -StartTable -< -T -> -{ -fn -set_start -( -& -mut -self -anchored -: -Anchored -start -: -Start -id -: -StateID -) -{ -let -start_index -= -start -. -as_usize -( -) -; -let -index -= -match -anchored -{ -Anchored -: -: -No -= -> -start_index -Anchored -: -: -Yes -= -> -self -. -stride -+ -start_index -Anchored -: -: -Pattern -( -pid -) -= -> -{ -let -pid -= -pid -. -as_usize -( -) -; -let -len -= -self -. -pattern_len -. -expect -( -" -start -states -for -each -pattern -enabled -" -) -; -assert -! -( -pid -< -len -" -invalid -pattern -ID -{ -: -? -} -" -pid -) -; -self -. -stride -. -checked_mul -( -pid -) -. -unwrap -( -) -. -checked_add -( -self -. -stride -. -checked_mul -( -2 -) -. -unwrap -( -) -) -. -unwrap -( -) -. -checked_add -( -start_index -) -. -unwrap -( -) -} -} -; -self -. -table_mut -( -) -[ -index -] -= -id -; -} -fn -table_mut -( -& -mut -self -) -- -> -& -mut -[ -StateID -] -{ -wire -: -: -u32s_to_state_ids_mut -( -self -. -table -. -as_mut -( -) -) -} -} -pub -( -crate -) -struct -StartStateIter -< -' -a -> -{ -st -: -StartTable -< -& -' -a -[ -u32 -] -> -i -: -usize -} -impl -< -' -a -> -Iterator -for -StartStateIter -< -' -a -> -{ -type -Item -= -( -StateID -Anchored -Start -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -StateID -Anchored -Start -) -> -{ -let -i -= -self -. -i -; -let -table -= -self -. -st -. -table -( -) -; -if -i -> -= -table -. -len -( -) -{ -return -None -; -} -self -. -i -+ -= -1 -; -let -start_type -= -Start -: -: -from_usize -( -i -% -self -. -st -. -stride -) -. -unwrap -( -) -; -let -anchored -= -if -i -< -self -. -st -. -stride -{ -Anchored -: -: -No -} -else -if -i -< -( -2 -* -self -. -st -. -stride -) -{ -Anchored -: -: -Yes -} -else -{ -let -pid -= -( -i -- -( -2 -* -self -. -st -. -stride -) -) -/ -self -. -st -. -stride -; -Anchored -: -: -Pattern -( -PatternID -: -: -new -( -pid -) -. -unwrap -( -) -) -} -; -Some -( -( -table -[ -i -] -anchored -start_type -) -) -} -} -# -[ -derive -( -Clone -Debug -) -] -struct -MatchStates -< -T -> -{ -slices -: -T -pattern_ids -: -T -pattern_len -: -usize -} -impl -< -' -a -> -MatchStates -< -& -' -a -[ -u32 -] -> -{ -unsafe -fn -from_bytes_unchecked -( -mut -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -MatchStates -< -& -' -a -[ -u32 -] -> -usize -) -DeserializeError -> -{ -let -slice_start -= -slice -. -as_ptr -( -) -. -as_usize -( -) -; -let -( -state_len -nr -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -match -state -length -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -pair_len -= -wire -: -: -mul -( -2 -state_len -" -match -state -offset -pairs -" -) -? -; -let -slices_bytes_len -= -wire -: -: -mul -( -pair_len -PatternID -: -: -SIZE -" -match -state -slice -offset -byte -length -" -) -? -; -wire -: -: -check_slice_len -( -slice -slices_bytes_len -" -match -state -slices -" -) -? -; -wire -: -: -check_alignment -: -: -< -PatternID -> -( -slice -) -? -; -let -slices_bytes -= -& -slice -[ -. -. -slices_bytes_len -] -; -slice -= -& -slice -[ -slices_bytes_len -. -. -] -; -let -slices -= -core -: -: -slice -: -: -from_raw_parts -( -slices_bytes -. -as_ptr -( -) -. -cast -: -: -< -u32 -> -( -) -pair_len -) -; -let -( -pattern_len -nr -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -pattern -length -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -idlen -nr -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -pattern -ID -length -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -pattern_ids_len -= -wire -: -: -mul -( -idlen -PatternID -: -: -SIZE -" -pattern -ID -byte -length -" -) -? -; -wire -: -: -check_slice_len -( -slice -pattern_ids_len -" -match -pattern -IDs -" -) -? -; -wire -: -: -check_alignment -: -: -< -PatternID -> -( -slice -) -? -; -let -pattern_ids_bytes -= -& -slice -[ -. -. -pattern_ids_len -] -; -slice -= -& -slice -[ -pattern_ids_len -. -. -] -; -let -pattern_ids -= -core -: -: -slice -: -: -from_raw_parts -( -pattern_ids_bytes -. -as_ptr -( -) -. -cast -: -: -< -u32 -> -( -) -idlen -) -; -let -ms -= -MatchStates -{ -slices -pattern_ids -pattern_len -} -; -Ok -( -( -ms -slice -. -as_ptr -( -) -. -as_usize -( -) -- -slice_start -) -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -MatchStates -< -Vec -< -u32 -> -> -{ -fn -empty -( -pattern_len -: -usize -) -- -> -MatchStates -< -Vec -< -u32 -> -> -{ -assert -! -( -pattern_len -< -= -PatternID -: -: -LIMIT -) -; -MatchStates -{ -slices -: -vec -! -[ -] -pattern_ids -: -vec -! -[ -] -pattern_len -} -} -fn -new -( -matches -: -& -BTreeMap -< -StateID -Vec -< -PatternID -> -> -pattern_len -: -usize -) -- -> -Result -< -MatchStates -< -Vec -< -u32 -> -> -BuildError -> -{ -let -mut -m -= -MatchStates -: -: -empty -( -pattern_len -) -; -for -( -_ -pids -) -in -matches -. -iter -( -) -{ -let -start -= -PatternID -: -: -new -( -m -. -pattern_ids -. -len -( -) -) -. -map_err -( -| -_ -| -BuildError -: -: -too_many_match_pattern_ids -( -) -) -? -; -m -. -slices -. -push -( -start -. -as_u32 -( -) -) -; -m -. -slices -. -push -( -u32 -: -: -try_from -( -pids -. -len -( -) -) -. -unwrap -( -) -) -; -for -& -pid -in -pids -{ -m -. -pattern_ids -. -push -( -pid -. -as_u32 -( -) -) -; -} -} -m -. -pattern_len -= -pattern_len -; -Ok -( -m -) -} -fn -new_with_map -( -& -self -matches -: -& -BTreeMap -< -StateID -Vec -< -PatternID -> -> -) -- -> -Result -< -MatchStates -< -Vec -< -u32 -> -> -BuildError -> -{ -MatchStates -: -: -new -( -matches -self -. -pattern_len -) -} -} -impl -< -T -: -AsRef -< -[ -u32 -] -> -> -MatchStates -< -T -> -{ -fn -write_to -< -E -: -Endian -> -( -& -self -mut -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -match -states -" -) -) -; -} -dst -= -& -mut -dst -[ -. -. -nwrite -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -len -( -) -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -for -& -pid -in -self -. -slices -( -) -{ -let -n -= -wire -: -: -write_pattern_id -: -: -< -E -> -( -pid -& -mut -dst -) -; -dst -= -& -mut -dst -[ -n -. -. -] -; -} -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -pattern_len -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -pattern_ids -( -) -. -len -( -) -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -for -& -pid -in -self -. -pattern_ids -( -) -{ -let -n -= -wire -: -: -write_pattern_id -: -: -< -E -> -( -pid -& -mut -dst -) -; -dst -= -& -mut -dst -[ -n -. -. -] -; -} -Ok -( -nwrite -) -} -fn -write_to_len -( -& -self -) -- -> -usize -{ -size_of -: -: -< -u32 -> -( -) -+ -( -self -. -slices -( -) -. -len -( -) -* -PatternID -: -: -SIZE -) -+ -size_of -: -: -< -u32 -> -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -( -self -. -pattern_ids -( -) -. -len -( -) -* -PatternID -: -: -SIZE -) -} -fn -validate -( -& -self -dfa -: -& -DFA -< -T -> -) -- -> -Result -< -( -) -DeserializeError -> -{ -if -self -. -len -( -) -! -= -dfa -. -special -. -match_len -( -dfa -. -stride -( -) -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -match -state -length -mismatch -" -) -) -; -} -for -si -in -0 -. -. -self -. -len -( -) -{ -let -start -= -self -. -slices -( -) -[ -si -* -2 -] -. -as_usize -( -) -; -let -len -= -self -. -slices -( -) -[ -si -* -2 -+ -1 -] -. -as_usize -( -) -; -if -start -> -= -self -. -pattern_ids -( -) -. -len -( -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -invalid -pattern -ID -start -offset -" -) -) -; -} -if -start -+ -len -> -self -. -pattern_ids -( -) -. -len -( -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -invalid -pattern -ID -length -" -) -) -; -} -for -mi -in -0 -. -. -len -{ -let -pid -= -self -. -pattern_id -( -si -mi -) -; -if -pid -. -as_usize -( -) -> -= -self -. -pattern_len -{ -return -Err -( -DeserializeError -: -: -generic -( -" -invalid -pattern -ID -" -) -) -; -} -} -} -Ok -( -( -) -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -fn -to_map -( -& -self -dfa -: -& -DFA -< -T -> -) -- -> -BTreeMap -< -StateID -Vec -< -PatternID -> -> -{ -let -mut -map -= -BTreeMap -: -: -new -( -) -; -for -i -in -0 -. -. -self -. -len -( -) -{ -let -mut -pids -= -vec -! -[ -] -; -for -j -in -0 -. -. -self -. -pattern_len -( -i -) -{ -pids -. -push -( -self -. -pattern_id -( -i -j -) -) -; -} -map -. -insert -( -self -. -match_state_id -( -dfa -i -) -pids -) -; -} -map -} -fn -as_ref -( -& -self -) -- -> -MatchStates -< -& -' -_ -[ -u32 -] -> -{ -MatchStates -{ -slices -: -self -. -slices -. -as_ref -( -) -pattern_ids -: -self -. -pattern_ids -. -as_ref -( -) -pattern_len -: -self -. -pattern_len -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -fn -to_owned -( -& -self -) -- -> -MatchStates -< -alloc -: -: -vec -: -: -Vec -< -u32 -> -> -{ -MatchStates -{ -slices -: -self -. -slices -. -as_ref -( -) -. -to_vec -( -) -pattern_ids -: -self -. -pattern_ids -. -as_ref -( -) -. -to_vec -( -) -pattern_len -: -self -. -pattern_len -} -} -fn -match_state_id -( -& -self -dfa -: -& -DFA -< -T -> -index -: -usize -) -- -> -StateID -{ -assert -! -( -dfa -. -special -. -matches -( -) -" -no -match -states -to -index -" -) -; -let -stride2 -= -u32 -: -: -try_from -( -dfa -. -stride2 -( -) -) -. -unwrap -( -) -; -let -offset -= -index -. -checked_shl -( -stride2 -) -. -unwrap -( -) -; -let -id -= -dfa -. -special -. -min_match -. -as_usize -( -) -. -checked_add -( -offset -) -. -unwrap -( -) -; -let -sid -= -StateID -: -: -new -( -id -) -. -unwrap -( -) -; -assert -! -( -dfa -. -is_match_state -( -sid -) -) -; -sid -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -pattern_id -( -& -self -state_index -: -usize -match_index -: -usize -) -- -> -PatternID -{ -self -. -pattern_id_slice -( -state_index -) -[ -match_index -] -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -pattern_len -( -& -self -state_index -: -usize -) -- -> -usize -{ -self -. -slices -( -) -[ -state_index -* -2 -+ -1 -] -. -as_usize -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -pattern_id_slice -( -& -self -state_index -: -usize -) -- -> -& -[ -PatternID -] -{ -let -start -= -self -. -slices -( -) -[ -state_index -* -2 -] -. -as_usize -( -) -; -let -len -= -self -. -pattern_len -( -state_index -) -; -& -self -. -pattern_ids -( -) -[ -start -. -. -start -+ -len -] -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -slices -( -& -self -) -- -> -& -[ -PatternID -] -{ -wire -: -: -u32s_to_pattern_ids -( -self -. -slices -. -as_ref -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -len -( -& -self -) -- -> -usize -{ -assert_eq -! -( -0 -self -. -slices -( -) -. -len -( -) -% -2 -) -; -self -. -slices -( -) -. -len -( -) -/ -2 -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -pattern_ids -( -& -self -) -- -> -& -[ -PatternID -] -{ -wire -: -: -u32s_to_pattern_ids -( -self -. -pattern_ids -. -as_ref -( -) -) -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -( -self -. -slices -( -) -. -len -( -) -+ -self -. -pattern_ids -( -) -. -len -( -) -) -* -PatternID -: -: -SIZE -} -} -# -[ -derive -( -Clone -Copy -Debug -) -] -pub -( -crate -) -struct -Flags -{ -pub -( -crate -) -has_empty -: -bool -pub -( -crate -) -is_utf8 -: -bool -pub -( -crate -) -is_always_start_anchored -: -bool -} -impl -Flags -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -fn -from_nfa -( -nfa -: -& -thompson -: -: -NFA -) -- -> -Flags -{ -Flags -{ -has_empty -: -nfa -. -has_empty -( -) -is_utf8 -: -nfa -. -is_utf8 -( -) -is_always_start_anchored -: -nfa -. -is_always_start_anchored -( -) -} -} -pub -( -crate -) -fn -from_bytes -( -slice -: -& -[ -u8 -] -) -- -> -Result -< -( -Flags -usize -) -DeserializeError -> -{ -let -( -bits -nread -) -= -wire -: -: -try_read_u32 -( -slice -" -flag -bitset -" -) -? -; -let -flags -= -Flags -{ -has_empty -: -bits -& -( -1 -< -< -0 -) -! -= -0 -is_utf8 -: -bits -& -( -1 -< -< -1 -) -! -= -0 -is_always_start_anchored -: -bits -& -( -1 -< -< -2 -) -! -= -0 -} -; -Ok -( -( -flags -nread -) -) -} -pub -( -crate -) -fn -write_to -< -E -: -Endian -> -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -fn -bool_to_int -( -b -: -bool -) -- -> -u32 -{ -if -b -{ -1 -} -else -{ -0 -} -} -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -flag -bitset -" -) -) -; -} -let -bits -= -( -bool_to_int -( -self -. -has_empty -) -< -< -0 -) -| -( -bool_to_int -( -self -. -is_utf8 -) -< -< -1 -) -| -( -bool_to_int -( -self -. -is_always_start_anchored -) -< -< -2 -) -; -E -: -: -write_u32 -( -bits -dst -) -; -Ok -( -nwrite -) -} -pub -( -crate -) -fn -write_to_len -( -& -self -) -- -> -usize -{ -size_of -: -: -< -u32 -> -( -) -} -} -pub -( -crate -) -struct -StateIter -< -' -a -T -> -{ -tt -: -& -' -a -TransitionTable -< -T -> -it -: -iter -: -: -Enumerate -< -slice -: -: -Chunks -< -' -a -StateID -> -> -} -impl -< -' -a -T -: -AsRef -< -[ -u32 -] -> -> -Iterator -for -StateIter -< -' -a -T -> -{ -type -Item -= -State -< -' -a -> -; -fn -next -( -& -mut -self -) -- -> -Option -< -State -< -' -a -> -> -{ -self -. -it -. -next -( -) -. -map -( -| -( -index -_ -) -| -{ -let -id -= -self -. -tt -. -to_state_id -( -index -) -; -self -. -tt -. -state -( -id -) -} -) -} -} -pub -( -crate -) -struct -State -< -' -a -> -{ -id -: -StateID -stride2 -: -usize -transitions -: -& -' -a -[ -StateID -] -} -impl -< -' -a -> -State -< -' -a -> -{ -pub -( -crate -) -fn -transitions -( -& -self -) -- -> -StateTransitionIter -< -' -_ -> -{ -StateTransitionIter -{ -len -: -self -. -transitions -. -len -( -) -it -: -self -. -transitions -. -iter -( -) -. -enumerate -( -) -} -} -pub -( -crate -) -fn -sparse_transitions -( -& -self -) -- -> -StateSparseTransitionIter -< -' -_ -> -{ -StateSparseTransitionIter -{ -dense -: -self -. -transitions -( -) -cur -: -None -} -} -pub -( -crate -) -fn -id -( -& -self -) -- -> -StateID -{ -self -. -id -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -fn -accelerate -( -& -self -classes -: -& -ByteClasses -) -- -> -Option -< -Accel -> -{ -let -mut -accel -= -Accel -: -: -new -( -) -; -for -( -class -id -) -in -self -. -transitions -( -) -{ -if -id -= -= -self -. -id -( -) -{ -continue -; -} -for -unit -in -classes -. -elements -( -class -) -{ -if -let -Some -( -byte -) -= -unit -. -as_u8 -( -) -{ -if -! -accel -. -add -( -byte -) -{ -return -None -; -} -} -} -} -if -accel -. -is_empty -( -) -{ -None -} -else -{ -Some -( -accel -) -} -} -} -impl -< -' -a -> -fmt -: -: -Debug -for -State -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -for -( -i -( -start -end -sid -) -) -in -self -. -sparse_transitions -( -) -. -enumerate -( -) -{ -let -id -= -if -f -. -alternate -( -) -{ -sid -. -as_usize -( -) -} -else -{ -sid -. -as_usize -( -) -> -> -self -. -stride2 -} -; -if -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -if -start -= -= -end -{ -write -! -( -f -" -{ -: -? -} -= -> -{ -: -? -} -" -start -id -) -? -; -} -else -{ -write -! -( -f -" -{ -: -? -} -- -{ -: -? -} -= -> -{ -: -? -} -" -start -end -id -) -? -; -} -} -Ok -( -( -) -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -StateTransitionIter -< -' -a -> -{ -len -: -usize -it -: -iter -: -: -Enumerate -< -slice -: -: -Iter -< -' -a -StateID -> -> -} -impl -< -' -a -> -Iterator -for -StateTransitionIter -< -' -a -> -{ -type -Item -= -( -alphabet -: -: -Unit -StateID -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -alphabet -: -: -Unit -StateID -) -> -{ -self -. -it -. -next -( -) -. -map -( -| -( -i -& -id -) -| -{ -let -unit -= -if -i -+ -1 -= -= -self -. -len -{ -alphabet -: -: -Unit -: -: -eoi -( -i -) -} -else -{ -let -b -= -u8 -: -: -try_from -( -i -) -. -expect -( -" -raw -byte -alphabet -is -never -exceeded -" -) -; -alphabet -: -: -Unit -: -: -u8 -( -b -) -} -; -( -unit -id -) -} -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -StateSparseTransitionIter -< -' -a -> -{ -dense -: -StateTransitionIter -< -' -a -> -cur -: -Option -< -( -alphabet -: -: -Unit -alphabet -: -: -Unit -StateID -) -> -} -impl -< -' -a -> -Iterator -for -StateSparseTransitionIter -< -' -a -> -{ -type -Item -= -( -alphabet -: -: -Unit -alphabet -: -: -Unit -StateID -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -alphabet -: -: -Unit -alphabet -: -: -Unit -StateID -) -> -{ -while -let -Some -( -( -unit -next -) -) -= -self -. -dense -. -next -( -) -{ -let -( -prev_start -prev_end -prev_next -) -= -match -self -. -cur -{ -Some -( -t -) -= -> -t -None -= -> -{ -self -. -cur -= -Some -( -( -unit -unit -next -) -) -; -continue -; -} -} -; -if -prev_next -= -= -next -& -& -! -unit -. -is_eoi -( -) -{ -self -. -cur -= -Some -( -( -prev_start -unit -prev_next -) -) -; -} -else -{ -self -. -cur -= -Some -( -( -unit -unit -next -) -) -; -if -prev_next -! -= -DEAD -{ -return -Some -( -( -prev_start -prev_end -prev_next -) -) -; -} -} -} -if -let -Some -( -( -start -end -next -) -) -= -self -. -cur -. -take -( -) -{ -if -next -! -= -DEAD -{ -return -Some -( -( -start -end -next -) -) -; -} -} -None -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -# -[ -derive -( -Clone -Debug -) -] -pub -struct -BuildError -{ -kind -: -BuildErrorKind -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -# -[ -derive -( -Clone -Debug -) -] -enum -BuildErrorKind -{ -NFA -( -thompson -: -: -BuildError -) -Unsupported -( -& -' -static -str -) -TooManyStates -TooManyStartStates -TooManyMatchPatternIDs -DFAExceededSizeLimit -{ -limit -: -usize -} -DeterminizeExceededSizeLimit -{ -limit -: -usize -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -BuildError -{ -fn -kind -( -& -self -) -- -> -& -BuildErrorKind -{ -& -self -. -kind -} -pub -( -crate -) -fn -nfa -( -err -: -thompson -: -: -BuildError -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -NFA -( -err -) -} -} -pub -( -crate -) -fn -unsupported_dfa_word_boundary_unicode -( -) -- -> -BuildError -{ -let -msg -= -" -cannot -build -DFAs -for -regexes -with -Unicode -word -\ -boundaries -; -switch -to -ASCII -word -boundaries -or -\ -heuristically -enable -Unicode -word -boundaries -or -use -a -\ -different -regex -engine -" -; -BuildError -{ -kind -: -BuildErrorKind -: -: -Unsupported -( -msg -) -} -} -pub -( -crate -) -fn -too_many_states -( -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -TooManyStates -} -} -pub -( -crate -) -fn -too_many_start_states -( -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -TooManyStartStates -} -} -pub -( -crate -) -fn -too_many_match_pattern_ids -( -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -TooManyMatchPatternIDs -} -} -pub -( -crate -) -fn -dfa_exceeded_size_limit -( -limit -: -usize -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -DFAExceededSizeLimit -{ -limit -} -} -} -pub -( -crate -) -fn -determinize_exceeded_size_limit -( -limit -: -usize -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -DeterminizeExceededSizeLimit -{ -limit -} -} -} -} -# -[ -cfg -( -all -( -feature -= -" -std -" -feature -= -" -dfa -- -build -" -) -) -] -impl -std -: -: -error -: -: -Error -for -BuildError -{ -fn -source -( -& -self -) -- -> -Option -< -& -( -dyn -std -: -: -error -: -: -Error -+ -' -static -) -> -{ -match -self -. -kind -( -) -{ -BuildErrorKind -: -: -NFA -( -ref -err -) -= -> -Some -( -err -) -_ -= -> -None -} -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -core -: -: -fmt -: -: -Display -for -BuildError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -match -self -. -kind -( -) -{ -BuildErrorKind -: -: -NFA -( -_ -) -= -> -write -! -( -f -" -error -building -NFA -" -) -BuildErrorKind -: -: -Unsupported -( -ref -msg -) -= -> -{ -write -! -( -f -" -unsupported -regex -feature -for -DFAs -: -{ -} -" -msg -) -} -BuildErrorKind -: -: -TooManyStates -= -> -write -! -( -f -" -number -of -DFA -states -exceeds -limit -of -{ -} -" -StateID -: -: -LIMIT -) -BuildErrorKind -: -: -TooManyStartStates -= -> -{ -let -stride -= -Start -: -: -len -( -) -; -let -max -= -usize -: -: -try_from -( -core -: -: -isize -: -: -MAX -) -. -unwrap -( -) -; -let -limit -= -( -max -- -stride -) -/ -stride -; -write -! -( -f -" -compiling -DFA -with -start -states -exceeds -pattern -\ -pattern -limit -of -{ -} -" -limit -) -} -BuildErrorKind -: -: -TooManyMatchPatternIDs -= -> -write -! -( -f -" -compiling -DFA -with -total -patterns -in -all -match -states -\ -exceeds -limit -of -{ -} -" -PatternID -: -: -LIMIT -) -BuildErrorKind -: -: -DFAExceededSizeLimit -{ -limit -} -= -> -write -! -( -f -" -DFA -exceeded -size -limit -of -{ -: -? -} -during -determinization -" -limit -) -BuildErrorKind -: -: -DeterminizeExceededSizeLimit -{ -limit -} -= -> -{ -write -! -( -f -" -determinization -exceeded -size -limit -of -{ -: -? -} -" -limit -) -} -} -} -} -# -[ -cfg -( -all -( -test -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -mod -tests -{ -use -super -: -: -* -; -# -[ -test -] -fn -errors_with_unicode_word_boundary -( -) -{ -let -pattern -= -r -" -\ -b -" -; -assert -! -( -Builder -: -: -new -( -) -. -build -( -pattern -) -. -is_err -( -) -) -; -} -# -[ -test -] -fn -roundtrip_never_match -( -) -{ -let -dfa -= -DFA -: -: -never_match -( -) -. -unwrap -( -) -; -let -( -buf -_ -) -= -dfa -. -to_bytes_native_endian -( -) -; -let -dfa -: -DFA -< -& -[ -u32 -] -> -= -DFA -: -: -from_bytes -( -& -buf -) -. -unwrap -( -) -. -0 -; -assert_eq -! -( -None -dfa -. -try_search_fwd -( -& -Input -: -: -new -( -" -foo12345 -" -) -) -. -unwrap -( -) -) -; -} -# -[ -test -] -fn -roundtrip_always_match -( -) -{ -use -crate -: -: -HalfMatch -; -let -dfa -= -DFA -: -: -always_match -( -) -. -unwrap -( -) -; -let -( -buf -_ -) -= -dfa -. -to_bytes_native_endian -( -) -; -let -dfa -: -DFA -< -& -[ -u32 -] -> -= -DFA -: -: -from_bytes -( -& -buf -) -. -unwrap -( -) -. -0 -; -assert_eq -! -( -Some -( -HalfMatch -: -: -must -( -0 -0 -) -) -dfa -. -try_search_fwd -( -& -Input -: -: -new -( -" -foo12345 -" -) -) -. -unwrap -( -) -) -; -} -# -[ -test -] -fn -heuristic_unicode_reverse -( -) -{ -let -dfa -= -DFA -: -: -builder -( -) -. -configure -( -DFA -: -: -config -( -) -. -unicode_word_boundary -( -true -) -) -. -thompson -( -thompson -: -: -Config -: -: -new -( -) -. -reverse -( -true -) -) -. -build -( -r -" -\ -b -[ -0 -- -9 -] -+ -\ -b -" -) -. -unwrap -( -) -; -let -input -= -Input -: -: -new -( -" -123 -" -) -. -range -( -2 -. -. -) -; -let -expected -= -MatchError -: -: -quit -( -0xB2 -1 -) -; -let -got -= -dfa -. -try_search_rev -( -& -input -) -; -assert_eq -! -( -Err -( -expected -) -got -) -; -let -input -= -Input -: -: -new -( -" -123 -" -) -. -range -( -. -. -3 -) -; -let -expected -= -MatchError -: -: -quit -( -0xCE -3 -) -; -let -got -= -dfa -. -try_search_rev -( -& -input -) -; -assert_eq -! -( -Err -( -expected -) -got -) -; -} -} diff --git a/third_party/rust/regex-automata/src/dfa/determinize.rs b/third_party/rust/regex-automata/src/dfa/determinize.rs deleted file mode 100644 index 0727329ed9010..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/determinize.rs +++ /dev/null @@ -1,2240 +0,0 @@ -use -alloc -: -: -{ -collections -: -: -BTreeMap -vec -: -: -Vec -} -; -use -crate -: -: -{ -dfa -: -: -{ -dense -: -: -{ -self -BuildError -} -DEAD -} -nfa -: -: -thompson -util -: -: -{ -self -alphabet -: -: -{ -self -ByteSet -} -determinize -: -: -{ -State -StateBuilderEmpty -StateBuilderNFA -} -primitives -: -: -{ -PatternID -StateID -} -search -: -: -{ -Anchored -MatchKind -} -sparse_set -: -: -SparseSets -start -: -: -Start -} -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -Config -{ -match_kind -: -MatchKind -quit -: -ByteSet -dfa_size_limit -: -Option -< -usize -> -determinize_size_limit -: -Option -< -usize -> -} -impl -Config -{ -pub -fn -new -( -) -- -> -Config -{ -Config -{ -match_kind -: -MatchKind -: -: -LeftmostFirst -quit -: -ByteSet -: -: -empty -( -) -dfa_size_limit -: -None -determinize_size_limit -: -None -} -} -pub -fn -run -( -& -self -nfa -: -& -thompson -: -: -NFA -dfa -: -& -mut -dense -: -: -OwnedDFA -) -- -> -Result -< -( -) -BuildError -> -{ -let -dead -= -State -: -: -dead -( -) -; -let -quit -= -State -: -: -dead -( -) -; -let -mut -cache -= -StateMap -: -: -default -( -) -; -cache -. -insert -( -dead -. -clone -( -) -DEAD -) -; -let -runner -= -Runner -{ -config -: -self -. -clone -( -) -nfa -dfa -builder_states -: -alloc -: -: -vec -! -[ -dead -quit -] -cache -memory_usage_state -: -0 -sparses -: -SparseSets -: -: -new -( -nfa -. -states -( -) -. -len -( -) -) -stack -: -alloc -: -: -vec -! -[ -] -scratch_state_builder -: -StateBuilderEmpty -: -: -new -( -) -} -; -runner -. -run -( -) -} -pub -fn -match_kind -( -& -mut -self -kind -: -MatchKind -) -- -> -& -mut -Config -{ -self -. -match_kind -= -kind -; -self -} -pub -fn -quit -( -& -mut -self -set -: -ByteSet -) -- -> -& -mut -Config -{ -self -. -quit -= -set -; -self -} -pub -fn -dfa_size_limit -( -& -mut -self -bytes -: -Option -< -usize -> -) -- -> -& -mut -Config -{ -self -. -dfa_size_limit -= -bytes -; -self -} -pub -fn -determinize_size_limit -( -& -mut -self -bytes -: -Option -< -usize -> -) -- -> -& -mut -Config -{ -self -. -determinize_size_limit -= -bytes -; -self -} -} -# -[ -derive -( -Debug -) -] -struct -Runner -< -' -a -> -{ -config -: -Config -nfa -: -& -' -a -thompson -: -: -NFA -dfa -: -& -' -a -mut -dense -: -: -OwnedDFA -builder_states -: -Vec -< -State -> -cache -: -StateMap -memory_usage_state -: -usize -sparses -: -SparseSets -stack -: -Vec -< -StateID -> -scratch_state_builder -: -StateBuilderEmpty -} -# -[ -cfg -( -feature -= -" -std -" -) -] -type -StateMap -= -std -: -: -collections -: -: -HashMap -< -State -StateID -> -; -# -[ -cfg -( -not -( -feature -= -" -std -" -) -) -] -type -StateMap -= -BTreeMap -< -State -StateID -> -; -impl -< -' -a -> -Runner -< -' -a -> -{ -fn -run -( -mut -self -) -- -> -Result -< -( -) -BuildError -> -{ -if -self -. -nfa -. -look_set_any -( -) -. -contains_word_unicode -( -) -& -& -! -self -. -config -. -quit -. -contains_range -( -0x80 -0xFF -) -{ -return -Err -( -BuildError -: -: -unsupported_dfa_word_boundary_unicode -( -) -) -; -} -let -representatives -: -Vec -< -alphabet -: -: -Unit -> -= -self -. -dfa -. -byte_classes -( -) -. -representatives -( -. -. -) -. -collect -( -) -; -let -mut -uncompiled -= -alloc -: -: -vec -! -[ -] -; -self -. -add_all_starts -( -& -mut -uncompiled -) -? -; -while -let -Some -( -dfa_id -) -= -uncompiled -. -pop -( -) -{ -for -& -unit -in -& -representatives -{ -if -unit -. -as_u8 -( -) -. -map_or -( -false -| -b -| -self -. -config -. -quit -. -contains -( -b -) -) -{ -continue -; -} -let -( -next_dfa_id -is_new -) -= -self -. -cached_state -( -dfa_id -unit -) -? -; -self -. -dfa -. -set_transition -( -dfa_id -unit -next_dfa_id -) -; -if -is_new -{ -uncompiled -. -push -( -next_dfa_id -) -; -} -} -} -debug -! -( -" -determinization -complete -memory -usage -: -{ -} -\ -dense -DFA -size -: -{ -} -\ -is -reverse -? -{ -} -" -self -. -memory_usage -( -) -self -. -dfa -. -memory_usage -( -) -self -. -nfa -. -is_reverse -( -) -) -; -let -mut -matches -: -BTreeMap -< -StateID -Vec -< -PatternID -> -> -= -BTreeMap -: -: -new -( -) -; -self -. -cache -. -clear -( -) -; -# -[ -cfg -( -feature -= -" -logging -" -) -] -let -mut -total_pat_len -= -0 -; -for -( -i -state -) -in -self -. -builder_states -. -into_iter -( -) -. -enumerate -( -) -{ -if -let -Some -( -pat_ids -) -= -state -. -match_pattern_ids -( -) -{ -let -id -= -self -. -dfa -. -to_state_id -( -i -) -; -log -! -{ -total_pat_len -+ -= -pat_ids -. -len -( -) -; -} -matches -. -insert -( -id -pat_ids -) -; -} -} -log -! -{ -use -core -: -: -mem -: -: -size_of -; -let -per_elem -= -size_of -: -: -< -StateID -> -( -) -+ -size_of -: -: -< -Vec -< -PatternID -> -> -( -) -; -let -pats -= -total_pat_len -* -size_of -: -: -< -PatternID -> -( -) -; -let -mem -= -( -matches -. -len -( -) -* -per_elem -) -+ -pats -; -log -: -: -debug -! -( -" -matches -map -built -memory -usage -: -{ -} -" -mem -) -; -} -self -. -dfa -. -shuffle -( -matches -) -? -; -Ok -( -( -) -) -} -fn -cached_state -( -& -mut -self -dfa_id -: -StateID -unit -: -alphabet -: -: -Unit -) -- -> -Result -< -( -StateID -bool -) -BuildError -> -{ -let -empty_builder -= -self -. -get_state_builder -( -) -; -let -builder -= -util -: -: -determinize -: -: -next -( -self -. -nfa -self -. -config -. -match_kind -& -mut -self -. -sparses -& -mut -self -. -stack -& -self -. -builder_states -[ -self -. -dfa -. -to_index -( -dfa_id -) -] -unit -empty_builder -) -; -self -. -maybe_add_state -( -builder -) -} -fn -add_all_starts -( -& -mut -self -dfa_state_ids -: -& -mut -Vec -< -StateID -> -) -- -> -Result -< -( -) -BuildError -> -{ -assert -! -( -dfa_state_ids -. -is_empty -( -) -) -; -if -self -. -dfa -. -start_kind -( -) -. -has_unanchored -( -) -{ -self -. -add_start_group -( -Anchored -: -: -No -dfa_state_ids -) -? -; -} -if -self -. -dfa -. -start_kind -( -) -. -has_anchored -( -) -{ -self -. -add_start_group -( -Anchored -: -: -Yes -dfa_state_ids -) -? -; -} -if -self -. -dfa -. -starts_for_each_pattern -( -) -{ -for -pid -in -self -. -nfa -. -patterns -( -) -{ -self -. -add_start_group -( -Anchored -: -: -Pattern -( -pid -) -dfa_state_ids -) -? -; -} -} -Ok -( -( -) -) -} -fn -add_start_group -( -& -mut -self -anchored -: -Anchored -dfa_state_ids -: -& -mut -Vec -< -StateID -> -) -- -> -Result -< -( -) -BuildError -> -{ -let -nfa_start -= -match -anchored -{ -Anchored -: -: -No -= -> -self -. -nfa -. -start_unanchored -( -) -Anchored -: -: -Yes -= -> -self -. -nfa -. -start_anchored -( -) -Anchored -: -: -Pattern -( -pid -) -= -> -{ -self -. -nfa -. -start_pattern -( -pid -) -. -expect -( -" -valid -pattern -ID -" -) -} -} -; -let -( -id -is_new -) -= -self -. -add_one_start -( -nfa_start -Start -: -: -NonWordByte -) -? -; -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -NonWordByte -id -) -; -if -is_new -{ -dfa_state_ids -. -push -( -id -) -; -} -if -! -self -. -nfa -. -look_set_prefix_any -( -) -. -contains_word -( -) -{ -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -WordByte -id -) -; -} -else -{ -let -( -id -is_new -) -= -self -. -add_one_start -( -nfa_start -Start -: -: -WordByte -) -? -; -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -WordByte -id -) -; -if -is_new -{ -dfa_state_ids -. -push -( -id -) -; -} -} -if -! -self -. -nfa -. -look_set_prefix_any -( -) -. -contains_anchor -( -) -{ -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -Text -id -) -; -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -LineLF -id -) -; -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -LineCR -id -) -; -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -CustomLineTerminator -id -) -; -} -else -{ -let -( -id -is_new -) -= -self -. -add_one_start -( -nfa_start -Start -: -: -Text -) -? -; -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -Text -id -) -; -if -is_new -{ -dfa_state_ids -. -push -( -id -) -; -} -let -( -id -is_new -) -= -self -. -add_one_start -( -nfa_start -Start -: -: -LineLF -) -? -; -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -LineLF -id -) -; -if -is_new -{ -dfa_state_ids -. -push -( -id -) -; -} -let -( -id -is_new -) -= -self -. -add_one_start -( -nfa_start -Start -: -: -LineCR -) -? -; -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -LineCR -id -) -; -if -is_new -{ -dfa_state_ids -. -push -( -id -) -; -} -let -( -id -is_new -) -= -self -. -add_one_start -( -nfa_start -Start -: -: -CustomLineTerminator -) -? -; -self -. -dfa -. -set_start_state -( -anchored -Start -: -: -CustomLineTerminator -id -) -; -if -is_new -{ -dfa_state_ids -. -push -( -id -) -; -} -} -Ok -( -( -) -) -} -fn -add_one_start -( -& -mut -self -nfa_start -: -StateID -start -: -Start -) -- -> -Result -< -( -StateID -bool -) -BuildError -> -{ -let -mut -builder_matches -= -self -. -get_state_builder -( -) -. -into_matches -( -) -; -util -: -: -determinize -: -: -set_lookbehind_from_start -( -self -. -nfa -& -start -& -mut -builder_matches -) -; -self -. -sparses -. -set1 -. -clear -( -) -; -util -: -: -determinize -: -: -epsilon_closure -( -self -. -nfa -nfa_start -builder_matches -. -look_have -( -) -& -mut -self -. -stack -& -mut -self -. -sparses -. -set1 -) -; -let -mut -builder -= -builder_matches -. -into_nfa -( -) -; -util -: -: -determinize -: -: -add_nfa_states -( -& -self -. -nfa -& -self -. -sparses -. -set1 -& -mut -builder -) -; -self -. -maybe_add_state -( -builder -) -} -fn -maybe_add_state -( -& -mut -self -builder -: -StateBuilderNFA -) -- -> -Result -< -( -StateID -bool -) -BuildError -> -{ -if -let -Some -( -& -cached_id -) -= -self -. -cache -. -get -( -builder -. -as_bytes -( -) -) -{ -self -. -put_state_builder -( -builder -) -; -return -Ok -( -( -cached_id -false -) -) -; -} -self -. -add_state -( -builder -) -. -map -( -| -sid -| -( -sid -true -) -) -} -fn -add_state -( -& -mut -self -builder -: -StateBuilderNFA -) -- -> -Result -< -StateID -BuildError -> -{ -let -id -= -self -. -dfa -. -add_empty_state -( -) -? -; -if -! -self -. -config -. -quit -. -is_empty -( -) -{ -for -b -in -self -. -config -. -quit -. -iter -( -) -{ -self -. -dfa -. -set_transition -( -id -alphabet -: -: -Unit -: -: -u8 -( -b -) -self -. -dfa -. -quit_id -( -) -) -; -} -} -let -state -= -builder -. -to_state -( -) -; -self -. -memory_usage_state -+ -= -state -. -memory_usage -( -) -; -self -. -builder_states -. -push -( -state -. -clone -( -) -) -; -self -. -cache -. -insert -( -state -id -) -; -self -. -put_state_builder -( -builder -) -; -if -let -Some -( -limit -) -= -self -. -config -. -dfa_size_limit -{ -if -self -. -dfa -. -memory_usage -( -) -> -limit -{ -return -Err -( -BuildError -: -: -dfa_exceeded_size_limit -( -limit -) -) -; -} -} -if -let -Some -( -limit -) -= -self -. -config -. -determinize_size_limit -{ -if -self -. -memory_usage -( -) -> -limit -{ -return -Err -( -BuildError -: -: -determinize_exceeded_size_limit -( -limit -) -) -; -} -} -Ok -( -id -) -} -fn -get_state_builder -( -& -mut -self -) -- -> -StateBuilderEmpty -{ -core -: -: -mem -: -: -replace -( -& -mut -self -. -scratch_state_builder -StateBuilderEmpty -: -: -new -( -) -) -} -fn -put_state_builder -( -& -mut -self -builder -: -StateBuilderNFA -) -{ -let -_ -= -core -: -: -mem -: -: -replace -( -& -mut -self -. -scratch_state_builder -builder -. -clear -( -) -) -; -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -use -core -: -: -mem -: -: -size_of -; -self -. -builder_states -. -len -( -) -* -size_of -: -: -< -State -> -( -) -+ -self -. -cache -. -len -( -) -* -( -size_of -: -: -< -State -> -( -) -+ -size_of -: -: -< -StateID -> -( -) -) -+ -self -. -memory_usage_state -+ -self -. -stack -. -capacity -( -) -* -size_of -: -: -< -StateID -> -( -) -+ -self -. -scratch_state_builder -. -capacity -( -) -} -} diff --git a/third_party/rust/regex-automata/src/dfa/minimize.rs b/third_party/rust/regex-automata/src/dfa/minimize.rs deleted file mode 100644 index d9e58f2558be8..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/minimize.rs +++ /dev/null @@ -1,2539 +0,0 @@ -use -core -: -: -{ -cell -: -: -RefCell -fmt -mem -} -; -use -alloc -: -: -{ -collections -: -: -BTreeMap -rc -: -: -Rc -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -dfa -: -: -{ -automaton -: -: -Automaton -dense -DEAD -} -util -: -: -{ -alphabet -primitives -: -: -{ -PatternID -StateID -} -} -} -; -pub -( -crate -) -struct -Minimizer -< -' -a -> -{ -dfa -: -& -' -a -mut -dense -: -: -OwnedDFA -in_transitions -: -Vec -< -Vec -< -Vec -< -StateID -> -> -> -partitions -: -Vec -< -StateSet -> -waiting -: -Vec -< -StateSet -> -} -impl -< -' -a -> -fmt -: -: -Debug -for -Minimizer -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -f -. -debug_struct -( -" -Minimizer -" -) -. -field -( -" -dfa -" -& -self -. -dfa -) -. -field -( -" -in_transitions -" -& -self -. -in_transitions -) -. -field -( -" -partitions -" -& -self -. -partitions -) -. -field -( -" -waiting -" -& -self -. -waiting -) -. -finish -( -) -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -PartialOrd -Ord -) -] -struct -StateSet -{ -ids -: -Rc -< -RefCell -< -Vec -< -StateID -> -> -> -} -impl -< -' -a -> -Minimizer -< -' -a -> -{ -pub -fn -new -( -dfa -: -& -' -a -mut -dense -: -: -OwnedDFA -) -- -> -Minimizer -< -' -a -> -{ -let -in_transitions -= -Minimizer -: -: -incoming_transitions -( -dfa -) -; -let -partitions -= -Minimizer -: -: -initial_partitions -( -dfa -) -; -let -waiting -= -partitions -. -clone -( -) -; -Minimizer -{ -dfa -in_transitions -partitions -waiting -} -} -pub -fn -run -( -mut -self -) -{ -let -stride2 -= -self -. -dfa -. -stride2 -( -) -; -let -as_state_id -= -| -index -: -usize -| -- -> -StateID -{ -StateID -: -: -new -( -index -< -< -stride2 -) -. -unwrap -( -) -} -; -let -as_index -= -| -id -: -StateID -| -- -> -usize -{ -id -. -as_usize -( -) -> -> -stride2 -} -; -let -mut -incoming -= -StateSet -: -: -empty -( -) -; -let -mut -scratch1 -= -StateSet -: -: -empty -( -) -; -let -mut -scratch2 -= -StateSet -: -: -empty -( -) -; -let -mut -newparts -= -vec -! -[ -] -; -while -let -Some -( -set -) -= -self -. -waiting -. -pop -( -) -{ -for -b -in -self -. -dfa -. -byte_classes -( -) -. -iter -( -) -{ -self -. -find_incoming_to -( -b -& -set -& -mut -incoming -) -; -if -incoming -. -is_empty -( -) -{ -continue -; -} -for -p -in -0 -. -. -self -. -partitions -. -len -( -) -{ -self -. -partitions -[ -p -] -. -intersection -( -& -incoming -& -mut -scratch1 -) -; -if -scratch1 -. -is_empty -( -) -{ -newparts -. -push -( -self -. -partitions -[ -p -] -. -clone -( -) -) -; -continue -; -} -self -. -partitions -[ -p -] -. -subtract -( -& -incoming -& -mut -scratch2 -) -; -if -scratch2 -. -is_empty -( -) -{ -newparts -. -push -( -self -. -partitions -[ -p -] -. -clone -( -) -) -; -continue -; -} -let -( -x -y -) -= -( -scratch1 -. -deep_clone -( -) -scratch2 -. -deep_clone -( -) -) -; -newparts -. -push -( -x -. -clone -( -) -) -; -newparts -. -push -( -y -. -clone -( -) -) -; -match -self -. -find_waiting -( -& -self -. -partitions -[ -p -] -) -{ -Some -( -i -) -= -> -{ -self -. -waiting -[ -i -] -= -x -; -self -. -waiting -. -push -( -y -) -; -} -None -= -> -{ -if -x -. -len -( -) -< -= -y -. -len -( -) -{ -self -. -waiting -. -push -( -x -) -; -} -else -{ -self -. -waiting -. -push -( -y -) -; -} -} -} -} -newparts -= -mem -: -: -replace -( -& -mut -self -. -partitions -newparts -) -; -newparts -. -clear -( -) -; -} -} -let -mut -state_to_part -= -vec -! -[ -DEAD -; -self -. -dfa -. -state_len -( -) -] -; -for -p -in -& -self -. -partitions -{ -p -. -iter -( -| -id -| -state_to_part -[ -as_index -( -id -) -] -= -p -. -min -( -) -) -; -} -let -mut -minimal_ids -= -vec -! -[ -DEAD -; -self -. -dfa -. -state_len -( -) -] -; -let -mut -new_index -= -0 -; -for -state -in -self -. -dfa -. -states -( -) -{ -if -state_to_part -[ -as_index -( -state -. -id -( -) -) -] -= -= -state -. -id -( -) -{ -minimal_ids -[ -as_index -( -state -. -id -( -) -) -] -= -as_state_id -( -new_index -) -; -new_index -+ -= -1 -; -} -} -let -minimal_count -= -new_index -; -let -remap -= -| -old -| -minimal_ids -[ -as_index -( -state_to_part -[ -as_index -( -old -) -] -) -] -; -for -id -in -( -0 -. -. -self -. -dfa -. -state_len -( -) -) -. -map -( -as_state_id -) -{ -if -state_to_part -[ -as_index -( -id -) -] -! -= -id -{ -continue -; -} -self -. -dfa -. -remap_state -( -id -remap -) -; -self -. -dfa -. -swap_states -( -id -minimal_ids -[ -as_index -( -id -) -] -) -; -} -self -. -dfa -. -truncate_states -( -minimal_count -) -; -let -starts -: -Vec -< -_ -> -= -self -. -dfa -. -starts -( -) -. -collect -( -) -; -for -( -old_start_id -anchored -start_type -) -in -starts -{ -self -. -dfa -. -set_start_state -( -anchored -start_type -remap -( -old_start_id -) -) -; -} -let -mut -pmap -= -BTreeMap -: -: -new -( -) -; -for -( -match_id -pattern_ids -) -in -self -. -dfa -. -pattern_map -( -) -{ -let -new_id -= -remap -( -match_id -) -; -pmap -. -insert -( -new_id -pattern_ids -) -; -} -self -. -dfa -. -set_pattern_map -( -& -pmap -) -. -unwrap -( -) -; -let -old -= -self -. -dfa -. -special -( -) -. -clone -( -) -; -let -new -= -self -. -dfa -. -special_mut -( -) -; -if -old -. -matches -( -) -{ -new -. -min_match -= -StateID -: -: -MAX -; -new -. -max_match -= -StateID -: -: -ZERO -; -for -i -in -as_index -( -old -. -min_match -) -. -. -= -as_index -( -old -. -max_match -) -{ -let -new_id -= -remap -( -as_state_id -( -i -) -) -; -if -new_id -< -new -. -min_match -{ -new -. -min_match -= -new_id -; -} -if -new_id -> -new -. -max_match -{ -new -. -max_match -= -new_id -; -} -} -} -if -old -. -starts -( -) -{ -new -. -min_start -= -StateID -: -: -MAX -; -new -. -max_start -= -StateID -: -: -ZERO -; -for -i -in -as_index -( -old -. -min_start -) -. -. -= -as_index -( -old -. -max_start -) -{ -let -new_id -= -remap -( -as_state_id -( -i -) -) -; -if -new_id -= -= -DEAD -{ -continue -; -} -if -new_id -< -new -. -min_start -{ -new -. -min_start -= -new_id -; -} -if -new_id -> -new -. -max_start -{ -new -. -max_start -= -new_id -; -} -} -if -new -. -max_start -= -= -DEAD -{ -new -. -min_start -= -DEAD -; -} -} -new -. -quit_id -= -remap -( -new -. -quit_id -) -; -new -. -set_max -( -) -; -} -fn -find_waiting -( -& -self -set -: -& -StateSet -) -- -> -Option -< -usize -> -{ -self -. -waiting -. -iter -( -) -. -position -( -| -s -| -s -= -= -set -) -} -fn -find_incoming_to -( -& -self -b -: -alphabet -: -: -Unit -set -: -& -StateSet -incoming -: -& -mut -StateSet -) -{ -incoming -. -clear -( -) -; -set -. -iter -( -| -id -| -{ -for -& -inid -in -& -self -. -in_transitions -[ -self -. -dfa -. -to_index -( -id -) -] -[ -b -. -as_usize -( -) -] -{ -incoming -. -add -( -inid -) -; -} -} -) -; -incoming -. -canonicalize -( -) -; -} -fn -initial_partitions -( -dfa -: -& -dense -: -: -OwnedDFA -) -- -> -Vec -< -StateSet -> -{ -let -mut -matching -: -BTreeMap -< -Vec -< -PatternID -> -StateSet -> -= -BTreeMap -: -: -new -( -) -; -let -mut -is_quit -= -StateSet -: -: -empty -( -) -; -let -mut -no_match -= -StateSet -: -: -empty -( -) -; -for -state -in -dfa -. -states -( -) -{ -if -dfa -. -is_match_state -( -state -. -id -( -) -) -{ -let -mut -pids -= -vec -! -[ -] -; -for -i -in -0 -. -. -dfa -. -match_len -( -state -. -id -( -) -) -{ -pids -. -push -( -dfa -. -match_pattern -( -state -. -id -( -) -i -) -) -; -} -matching -. -entry -( -pids -) -. -or_insert -( -StateSet -: -: -empty -( -) -) -. -add -( -state -. -id -( -) -) -; -} -else -if -dfa -. -is_quit_state -( -state -. -id -( -) -) -{ -is_quit -. -add -( -state -. -id -( -) -) -; -} -else -{ -no_match -. -add -( -state -. -id -( -) -) -; -} -} -let -mut -sets -: -Vec -< -StateSet -> -= -matching -. -into_iter -( -) -. -map -( -| -( -_ -set -) -| -set -) -. -collect -( -) -; -sets -. -push -( -no_match -) -; -sets -. -push -( -is_quit -) -; -sets -} -fn -incoming_transitions -( -dfa -: -& -dense -: -: -OwnedDFA -) -- -> -Vec -< -Vec -< -Vec -< -StateID -> -> -> -{ -let -mut -incoming -= -vec -! -[ -] -; -for -_ -in -dfa -. -states -( -) -{ -incoming -. -push -( -vec -! -[ -vec -! -[ -] -; -dfa -. -alphabet_len -( -) -] -) -; -} -for -state -in -dfa -. -states -( -) -{ -for -( -b -next -) -in -state -. -transitions -( -) -{ -incoming -[ -dfa -. -to_index -( -next -) -] -[ -b -. -as_usize -( -) -] -. -push -( -state -. -id -( -) -) -; -} -} -incoming -} -} -impl -StateSet -{ -fn -empty -( -) -- -> -StateSet -{ -StateSet -{ -ids -: -Rc -: -: -new -( -RefCell -: -: -new -( -vec -! -[ -] -) -) -} -} -fn -add -( -& -mut -self -id -: -StateID -) -{ -self -. -ids -. -borrow_mut -( -) -. -push -( -id -) -; -} -fn -min -( -& -self -) -- -> -StateID -{ -self -. -ids -. -borrow -( -) -[ -0 -] -} -fn -canonicalize -( -& -mut -self -) -{ -self -. -ids -. -borrow_mut -( -) -. -sort -( -) -; -self -. -ids -. -borrow_mut -( -) -. -dedup -( -) -; -} -fn -clear -( -& -mut -self -) -{ -self -. -ids -. -borrow_mut -( -) -. -clear -( -) -; -} -fn -len -( -& -self -) -- -> -usize -{ -self -. -ids -. -borrow -( -) -. -len -( -) -} -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -len -( -) -= -= -0 -} -fn -deep_clone -( -& -self -) -- -> -StateSet -{ -let -ids -= -self -. -ids -. -borrow -( -) -. -iter -( -) -. -cloned -( -) -. -collect -( -) -; -StateSet -{ -ids -: -Rc -: -: -new -( -RefCell -: -: -new -( -ids -) -) -} -} -fn -iter -< -F -: -FnMut -( -StateID -) -> -( -& -self -mut -f -: -F -) -{ -for -& -id -in -self -. -ids -. -borrow -( -) -. -iter -( -) -{ -f -( -id -) -; -} -} -fn -intersection -( -& -self -other -: -& -StateSet -dest -: -& -mut -StateSet -) -{ -dest -. -clear -( -) -; -if -self -. -is_empty -( -) -| -| -other -. -is_empty -( -) -{ -return -; -} -let -( -seta -setb -) -= -( -self -. -ids -. -borrow -( -) -other -. -ids -. -borrow -( -) -) -; -let -( -mut -ita -mut -itb -) -= -( -seta -. -iter -( -) -. -cloned -( -) -setb -. -iter -( -) -. -cloned -( -) -) -; -let -( -mut -a -mut -b -) -= -( -ita -. -next -( -) -. -unwrap -( -) -itb -. -next -( -) -. -unwrap -( -) -) -; -loop -{ -if -a -= -= -b -{ -dest -. -add -( -a -) -; -a -= -match -ita -. -next -( -) -{ -None -= -> -break -Some -( -a -) -= -> -a -} -; -b -= -match -itb -. -next -( -) -{ -None -= -> -break -Some -( -b -) -= -> -b -} -; -} -else -if -a -< -b -{ -a -= -match -ita -. -next -( -) -{ -None -= -> -break -Some -( -a -) -= -> -a -} -; -} -else -{ -b -= -match -itb -. -next -( -) -{ -None -= -> -break -Some -( -b -) -= -> -b -} -; -} -} -} -fn -subtract -( -& -self -other -: -& -StateSet -dest -: -& -mut -StateSet -) -{ -dest -. -clear -( -) -; -if -self -. -is_empty -( -) -| -| -other -. -is_empty -( -) -{ -self -. -iter -( -| -s -| -dest -. -add -( -s -) -) -; -return -; -} -let -( -seta -setb -) -= -( -self -. -ids -. -borrow -( -) -other -. -ids -. -borrow -( -) -) -; -let -( -mut -ita -mut -itb -) -= -( -seta -. -iter -( -) -. -cloned -( -) -setb -. -iter -( -) -. -cloned -( -) -) -; -let -( -mut -a -mut -b -) -= -( -ita -. -next -( -) -. -unwrap -( -) -itb -. -next -( -) -. -unwrap -( -) -) -; -loop -{ -if -a -= -= -b -{ -a -= -match -ita -. -next -( -) -{ -None -= -> -break -Some -( -a -) -= -> -a -} -; -b -= -match -itb -. -next -( -) -{ -None -= -> -{ -dest -. -add -( -a -) -; -break -; -} -Some -( -b -) -= -> -b -} -; -} -else -if -a -< -b -{ -dest -. -add -( -a -) -; -a -= -match -ita -. -next -( -) -{ -None -= -> -break -Some -( -a -) -= -> -a -} -; -} -else -{ -b -= -match -itb -. -next -( -) -{ -None -= -> -{ -dest -. -add -( -a -) -; -break -; -} -Some -( -b -) -= -> -b -} -; -} -} -for -a -in -ita -{ -dest -. -add -( -a -) -; -} -} -} diff --git a/third_party/rust/regex-automata/src/dfa/mod.rs b/third_party/rust/regex-automata/src/dfa/mod.rs deleted file mode 100644 index efe6e0a5b46ba..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/mod.rs +++ /dev/null @@ -1,273 +0,0 @@ -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -pub -use -crate -: -: -dfa -: -: -{ -automaton -: -: -{ -Automaton -OverlappingState -} -start -: -: -StartKind -} -; -const -DEAD -: -crate -: -: -util -: -: -primitives -: -: -StateID -= -crate -: -: -util -: -: -primitives -: -: -StateID -: -: -ZERO -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -pub -mod -dense -; -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -pub -mod -onepass -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -pub -mod -regex -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -pub -mod -sparse -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -pub -( -crate -) -mod -accel -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -mod -automaton -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -mod -determinize -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -mod -minimize -; -# -[ -cfg -( -any -( -feature -= -" -dfa -- -build -" -feature -= -" -dfa -- -onepass -" -) -) -] -mod -remapper -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -mod -search -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -mod -special -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -mod -start -; diff --git a/third_party/rust/regex-automata/src/dfa/onepass.rs b/third_party/rust/regex-automata/src/dfa/onepass.rs deleted file mode 100644 index 8db1fe7179d7a..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/onepass.rs +++ /dev/null @@ -1,9650 +0,0 @@ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -dfa -: -: -{ -remapper -: -: -Remapper -DEAD -} -nfa -: -: -thompson -: -: -{ -self -NFA -} -util -: -: -{ -alphabet -: -: -ByteClasses -captures -: -: -Captures -escape -: -: -DebugByte -int -: -: -{ -Usize -U32 -U64 -U8 -} -look -: -: -{ -Look -LookSet -UnicodeWordBoundaryError -} -primitives -: -: -{ -NonMaxUsize -PatternID -StateID -} -search -: -: -{ -Anchored -Input -Match -MatchError -MatchKind -Span -} -sparse_set -: -: -SparseSet -} -} -; -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -Config -{ -match_kind -: -Option -< -MatchKind -> -starts_for_each_pattern -: -Option -< -bool -> -byte_classes -: -Option -< -bool -> -size_limit -: -Option -< -Option -< -usize -> -> -} -impl -Config -{ -pub -fn -new -( -) -- -> -Config -{ -Config -: -: -default -( -) -} -pub -fn -match_kind -( -mut -self -kind -: -MatchKind -) -- -> -Config -{ -self -. -match_kind -= -Some -( -kind -) -; -self -} -pub -fn -starts_for_each_pattern -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -starts_for_each_pattern -= -Some -( -yes -) -; -self -} -pub -fn -byte_classes -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -byte_classes -= -Some -( -yes -) -; -self -} -pub -fn -size_limit -( -mut -self -limit -: -Option -< -usize -> -) -- -> -Config -{ -self -. -size_limit -= -Some -( -limit -) -; -self -} -pub -fn -get_match_kind -( -& -self -) -- -> -MatchKind -{ -self -. -match_kind -. -unwrap_or -( -MatchKind -: -: -LeftmostFirst -) -} -pub -fn -get_starts_for_each_pattern -( -& -self -) -- -> -bool -{ -self -. -starts_for_each_pattern -. -unwrap_or -( -false -) -} -pub -fn -get_byte_classes -( -& -self -) -- -> -bool -{ -self -. -byte_classes -. -unwrap_or -( -true -) -} -pub -fn -get_size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -size_limit -. -unwrap_or -( -None -) -} -pub -( -crate -) -fn -overwrite -( -& -self -o -: -Config -) -- -> -Config -{ -Config -{ -match_kind -: -o -. -match_kind -. -or -( -self -. -match_kind -) -starts_for_each_pattern -: -o -. -starts_for_each_pattern -. -or -( -self -. -starts_for_each_pattern -) -byte_classes -: -o -. -byte_classes -. -or -( -self -. -byte_classes -) -size_limit -: -o -. -size_limit -. -or -( -self -. -size_limit -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -config -: -Config -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -{ -config -: -Config -: -: -default -( -) -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -: -: -new -( -) -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build -( -& -self -pattern -: -& -str -) -- -> -Result -< -DFA -BuildError -> -{ -self -. -build_many -( -& -[ -pattern -] -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build_many -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -DFA -BuildError -> -{ -let -nfa -= -self -. -thompson -. -build_many -( -patterns -) -. -map_err -( -BuildError -: -: -nfa -) -? -; -self -. -build_from_nfa -( -nfa -) -} -pub -fn -build_from_nfa -( -& -self -nfa -: -NFA -) -- -> -Result -< -DFA -BuildError -> -{ -InternalBuilder -: -: -new -( -self -. -config -. -clone -( -) -& -nfa -) -. -build -( -) -} -pub -fn -configure -( -& -mut -self -config -: -Config -) -- -> -& -mut -Builder -{ -self -. -config -= -self -. -config -. -overwrite -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -syntax -( -& -mut -self -config -: -crate -: -: -util -: -: -syntax -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -syntax -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -thompson -( -& -mut -self -config -: -thompson -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -configure -( -config -) -; -self -} -} -# -[ -derive -( -Debug -) -] -struct -InternalBuilder -< -' -a -> -{ -dfa -: -DFA -uncompiled_nfa_ids -: -Vec -< -StateID -> -nfa_to_dfa_id -: -Vec -< -StateID -> -stack -: -Vec -< -( -StateID -Epsilons -) -> -seen -: -SparseSet -matched -: -bool -config -: -Config -nfa -: -& -' -a -NFA -classes -: -ByteClasses -} -impl -< -' -a -> -InternalBuilder -< -' -a -> -{ -fn -new -( -config -: -Config -nfa -: -& -' -a -NFA -) -- -> -InternalBuilder -{ -let -classes -= -if -! -config -. -get_byte_classes -( -) -{ -ByteClasses -: -: -singletons -( -) -} -else -{ -nfa -. -byte_classes -( -) -. -clone -( -) -} -; -let -alphabet_len -= -classes -. -alphabet_len -( -) -. -checked_sub -( -1 -) -. -unwrap -( -) -; -let -stride2 -= -classes -. -stride2 -( -) -; -let -dfa -= -DFA -{ -config -: -config -. -clone -( -) -nfa -: -nfa -. -clone -( -) -table -: -vec -! -[ -] -starts -: -vec -! -[ -] -min_match_id -: -StateID -: -: -MAX -classes -: -classes -. -clone -( -) -alphabet_len -stride2 -pateps_offset -: -alphabet_len -explicit_slot_start -: -nfa -. -pattern_len -( -) -. -checked_mul -( -2 -) -. -unwrap -( -) -} -; -InternalBuilder -{ -dfa -uncompiled_nfa_ids -: -vec -! -[ -] -nfa_to_dfa_id -: -vec -! -[ -DEAD -; -nfa -. -states -( -) -. -len -( -) -] -stack -: -vec -! -[ -] -seen -: -SparseSet -: -: -new -( -nfa -. -states -( -) -. -len -( -) -) -matched -: -false -config -nfa -classes -} -} -fn -build -( -mut -self -) -- -> -Result -< -DFA -BuildError -> -{ -self -. -nfa -. -look_set_any -( -) -. -available -( -) -. -map_err -( -BuildError -: -: -word -) -? -; -for -look -in -self -. -nfa -. -look_set_any -( -) -. -iter -( -) -{ -if -look -. -as_repr -( -) -> -Look -: -: -WordUnicodeNegate -. -as_repr -( -) -{ -return -Err -( -BuildError -: -: -unsupported_look -( -look -) -) -; -} -} -if -self -. -nfa -. -pattern_len -( -) -. -as_u64 -( -) -> -PatternEpsilons -: -: -PATTERN_ID_LIMIT -{ -return -Err -( -BuildError -: -: -too_many_patterns -( -PatternEpsilons -: -: -PATTERN_ID_LIMIT -) -) -; -} -if -self -. -nfa -. -group_info -( -) -. -explicit_slot_len -( -) -> -Slots -: -: -LIMIT -{ -return -Err -( -BuildError -: -: -not_one_pass -( -" -too -many -explicit -capturing -groups -( -max -is -16 -) -" -) -) -; -} -assert_eq -! -( -DEAD -self -. -add_empty_state -( -) -? -) -; -let -explicit_slot_start -= -self -. -nfa -. -pattern_len -( -) -* -2 -; -self -. -add_start_state -( -None -self -. -nfa -. -start_anchored -( -) -) -? -; -if -self -. -config -. -get_starts_for_each_pattern -( -) -{ -for -pid -in -self -. -nfa -. -patterns -( -) -{ -self -. -add_start_state -( -Some -( -pid -) -self -. -nfa -. -start_pattern -( -pid -) -. -unwrap -( -) -) -? -; -} -} -while -let -Some -( -nfa_id -) -= -self -. -uncompiled_nfa_ids -. -pop -( -) -{ -let -dfa_id -= -self -. -nfa_to_dfa_id -[ -nfa_id -] -; -self -. -matched -= -false -; -self -. -seen -. -clear -( -) -; -self -. -stack_push -( -nfa_id -Epsilons -: -: -empty -( -) -) -? -; -while -let -Some -( -( -id -epsilons -) -) -= -self -. -stack -. -pop -( -) -{ -match -* -self -. -nfa -. -state -( -id -) -{ -thompson -: -: -State -: -: -ByteRange -{ -ref -trans -} -= -> -{ -self -. -compile_transition -( -dfa_id -trans -epsilons -) -? -; -} -thompson -: -: -State -: -: -Sparse -( -ref -sparse -) -= -> -{ -for -trans -in -sparse -. -transitions -. -iter -( -) -{ -self -. -compile_transition -( -dfa_id -trans -epsilons -) -? -; -} -} -thompson -: -: -State -: -: -Dense -( -ref -dense -) -= -> -{ -for -trans -in -dense -. -iter -( -) -{ -self -. -compile_transition -( -dfa_id -& -trans -epsilons -) -? -; -} -} -thompson -: -: -State -: -: -Look -{ -look -next -} -= -> -{ -let -looks -= -epsilons -. -looks -( -) -. -insert -( -look -) -; -self -. -stack_push -( -next -epsilons -. -set_looks -( -looks -) -) -? -; -} -thompson -: -: -State -: -: -Union -{ -ref -alternates -} -= -> -{ -for -& -sid -in -alternates -. -iter -( -) -. -rev -( -) -{ -self -. -stack_push -( -sid -epsilons -) -? -; -} -} -thompson -: -: -State -: -: -BinaryUnion -{ -alt1 -alt2 -} -= -> -{ -self -. -stack_push -( -alt2 -epsilons -) -? -; -self -. -stack_push -( -alt1 -epsilons -) -? -; -} -thompson -: -: -State -: -: -Capture -{ -next -slot -. -. -} -= -> -{ -let -slot -= -slot -. -as_usize -( -) -; -let -epsilons -= -if -slot -< -explicit_slot_start -{ -epsilons -} -else -{ -let -offset -= -slot -- -explicit_slot_start -; -epsilons -. -set_slots -( -epsilons -. -slots -( -) -. -insert -( -offset -) -) -} -; -self -. -stack_push -( -next -epsilons -) -? -; -} -thompson -: -: -State -: -: -Fail -= -> -{ -continue -; -} -thompson -: -: -State -: -: -Match -{ -pattern_id -} -= -> -{ -if -self -. -matched -{ -return -Err -( -BuildError -: -: -not_one_pass -( -" -multiple -epsilon -transitions -to -match -state -" -) -) -; -} -self -. -matched -= -true -; -self -. -dfa -. -set_pattern_epsilons -( -dfa_id -PatternEpsilons -: -: -empty -( -) -. -set_pattern_id -( -pattern_id -) -. -set_epsilons -( -epsilons -) -) -; -} -} -} -} -self -. -shuffle_states -( -) -; -Ok -( -self -. -dfa -) -} -fn -shuffle_states -( -& -mut -self -) -{ -let -mut -remapper -= -Remapper -: -: -new -( -& -self -. -dfa -) -; -let -mut -next_dest -= -self -. -dfa -. -last_state_id -( -) -; -for -i -in -( -0 -. -. -self -. -dfa -. -state_len -( -) -) -. -rev -( -) -{ -let -id -= -StateID -: -: -must -( -i -) -; -let -is_match -= -self -. -dfa -. -pattern_epsilons -( -id -) -. -pattern_id -( -) -. -is_some -( -) -; -if -! -is_match -{ -continue -; -} -remapper -. -swap -( -& -mut -self -. -dfa -next_dest -id -) -; -self -. -dfa -. -min_match_id -= -next_dest -; -next_dest -= -self -. -dfa -. -prev_state_id -( -next_dest -) -. -expect -( -" -match -states -should -be -a -proper -subset -of -all -states -" -) -; -} -remapper -. -remap -( -& -mut -self -. -dfa -) -; -} -fn -compile_transition -( -& -mut -self -dfa_id -: -StateID -trans -: -& -thompson -: -: -Transition -epsilons -: -Epsilons -) -- -> -Result -< -( -) -BuildError -> -{ -let -next_dfa_id -= -self -. -add_dfa_state_for_nfa_state -( -trans -. -next -) -? -; -for -byte -in -self -. -classes -. -representatives -( -trans -. -start -. -. -= -trans -. -end -) -. -filter_map -( -| -r -| -r -. -as_u8 -( -) -) -{ -let -oldtrans -= -self -. -dfa -. -transition -( -dfa_id -byte -) -; -let -newtrans -= -Transition -: -: -new -( -self -. -matched -next_dfa_id -epsilons -) -; -if -oldtrans -. -state_id -( -) -= -= -DEAD -{ -self -. -dfa -. -set_transition -( -dfa_id -byte -newtrans -) -; -} -else -if -oldtrans -! -= -newtrans -{ -return -Err -( -BuildError -: -: -not_one_pass -( -" -conflicting -transition -" -) -) -; -} -} -Ok -( -( -) -) -} -fn -add_start_state -( -& -mut -self -pid -: -Option -< -PatternID -> -nfa_id -: -StateID -) -- -> -Result -< -StateID -BuildError -> -{ -match -pid -{ -None -= -> -assert -! -( -self -. -dfa -. -starts -. -is_empty -( -) -) -Some -( -pid -) -= -> -assert -! -( -self -. -dfa -. -starts -. -len -( -) -= -= -pid -. -one_more -( -) -) -} -let -dfa_id -= -self -. -add_dfa_state_for_nfa_state -( -nfa_id -) -? -; -self -. -dfa -. -starts -. -push -( -dfa_id -) -; -Ok -( -dfa_id -) -} -fn -add_dfa_state_for_nfa_state -( -& -mut -self -nfa_id -: -StateID -) -- -> -Result -< -StateID -BuildError -> -{ -let -existing_dfa_id -= -self -. -nfa_to_dfa_id -[ -nfa_id -] -; -if -existing_dfa_id -! -= -DEAD -{ -return -Ok -( -existing_dfa_id -) -; -} -let -dfa_id -= -self -. -add_empty_state -( -) -? -; -self -. -nfa_to_dfa_id -[ -nfa_id -] -= -dfa_id -; -self -. -uncompiled_nfa_ids -. -push -( -nfa_id -) -; -Ok -( -dfa_id -) -} -fn -add_empty_state -( -& -mut -self -) -- -> -Result -< -StateID -BuildError -> -{ -let -state_limit -= -Transition -: -: -STATE_ID_LIMIT -; -let -next_id -= -self -. -dfa -. -table -. -len -( -) -> -> -self -. -dfa -. -stride2 -( -) -; -let -id -= -StateID -: -: -new -( -next_id -) -. -map_err -( -| -_ -| -BuildError -: -: -too_many_states -( -state_limit -) -) -? -; -if -id -. -as_u64 -( -) -> -Transition -: -: -STATE_ID_LIMIT -{ -return -Err -( -BuildError -: -: -too_many_states -( -state_limit -) -) -; -} -self -. -dfa -. -table -. -extend -( -core -: -: -iter -: -: -repeat -( -Transition -( -0 -) -) -. -take -( -self -. -dfa -. -stride -( -) -) -) -; -self -. -dfa -. -set_pattern_epsilons -( -id -PatternEpsilons -: -: -empty -( -) -) -; -if -let -Some -( -size_limit -) -= -self -. -config -. -get_size_limit -( -) -{ -if -self -. -dfa -. -memory_usage -( -) -> -size_limit -{ -return -Err -( -BuildError -: -: -exceeded_size_limit -( -size_limit -) -) -; -} -} -Ok -( -id -) -} -fn -stack_push -( -& -mut -self -nfa_id -: -StateID -epsilons -: -Epsilons -) -- -> -Result -< -( -) -BuildError -> -{ -if -! -self -. -seen -. -insert -( -nfa_id -) -{ -return -Err -( -BuildError -: -: -not_one_pass -( -" -multiple -epsilon -transitions -to -same -state -" -) -) -; -} -self -. -stack -. -push -( -( -nfa_id -epsilons -) -) -; -Ok -( -( -) -) -} -} -# -[ -derive -( -Clone -) -] -pub -struct -DFA -{ -config -: -Config -nfa -: -NFA -table -: -Vec -< -Transition -> -starts -: -Vec -< -StateID -> -min_match_id -: -StateID -classes -: -ByteClasses -alphabet_len -: -usize -stride2 -: -usize -pateps_offset -: -usize -explicit_slot_start -: -usize -} -impl -DFA -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -# -[ -inline -] -pub -fn -new -( -pattern -: -& -str -) -- -> -Result -< -DFA -BuildError -> -{ -DFA -: -: -builder -( -) -. -build -( -pattern -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -# -[ -inline -] -pub -fn -new_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -DFA -BuildError -> -{ -DFA -: -: -builder -( -) -. -build_many -( -patterns -) -} -pub -fn -new_from_nfa -( -nfa -: -NFA -) -- -> -Result -< -DFA -BuildError -> -{ -DFA -: -: -builder -( -) -. -build_from_nfa -( -nfa -) -} -pub -fn -always_match -( -) -- -> -Result -< -DFA -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -always_match -( -) -; -Builder -: -: -new -( -) -. -build_from_nfa -( -nfa -) -} -pub -fn -never_match -( -) -- -> -Result -< -DFA -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -never_match -( -) -; -Builder -: -: -new -( -) -. -build_from_nfa -( -nfa -) -} -# -[ -inline -] -pub -fn -config -( -) -- -> -Config -{ -Config -: -: -new -( -) -} -# -[ -inline -] -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -# -[ -inline -] -pub -fn -create_captures -( -& -self -) -- -> -Captures -{ -Captures -: -: -all -( -self -. -nfa -. -group_info -( -) -. -clone -( -) -) -} -# -[ -inline -] -pub -fn -create_cache -( -& -self -) -- -> -Cache -{ -Cache -: -: -new -( -self -) -} -# -[ -inline -] -pub -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -{ -cache -. -reset -( -self -) -; -} -# -[ -inline -] -pub -fn -get_config -( -& -self -) -- -> -& -Config -{ -& -self -. -config -} -# -[ -inline -] -pub -fn -get_nfa -( -& -self -) -- -> -& -NFA -{ -& -self -. -nfa -} -# -[ -inline -] -pub -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -get_nfa -( -) -. -pattern_len -( -) -} -# -[ -inline -] -pub -fn -state_len -( -& -self -) -- -> -usize -{ -self -. -table -. -len -( -) -> -> -self -. -stride2 -( -) -} -# -[ -inline -] -pub -fn -alphabet_len -( -& -self -) -- -> -usize -{ -self -. -alphabet_len -} -# -[ -inline -] -pub -fn -stride2 -( -& -self -) -- -> -usize -{ -self -. -stride2 -} -# -[ -inline -] -pub -fn -stride -( -& -self -) -- -> -usize -{ -1 -< -< -self -. -stride2 -( -) -} -# -[ -inline -] -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -use -core -: -: -mem -: -: -size_of -; -self -. -table -. -len -( -) -* -size_of -: -: -< -Transition -> -( -) -+ -self -. -starts -. -len -( -) -* -size_of -: -: -< -StateID -> -( -) -} -} -impl -DFA -{ -# -[ -inline -] -pub -fn -is_match -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -) -- -> -bool -{ -let -mut -input -= -input -. -into -( -) -. -earliest -( -true -) -; -if -matches -! -( -input -. -get_anchored -( -) -Anchored -: -: -No -) -{ -input -. -set_anchored -( -Anchored -: -: -Yes -) -; -} -self -. -try_search_slots -( -cache -& -input -& -mut -[ -] -) -. -unwrap -( -) -. -is_some -( -) -} -# -[ -inline -] -pub -fn -find -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -) -- -> -Option -< -Match -> -{ -let -mut -input -= -input -. -into -( -) -; -if -matches -! -( -input -. -get_anchored -( -) -Anchored -: -: -No -) -{ -input -. -set_anchored -( -Anchored -: -: -Yes -) -; -} -if -self -. -get_nfa -( -) -. -pattern_len -( -) -= -= -1 -{ -let -mut -slots -= -[ -None -None -] -; -let -pid -= -self -. -try_search_slots -( -cache -& -input -& -mut -slots -) -. -unwrap -( -) -? -; -let -start -= -slots -[ -0 -] -. -unwrap -( -) -. -get -( -) -; -let -end -= -slots -[ -1 -] -. -unwrap -( -) -. -get -( -) -; -return -Some -( -Match -: -: -new -( -pid -Span -{ -start -end -} -) -) -; -} -let -ginfo -= -self -. -get_nfa -( -) -. -group_info -( -) -; -let -slots_len -= -ginfo -. -implicit_slot_len -( -) -; -let -mut -slots -= -vec -! -[ -None -; -slots_len -] -; -let -pid -= -self -. -try_search_slots -( -cache -& -input -& -mut -slots -) -. -unwrap -( -) -? -; -let -start -= -slots -[ -pid -. -as_usize -( -) -* -2 -] -. -unwrap -( -) -. -get -( -) -; -let -end -= -slots -[ -pid -. -as_usize -( -) -* -2 -+ -1 -] -. -unwrap -( -) -. -get -( -) -; -Some -( -Match -: -: -new -( -pid -Span -{ -start -end -} -) -) -} -# -[ -inline -] -pub -fn -captures -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -caps -: -& -mut -Captures -) -{ -let -mut -input -= -input -. -into -( -) -; -if -matches -! -( -input -. -get_anchored -( -) -Anchored -: -: -No -) -{ -input -. -set_anchored -( -Anchored -: -: -Yes -) -; -} -self -. -try_search -( -cache -& -input -caps -) -. -unwrap -( -) -; -} -# -[ -inline -] -pub -fn -try_search -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -caps -: -& -mut -Captures -) -- -> -Result -< -( -) -MatchError -> -{ -let -pid -= -self -. -try_search_slots -( -cache -input -caps -. -slots_mut -( -) -) -? -; -caps -. -set_pattern -( -pid -) -; -Ok -( -( -) -) -} -# -[ -inline -] -pub -fn -try_search_slots -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Result -< -Option -< -PatternID -> -MatchError -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -if -! -utf8empty -{ -return -self -. -try_search_slots_imp -( -cache -input -slots -) -; -} -let -min -= -self -. -get_nfa -( -) -. -group_info -( -) -. -implicit_slot_len -( -) -; -if -slots -. -len -( -) -> -= -min -{ -return -self -. -try_search_slots_imp -( -cache -input -slots -) -; -} -if -self -. -get_nfa -( -) -. -pattern_len -( -) -= -= -1 -{ -let -mut -enough -= -[ -None -None -] -; -let -got -= -self -. -try_search_slots_imp -( -cache -input -& -mut -enough -) -? -; -slots -. -copy_from_slice -( -& -enough -[ -. -. -slots -. -len -( -) -] -) -; -return -Ok -( -got -) -; -} -let -mut -enough -= -vec -! -[ -None -; -min -] -; -let -got -= -self -. -try_search_slots_imp -( -cache -input -& -mut -enough -) -? -; -slots -. -copy_from_slice -( -& -enough -[ -. -. -slots -. -len -( -) -] -) -; -Ok -( -got -) -} -# -[ -inline -( -never -) -] -fn -try_search_slots_imp -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Result -< -Option -< -PatternID -> -MatchError -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -match -self -. -search_imp -( -cache -input -slots -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -pid -) -if -! -utf8empty -= -> -return -Ok -( -Some -( -pid -) -) -Some -( -pid -) -= -> -{ -let -slot_start -= -pid -. -as_usize -( -) -. -wrapping_mul -( -2 -) -; -let -slot_end -= -slot_start -. -wrapping_add -( -1 -) -; -let -start -= -slots -[ -slot_start -] -. -unwrap -( -) -. -get -( -) -; -let -end -= -slots -[ -slot_end -] -. -unwrap -( -) -. -get -( -) -; -if -start -= -= -end -& -& -! -input -. -is_char_boundary -( -start -) -{ -return -Ok -( -None -) -; -} -Ok -( -Some -( -pid -) -) -} -} -} -} -impl -DFA -{ -fn -search_imp -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Result -< -Option -< -PatternID -> -MatchError -> -{ -if -input -. -is_done -( -) -{ -return -Ok -( -None -) -; -} -let -explicit_slots_len -= -core -: -: -cmp -: -: -min -( -Slots -: -: -LIMIT -slots -. -len -( -) -. -saturating_sub -( -self -. -explicit_slot_start -) -) -; -cache -. -setup_search -( -explicit_slots_len -) -; -for -slot -in -cache -. -explicit_slots -( -) -{ -* -slot -= -None -; -} -for -slot -in -slots -. -iter_mut -( -) -{ -* -slot -= -None -; -} -for -pid -in -self -. -nfa -. -patterns -( -) -{ -let -i -= -pid -. -as_usize -( -) -* -2 -; -if -i -> -= -slots -. -len -( -) -{ -break -; -} -slots -[ -i -] -= -NonMaxUsize -: -: -new -( -input -. -start -( -) -) -; -} -let -mut -pid -= -None -; -let -mut -next_sid -= -match -input -. -get_anchored -( -) -{ -Anchored -: -: -Yes -= -> -self -. -start -( -) -Anchored -: -: -Pattern -( -pid -) -= -> -self -. -start_pattern -( -pid -) -? -Anchored -: -: -No -= -> -{ -if -! -self -. -nfa -. -is_always_start_anchored -( -) -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -Anchored -: -: -No -) -) -; -} -self -. -start -( -) -} -} -; -let -leftmost_first -= -matches -! -( -self -. -config -. -get_match_kind -( -) -MatchKind -: -: -LeftmostFirst -) -; -for -at -in -input -. -start -( -) -. -. -input -. -end -( -) -{ -let -sid -= -next_sid -; -let -trans -= -self -. -transition -( -sid -input -. -haystack -( -) -[ -at -] -) -; -next_sid -= -trans -. -state_id -( -) -; -let -epsilons -= -trans -. -epsilons -( -) -; -if -sid -> -= -self -. -min_match_id -{ -if -self -. -find_match -( -cache -input -at -sid -slots -& -mut -pid -) -{ -if -input -. -get_earliest -( -) -| -| -( -leftmost_first -& -& -trans -. -match_wins -( -) -) -{ -return -Ok -( -pid -) -; -} -} -} -if -sid -= -= -DEAD -| -| -( -! -epsilons -. -looks -( -) -. -is_empty -( -) -& -& -! -self -. -nfa -. -look_matcher -( -) -. -matches_set_inline -( -epsilons -. -looks -( -) -input -. -haystack -( -) -at -) -) -{ -return -Ok -( -pid -) -; -} -epsilons -. -slots -( -) -. -apply -( -at -cache -. -explicit_slots -( -) -) -; -} -if -next_sid -> -= -self -. -min_match_id -{ -self -. -find_match -( -cache -input -input -. -end -( -) -next_sid -slots -& -mut -pid -) -; -} -Ok -( -pid -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -find_match -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -at -: -usize -sid -: -StateID -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -matched_pid -: -& -mut -Option -< -PatternID -> -) -- -> -bool -{ -debug_assert -! -( -sid -> -= -self -. -min_match_id -) -; -let -pateps -= -self -. -pattern_epsilons -( -sid -) -; -let -epsilons -= -pateps -. -epsilons -( -) -; -if -! -epsilons -. -looks -( -) -. -is_empty -( -) -& -& -! -self -. -nfa -. -look_matcher -( -) -. -matches_set_inline -( -epsilons -. -looks -( -) -input -. -haystack -( -) -at -) -{ -return -false -; -} -let -pid -= -pateps -. -pattern_id_unchecked -( -) -; -let -slot_end -= -pid -. -as_usize -( -) -. -wrapping_mul -( -2 -) -. -wrapping_add -( -1 -) -; -if -slot_end -< -slots -. -len -( -) -{ -slots -[ -slot_end -] -= -NonMaxUsize -: -: -new -( -at -) -; -} -if -self -. -explicit_slot_start -< -slots -. -len -( -) -{ -slots -[ -self -. -explicit_slot_start -. -. -] -. -copy_from_slice -( -cache -. -explicit_slots -( -) -) -; -epsilons -. -slots -( -) -. -apply -( -at -& -mut -slots -[ -self -. -explicit_slot_start -. -. -] -) -; -} -* -matched_pid -= -Some -( -pid -) -; -true -} -} -impl -DFA -{ -fn -start -( -& -self -) -- -> -StateID -{ -self -. -starts -[ -0 -] -} -fn -start_pattern -( -& -self -pid -: -PatternID -) -- -> -Result -< -StateID -MatchError -> -{ -if -! -self -. -config -. -get_starts_for_each_pattern -( -) -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -Anchored -: -: -Pattern -( -pid -) -) -) -; -} -Ok -( -self -. -starts -. -get -( -pid -. -one_more -( -) -) -. -copied -( -) -. -unwrap_or -( -DEAD -) -) -} -fn -transition -( -& -self -sid -: -StateID -byte -: -u8 -) -- -> -Transition -{ -let -offset -= -sid -. -as_usize -( -) -< -< -self -. -stride2 -( -) -; -let -class -= -self -. -classes -. -get -( -byte -) -. -as_usize -( -) -; -self -. -table -[ -offset -+ -class -] -} -fn -set_transition -( -& -mut -self -sid -: -StateID -byte -: -u8 -to -: -Transition -) -{ -let -offset -= -sid -. -as_usize -( -) -< -< -self -. -stride2 -( -) -; -let -class -= -self -. -classes -. -get -( -byte -) -. -as_usize -( -) -; -self -. -table -[ -offset -+ -class -] -= -to -; -} -fn -sparse_transitions -( -& -self -sid -: -StateID -) -- -> -SparseTransitionIter -< -' -_ -> -{ -let -start -= -sid -. -as_usize -( -) -< -< -self -. -stride2 -( -) -; -let -end -= -start -+ -self -. -alphabet_len -( -) -; -SparseTransitionIter -{ -it -: -self -. -table -[ -start -. -. -end -] -. -iter -( -) -. -enumerate -( -) -cur -: -None -} -} -fn -pattern_epsilons -( -& -self -sid -: -StateID -) -- -> -PatternEpsilons -{ -let -offset -= -sid -. -as_usize -( -) -< -< -self -. -stride2 -( -) -; -PatternEpsilons -( -self -. -table -[ -offset -+ -self -. -pateps_offset -] -. -0 -) -} -fn -set_pattern_epsilons -( -& -mut -self -sid -: -StateID -pateps -: -PatternEpsilons -) -{ -let -offset -= -sid -. -as_usize -( -) -< -< -self -. -stride2 -( -) -; -self -. -table -[ -offset -+ -self -. -pateps_offset -] -= -Transition -( -pateps -. -0 -) -; -} -fn -prev_state_id -( -& -self -id -: -StateID -) -- -> -Option -< -StateID -> -{ -if -id -= -= -DEAD -{ -None -} -else -{ -Some -( -StateID -: -: -new_unchecked -( -id -. -as_usize -( -) -. -checked_sub -( -1 -) -. -unwrap -( -) -) -) -} -} -fn -last_state_id -( -& -self -) -- -> -StateID -{ -StateID -: -: -new_unchecked -( -( -self -. -table -. -len -( -) -> -> -self -. -stride2 -( -) -) -. -checked_sub -( -1 -) -. -unwrap -( -) -) -} -pub -( -super -) -fn -swap_states -( -& -mut -self -id1 -: -StateID -id2 -: -StateID -) -{ -let -o1 -= -id1 -. -as_usize -( -) -< -< -self -. -stride2 -( -) -; -let -o2 -= -id2 -. -as_usize -( -) -< -< -self -. -stride2 -( -) -; -for -b -in -0 -. -. -self -. -stride -( -) -{ -self -. -table -. -swap -( -o1 -+ -b -o2 -+ -b -) -; -} -} -pub -( -super -) -fn -remap -( -& -mut -self -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -{ -for -i -in -0 -. -. -self -. -state_len -( -) -{ -let -offset -= -i -< -< -self -. -stride2 -( -) -; -for -b -in -0 -. -. -self -. -alphabet_len -( -) -{ -let -next -= -self -. -table -[ -offset -+ -b -] -. -state_id -( -) -; -self -. -table -[ -offset -+ -b -] -. -set_state_id -( -map -( -next -) -) -; -} -} -for -i -in -0 -. -. -self -. -starts -. -len -( -) -{ -self -. -starts -[ -i -] -= -map -( -self -. -starts -[ -i -] -) -; -} -} -} -impl -core -: -: -fmt -: -: -Debug -for -DFA -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -fn -debug_state_transitions -( -f -: -& -mut -core -: -: -fmt -: -: -Formatter -dfa -: -& -DFA -sid -: -StateID -) -- -> -core -: -: -fmt -: -: -Result -{ -for -( -i -( -start -end -trans -) -) -in -dfa -. -sparse_transitions -( -sid -) -. -enumerate -( -) -{ -let -next -= -trans -. -state_id -( -) -; -if -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -if -start -= -= -end -{ -write -! -( -f -" -{ -: -? -} -= -> -{ -: -? -} -" -DebugByte -( -start -) -next -. -as_usize -( -) -) -? -; -} -else -{ -write -! -( -f -" -{ -: -? -} -- -{ -: -? -} -= -> -{ -: -? -} -" -DebugByte -( -start -) -DebugByte -( -end -) -next -. -as_usize -( -) -) -? -; -} -if -trans -. -match_wins -( -) -{ -write -! -( -f -" -( -MW -) -" -) -? -; -} -if -! -trans -. -epsilons -( -) -. -is_empty -( -) -{ -write -! -( -f -" -( -{ -: -? -} -) -" -trans -. -epsilons -( -) -) -? -; -} -} -Ok -( -( -) -) -} -writeln -! -( -f -" -onepass -: -: -DFA -( -" -) -? -; -for -index -in -0 -. -. -self -. -state_len -( -) -{ -let -sid -= -StateID -: -: -must -( -index -) -; -let -pateps -= -self -. -pattern_epsilons -( -sid -) -; -if -sid -= -= -DEAD -{ -write -! -( -f -" -D -" -) -? -; -} -else -if -pateps -. -pattern_id -( -) -. -is_some -( -) -{ -write -! -( -f -" -* -" -) -? -; -} -else -{ -write -! -( -f -" -" -) -? -; -} -write -! -( -f -" -{ -: -06 -? -} -" -sid -. -as_usize -( -) -) -? -; -if -! -pateps -. -is_empty -( -) -{ -write -! -( -f -" -( -{ -: -? -} -) -" -pateps -) -? -; -} -write -! -( -f -" -: -" -) -? -; -debug_state_transitions -( -f -self -sid -) -? -; -write -! -( -f -" -\ -n -" -) -? -; -} -writeln -! -( -f -" -" -) -? -; -for -( -i -& -sid -) -in -self -. -starts -. -iter -( -) -. -enumerate -( -) -{ -if -i -= -= -0 -{ -writeln -! -( -f -" -START -( -ALL -) -: -{ -: -? -} -" -sid -. -as_usize -( -) -) -? -; -} -else -{ -writeln -! -( -f -" -START -( -pattern -: -{ -: -? -} -) -: -{ -: -? -} -" -i -- -1 -sid -. -as_usize -( -) -) -? -; -} -} -writeln -! -( -f -" -state -length -: -{ -: -? -} -" -self -. -state_len -( -) -) -? -; -writeln -! -( -f -" -pattern -length -: -{ -: -? -} -" -self -. -pattern_len -( -) -) -? -; -writeln -! -( -f -" -) -" -) -? -; -Ok -( -( -) -) -} -} -# -[ -derive -( -Debug -) -] -struct -SparseTransitionIter -< -' -a -> -{ -it -: -core -: -: -iter -: -: -Enumerate -< -core -: -: -slice -: -: -Iter -< -' -a -Transition -> -> -cur -: -Option -< -( -u8 -u8 -Transition -) -> -} -impl -< -' -a -> -Iterator -for -SparseTransitionIter -< -' -a -> -{ -type -Item -= -( -u8 -u8 -Transition -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -u8 -u8 -Transition -) -> -{ -while -let -Some -( -( -b -& -trans -) -) -= -self -. -it -. -next -( -) -{ -let -b -= -b -. -as_u8 -( -) -; -let -( -prev_start -prev_end -prev_trans -) -= -match -self -. -cur -{ -Some -( -t -) -= -> -t -None -= -> -{ -self -. -cur -= -Some -( -( -b -b -trans -) -) -; -continue -; -} -} -; -if -prev_trans -= -= -trans -{ -self -. -cur -= -Some -( -( -prev_start -b -prev_trans -) -) -; -} -else -{ -self -. -cur -= -Some -( -( -b -b -trans -) -) -; -if -prev_trans -. -state_id -( -) -! -= -DEAD -{ -return -Some -( -( -prev_start -prev_end -prev_trans -) -) -; -} -} -} -if -let -Some -( -( -start -end -trans -) -) -= -self -. -cur -. -take -( -) -{ -if -trans -. -state_id -( -) -! -= -DEAD -{ -return -Some -( -( -start -end -trans -) -) -; -} -} -None -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Cache -{ -explicit_slots -: -Vec -< -Option -< -NonMaxUsize -> -> -explicit_slot_len -: -usize -} -impl -Cache -{ -pub -fn -new -( -re -: -& -DFA -) -- -> -Cache -{ -let -mut -cache -= -Cache -{ -explicit_slots -: -vec -! -[ -] -explicit_slot_len -: -0 -} -; -cache -. -reset -( -re -) -; -cache -} -pub -fn -reset -( -& -mut -self -re -: -& -DFA -) -{ -let -explicit_slot_len -= -re -. -get_nfa -( -) -. -group_info -( -) -. -explicit_slot_len -( -) -; -self -. -explicit_slots -. -resize -( -explicit_slot_len -None -) -; -self -. -explicit_slot_len -= -explicit_slot_len -; -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -explicit_slots -. -len -( -) -* -core -: -: -mem -: -: -size_of -: -: -< -Option -< -NonMaxUsize -> -> -( -) -} -fn -explicit_slots -( -& -mut -self -) -- -> -& -mut -[ -Option -< -NonMaxUsize -> -] -{ -& -mut -self -. -explicit_slots -[ -. -. -self -. -explicit_slot_len -] -} -fn -setup_search -( -& -mut -self -explicit_slot_len -: -usize -) -{ -self -. -explicit_slot_len -= -explicit_slot_len -; -} -} -# -[ -derive -( -Clone -Copy -Eq -PartialEq -) -] -struct -Transition -( -u64 -) -; -impl -Transition -{ -const -STATE_ID_BITS -: -u64 -= -21 -; -const -STATE_ID_SHIFT -: -u64 -= -64 -- -Transition -: -: -STATE_ID_BITS -; -const -STATE_ID_LIMIT -: -u64 -= -1 -< -< -Transition -: -: -STATE_ID_BITS -; -const -MATCH_WINS_SHIFT -: -u64 -= -64 -- -( -Transition -: -: -STATE_ID_BITS -+ -1 -) -; -const -INFO_MASK -: -u64 -= -0x000003FF_FFFFFFFF -; -fn -new -( -match_wins -: -bool -sid -: -StateID -epsilons -: -Epsilons -) -- -> -Transition -{ -let -match_wins -= -if -match_wins -{ -1 -< -< -Transition -: -: -MATCH_WINS_SHIFT -} -else -{ -0 -} -; -let -sid -= -sid -. -as_u64 -( -) -< -< -Transition -: -: -STATE_ID_SHIFT -; -Transition -( -sid -| -match_wins -| -epsilons -. -0 -) -} -fn -is_dead -( -self -) -- -> -bool -{ -self -. -state_id -( -) -= -= -DEAD -} -fn -match_wins -( -& -self -) -- -> -bool -{ -( -self -. -0 -> -> -Transition -: -: -MATCH_WINS_SHIFT -& -1 -) -= -= -1 -} -fn -state_id -( -& -self -) -- -> -StateID -{ -StateID -: -: -new_unchecked -( -( -self -. -0 -> -> -Transition -: -: -STATE_ID_SHIFT -) -. -as_usize -( -) -) -} -fn -set_state_id -( -& -mut -self -sid -: -StateID -) -{ -* -self -= -Transition -: -: -new -( -self -. -match_wins -( -) -sid -self -. -epsilons -( -) -) -; -} -fn -epsilons -( -& -self -) -- -> -Epsilons -{ -Epsilons -( -self -. -0 -& -Transition -: -: -INFO_MASK -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -Transition -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -if -self -. -is_dead -( -) -{ -return -write -! -( -f -" -0 -" -) -; -} -write -! -( -f -" -{ -} -" -self -. -state_id -( -) -. -as_usize -( -) -) -? -; -if -self -. -match_wins -( -) -{ -write -! -( -f -" -- -MW -" -) -? -; -} -if -! -self -. -epsilons -( -) -. -is_empty -( -) -{ -write -! -( -f -" -- -{ -: -? -} -" -self -. -epsilons -( -) -) -? -; -} -Ok -( -( -) -) -} -} -# -[ -derive -( -Clone -Copy -) -] -struct -PatternEpsilons -( -u64 -) -; -impl -PatternEpsilons -{ -const -PATTERN_ID_BITS -: -u64 -= -22 -; -const -PATTERN_ID_SHIFT -: -u64 -= -64 -- -PatternEpsilons -: -: -PATTERN_ID_BITS -; -const -PATTERN_ID_NONE -: -u64 -= -0x00000000_003FFFFF -; -const -PATTERN_ID_LIMIT -: -u64 -= -PatternEpsilons -: -: -PATTERN_ID_NONE -; -const -PATTERN_ID_MASK -: -u64 -= -0xFFFFFC00_00000000 -; -const -EPSILONS_MASK -: -u64 -= -0x000003FF_FFFFFFFF -; -fn -empty -( -) -- -> -PatternEpsilons -{ -PatternEpsilons -( -PatternEpsilons -: -: -PATTERN_ID_NONE -< -< -PatternEpsilons -: -: -PATTERN_ID_SHIFT -) -} -fn -is_empty -( -self -) -- -> -bool -{ -self -. -pattern_id -( -) -. -is_none -( -) -& -& -self -. -epsilons -( -) -. -is_empty -( -) -} -fn -pattern_id -( -self -) -- -> -Option -< -PatternID -> -{ -let -pid -= -self -. -0 -> -> -PatternEpsilons -: -: -PATTERN_ID_SHIFT -; -if -pid -= -= -PatternEpsilons -: -: -PATTERN_ID_LIMIT -{ -None -} -else -{ -Some -( -PatternID -: -: -new_unchecked -( -pid -. -as_usize -( -) -) -) -} -} -fn -pattern_id_unchecked -( -self -) -- -> -PatternID -{ -let -pid -= -self -. -0 -> -> -PatternEpsilons -: -: -PATTERN_ID_SHIFT -; -PatternID -: -: -new_unchecked -( -pid -. -as_usize -( -) -) -} -fn -set_pattern_id -( -self -pid -: -PatternID -) -- -> -PatternEpsilons -{ -PatternEpsilons -( -( -pid -. -as_u64 -( -) -< -< -PatternEpsilons -: -: -PATTERN_ID_SHIFT -) -| -( -self -. -0 -& -PatternEpsilons -: -: -EPSILONS_MASK -) -) -} -fn -epsilons -( -self -) -- -> -Epsilons -{ -Epsilons -( -self -. -0 -& -PatternEpsilons -: -: -EPSILONS_MASK -) -} -fn -set_epsilons -( -self -epsilons -: -Epsilons -) -- -> -PatternEpsilons -{ -PatternEpsilons -( -( -self -. -0 -& -PatternEpsilons -: -: -PATTERN_ID_MASK -) -| -u64 -: -: -from -( -epsilons -. -0 -) -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -PatternEpsilons -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -if -self -. -is_empty -( -) -{ -return -write -! -( -f -" -N -/ -A -" -) -; -} -if -let -Some -( -pid -) -= -self -. -pattern_id -( -) -{ -write -! -( -f -" -{ -} -" -pid -. -as_usize -( -) -) -? -; -} -if -! -self -. -epsilons -( -) -. -is_empty -( -) -{ -if -self -. -pattern_id -( -) -. -is_some -( -) -{ -write -! -( -f -" -/ -" -) -? -; -} -write -! -( -f -" -{ -: -? -} -" -self -. -epsilons -( -) -) -? -; -} -Ok -( -( -) -) -} -} -# -[ -derive -( -Clone -Copy -) -] -struct -Epsilons -( -u64 -) -; -impl -Epsilons -{ -const -SLOT_MASK -: -u64 -= -0x000003FF_FFFFFC00 -; -const -SLOT_SHIFT -: -u64 -= -10 -; -const -LOOK_MASK -: -u64 -= -0x00000000_000003FF -; -fn -empty -( -) -- -> -Epsilons -{ -Epsilons -( -0 -) -} -fn -is_empty -( -self -) -- -> -bool -{ -self -. -0 -= -= -0 -} -fn -slots -( -self -) -- -> -Slots -{ -Slots -( -( -self -. -0 -> -> -Epsilons -: -: -SLOT_SHIFT -) -. -low_u32 -( -) -) -} -fn -set_slots -( -self -slots -: -Slots -) -- -> -Epsilons -{ -Epsilons -( -( -u64 -: -: -from -( -slots -. -0 -) -< -< -Epsilons -: -: -SLOT_SHIFT -) -| -( -self -. -0 -& -Epsilons -: -: -LOOK_MASK -) -) -} -fn -looks -( -self -) -- -> -LookSet -{ -LookSet -{ -bits -: -( -self -. -0 -& -Epsilons -: -: -LOOK_MASK -) -. -low_u16 -( -) -} -} -fn -set_looks -( -self -look_set -: -LookSet -) -- -> -Epsilons -{ -Epsilons -( -( -self -. -0 -& -Epsilons -: -: -SLOT_MASK -) -| -u64 -: -: -from -( -look_set -. -bits -) -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -Epsilons -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -let -mut -wrote -= -false -; -if -! -self -. -slots -( -) -. -is_empty -( -) -{ -write -! -( -f -" -{ -: -? -} -" -self -. -slots -( -) -) -? -; -wrote -= -true -; -} -if -! -self -. -looks -( -) -. -is_empty -( -) -{ -if -wrote -{ -write -! -( -f -" -/ -" -) -? -; -} -write -! -( -f -" -{ -: -? -} -" -self -. -looks -( -) -) -? -; -wrote -= -true -; -} -if -! -wrote -{ -write -! -( -f -" -N -/ -A -" -) -? -; -} -Ok -( -( -) -) -} -} -# -[ -derive -( -Clone -Copy -) -] -struct -Slots -( -u32 -) -; -impl -Slots -{ -const -LIMIT -: -usize -= -32 -; -fn -insert -( -self -slot -: -usize -) -- -> -Slots -{ -debug_assert -! -( -slot -< -Slots -: -: -LIMIT -) -; -Slots -( -self -. -0 -| -( -1 -< -< -slot -. -as_u32 -( -) -) -) -} -fn -remove -( -self -slot -: -usize -) -- -> -Slots -{ -debug_assert -! -( -slot -< -Slots -: -: -LIMIT -) -; -Slots -( -self -. -0 -& -! -( -1 -< -< -slot -. -as_u32 -( -) -) -) -} -fn -is_empty -( -self -) -- -> -bool -{ -self -. -0 -= -= -0 -} -fn -iter -( -self -) -- -> -SlotsIter -{ -SlotsIter -{ -slots -: -self -} -} -fn -apply -( -self -at -: -usize -caller_explicit_slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -{ -if -self -. -is_empty -( -) -{ -return -; -} -let -at -= -NonMaxUsize -: -: -new -( -at -) -; -for -slot -in -self -. -iter -( -) -{ -if -slot -> -= -caller_explicit_slots -. -len -( -) -{ -break -; -} -caller_explicit_slots -[ -slot -] -= -at -; -} -} -} -impl -core -: -: -fmt -: -: -Debug -for -Slots -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -S -" -) -? -; -for -slot -in -self -. -iter -( -) -{ -write -! -( -f -" -- -{ -: -? -} -" -slot -) -? -; -} -Ok -( -( -) -) -} -} -# -[ -derive -( -Debug -) -] -struct -SlotsIter -{ -slots -: -Slots -} -impl -Iterator -for -SlotsIter -{ -type -Item -= -usize -; -fn -next -( -& -mut -self -) -- -> -Option -< -usize -> -{ -let -slot -= -self -. -slots -. -0 -. -trailing_zeros -( -) -. -as_usize -( -) -; -if -slot -> -= -Slots -: -: -LIMIT -{ -return -None -; -} -self -. -slots -= -self -. -slots -. -remove -( -slot -) -; -Some -( -slot -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -BuildError -{ -kind -: -BuildErrorKind -} -# -[ -derive -( -Clone -Debug -) -] -enum -BuildErrorKind -{ -NFA -( -crate -: -: -nfa -: -: -thompson -: -: -BuildError -) -Word -( -UnicodeWordBoundaryError -) -TooManyStates -{ -limit -: -u64 -} -TooManyPatterns -{ -limit -: -u64 -} -UnsupportedLook -{ -look -: -Look -} -ExceededSizeLimit -{ -limit -: -usize -} -NotOnePass -{ -msg -: -& -' -static -str -} -} -impl -BuildError -{ -fn -nfa -( -err -: -crate -: -: -nfa -: -: -thompson -: -: -BuildError -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -NFA -( -err -) -} -} -fn -word -( -err -: -UnicodeWordBoundaryError -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -Word -( -err -) -} -} -fn -too_many_states -( -limit -: -u64 -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -TooManyStates -{ -limit -} -} -} -fn -too_many_patterns -( -limit -: -u64 -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -TooManyPatterns -{ -limit -} -} -} -fn -unsupported_look -( -look -: -Look -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -UnsupportedLook -{ -look -} -} -} -fn -exceeded_size_limit -( -limit -: -usize -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -ExceededSizeLimit -{ -limit -} -} -} -fn -not_one_pass -( -msg -: -& -' -static -str -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -NotOnePass -{ -msg -} -} -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -BuildError -{ -fn -source -( -& -self -) -- -> -Option -< -& -( -dyn -std -: -: -error -: -: -Error -+ -' -static -) -> -{ -use -self -: -: -BuildErrorKind -: -: -* -; -match -self -. -kind -{ -NFA -( -ref -err -) -= -> -Some -( -err -) -Word -( -ref -err -) -= -> -Some -( -err -) -_ -= -> -None -} -} -} -impl -core -: -: -fmt -: -: -Display -for -BuildError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -use -self -: -: -BuildErrorKind -: -: -* -; -match -self -. -kind -{ -NFA -( -_ -) -= -> -write -! -( -f -" -error -building -NFA -" -) -Word -( -_ -) -= -> -write -! -( -f -" -NFA -contains -Unicode -word -boundary -" -) -TooManyStates -{ -limit -} -= -> -write -! -( -f -" -one -- -pass -DFA -exceeded -a -limit -of -{ -: -? -} -for -number -of -states -" -limit -) -TooManyPatterns -{ -limit -} -= -> -write -! -( -f -" -one -- -pass -DFA -exceeded -a -limit -of -{ -: -? -} -for -number -of -patterns -" -limit -) -UnsupportedLook -{ -look -} -= -> -write -! -( -f -" -one -- -pass -DFA -does -not -support -the -{ -: -? -} -assertion -" -look -) -ExceededSizeLimit -{ -limit -} -= -> -write -! -( -f -" -one -- -pass -DFA -exceeded -size -limit -of -{ -: -? -} -during -building -" -limit -) -NotOnePass -{ -msg -} -= -> -write -! -( -f -" -one -- -pass -DFA -could -not -be -built -because -\ -pattern -is -not -one -- -pass -: -{ -} -" -msg -) -} -} -} -# -[ -cfg -( -all -( -test -feature -= -" -syntax -" -) -) -] -mod -tests -{ -use -alloc -: -: -string -: -: -ToString -; -use -super -: -: -* -; -# -[ -test -] -fn -fail_conflicting_transition -( -) -{ -let -predicate -= -| -err -: -& -str -| -err -. -contains -( -" -conflicting -transition -" -) -; -let -err -= -DFA -: -: -new -( -r -" -a -* -[ -ab -] -" -) -. -unwrap_err -( -) -. -to_string -( -) -; -assert -! -( -predicate -( -& -err -) -" -{ -} -" -err -) -; -} -# -[ -test -] -fn -fail_multiple_epsilon -( -) -{ -let -predicate -= -| -err -: -& -str -| -{ -err -. -contains -( -" -multiple -epsilon -transitions -to -same -state -" -) -} -; -let -err -= -DFA -: -: -new -( -r -" -( -^ -| -) -a -" -) -. -unwrap_err -( -) -. -to_string -( -) -; -assert -! -( -predicate -( -& -err -) -" -{ -} -" -err -) -; -} -# -[ -test -] -fn -fail_multiple_match -( -) -{ -let -predicate -= -| -err -: -& -str -| -{ -err -. -contains -( -" -multiple -epsilon -transitions -to -match -state -" -) -} -; -let -err -= -DFA -: -: -new_many -( -& -[ -r -" -^ -" -r -" -" -] -) -. -unwrap_err -( -) -. -to_string -( -) -; -assert -! -( -predicate -( -& -err -) -" -{ -} -" -err -) -; -} -# -[ -test -] -fn -max_slots -( -) -{ -let -pat -= -r -" -( -a -) -( -b -) -( -c -) -( -d -) -( -e -) -( -f -) -( -g -) -( -h -) -( -i -) -( -j -) -( -k -) -( -l -) -( -m -) -( -n -) -( -o -) -( -p -) -( -q -) -" -; -assert -! -( -DFA -: -: -new -( -pat -) -. -is_err -( -) -) -; -let -pat -= -r -" -( -a -) -( -b -) -( -c -) -( -d -) -( -e -) -( -f -) -( -g -) -( -h -) -( -i -) -( -j -) -( -k -) -( -l -) -( -m -) -( -n -) -( -o -) -( -p -) -" -; -assert -! -( -DFA -: -: -new -( -pat -) -. -is_ok -( -) -) -; -} -# -[ -test -] -fn -assertions -( -) -{ -assert -! -( -DFA -: -: -new -( -r -" -^ -" -) -. -is_ok -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -" -) -. -is_ok -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -( -? -m -) -^ -" -) -. -is_ok -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -( -? -m -) -" -) -. -is_ok -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -( -? -Rm -) -^ -" -) -. -is_ok -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -( -? -Rm -) -" -) -. -is_ok -( -) -) -; -if -cfg -! -( -feature -= -" -unicode -- -word -- -boundary -" -) -{ -assert -! -( -DFA -: -: -new -( -r -" -\ -b -" -) -. -is_ok -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -\ -B -" -) -. -is_ok -( -) -) -; -} -assert -! -( -DFA -: -: -new -( -r -" -( -? -- -u -) -\ -b -" -) -. -is_ok -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -( -? -- -u -) -\ -B -" -) -. -is_ok -( -) -) -; -} -# -[ -cfg -( -not -( -miri -) -) -] -# -[ -test -] -fn -is_one_pass -( -) -{ -use -crate -: -: -util -: -: -syntax -; -assert -! -( -DFA -: -: -new -( -r -" -a -* -b -" -) -. -is_ok -( -) -) -; -if -cfg -! -( -feature -= -" -unicode -- -perl -" -) -{ -assert -! -( -DFA -: -: -new -( -r -" -\ -w -" -) -. -is_ok -( -) -) -; -} -assert -! -( -DFA -: -: -new -( -r -" -( -? -- -u -) -\ -w -* -\ -s -" -) -. -is_ok -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -( -? -s -: -. -) -* -? -" -) -. -is_ok -( -) -) -; -assert -! -( -DFA -: -: -builder -( -) -. -syntax -( -syntax -: -: -Config -: -: -new -( -) -. -utf8 -( -false -) -) -. -build -( -r -" -( -? -s -- -u -: -. -) -* -? -" -) -. -is_ok -( -) -) -; -} -# -[ -test -] -fn -is_not_one_pass -( -) -{ -assert -! -( -DFA -: -: -new -( -r -" -a -* -a -" -) -. -is_err -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -( -? -s -- -u -: -. -) -* -? -" -) -. -is_err -( -) -) -; -assert -! -( -DFA -: -: -new -( -r -" -( -? -s -: -. -) -* -? -a -" -) -. -is_err -( -) -) -; -} -# -[ -cfg -( -not -( -miri -) -) -] -# -[ -test -] -fn -is_not_one_pass_bigger -( -) -{ -assert -! -( -DFA -: -: -new -( -r -" -\ -w -* -\ -s -" -) -. -is_err -( -) -) -; -} -} diff --git a/third_party/rust/regex-automata/src/dfa/regex.rs b/third_party/rust/regex-automata/src/dfa/regex.rs deleted file mode 100644 index 413d865b4848e..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/regex.rs +++ /dev/null @@ -1,2466 +0,0 @@ -# -[ -cfg -( -feature -= -" -alloc -" -) -] -use -alloc -: -: -vec -: -: -Vec -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -use -crate -: -: -dfa -: -: -dense -: -: -BuildError -; -use -crate -: -: -{ -dfa -: -: -{ -automaton -: -: -Automaton -dense -} -util -: -: -{ -iter -search -: -: -Input -} -Anchored -Match -MatchError -} -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -use -crate -: -: -{ -dfa -: -: -{ -sparse -StartKind -} -util -: -: -search -: -: -MatchKind -} -; -macro_rules -! -define_regex_type -{ -( -( -# -[ -doc -: -meta -] -) -* -) -= -> -{ -# -[ -cfg -( -feature -= -" -alloc -" -) -] -( -# -[ -doc -] -) -* -pub -struct -Regex -< -A -= -dense -: -: -OwnedDFA -> -{ -forward -: -A -reverse -: -A -} -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -( -# -[ -doc -] -) -* -pub -struct -Regex -< -A -> -{ -forward -: -A -reverse -: -A -} -} -; -} -define_regex_type -! -( -/ -/ -/ -A -regular -expression -that -uses -deterministic -finite -automata -for -fast -/ -/ -/ -searching -. -/ -/ -/ -/ -/ -/ -A -regular -expression -is -comprised -of -two -DFAs -a -" -forward -" -DFA -and -a -/ -/ -/ -" -reverse -" -DFA -. -The -forward -DFA -is -responsible -for -detecting -the -end -of -/ -/ -/ -a -match -while -the -reverse -DFA -is -responsible -for -detecting -the -start -/ -/ -/ -of -a -match -. -Thus -in -order -to -find -the -bounds -of -any -given -match -a -/ -/ -/ -forward -search -must -first -be -run -followed -by -a -reverse -search -. -A -match -/ -/ -/ -found -by -the -forward -DFA -guarantees -that -the -reverse -DFA -will -also -find -/ -/ -/ -a -match -. -/ -/ -/ -/ -/ -/ -The -type -of -the -DFA -used -by -a -Regex -corresponds -to -the -A -type -/ -/ -/ -parameter -which -must -satisfy -the -[ -Automaton -] -trait -. -Typically -/ -/ -/ -A -is -either -a -[ -dense -: -: -DFA -] -( -crate -: -: -dfa -: -: -dense -: -: -DFA -) -or -a -/ -/ -/ -[ -sparse -: -: -DFA -] -( -crate -: -: -dfa -: -: -sparse -: -: -DFA -) -where -dense -DFAs -use -more -/ -/ -/ -memory -but -search -faster -while -sparse -DFAs -use -less -memory -but -search -/ -/ -/ -more -slowly -. -/ -/ -/ -/ -/ -/ -# -Crate -features -/ -/ -/ -/ -/ -/ -Note -that -despite -what -the -documentation -auto -- -generates -the -_only_ -/ -/ -/ -crate -feature -needed -to -use -this -type -is -dfa -- -search -. -You -do -_not_ -/ -/ -/ -need -to -enable -the -alloc -feature -. -/ -/ -/ -/ -/ -/ -By -default -a -regex -' -s -automaton -type -parameter -is -set -to -/ -/ -/ -dense -: -: -DFA -< -Vec -< -u32 -> -> -when -the -alloc -feature -is -enabled -. -For -most -/ -/ -/ -in -- -memory -work -loads -this -is -the -most -convenient -type -that -gives -the -/ -/ -/ -best -search -performance -. -When -the -alloc -feature -is -disabled -no -/ -/ -/ -default -type -is -used -. -/ -/ -/ -/ -/ -/ -# -When -should -I -use -this -? -/ -/ -/ -/ -/ -/ -Generally -speaking -if -you -can -afford -the -overhead -of -building -a -full -/ -/ -/ -DFA -for -your -regex -and -you -don -' -t -need -things -like -capturing -groups -/ -/ -/ -then -this -is -a -good -choice -if -you -' -re -looking -to -optimize -for -matching -/ -/ -/ -speed -. -Note -however -that -its -speed -may -be -worse -than -a -general -purpose -/ -/ -/ -regex -engine -if -you -don -' -t -provide -a -[ -dense -: -: -Config -: -: -prefilter -] -to -the -/ -/ -/ -underlying -DFA -. -/ -/ -/ -/ -/ -/ -# -Sparse -DFAs -/ -/ -/ -/ -/ -/ -Since -a -Regex -is -generic -over -the -[ -Automaton -] -trait -it -can -be -/ -/ -/ -used -with -any -kind -of -DFA -. -While -this -crate -constructs -dense -DFAs -by -/ -/ -/ -default -it -is -easy -enough -to -build -corresponding -sparse -DFAs -and -then -/ -/ -/ -build -a -regex -from -them -: -/ -/ -/ -/ -/ -/ -# -[ -derive -( -Clone -Debug -) -] -) -; -# -[ -cfg -( -all -( -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -impl -Regex -{ -pub -fn -new -( -pattern -: -& -str -) -- -> -Result -< -Regex -BuildError -> -{ -Builder -: -: -new -( -) -. -build -( -pattern -) -} -pub -fn -new_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -Regex -BuildError -> -{ -Builder -: -: -new -( -) -. -build_many -( -patterns -) -} -} -# -[ -cfg -( -all -( -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -impl -Regex -< -sparse -: -: -DFA -< -Vec -< -u8 -> -> -> -{ -pub -fn -new_sparse -( -pattern -: -& -str -) -- -> -Result -< -Regex -< -sparse -: -: -DFA -< -Vec -< -u8 -> -> -> -BuildError -> -{ -Builder -: -: -new -( -) -. -build_sparse -( -pattern -) -} -pub -fn -new_many_sparse -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -Regex -< -sparse -: -: -DFA -< -Vec -< -u8 -> -> -> -BuildError -> -{ -Builder -: -: -new -( -) -. -build_many_sparse -( -patterns -) -} -} -impl -Regex -< -dense -: -: -DFA -< -& -' -static -[ -u32 -] -> -> -{ -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -} -impl -< -A -: -Automaton -> -Regex -< -A -> -{ -# -[ -inline -] -pub -fn -is_match -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -input -: -I -) -- -> -bool -{ -let -input -= -input -. -into -( -) -. -earliest -( -true -) -; -self -. -forward -( -) -. -try_search_fwd -( -& -input -) -. -map -( -| -x -| -x -. -is_some -( -) -) -. -unwrap -( -) -} -# -[ -inline -] -pub -fn -find -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -input -: -I -) -- -> -Option -< -Match -> -{ -self -. -try_search -( -& -input -. -into -( -) -) -. -unwrap -( -) -} -# -[ -inline -] -pub -fn -find_iter -< -' -r -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -input -: -I -) -- -> -FindMatches -< -' -r -' -h -A -> -{ -let -it -= -iter -: -: -Searcher -: -: -new -( -input -. -into -( -) -) -; -FindMatches -{ -re -: -self -it -} -} -} -impl -< -A -: -Automaton -> -Regex -< -A -> -{ -# -[ -inline -] -pub -fn -try_search -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -let -( -fwd -rev -) -= -( -self -. -forward -( -) -self -. -reverse -( -) -) -; -let -end -= -match -fwd -. -try_search_fwd -( -input -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -end -) -= -> -end -} -; -if -input -. -start -( -) -= -= -end -. -offset -( -) -{ -return -Ok -( -Some -( -Match -: -: -new -( -end -. -pattern -( -) -end -. -offset -( -) -. -. -end -. -offset -( -) -) -) -) -; -} -if -self -. -is_anchored -( -input -) -{ -return -Ok -( -Some -( -Match -: -: -new -( -end -. -pattern -( -) -input -. -start -( -) -. -. -end -. -offset -( -) -) -) -) -; -} -let -revsearch -= -input -. -clone -( -) -. -span -( -input -. -start -( -) -. -. -end -. -offset -( -) -) -. -anchored -( -Anchored -: -: -Yes -) -. -earliest -( -false -) -; -let -start -= -rev -. -try_search_rev -( -& -revsearch -) -? -. -expect -( -" -reverse -search -must -match -if -forward -search -does -" -) -; -assert_eq -! -( -start -. -pattern -( -) -end -. -pattern -( -) -" -forward -and -reverse -search -must -match -same -pattern -" -) -; -assert -! -( -start -. -offset -( -) -< -= -end -. -offset -( -) -) -; -Ok -( -Some -( -Match -: -: -new -( -end -. -pattern -( -) -start -. -offset -( -) -. -. -end -. -offset -( -) -) -) -) -} -fn -is_anchored -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -match -input -. -get_anchored -( -) -{ -Anchored -: -: -No -= -> -self -. -forward -( -) -. -is_always_start_anchored -( -) -Anchored -: -: -Yes -| -Anchored -: -: -Pattern -( -_ -) -= -> -true -} -} -} -impl -< -A -: -Automaton -> -Regex -< -A -> -{ -pub -fn -forward -( -& -self -) -- -> -& -A -{ -& -self -. -forward -} -pub -fn -reverse -( -& -self -) -- -> -& -A -{ -& -self -. -reverse -} -pub -fn -pattern_len -( -& -self -) -- -> -usize -{ -assert_eq -! -( -self -. -forward -( -) -. -pattern_len -( -) -self -. -reverse -( -) -. -pattern_len -( -) -) -; -self -. -forward -( -) -. -pattern_len -( -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -FindMatches -< -' -r -' -h -A -> -{ -re -: -& -' -r -Regex -< -A -> -it -: -iter -: -: -Searcher -< -' -h -> -} -impl -< -' -r -' -h -A -: -Automaton -> -Iterator -for -FindMatches -< -' -r -' -h -A -> -{ -type -Item -= -Match -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Match -> -{ -let -FindMatches -{ -re -ref -mut -it -} -= -* -self -; -it -. -advance -( -| -input -| -re -. -try_search -( -input -) -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -dfa -: -dense -: -: -Builder -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -dfa -: -dense -: -: -Builder -: -: -new -( -) -} -} -# -[ -cfg -( -all -( -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -pub -fn -build -( -& -self -pattern -: -& -str -) -- -> -Result -< -Regex -BuildError -> -{ -self -. -build_many -( -& -[ -pattern -] -) -} -# -[ -cfg -( -all -( -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -pub -fn -build_sparse -( -& -self -pattern -: -& -str -) -- -> -Result -< -Regex -< -sparse -: -: -DFA -< -Vec -< -u8 -> -> -> -BuildError -> -{ -self -. -build_many_sparse -( -& -[ -pattern -] -) -} -# -[ -cfg -( -all -( -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -pub -fn -build_many -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -Regex -BuildError -> -{ -let -forward -= -self -. -dfa -. -build_many -( -patterns -) -? -; -let -reverse -= -self -. -dfa -. -clone -( -) -. -configure -( -dense -: -: -Config -: -: -new -( -) -. -prefilter -( -None -) -. -specialize_start_states -( -false -) -. -start_kind -( -StartKind -: -: -Anchored -) -. -match_kind -( -MatchKind -: -: -All -) -) -. -thompson -( -crate -: -: -nfa -: -: -thompson -: -: -Config -: -: -new -( -) -. -reverse -( -true -) -) -. -build_many -( -patterns -) -? -; -Ok -( -self -. -build_from_dfas -( -forward -reverse -) -) -} -# -[ -cfg -( -all -( -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -pub -fn -build_many_sparse -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -Regex -< -sparse -: -: -DFA -< -Vec -< -u8 -> -> -> -BuildError -> -{ -let -re -= -self -. -build_many -( -patterns -) -? -; -let -forward -= -re -. -forward -( -) -. -to_sparse -( -) -? -; -let -reverse -= -re -. -reverse -( -) -. -to_sparse -( -) -? -; -Ok -( -self -. -build_from_dfas -( -forward -reverse -) -) -} -pub -fn -build_from_dfas -< -A -: -Automaton -> -( -& -self -forward -: -A -reverse -: -A -) -- -> -Regex -< -A -> -{ -Regex -{ -forward -reverse -} -} -# -[ -cfg -( -all -( -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -pub -fn -syntax -( -& -mut -self -config -: -crate -: -: -util -: -: -syntax -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -dfa -. -syntax -( -config -) -; -self -} -# -[ -cfg -( -all -( -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -pub -fn -thompson -( -& -mut -self -config -: -crate -: -: -nfa -: -: -thompson -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -dfa -. -thompson -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -dense -( -& -mut -self -config -: -dense -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -dfa -. -configure -( -config -) -; -self -} -} -impl -Default -for -Builder -{ -fn -default -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -} diff --git a/third_party/rust/regex-automata/src/dfa/remapper.rs b/third_party/rust/regex-automata/src/dfa/remapper.rs deleted file mode 100644 index ada119609258f..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/remapper.rs +++ /dev/null @@ -1,721 +0,0 @@ -use -alloc -: -: -vec -: -: -Vec -; -use -crate -: -: -util -: -: -primitives -: -: -StateID -; -pub -( -super -) -trait -Remappable -: -core -: -: -fmt -: -: -Debug -{ -fn -state_len -( -& -self -) -- -> -usize -; -fn -stride2 -( -& -self -) -- -> -usize -; -fn -swap_states -( -& -mut -self -id1 -: -StateID -id2 -: -StateID -) -; -fn -remap -( -& -mut -self -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -; -} -# -[ -derive -( -Debug -) -] -pub -( -super -) -struct -Remapper -{ -map -: -Vec -< -StateID -> -idxmap -: -IndexMapper -} -impl -Remapper -{ -pub -( -super -) -fn -new -( -r -: -& -impl -Remappable -) -- -> -Remapper -{ -let -idxmap -= -IndexMapper -{ -stride2 -: -r -. -stride2 -( -) -} -; -let -map -= -( -0 -. -. -r -. -state_len -( -) -) -. -map -( -| -i -| -idxmap -. -to_state_id -( -i -) -) -. -collect -( -) -; -Remapper -{ -map -idxmap -} -} -pub -( -super -) -fn -swap -( -& -mut -self -r -: -& -mut -impl -Remappable -id1 -: -StateID -id2 -: -StateID -) -{ -if -id1 -= -= -id2 -{ -return -; -} -r -. -swap_states -( -id1 -id2 -) -; -self -. -map -. -swap -( -self -. -idxmap -. -to_index -( -id1 -) -self -. -idxmap -. -to_index -( -id2 -) -) -; -} -pub -( -super -) -fn -remap -( -mut -self -r -: -& -mut -impl -Remappable -) -{ -let -oldmap -= -self -. -map -. -clone -( -) -; -for -i -in -0 -. -. -r -. -state_len -( -) -{ -let -cur_id -= -self -. -idxmap -. -to_state_id -( -i -) -; -let -mut -new_id -= -oldmap -[ -i -] -; -if -cur_id -= -= -new_id -{ -continue -; -} -loop -{ -let -id -= -oldmap -[ -self -. -idxmap -. -to_index -( -new_id -) -] -; -if -cur_id -= -= -id -{ -self -. -map -[ -i -] -= -new_id -; -break -; -} -new_id -= -id -; -} -} -r -. -remap -( -| -next -| -self -. -map -[ -self -. -idxmap -. -to_index -( -next -) -] -) -; -} -} -# -[ -derive -( -Debug -) -] -struct -IndexMapper -{ -stride2 -: -usize -} -impl -IndexMapper -{ -fn -to_index -( -& -self -id -: -StateID -) -- -> -usize -{ -id -. -as_usize -( -) -> -> -self -. -stride2 -} -fn -to_state_id -( -& -self -index -: -usize -) -- -> -StateID -{ -StateID -: -: -new_unchecked -( -index -< -< -self -. -stride2 -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -mod -dense -{ -use -crate -: -: -{ -dfa -: -: -dense -: -: -OwnedDFA -util -: -: -primitives -: -: -StateID -} -; -use -super -: -: -Remappable -; -impl -Remappable -for -OwnedDFA -{ -fn -state_len -( -& -self -) -- -> -usize -{ -OwnedDFA -: -: -state_len -( -self -) -} -fn -stride2 -( -& -self -) -- -> -usize -{ -OwnedDFA -: -: -stride2 -( -self -) -} -fn -swap_states -( -& -mut -self -id1 -: -StateID -id2 -: -StateID -) -{ -OwnedDFA -: -: -swap_states -( -self -id1 -id2 -) -} -fn -remap -( -& -mut -self -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -{ -OwnedDFA -: -: -remap -( -self -map -) -} -} -} -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -mod -onepass -{ -use -crate -: -: -{ -dfa -: -: -onepass -: -: -DFA -util -: -: -primitives -: -: -StateID -} -; -use -super -: -: -Remappable -; -impl -Remappable -for -DFA -{ -fn -state_len -( -& -self -) -- -> -usize -{ -DFA -: -: -state_len -( -self -) -} -fn -stride2 -( -& -self -) -- -> -usize -{ -0 -} -fn -swap_states -( -& -mut -self -id1 -: -StateID -id2 -: -StateID -) -{ -DFA -: -: -swap_states -( -self -id1 -id2 -) -} -fn -remap -( -& -mut -self -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -{ -DFA -: -: -remap -( -self -map -) -} -} -} diff --git a/third_party/rust/regex-automata/src/dfa/search.rs b/third_party/rust/regex-automata/src/dfa/search.rs deleted file mode 100644 index e20a4c295d9cf..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/search.rs +++ /dev/null @@ -1,3829 +0,0 @@ -use -crate -: -: -{ -dfa -: -: -{ -accel -automaton -: -: -{ -Automaton -OverlappingState -} -} -util -: -: -{ -prefilter -: -: -Prefilter -primitives -: -: -StateID -search -: -: -{ -Anchored -HalfMatch -Input -Span -} -} -MatchError -} -; -# -[ -inline -( -never -) -] -pub -fn -find_fwd -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -if -input -. -is_done -( -) -{ -return -Ok -( -None -) -; -} -let -pre -= -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -None -} -else -{ -dfa -. -get_prefilter -( -) -} -; -if -pre -. -is_some -( -) -{ -if -input -. -get_earliest -( -) -{ -find_fwd_imp -( -dfa -input -pre -true -) -} -else -{ -find_fwd_imp -( -dfa -input -pre -false -) -} -} -else -{ -if -input -. -get_earliest -( -) -{ -find_fwd_imp -( -dfa -input -None -true -) -} -else -{ -find_fwd_imp -( -dfa -input -None -false -) -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -find_fwd_imp -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -pre -: -Option -< -& -' -_ -Prefilter -> -earliest -: -bool -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -universal_start -= -dfa -. -universal_start_state -( -Anchored -: -: -No -) -. -is_some -( -) -; -let -mut -mat -= -None -; -let -mut -sid -= -init_fwd -( -dfa -input -) -? -; -let -mut -at -= -input -. -start -( -) -; -macro_rules -! -next_unchecked -{ -( -sid -: -expr -at -: -expr -) -= -> -{ -{ -let -byte -= -* -input -. -haystack -( -) -. -get_unchecked -( -at -) -; -dfa -. -next_state_unchecked -( -sid -byte -) -} -} -; -} -if -let -Some -( -ref -pre -) -= -pre -{ -let -span -= -Span -: -: -from -( -at -. -. -input -. -end -( -) -) -; -match -pre -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -return -Ok -( -mat -) -Some -( -ref -span -) -= -> -{ -at -= -span -. -start -; -if -! -universal_start -{ -sid -= -prefilter_restart -( -dfa -& -input -at -) -? -; -} -} -} -} -while -at -< -input -. -end -( -) -{ -let -mut -prev_sid -; -while -at -< -input -. -end -( -) -{ -prev_sid -= -unsafe -{ -next_unchecked -! -( -sid -at -) -} -; -if -dfa -. -is_special_state -( -prev_sid -) -| -| -at -+ -3 -> -= -input -. -end -( -) -{ -core -: -: -mem -: -: -swap -( -& -mut -prev_sid -& -mut -sid -) -; -break -; -} -at -+ -= -1 -; -sid -= -unsafe -{ -next_unchecked -! -( -prev_sid -at -) -} -; -if -dfa -. -is_special_state -( -sid -) -{ -break -; -} -at -+ -= -1 -; -prev_sid -= -unsafe -{ -next_unchecked -! -( -sid -at -) -} -; -if -dfa -. -is_special_state -( -prev_sid -) -{ -core -: -: -mem -: -: -swap -( -& -mut -prev_sid -& -mut -sid -) -; -break -; -} -at -+ -= -1 -; -sid -= -unsafe -{ -next_unchecked -! -( -prev_sid -at -) -} -; -if -dfa -. -is_special_state -( -sid -) -{ -break -; -} -at -+ -= -1 -; -} -if -dfa -. -is_special_state -( -sid -) -{ -if -dfa -. -is_start_state -( -sid -) -{ -if -let -Some -( -ref -pre -) -= -pre -{ -let -span -= -Span -: -: -from -( -at -. -. -input -. -end -( -) -) -; -match -pre -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -return -Ok -( -mat -) -Some -( -ref -span -) -= -> -{ -if -span -. -start -> -at -{ -at -= -span -. -start -; -if -! -universal_start -{ -sid -= -prefilter_restart -( -dfa -& -input -at -) -? -; -} -continue -; -} -} -} -} -else -if -dfa -. -is_accel_state -( -sid -) -{ -let -needles -= -dfa -. -accelerator -( -sid -) -; -at -= -accel -: -: -find_fwd -( -needles -input -. -haystack -( -) -at -+ -1 -) -. -unwrap_or -( -input -. -end -( -) -) -; -continue -; -} -} -else -if -dfa -. -is_match_state -( -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -sid -0 -) -; -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -at -) -) -; -if -earliest -{ -return -Ok -( -mat -) -; -} -if -dfa -. -is_accel_state -( -sid -) -{ -let -needles -= -dfa -. -accelerator -( -sid -) -; -at -= -accel -: -: -find_fwd -( -needles -input -. -haystack -( -) -at -+ -1 -) -. -unwrap_or -( -input -. -end -( -) -) -; -continue -; -} -} -else -if -dfa -. -is_accel_state -( -sid -) -{ -let -needs -= -dfa -. -accelerator -( -sid -) -; -at -= -accel -: -: -find_fwd -( -needs -input -. -haystack -( -) -at -+ -1 -) -. -unwrap_or -( -input -. -end -( -) -) -; -continue -; -} -else -if -dfa -. -is_dead_state -( -sid -) -{ -return -Ok -( -mat -) -; -} -else -{ -debug_assert -! -( -dfa -. -is_quit_state -( -sid -) -) -; -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -at -] -at -) -) -; -} -} -at -+ -= -1 -; -} -eoi_fwd -( -dfa -input -& -mut -sid -& -mut -mat -) -? -; -Ok -( -mat -) -} -# -[ -inline -( -never -) -] -pub -fn -find_rev -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -if -input -. -is_done -( -) -{ -return -Ok -( -None -) -; -} -if -input -. -get_earliest -( -) -{ -find_rev_imp -( -dfa -input -true -) -} -else -{ -find_rev_imp -( -dfa -input -false -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -find_rev_imp -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -earliest -: -bool -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -mut -mat -= -None -; -let -mut -sid -= -init_rev -( -dfa -input -) -? -; -if -input -. -start -( -) -= -= -input -. -end -( -) -{ -eoi_rev -( -dfa -input -& -mut -sid -& -mut -mat -) -? -; -return -Ok -( -mat -) -; -} -let -mut -at -= -input -. -end -( -) -- -1 -; -macro_rules -! -next_unchecked -{ -( -sid -: -expr -at -: -expr -) -= -> -{ -{ -let -byte -= -* -input -. -haystack -( -) -. -get_unchecked -( -at -) -; -dfa -. -next_state_unchecked -( -sid -byte -) -} -} -; -} -loop -{ -let -mut -prev_sid -; -while -at -> -= -input -. -start -( -) -{ -prev_sid -= -unsafe -{ -next_unchecked -! -( -sid -at -) -} -; -if -dfa -. -is_special_state -( -prev_sid -) -| -| -at -< -= -input -. -start -( -) -. -saturating_add -( -3 -) -{ -core -: -: -mem -: -: -swap -( -& -mut -prev_sid -& -mut -sid -) -; -break -; -} -at -- -= -1 -; -sid -= -unsafe -{ -next_unchecked -! -( -prev_sid -at -) -} -; -if -dfa -. -is_special_state -( -sid -) -{ -break -; -} -at -- -= -1 -; -prev_sid -= -unsafe -{ -next_unchecked -! -( -sid -at -) -} -; -if -dfa -. -is_special_state -( -prev_sid -) -{ -core -: -: -mem -: -: -swap -( -& -mut -prev_sid -& -mut -sid -) -; -break -; -} -at -- -= -1 -; -sid -= -unsafe -{ -next_unchecked -! -( -prev_sid -at -) -} -; -if -dfa -. -is_special_state -( -sid -) -{ -break -; -} -at -- -= -1 -; -} -if -dfa -. -is_special_state -( -sid -) -{ -if -dfa -. -is_start_state -( -sid -) -{ -if -dfa -. -is_accel_state -( -sid -) -{ -let -needles -= -dfa -. -accelerator -( -sid -) -; -at -= -accel -: -: -find_rev -( -needles -input -. -haystack -( -) -at -) -. -map -( -| -i -| -i -+ -1 -) -. -unwrap_or -( -input -. -start -( -) -) -; -} -} -else -if -dfa -. -is_match_state -( -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -sid -0 -) -; -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -at -+ -1 -) -) -; -if -earliest -{ -return -Ok -( -mat -) -; -} -if -dfa -. -is_accel_state -( -sid -) -{ -let -needles -= -dfa -. -accelerator -( -sid -) -; -at -= -accel -: -: -find_rev -( -needles -input -. -haystack -( -) -at -) -. -map -( -| -i -| -i -+ -1 -) -. -unwrap_or -( -input -. -start -( -) -) -; -} -} -else -if -dfa -. -is_accel_state -( -sid -) -{ -let -needles -= -dfa -. -accelerator -( -sid -) -; -at -= -accel -: -: -find_rev -( -needles -input -. -haystack -( -) -at -) -. -map -( -| -i -| -i -+ -1 -) -. -unwrap_or -( -input -. -start -( -) -) -; -} -else -if -dfa -. -is_dead_state -( -sid -) -{ -return -Ok -( -mat -) -; -} -else -{ -debug_assert -! -( -dfa -. -is_quit_state -( -sid -) -) -; -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -at -] -at -) -) -; -} -} -if -at -= -= -input -. -start -( -) -{ -break -; -} -at -- -= -1 -; -} -eoi_rev -( -dfa -input -& -mut -sid -& -mut -mat -) -? -; -Ok -( -mat -) -} -# -[ -inline -( -never -) -] -pub -fn -find_overlapping_fwd -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -state -. -mat -= -None -; -if -input -. -is_done -( -) -{ -return -Ok -( -( -) -) -; -} -let -pre -= -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -None -} -else -{ -dfa -. -get_prefilter -( -) -} -; -if -pre -. -is_some -( -) -{ -find_overlapping_fwd_imp -( -dfa -input -pre -state -) -} -else -{ -find_overlapping_fwd_imp -( -dfa -input -None -state -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -find_overlapping_fwd_imp -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -pre -: -Option -< -& -' -_ -Prefilter -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -let -universal_start -= -dfa -. -universal_start_state -( -Anchored -: -: -No -) -. -is_some -( -) -; -let -mut -sid -= -match -state -. -id -{ -None -= -> -{ -state -. -at -= -input -. -start -( -) -; -init_fwd -( -dfa -input -) -? -} -Some -( -sid -) -= -> -{ -if -let -Some -( -match_index -) -= -state -. -next_match_index -{ -let -match_len -= -dfa -. -match_len -( -sid -) -; -if -match_index -< -match_len -{ -state -. -next_match_index -= -Some -( -match_index -+ -1 -) -; -let -pattern -= -dfa -. -match_pattern -( -sid -match_index -) -; -state -. -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -state -. -at -) -) -; -return -Ok -( -( -) -) -; -} -} -state -. -at -+ -= -1 -; -if -state -. -at -> -input -. -end -( -) -{ -return -Ok -( -( -) -) -; -} -sid -} -} -; -while -state -. -at -< -input -. -end -( -) -{ -sid -= -dfa -. -next_state -( -sid -input -. -haystack -( -) -[ -state -. -at -] -) -; -if -dfa -. -is_special_state -( -sid -) -{ -state -. -id -= -Some -( -sid -) -; -if -dfa -. -is_start_state -( -sid -) -{ -if -let -Some -( -ref -pre -) -= -pre -{ -let -span -= -Span -: -: -from -( -state -. -at -. -. -input -. -end -( -) -) -; -match -pre -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -return -Ok -( -( -) -) -Some -( -ref -span -) -= -> -{ -if -span -. -start -> -state -. -at -{ -state -. -at -= -span -. -start -; -if -! -universal_start -{ -sid -= -prefilter_restart -( -dfa -& -input -state -. -at -) -? -; -} -continue -; -} -} -} -} -else -if -dfa -. -is_accel_state -( -sid -) -{ -let -needles -= -dfa -. -accelerator -( -sid -) -; -state -. -at -= -accel -: -: -find_fwd -( -needles -input -. -haystack -( -) -state -. -at -+ -1 -) -. -unwrap_or -( -input -. -end -( -) -) -; -continue -; -} -} -else -if -dfa -. -is_match_state -( -sid -) -{ -state -. -next_match_index -= -Some -( -1 -) -; -let -pattern -= -dfa -. -match_pattern -( -sid -0 -) -; -state -. -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -state -. -at -) -) -; -return -Ok -( -( -) -) -; -} -else -if -dfa -. -is_accel_state -( -sid -) -{ -let -needs -= -dfa -. -accelerator -( -sid -) -; -state -. -at -= -accel -: -: -find_fwd -( -needs -input -. -haystack -( -) -state -. -at -+ -1 -) -. -unwrap_or -( -input -. -end -( -) -) -; -continue -; -} -else -if -dfa -. -is_dead_state -( -sid -) -{ -return -Ok -( -( -) -) -; -} -else -{ -debug_assert -! -( -dfa -. -is_quit_state -( -sid -) -) -; -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -state -. -at -] -state -. -at -) -) -; -} -} -state -. -at -+ -= -1 -; -} -let -result -= -eoi_fwd -( -dfa -input -& -mut -sid -& -mut -state -. -mat -) -; -state -. -id -= -Some -( -sid -) -; -if -state -. -mat -. -is_some -( -) -{ -state -. -next_match_index -= -Some -( -1 -) -; -} -result -} -# -[ -inline -( -never -) -] -pub -( -crate -) -fn -find_overlapping_rev -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -state -. -mat -= -None -; -if -input -. -is_done -( -) -{ -return -Ok -( -( -) -) -; -} -let -mut -sid -= -match -state -. -id -{ -None -= -> -{ -let -sid -= -init_rev -( -dfa -input -) -? -; -state -. -id -= -Some -( -sid -) -; -if -input -. -start -( -) -= -= -input -. -end -( -) -{ -state -. -rev_eoi -= -true -; -} -else -{ -state -. -at -= -input -. -end -( -) -- -1 -; -} -sid -} -Some -( -sid -) -= -> -{ -if -let -Some -( -match_index -) -= -state -. -next_match_index -{ -let -match_len -= -dfa -. -match_len -( -sid -) -; -if -match_index -< -match_len -{ -state -. -next_match_index -= -Some -( -match_index -+ -1 -) -; -let -pattern -= -dfa -. -match_pattern -( -sid -match_index -) -; -state -. -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -state -. -at -) -) -; -return -Ok -( -( -) -) -; -} -} -if -state -. -rev_eoi -{ -return -Ok -( -( -) -) -; -} -else -if -state -. -at -= -= -input -. -start -( -) -{ -state -. -rev_eoi -= -true -; -} -else -{ -state -. -at -- -= -1 -; -} -sid -} -} -; -while -! -state -. -rev_eoi -{ -sid -= -dfa -. -next_state -( -sid -input -. -haystack -( -) -[ -state -. -at -] -) -; -if -dfa -. -is_special_state -( -sid -) -{ -state -. -id -= -Some -( -sid -) -; -if -dfa -. -is_start_state -( -sid -) -{ -if -dfa -. -is_accel_state -( -sid -) -{ -let -needles -= -dfa -. -accelerator -( -sid -) -; -state -. -at -= -accel -: -: -find_rev -( -needles -input -. -haystack -( -) -state -. -at -) -. -map -( -| -i -| -i -+ -1 -) -. -unwrap_or -( -input -. -start -( -) -) -; -} -} -else -if -dfa -. -is_match_state -( -sid -) -{ -state -. -next_match_index -= -Some -( -1 -) -; -let -pattern -= -dfa -. -match_pattern -( -sid -0 -) -; -state -. -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -state -. -at -+ -1 -) -) -; -return -Ok -( -( -) -) -; -} -else -if -dfa -. -is_accel_state -( -sid -) -{ -let -needles -= -dfa -. -accelerator -( -sid -) -; -state -. -at -= -accel -: -: -find_rev -( -needles -input -. -haystack -( -) -state -. -at -) -. -map -( -| -i -| -i -+ -1 -) -. -unwrap_or -( -input -. -start -( -) -) -; -} -else -if -dfa -. -is_dead_state -( -sid -) -{ -return -Ok -( -( -) -) -; -} -else -{ -debug_assert -! -( -dfa -. -is_quit_state -( -sid -) -) -; -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -state -. -at -] -state -. -at -) -) -; -} -} -if -state -. -at -= -= -input -. -start -( -) -{ -break -; -} -state -. -at -- -= -1 -; -} -let -result -= -eoi_rev -( -dfa -input -& -mut -sid -& -mut -state -. -mat -) -; -state -. -rev_eoi -= -true -; -state -. -id -= -Some -( -sid -) -; -if -state -. -mat -. -is_some -( -) -{ -state -. -next_match_index -= -Some -( -1 -) -; -} -result -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -init_fwd -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -{ -let -sid -= -dfa -. -start_state_forward -( -input -) -? -; -debug_assert -! -( -! -dfa -. -is_match_state -( -sid -) -) -; -Ok -( -sid -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -init_rev -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -{ -let -sid -= -dfa -. -start_state_reverse -( -input -) -? -; -debug_assert -! -( -! -dfa -. -is_match_state -( -sid -) -) -; -Ok -( -sid -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -eoi_fwd -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -sid -: -& -mut -StateID -mat -: -& -mut -Option -< -HalfMatch -> -) -- -> -Result -< -( -) -MatchError -> -{ -let -sp -= -input -. -get_span -( -) -; -match -input -. -haystack -( -) -. -get -( -sp -. -end -) -{ -Some -( -& -b -) -= -> -{ -* -sid -= -dfa -. -next_state -( -* -sid -b -) -; -if -dfa -. -is_match_state -( -* -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -sp -. -end -) -) -; -} -else -if -dfa -. -is_quit_state -( -* -sid -) -{ -return -Err -( -MatchError -: -: -quit -( -b -sp -. -end -) -) -; -} -} -None -= -> -{ -* -sid -= -dfa -. -next_eoi_state -( -* -sid -) -; -if -dfa -. -is_match_state -( -* -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -input -. -haystack -( -) -. -len -( -) -) -) -; -} -debug_assert -! -( -! -dfa -. -is_quit_state -( -* -sid -) -) -; -} -} -Ok -( -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -eoi_rev -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -sid -: -& -mut -StateID -mat -: -& -mut -Option -< -HalfMatch -> -) -- -> -Result -< -( -) -MatchError -> -{ -let -sp -= -input -. -get_span -( -) -; -if -sp -. -start -> -0 -{ -let -byte -= -input -. -haystack -( -) -[ -sp -. -start -- -1 -] -; -* -sid -= -dfa -. -next_state -( -* -sid -byte -) -; -if -dfa -. -is_match_state -( -* -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -sp -. -start -) -) -; -} -else -if -dfa -. -is_quit_state -( -* -sid -) -{ -return -Err -( -MatchError -: -: -quit -( -byte -sp -. -start -- -1 -) -) -; -} -} -else -{ -* -sid -= -dfa -. -next_eoi_state -( -* -sid -) -; -if -dfa -. -is_match_state -( -* -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -0 -) -) -; -} -debug_assert -! -( -! -dfa -. -is_quit_state -( -* -sid -) -) -; -} -Ok -( -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -prefilter_restart -< -A -: -Automaton -+ -? -Sized -> -( -dfa -: -& -A -input -: -& -Input -< -' -_ -> -at -: -usize -) -- -> -Result -< -StateID -MatchError -> -{ -let -mut -input -= -input -. -clone -( -) -; -input -. -set_start -( -at -) -; -init_fwd -( -dfa -& -input -) -} diff --git a/third_party/rust/regex-automata/src/dfa/sparse.rs b/third_party/rust/regex-automata/src/dfa/sparse.rs deleted file mode 100644 index 662e948deed0f..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/sparse.rs +++ /dev/null @@ -1,11097 +0,0 @@ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -use -core -: -: -iter -; -use -core -: -: -{ -convert -: -: -{ -TryFrom -TryInto -} -fmt -mem -: -: -size_of -} -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -use -crate -: -: -dfa -: -: -dense -: -: -{ -self -BuildError -} -; -use -crate -: -: -{ -dfa -: -: -{ -automaton -: -: -{ -fmt_state_indicator -Automaton -} -dense -: -: -Flags -special -: -: -Special -StartKind -DEAD -} -util -: -: -{ -alphabet -: -: -{ -ByteClasses -ByteSet -} -escape -: -: -DebugByte -int -: -: -{ -Pointer -Usize -U16 -U32 -} -prefilter -: -: -Prefilter -primitives -: -: -{ -PatternID -StateID -} -search -: -: -{ -Anchored -Input -MatchError -} -start -: -: -{ -Start -StartByteMap -} -wire -: -: -{ -self -DeserializeError -Endian -SerializeError -} -} -} -; -const -LABEL -: -& -str -= -" -rust -- -regex -- -automata -- -dfa -- -sparse -" -; -const -VERSION -: -u32 -= -2 -; -# -[ -derive -( -Clone -) -] -pub -struct -DFA -< -T -> -{ -tt -: -Transitions -< -T -> -st -: -StartTable -< -T -> -special -: -Special -pre -: -Option -< -Prefilter -> -quitset -: -ByteSet -flags -: -Flags -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -DFA -< -Vec -< -u8 -> -> -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new -( -pattern -: -& -str -) -- -> -Result -< -DFA -< -Vec -< -u8 -> -> -BuildError -> -{ -dense -: -: -Builder -: -: -new -( -) -. -build -( -pattern -) -. -and_then -( -| -dense -| -dense -. -to_sparse -( -) -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -DFA -< -Vec -< -u8 -> -> -BuildError -> -{ -dense -: -: -Builder -: -: -new -( -) -. -build_many -( -patterns -) -. -and_then -( -| -dense -| -dense -. -to_sparse -( -) -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -DFA -< -Vec -< -u8 -> -> -{ -pub -fn -always_match -( -) -- -> -Result -< -DFA -< -Vec -< -u8 -> -> -BuildError -> -{ -dense -: -: -DFA -: -: -always_match -( -) -? -. -to_sparse -( -) -} -pub -fn -never_match -( -) -- -> -Result -< -DFA -< -Vec -< -u8 -> -> -BuildError -> -{ -dense -: -: -DFA -: -: -never_match -( -) -? -. -to_sparse -( -) -} -pub -( -crate -) -fn -from_dense -< -T -: -AsRef -< -[ -u32 -] -> -> -( -dfa -: -& -dense -: -: -DFA -< -T -> -) -- -> -Result -< -DFA -< -Vec -< -u8 -> -> -BuildError -> -{ -let -mut -sparse -= -Vec -: -: -with_capacity -( -StateID -: -: -SIZE -* -dfa -. -state_len -( -) -) -; -let -mut -remap -: -Vec -< -StateID -> -= -vec -! -[ -DEAD -; -dfa -. -state_len -( -) -] -; -for -state -in -dfa -. -states -( -) -{ -let -pos -= -sparse -. -len -( -) -; -remap -[ -dfa -. -to_index -( -state -. -id -( -) -) -] -= -StateID -: -: -new -( -pos -) -. -map_err -( -| -_ -| -BuildError -: -: -too_many_states -( -) -) -? -; -sparse -. -push -( -0 -) -; -sparse -. -push -( -0 -) -; -let -mut -transition_len -= -0 -; -for -( -unit1 -unit2 -_ -) -in -state -. -sparse_transitions -( -) -{ -match -( -unit1 -. -as_u8 -( -) -unit2 -. -as_u8 -( -) -) -{ -( -Some -( -b1 -) -Some -( -b2 -) -) -= -> -{ -transition_len -+ -= -1 -; -sparse -. -push -( -b1 -) -; -sparse -. -push -( -b2 -) -; -} -( -None -None -) -= -> -{ -} -( -Some -( -_ -) -None -) -| -( -None -Some -( -_ -) -) -= -> -{ -unreachable -! -( -) -} -} -} -transition_len -+ -= -1 -; -sparse -. -push -( -0 -) -; -sparse -. -push -( -0 -) -; -assert_ne -! -( -transition_len -0 -" -transition -length -should -be -non -- -zero -" -) -; -assert -! -( -transition_len -< -= -257 -" -expected -transition -length -{ -} -to -be -< -= -257 -" -transition_len -) -; -let -ntrans -= -if -dfa -. -is_match_state -( -state -. -id -( -) -) -{ -transition_len -| -( -1 -< -< -15 -) -} -else -{ -transition_len -} -; -wire -: -: -NE -: -: -write_u16 -( -ntrans -& -mut -sparse -[ -pos -. -. -] -) -; -let -zeros -= -usize -: -: -try_from -( -transition_len -) -. -unwrap -( -) -. -checked_mul -( -StateID -: -: -SIZE -) -. -unwrap -( -) -; -sparse -. -extend -( -iter -: -: -repeat -( -0 -) -. -take -( -zeros -) -) -; -if -dfa -. -is_match_state -( -state -. -id -( -) -) -{ -let -plen -= -dfa -. -match_pattern_len -( -state -. -id -( -) -) -; -let -mut -pos -= -sparse -. -len -( -) -; -let -zeros -= -size_of -: -: -< -u32 -> -( -) -. -checked_mul -( -plen -) -. -unwrap -( -) -. -checked_add -( -size_of -: -: -< -u32 -> -( -) -) -. -unwrap -( -) -; -sparse -. -extend -( -iter -: -: -repeat -( -0 -) -. -take -( -zeros -) -) -; -wire -: -: -NE -: -: -write_u32 -( -plen -. -try_into -( -) -. -expect -( -" -pattern -ID -length -fits -in -u32 -" -) -& -mut -sparse -[ -pos -. -. -] -) -; -pos -+ -= -size_of -: -: -< -u32 -> -( -) -; -for -& -pid -in -dfa -. -pattern_id_slice -( -state -. -id -( -) -) -{ -pos -+ -= -wire -: -: -write_pattern_id -: -: -< -wire -: -: -NE -> -( -pid -& -mut -sparse -[ -pos -. -. -] -) -; -} -} -let -accel -= -dfa -. -accelerator -( -state -. -id -( -) -) -; -sparse -. -push -( -accel -. -len -( -) -. -try_into -( -) -. -unwrap -( -) -) -; -sparse -. -extend_from_slice -( -accel -) -; -} -let -mut -new -= -DFA -{ -tt -: -Transitions -{ -sparse -classes -: -dfa -. -byte_classes -( -) -. -clone -( -) -state_len -: -dfa -. -state_len -( -) -pattern_len -: -dfa -. -pattern_len -( -) -} -st -: -StartTable -: -: -from_dense_dfa -( -dfa -& -remap -) -? -special -: -dfa -. -special -( -) -. -remap -( -| -id -| -remap -[ -dfa -. -to_index -( -id -) -] -) -pre -: -dfa -. -get_prefilter -( -) -. -map -( -| -p -| -p -. -clone -( -) -) -quitset -: -dfa -. -quitset -( -) -. -clone -( -) -flags -: -dfa -. -flags -( -) -. -clone -( -) -} -; -for -old_state -in -dfa -. -states -( -) -{ -let -new_id -= -remap -[ -dfa -. -to_index -( -old_state -. -id -( -) -) -] -; -let -mut -new_state -= -new -. -tt -. -state_mut -( -new_id -) -; -let -sparse -= -old_state -. -sparse_transitions -( -) -; -for -( -i -( -_ -_ -next -) -) -in -sparse -. -enumerate -( -) -{ -let -next -= -remap -[ -dfa -. -to_index -( -next -) -] -; -new_state -. -set_next_at -( -i -next -) -; -} -} -debug -! -( -" -created -sparse -DFA -memory -usage -: -{ -} -( -dense -memory -usage -: -{ -} -) -" -new -. -memory_usage -( -) -dfa -. -memory_usage -( -) -) -; -Ok -( -new -) -} -} -impl -< -T -: -AsRef -< -[ -u8 -] -> -> -DFA -< -T -> -{ -pub -fn -as_ref -< -' -a -> -( -& -' -a -self -) -- -> -DFA -< -& -' -a -[ -u8 -] -> -{ -DFA -{ -tt -: -self -. -tt -. -as_ref -( -) -st -: -self -. -st -. -as_ref -( -) -special -: -self -. -special -pre -: -self -. -pre -. -clone -( -) -quitset -: -self -. -quitset -flags -: -self -. -flags -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -fn -to_owned -( -& -self -) -- -> -DFA -< -alloc -: -: -vec -: -: -Vec -< -u8 -> -> -{ -DFA -{ -tt -: -self -. -tt -. -to_owned -( -) -st -: -self -. -st -. -to_owned -( -) -special -: -self -. -special -pre -: -self -. -pre -. -clone -( -) -quitset -: -self -. -quitset -flags -: -self -. -flags -} -} -pub -fn -start_kind -( -& -self -) -- -> -StartKind -{ -self -. -st -. -kind -} -pub -fn -starts_for_each_pattern -( -& -self -) -- -> -bool -{ -self -. -st -. -pattern_len -. -is_some -( -) -} -pub -fn -byte_classes -( -& -self -) -- -> -& -ByteClasses -{ -& -self -. -tt -. -classes -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -tt -. -memory_usage -( -) -+ -self -. -st -. -memory_usage -( -) -} -} -impl -< -T -: -AsRef -< -[ -u8 -] -> -> -DFA -< -T -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -to_bytes_little_endian -( -& -self -) -- -> -Vec -< -u8 -> -{ -self -. -to_bytes -: -: -< -wire -: -: -LE -> -( -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -to_bytes_big_endian -( -& -self -) -- -> -Vec -< -u8 -> -{ -self -. -to_bytes -: -: -< -wire -: -: -BE -> -( -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -fn -to_bytes_native_endian -( -& -self -) -- -> -Vec -< -u8 -> -{ -self -. -to_bytes -: -: -< -wire -: -: -NE -> -( -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -fn -to_bytes -< -E -: -Endian -> -( -& -self -) -- -> -Vec -< -u8 -> -{ -let -mut -buf -= -vec -! -[ -0 -; -self -. -write_to_len -( -) -] -; -self -. -write_to -: -: -< -E -> -( -& -mut -buf -) -. -unwrap -( -) -; -buf -} -pub -fn -write_to_little_endian -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -self -. -write_to -: -: -< -wire -: -: -LE -> -( -dst -) -} -pub -fn -write_to_big_endian -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -self -. -write_to -: -: -< -wire -: -: -BE -> -( -dst -) -} -pub -fn -write_to_native_endian -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -self -. -write_to -: -: -< -wire -: -: -NE -> -( -dst -) -} -fn -write_to -< -E -: -Endian -> -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -mut -nw -= -0 -; -nw -+ -= -wire -: -: -write_label -( -LABEL -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -wire -: -: -write_endianness_check -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -wire -: -: -write_version -: -: -< -E -> -( -VERSION -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -{ -E -: -: -write_u32 -( -0 -& -mut -dst -[ -nw -. -. -] -) -; -size_of -: -: -< -u32 -> -( -) -} -; -nw -+ -= -self -. -flags -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -tt -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -st -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -special -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -nw -+ -= -self -. -quitset -. -write_to -: -: -< -E -> -( -& -mut -dst -[ -nw -. -. -] -) -? -; -Ok -( -nw -) -} -pub -fn -write_to_len -( -& -self -) -- -> -usize -{ -wire -: -: -write_label_len -( -LABEL -) -+ -wire -: -: -write_endianness_check_len -( -) -+ -wire -: -: -write_version_len -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -self -. -flags -. -write_to_len -( -) -+ -self -. -tt -. -write_to_len -( -) -+ -self -. -st -. -write_to_len -( -) -+ -self -. -special -. -write_to_len -( -) -+ -self -. -quitset -. -write_to_len -( -) -} -} -impl -< -' -a -> -DFA -< -& -' -a -[ -u8 -] -> -{ -pub -fn -from_bytes -( -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -DFA -< -& -' -a -[ -u8 -] -> -usize -) -DeserializeError -> -{ -let -( -dfa -nread -) -= -unsafe -{ -DFA -: -: -from_bytes_unchecked -( -slice -) -? -} -; -dfa -. -tt -. -validate -( -& -dfa -. -special -) -? -; -dfa -. -st -. -validate -( -& -dfa -. -special -& -dfa -. -tt -) -? -; -Ok -( -( -dfa -nread -) -) -} -pub -unsafe -fn -from_bytes_unchecked -( -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -DFA -< -& -' -a -[ -u8 -] -> -usize -) -DeserializeError -> -{ -let -mut -nr -= -0 -; -nr -+ -= -wire -: -: -read_label -( -& -slice -[ -nr -. -. -] -LABEL -) -? -; -nr -+ -= -wire -: -: -read_endianness_check -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -wire -: -: -read_version -( -& -slice -[ -nr -. -. -] -VERSION -) -? -; -let -_unused -= -wire -: -: -try_read_u32 -( -& -slice -[ -nr -. -. -] -" -unused -space -" -) -? -; -nr -+ -= -size_of -: -: -< -u32 -> -( -) -; -let -( -flags -nread -) -= -Flags -: -: -from_bytes -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -( -tt -nread -) -= -Transitions -: -: -from_bytes_unchecked -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -( -st -nread -) -= -StartTable -: -: -from_bytes_unchecked -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -( -special -nread -) -= -Special -: -: -from_bytes -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -if -special -. -max -. -as_usize -( -) -> -= -tt -. -sparse -( -) -. -len -( -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -max -should -not -be -greater -than -or -equal -to -sparse -bytes -" -) -) -; -} -let -( -quitset -nread -) -= -ByteSet -: -: -from_bytes -( -& -slice -[ -nr -. -. -] -) -? -; -nr -+ -= -nread -; -let -pre -= -None -; -Ok -( -( -DFA -{ -tt -st -special -pre -quitset -flags -} -nr -) -) -} -} -impl -< -T -: -AsRef -< -[ -u8 -] -> -> -fmt -: -: -Debug -for -DFA -< -T -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -writeln -! -( -f -" -sparse -: -: -DFA -( -" -) -? -; -for -state -in -self -. -tt -. -states -( -) -{ -fmt_state_indicator -( -f -self -state -. -id -( -) -) -? -; -writeln -! -( -f -" -{ -: -06 -? -} -: -{ -: -? -} -" -state -. -id -( -) -. -as_usize -( -) -state -) -? -; -} -writeln -! -( -f -" -" -) -? -; -for -( -i -( -start_id -anchored -sty -) -) -in -self -. -st -. -iter -( -) -. -enumerate -( -) -{ -if -i -% -self -. -st -. -stride -= -= -0 -{ -match -anchored -{ -Anchored -: -: -No -= -> -writeln -! -( -f -" -START -- -GROUP -( -unanchored -) -" -) -? -Anchored -: -: -Yes -= -> -writeln -! -( -f -" -START -- -GROUP -( -anchored -) -" -) -? -Anchored -: -: -Pattern -( -pid -) -= -> -writeln -! -( -f -" -START_GROUP -( -pattern -: -{ -: -? -} -) -" -pid -. -as_usize -( -) -) -? -} -} -writeln -! -( -f -" -{ -: -? -} -= -> -{ -: -06 -? -} -" -sty -start_id -. -as_usize -( -) -) -? -; -} -writeln -! -( -f -" -state -length -: -{ -: -? -} -" -self -. -tt -. -state_len -) -? -; -writeln -! -( -f -" -pattern -length -: -{ -: -? -} -" -self -. -pattern_len -( -) -) -? -; -writeln -! -( -f -" -flags -: -{ -: -? -} -" -self -. -flags -) -? -; -writeln -! -( -f -" -) -" -) -? -; -Ok -( -( -) -) -} -} -unsafe -impl -< -T -: -AsRef -< -[ -u8 -] -> -> -Automaton -for -DFA -< -T -> -{ -# -[ -inline -] -fn -is_special_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_special_state -( -id -) -} -# -[ -inline -] -fn -is_dead_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_dead_state -( -id -) -} -# -[ -inline -] -fn -is_quit_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_quit_state -( -id -) -} -# -[ -inline -] -fn -is_match_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_match_state -( -id -) -} -# -[ -inline -] -fn -is_start_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_start_state -( -id -) -} -# -[ -inline -] -fn -is_accel_state -( -& -self -id -: -StateID -) -- -> -bool -{ -self -. -special -. -is_accel_state -( -id -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -next_state -( -& -self -current -: -StateID -input -: -u8 -) -- -> -StateID -{ -let -input -= -self -. -tt -. -classes -. -get -( -input -) -; -self -. -tt -. -state -( -current -) -. -next -( -input -) -} -# -[ -inline -] -unsafe -fn -next_state_unchecked -( -& -self -current -: -StateID -input -: -u8 -) -- -> -StateID -{ -self -. -next_state -( -current -input -) -} -# -[ -inline -] -fn -next_eoi_state -( -& -self -current -: -StateID -) -- -> -StateID -{ -self -. -tt -. -state -( -current -) -. -next_eoi -( -) -} -# -[ -inline -] -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -tt -. -pattern_len -} -# -[ -inline -] -fn -match_len -( -& -self -id -: -StateID -) -- -> -usize -{ -self -. -tt -. -state -( -id -) -. -pattern_len -( -) -} -# -[ -inline -] -fn -match_pattern -( -& -self -id -: -StateID -match_index -: -usize -) -- -> -PatternID -{ -if -self -. -tt -. -pattern_len -= -= -1 -{ -return -PatternID -: -: -ZERO -; -} -self -. -tt -. -state -( -id -) -. -pattern_id -( -match_index -) -} -# -[ -inline -] -fn -has_empty -( -& -self -) -- -> -bool -{ -self -. -flags -. -has_empty -} -# -[ -inline -] -fn -is_utf8 -( -& -self -) -- -> -bool -{ -self -. -flags -. -is_utf8 -} -# -[ -inline -] -fn -is_always_start_anchored -( -& -self -) -- -> -bool -{ -self -. -flags -. -is_always_start_anchored -} -# -[ -inline -] -fn -start_state_forward -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -{ -if -! -self -. -quitset -. -is_empty -( -) -& -& -input -. -start -( -) -> -0 -{ -let -offset -= -input -. -start -( -) -- -1 -; -let -byte -= -input -. -haystack -( -) -[ -offset -] -; -if -self -. -quitset -. -contains -( -byte -) -{ -return -Err -( -MatchError -: -: -quit -( -byte -offset -) -) -; -} -} -let -start -= -self -. -st -. -start_map -. -fwd -( -& -input -) -; -self -. -st -. -start -( -input -start -) -} -# -[ -inline -] -fn -start_state_reverse -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -StateID -MatchError -> -{ -if -! -self -. -quitset -. -is_empty -( -) -& -& -input -. -end -( -) -< -input -. -haystack -( -) -. -len -( -) -{ -let -offset -= -input -. -end -( -) -; -let -byte -= -input -. -haystack -( -) -[ -offset -] -; -if -self -. -quitset -. -contains -( -byte -) -{ -return -Err -( -MatchError -: -: -quit -( -byte -offset -) -) -; -} -} -let -start -= -self -. -st -. -start_map -. -rev -( -& -input -) -; -self -. -st -. -start -( -input -start -) -} -# -[ -inline -] -fn -universal_start_state -( -& -self -mode -: -Anchored -) -- -> -Option -< -StateID -> -{ -match -mode -{ -Anchored -: -: -No -= -> -self -. -st -. -universal_start_unanchored -Anchored -: -: -Yes -= -> -self -. -st -. -universal_start_anchored -Anchored -: -: -Pattern -( -_ -) -= -> -None -} -} -# -[ -inline -] -fn -accelerator -( -& -self -id -: -StateID -) -- -> -& -[ -u8 -] -{ -self -. -tt -. -state -( -id -) -. -accelerator -( -) -} -# -[ -inline -] -fn -get_prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -self -. -pre -. -as_ref -( -) -} -} -# -[ -derive -( -Clone -) -] -struct -Transitions -< -T -> -{ -sparse -: -T -classes -: -ByteClasses -state_len -: -usize -pattern_len -: -usize -} -impl -< -' -a -> -Transitions -< -& -' -a -[ -u8 -] -> -{ -unsafe -fn -from_bytes_unchecked -( -mut -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -Transitions -< -& -' -a -[ -u8 -] -> -usize -) -DeserializeError -> -{ -let -slice_start -= -slice -. -as_ptr -( -) -. -as_usize -( -) -; -let -( -state_len -nr -) -= -wire -: -: -try_read_u32_as_usize -( -& -slice -" -state -length -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -pattern_len -nr -) -= -wire -: -: -try_read_u32_as_usize -( -& -slice -" -pattern -length -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -classes -nr -) -= -ByteClasses -: -: -from_bytes -( -& -slice -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -len -nr -) -= -wire -: -: -try_read_u32_as_usize -( -& -slice -" -sparse -transitions -length -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -wire -: -: -check_slice_len -( -slice -len -" -sparse -states -byte -length -" -) -? -; -let -sparse -= -& -slice -[ -. -. -len -] -; -slice -= -& -slice -[ -len -. -. -] -; -let -trans -= -Transitions -{ -sparse -classes -state_len -pattern_len -} -; -Ok -( -( -trans -slice -. -as_ptr -( -) -. -as_usize -( -) -- -slice_start -) -) -} -} -impl -< -T -: -AsRef -< -[ -u8 -] -> -> -Transitions -< -T -> -{ -fn -write_to -< -E -: -Endian -> -( -& -self -mut -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -sparse -transition -table -" -) -) -; -} -dst -= -& -mut -dst -[ -. -. -nwrite -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -state_len -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -pattern_len -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -let -n -= -self -. -classes -. -write_to -( -dst -) -? -; -dst -= -& -mut -dst -[ -n -. -. -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -sparse -( -) -. -len -( -) -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -let -mut -id -= -DEAD -; -while -id -. -as_usize -( -) -< -self -. -sparse -( -) -. -len -( -) -{ -let -state -= -self -. -state -( -id -) -; -let -n -= -state -. -write_to -: -: -< -E -> -( -& -mut -dst -) -? -; -dst -= -& -mut -dst -[ -n -. -. -] -; -id -= -StateID -: -: -new -( -id -. -as_usize -( -) -+ -state -. -write_to_len -( -) -) -. -unwrap -( -) -; -} -Ok -( -nwrite -) -} -fn -write_to_len -( -& -self -) -- -> -usize -{ -size_of -: -: -< -u32 -> -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -self -. -classes -. -write_to_len -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -self -. -sparse -( -) -. -len -( -) -} -fn -validate -( -& -self -sp -: -& -Special -) -- -> -Result -< -( -) -DeserializeError -> -{ -struct -Seen -{ -# -[ -cfg -( -feature -= -" -alloc -" -) -] -set -: -alloc -: -: -collections -: -: -BTreeSet -< -StateID -> -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -set -: -core -: -: -marker -: -: -PhantomData -< -StateID -> -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -Seen -{ -fn -new -( -) -- -> -Seen -{ -Seen -{ -set -: -alloc -: -: -collections -: -: -BTreeSet -: -: -new -( -) -} -} -fn -insert -( -& -mut -self -id -: -StateID -) -{ -self -. -set -. -insert -( -id -) -; -} -fn -contains -( -& -self -id -: -& -StateID -) -- -> -bool -{ -self -. -set -. -contains -( -id -) -} -} -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -impl -Seen -{ -fn -new -( -) -- -> -Seen -{ -Seen -{ -set -: -core -: -: -marker -: -: -PhantomData -} -} -fn -insert -( -& -mut -self -_id -: -StateID -) -{ -} -fn -contains -( -& -self -_id -: -& -StateID -) -- -> -bool -{ -false -} -} -let -mut -verified -: -Seen -= -Seen -: -: -new -( -) -; -let -mut -len -= -0 -; -let -mut -id -= -DEAD -; -while -id -. -as_usize -( -) -< -self -. -sparse -( -) -. -len -( -) -{ -if -sp -. -is_special_state -( -id -) -{ -let -is_actually_special -= -sp -. -is_dead_state -( -id -) -| -| -sp -. -is_quit_state -( -id -) -| -| -sp -. -is_match_state -( -id -) -| -| -sp -. -is_start_state -( -id -) -| -| -sp -. -is_accel_state -( -id -) -; -if -! -is_actually_special -{ -return -Err -( -DeserializeError -: -: -generic -( -" -found -sparse -state -tagged -as -special -but -\ -wasn -' -t -actually -special -" -) -) -; -} -} -let -state -= -self -. -try_state -( -sp -id -) -? -; -verified -. -insert -( -id -) -; -id -= -StateID -: -: -new -( -wire -: -: -add -( -id -. -as_usize -( -) -state -. -write_to_len -( -) -" -next -state -ID -offset -" -) -? -) -. -map_err -( -| -err -| -{ -DeserializeError -: -: -state_id_error -( -err -" -next -state -ID -offset -" -) -} -) -? -; -len -+ -= -1 -; -} -for -state -in -self -. -states -( -) -{ -for -i -in -0 -. -. -state -. -ntrans -{ -let -to -= -state -. -next_at -( -i -) -; -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -{ -let -_ -= -self -. -try_state -( -sp -to -) -? -; -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -{ -if -! -verified -. -contains -( -& -to -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -found -transition -that -points -to -a -\ -non -- -existent -state -" -) -) -; -} -} -} -} -if -len -! -= -self -. -state_len -{ -return -Err -( -DeserializeError -: -: -generic -( -" -mismatching -sparse -state -length -" -) -) -; -} -Ok -( -( -) -) -} -fn -as_ref -( -& -self -) -- -> -Transitions -< -& -' -_ -[ -u8 -] -> -{ -Transitions -{ -sparse -: -self -. -sparse -( -) -classes -: -self -. -classes -. -clone -( -) -state_len -: -self -. -state_len -pattern_len -: -self -. -pattern_len -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -fn -to_owned -( -& -self -) -- -> -Transitions -< -alloc -: -: -vec -: -: -Vec -< -u8 -> -> -{ -Transitions -{ -sparse -: -self -. -sparse -( -) -. -to_vec -( -) -classes -: -self -. -classes -. -clone -( -) -state_len -: -self -. -state_len -pattern_len -: -self -. -pattern_len -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -state -( -& -self -id -: -StateID -) -- -> -State -< -' -_ -> -{ -let -mut -state -= -& -self -. -sparse -( -) -[ -id -. -as_usize -( -) -. -. -] -; -let -mut -ntrans -= -wire -: -: -read_u16 -( -& -state -) -. -as_usize -( -) -; -let -is_match -= -( -1 -< -< -15 -) -& -ntrans -! -= -0 -; -ntrans -& -= -! -( -1 -< -< -15 -) -; -state -= -& -state -[ -2 -. -. -] -; -let -( -input_ranges -state -) -= -state -. -split_at -( -ntrans -* -2 -) -; -let -( -next -state -) -= -state -. -split_at -( -ntrans -* -StateID -: -: -SIZE -) -; -let -( -pattern_ids -state -) -= -if -is_match -{ -let -npats -= -wire -: -: -read_u32 -( -& -state -) -. -as_usize -( -) -; -state -[ -4 -. -. -] -. -split_at -( -npats -* -4 -) -} -else -{ -( -& -[ -] -[ -. -. -] -state -) -} -; -let -accel_len -= -usize -: -: -from -( -state -[ -0 -] -) -; -let -accel -= -& -state -[ -1 -. -. -accel_len -+ -1 -] -; -State -{ -id -is_match -ntrans -input_ranges -next -pattern_ids -accel -} -} -fn -try_state -( -& -self -sp -: -& -Special -id -: -StateID -) -- -> -Result -< -State -< -' -_ -> -DeserializeError -> -{ -if -id -. -as_usize -( -) -> -self -. -sparse -( -) -. -len -( -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -invalid -caller -provided -sparse -state -ID -" -) -) -; -} -let -mut -state -= -& -self -. -sparse -( -) -[ -id -. -as_usize -( -) -. -. -] -; -let -( -mut -ntrans -_ -) -= -wire -: -: -try_read_u16_as_usize -( -state -" -state -transition -length -" -) -? -; -let -is_match -= -( -( -1 -< -< -15 -) -& -ntrans -) -! -= -0 -; -ntrans -& -= -! -( -1 -< -< -15 -) -; -state -= -& -state -[ -2 -. -. -] -; -if -ntrans -> -257 -| -| -ntrans -= -= -0 -{ -return -Err -( -DeserializeError -: -: -generic -( -" -invalid -transition -length -" -) -) -; -} -if -is_match -& -& -! -sp -. -is_match_state -( -id -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -state -marked -as -match -but -not -in -match -ID -range -" -) -) -; -} -else -if -! -is_match -& -& -sp -. -is_match_state -( -id -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -state -in -match -ID -range -but -not -marked -as -match -state -" -) -) -; -} -let -input_ranges_len -= -ntrans -. -checked_mul -( -2 -) -. -unwrap -( -) -; -wire -: -: -check_slice_len -( -state -input_ranges_len -" -sparse -byte -pairs -" -) -? -; -let -( -input_ranges -state -) -= -state -. -split_at -( -input_ranges_len -) -; -for -pair -in -input_ranges -. -chunks -( -2 -) -{ -let -( -start -end -) -= -( -pair -[ -0 -] -pair -[ -1 -] -) -; -if -start -> -end -{ -return -Err -( -DeserializeError -: -: -generic -( -" -invalid -input -range -" -) -) -; -} -} -let -next_len -= -ntrans -. -checked_mul -( -self -. -id_len -( -) -) -. -expect -( -" -state -size -* -# -trans -should -always -fit -in -a -usize -" -) -; -wire -: -: -check_slice_len -( -state -next_len -" -sparse -trans -state -IDs -" -) -? -; -let -( -next -state -) -= -state -. -split_at -( -next_len -) -; -for -idbytes -in -next -. -chunks -( -self -. -id_len -( -) -) -{ -let -( -id -_ -) -= -wire -: -: -read_state_id -( -idbytes -" -sparse -state -ID -in -try_state -" -) -? -; -wire -: -: -check_slice_len -( -self -. -sparse -( -) -id -. -as_usize -( -) -" -invalid -sparse -state -ID -" -) -? -; -} -let -( -pattern_ids -state -) -= -if -is_match -{ -let -( -npats -nr -) -= -wire -: -: -try_read_u32_as_usize -( -state -" -pattern -ID -length -" -) -? -; -let -state -= -& -state -[ -nr -. -. -] -; -if -npats -= -= -0 -{ -return -Err -( -DeserializeError -: -: -generic -( -" -state -marked -as -a -match -but -has -no -pattern -IDs -" -) -) -; -} -let -pattern_ids_len -= -wire -: -: -mul -( -npats -4 -" -sparse -pattern -ID -byte -length -" -) -? -; -wire -: -: -check_slice_len -( -state -pattern_ids_len -" -sparse -pattern -IDs -" -) -? -; -let -( -pattern_ids -state -) -= -state -. -split_at -( -pattern_ids_len -) -; -for -patbytes -in -pattern_ids -. -chunks -( -PatternID -: -: -SIZE -) -{ -wire -: -: -read_pattern_id -( -patbytes -" -sparse -pattern -ID -in -try_state -" -) -? -; -} -( -pattern_ids -state -) -} -else -{ -( -& -[ -] -[ -. -. -] -state -) -} -; -if -state -. -is_empty -( -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -no -accelerator -length -" -) -) -; -} -let -( -accel_len -state -) -= -( -usize -: -: -from -( -state -[ -0 -] -) -& -state -[ -1 -. -. -] -) -; -if -accel_len -> -3 -{ -return -Err -( -DeserializeError -: -: -generic -( -" -sparse -invalid -accelerator -length -" -) -) -; -} -else -if -accel_len -= -= -0 -& -& -sp -. -is_accel_state -( -id -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -got -no -accelerators -in -state -but -in -accelerator -ID -range -" -) -) -; -} -else -if -accel_len -> -0 -& -& -! -sp -. -is_accel_state -( -id -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -state -in -accelerator -ID -range -but -has -no -accelerators -" -) -) -; -} -wire -: -: -check_slice_len -( -state -accel_len -" -sparse -corrupt -accelerator -length -" -) -? -; -let -( -accel -_ -) -= -( -& -state -[ -. -. -accel_len -] -& -state -[ -accel_len -. -. -] -) -; -let -state -= -State -{ -id -is_match -ntrans -input_ranges -next -pattern_ids -accel -} -; -if -sp -. -is_quit_state -( -state -. -next_at -( -state -. -ntrans -- -1 -) -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -state -with -EOI -transition -to -quit -state -is -illegal -" -) -) -; -} -Ok -( -state -) -} -fn -states -( -& -self -) -- -> -StateIter -< -' -_ -T -> -{ -StateIter -{ -trans -: -self -id -: -DEAD -. -as_usize -( -) -} -} -fn -sparse -( -& -self -) -- -> -& -[ -u8 -] -{ -self -. -sparse -. -as_ref -( -) -} -fn -id_len -( -& -self -) -- -> -usize -{ -StateID -: -: -SIZE -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -sparse -( -) -. -len -( -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -< -T -: -AsMut -< -[ -u8 -] -> -> -Transitions -< -T -> -{ -fn -state_mut -( -& -mut -self -id -: -StateID -) -- -> -StateMut -< -' -_ -> -{ -let -mut -state -= -& -mut -self -. -sparse_mut -( -) -[ -id -. -as_usize -( -) -. -. -] -; -let -mut -ntrans -= -wire -: -: -read_u16 -( -& -state -) -. -as_usize -( -) -; -let -is_match -= -( -1 -< -< -15 -) -& -ntrans -! -= -0 -; -ntrans -& -= -! -( -1 -< -< -15 -) -; -state -= -& -mut -state -[ -2 -. -. -] -; -let -( -input_ranges -state -) -= -state -. -split_at_mut -( -ntrans -* -2 -) -; -let -( -next -state -) -= -state -. -split_at_mut -( -ntrans -* -StateID -: -: -SIZE -) -; -let -( -pattern_ids -state -) -= -if -is_match -{ -let -npats -= -wire -: -: -read_u32 -( -& -state -) -. -as_usize -( -) -; -state -[ -4 -. -. -] -. -split_at_mut -( -npats -* -4 -) -} -else -{ -( -& -mut -[ -] -[ -. -. -] -state -) -} -; -let -accel_len -= -usize -: -: -from -( -state -[ -0 -] -) -; -let -accel -= -& -mut -state -[ -1 -. -. -accel_len -+ -1 -] -; -StateMut -{ -id -is_match -ntrans -input_ranges -next -pattern_ids -accel -} -} -fn -sparse_mut -( -& -mut -self -) -- -> -& -mut -[ -u8 -] -{ -self -. -sparse -. -as_mut -( -) -} -} -# -[ -derive -( -Clone -) -] -struct -StartTable -< -T -> -{ -table -: -T -kind -: -StartKind -start_map -: -StartByteMap -stride -: -usize -pattern_len -: -Option -< -usize -> -universal_start_unanchored -: -Option -< -StateID -> -universal_start_anchored -: -Option -< -StateID -> -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -StartTable -< -Vec -< -u8 -> -> -{ -fn -new -< -T -: -AsRef -< -[ -u32 -] -> -> -( -dfa -: -& -dense -: -: -DFA -< -T -> -pattern_len -: -Option -< -usize -> -) -- -> -StartTable -< -Vec -< -u8 -> -> -{ -let -stride -= -Start -: -: -len -( -) -; -let -len -= -stride -. -checked_mul -( -pattern_len -. -unwrap_or -( -0 -) -) -. -unwrap -( -) -. -checked_add -( -stride -. -checked_mul -( -2 -) -. -unwrap -( -) -) -. -unwrap -( -) -. -checked_mul -( -StateID -: -: -SIZE -) -. -unwrap -( -) -; -StartTable -{ -table -: -vec -! -[ -0 -; -len -] -kind -: -dfa -. -start_kind -( -) -start_map -: -dfa -. -start_map -( -) -. -clone -( -) -stride -pattern_len -universal_start_unanchored -: -dfa -. -universal_start_state -( -Anchored -: -: -No -) -universal_start_anchored -: -dfa -. -universal_start_state -( -Anchored -: -: -Yes -) -} -} -fn -from_dense_dfa -< -T -: -AsRef -< -[ -u32 -] -> -> -( -dfa -: -& -dense -: -: -DFA -< -T -> -remap -: -& -[ -StateID -] -) -- -> -Result -< -StartTable -< -Vec -< -u8 -> -> -BuildError -> -{ -let -start_pattern_len -= -if -dfa -. -starts_for_each_pattern -( -) -{ -Some -( -dfa -. -pattern_len -( -) -) -} -else -{ -None -} -; -let -mut -sl -= -StartTable -: -: -new -( -dfa -start_pattern_len -) -; -for -( -old_start_id -anchored -sty -) -in -dfa -. -starts -( -) -{ -let -new_start_id -= -remap -[ -dfa -. -to_index -( -old_start_id -) -] -; -sl -. -set_start -( -anchored -sty -new_start_id -) -; -} -Ok -( -sl -) -} -} -impl -< -' -a -> -StartTable -< -& -' -a -[ -u8 -] -> -{ -unsafe -fn -from_bytes_unchecked -( -mut -slice -: -& -' -a -[ -u8 -] -) -- -> -Result -< -( -StartTable -< -& -' -a -[ -u8 -] -> -usize -) -DeserializeError -> -{ -let -slice_start -= -slice -. -as_ptr -( -) -. -as_usize -( -) -; -let -( -kind -nr -) -= -StartKind -: -: -from_bytes -( -slice -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -start_map -nr -) -= -StartByteMap -: -: -from_bytes -( -slice -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -( -stride -nr -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -sparse -start -table -stride -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -if -stride -! -= -Start -: -: -len -( -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -invalid -sparse -starting -table -stride -" -) -) -; -} -let -( -maybe_pattern_len -nr -) -= -wire -: -: -try_read_u32_as_usize -( -slice -" -sparse -start -table -patterns -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -pattern_len -= -if -maybe_pattern_len -. -as_u32 -( -) -= -= -u32 -: -: -MAX -{ -None -} -else -{ -Some -( -maybe_pattern_len -) -} -; -if -pattern_len -. -map_or -( -false -| -len -| -len -> -PatternID -: -: -LIMIT -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -sparse -invalid -number -of -patterns -" -) -) -; -} -let -( -universal_unanchored -nr -) -= -wire -: -: -try_read_u32 -( -slice -" -universal -unanchored -start -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -universal_start_unanchored -= -if -universal_unanchored -= -= -u32 -: -: -MAX -{ -None -} -else -{ -Some -( -StateID -: -: -try_from -( -universal_unanchored -) -. -map_err -( -| -e -| -{ -DeserializeError -: -: -state_id_error -( -e -" -universal -unanchored -start -" -) -} -) -? -) -} -; -let -( -universal_anchored -nr -) -= -wire -: -: -try_read_u32 -( -slice -" -universal -anchored -start -" -) -? -; -slice -= -& -slice -[ -nr -. -. -] -; -let -universal_start_anchored -= -if -universal_anchored -= -= -u32 -: -: -MAX -{ -None -} -else -{ -Some -( -StateID -: -: -try_from -( -universal_anchored -) -. -map_err -( -| -e -| -{ -DeserializeError -: -: -state_id_error -( -e -" -universal -anchored -start -" -) -} -) -? -) -} -; -let -pattern_table_size -= -wire -: -: -mul -( -stride -pattern_len -. -unwrap_or -( -0 -) -" -sparse -invalid -pattern -length -" -) -? -; -let -start_state_len -= -wire -: -: -add -( -wire -: -: -mul -( -2 -stride -" -start -state -stride -too -big -" -) -? -pattern_table_size -" -sparse -invalid -' -any -' -pattern -starts -size -" -) -? -; -let -table_bytes_len -= -wire -: -: -mul -( -start_state_len -StateID -: -: -SIZE -" -sparse -pattern -table -bytes -length -" -) -? -; -wire -: -: -check_slice_len -( -slice -table_bytes_len -" -sparse -start -ID -table -" -) -? -; -let -table -= -& -slice -[ -. -. -table_bytes_len -] -; -slice -= -& -slice -[ -table_bytes_len -. -. -] -; -let -sl -= -StartTable -{ -table -kind -start_map -stride -pattern_len -universal_start_unanchored -universal_start_anchored -} -; -Ok -( -( -sl -slice -. -as_ptr -( -) -. -as_usize -( -) -- -slice_start -) -) -} -} -impl -< -T -: -AsRef -< -[ -u8 -] -> -> -StartTable -< -T -> -{ -fn -write_to -< -E -: -Endian -> -( -& -self -mut -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -sparse -starting -table -ids -" -) -) -; -} -dst -= -& -mut -dst -[ -. -. -nwrite -] -; -let -nw -= -self -. -kind -. -write_to -: -: -< -E -> -( -dst -) -? -; -dst -= -& -mut -dst -[ -nw -. -. -] -; -let -nw -= -self -. -start_map -. -write_to -( -dst -) -? -; -dst -= -& -mut -dst -[ -nw -. -. -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -stride -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -pattern_len -. -unwrap_or -( -0xFFFF_FFFF -) -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -E -: -: -write_u32 -( -self -. -universal_start_unanchored -. -map_or -( -u32 -: -: -MAX -| -sid -| -sid -. -as_u32 -( -) -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -E -: -: -write_u32 -( -self -. -universal_start_anchored -. -map_or -( -u32 -: -: -MAX -| -sid -| -sid -. -as_u32 -( -) -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -for -( -sid -_ -_ -) -in -self -. -iter -( -) -{ -E -: -: -write_u32 -( -sid -. -as_u32 -( -) -dst -) -; -dst -= -& -mut -dst -[ -StateID -: -: -SIZE -. -. -] -; -} -Ok -( -nwrite -) -} -fn -write_to_len -( -& -self -) -- -> -usize -{ -self -. -kind -. -write_to_len -( -) -+ -self -. -start_map -. -write_to_len -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -size_of -: -: -< -u32 -> -( -) -+ -self -. -table -( -) -. -len -( -) -} -fn -validate -( -& -self -sp -: -& -Special -trans -: -& -Transitions -< -T -> -) -- -> -Result -< -( -) -DeserializeError -> -{ -for -( -id -_ -_ -) -in -self -. -iter -( -) -{ -if -sp -. -is_match_state -( -id -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -start -states -cannot -be -match -states -" -) -) -; -} -let -state -= -trans -. -try_state -( -sp -id -) -? -; -for -i -in -0 -. -. -state -. -ntrans -{ -let -to -= -state -. -next_at -( -i -) -; -let -_ -= -trans -. -try_state -( -sp -to -) -? -; -} -} -Ok -( -( -) -) -} -fn -as_ref -( -& -self -) -- -> -StartTable -< -& -' -_ -[ -u8 -] -> -{ -StartTable -{ -table -: -self -. -table -( -) -kind -: -self -. -kind -start_map -: -self -. -start_map -. -clone -( -) -stride -: -self -. -stride -pattern_len -: -self -. -pattern_len -universal_start_unanchored -: -self -. -universal_start_unanchored -universal_start_anchored -: -self -. -universal_start_anchored -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -fn -to_owned -( -& -self -) -- -> -StartTable -< -alloc -: -: -vec -: -: -Vec -< -u8 -> -> -{ -StartTable -{ -table -: -self -. -table -( -) -. -to_vec -( -) -kind -: -self -. -kind -start_map -: -self -. -start_map -. -clone -( -) -stride -: -self -. -stride -pattern_len -: -self -. -pattern_len -universal_start_unanchored -: -self -. -universal_start_unanchored -universal_start_anchored -: -self -. -universal_start_anchored -} -} -fn -start -( -& -self -input -: -& -Input -< -' -_ -> -start -: -Start -) -- -> -Result -< -StateID -MatchError -> -{ -let -start_index -= -start -. -as_usize -( -) -; -let -mode -= -input -. -get_anchored -( -) -; -let -index -= -match -mode -{ -Anchored -: -: -No -= -> -{ -if -! -self -. -kind -. -has_unanchored -( -) -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -mode -) -) -; -} -start_index -} -Anchored -: -: -Yes -= -> -{ -if -! -self -. -kind -. -has_anchored -( -) -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -mode -) -) -; -} -self -. -stride -+ -start_index -} -Anchored -: -: -Pattern -( -pid -) -= -> -{ -let -len -= -match -self -. -pattern_len -{ -None -= -> -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -mode -) -) -} -Some -( -len -) -= -> -len -} -; -if -pid -. -as_usize -( -) -> -= -len -{ -return -Ok -( -DEAD -) -; -} -( -2 -* -self -. -stride -) -+ -( -self -. -stride -* -pid -. -as_usize -( -) -) -+ -start_index -} -} -; -let -start -= -index -* -StateID -: -: -SIZE -; -Ok -( -wire -: -: -read_state_id_unchecked -( -& -self -. -table -( -) -[ -start -. -. -] -) -. -0 -) -} -fn -iter -( -& -self -) -- -> -StartStateIter -< -' -_ -T -> -{ -StartStateIter -{ -st -: -self -i -: -0 -} -} -fn -len -( -& -self -) -- -> -usize -{ -self -. -table -( -) -. -len -( -) -/ -StateID -: -: -SIZE -} -fn -table -( -& -self -) -- -> -& -[ -u8 -] -{ -self -. -table -. -as_ref -( -) -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -table -( -) -. -len -( -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -< -T -: -AsMut -< -[ -u8 -] -> -> -StartTable -< -T -> -{ -fn -set_start -( -& -mut -self -anchored -: -Anchored -start -: -Start -id -: -StateID -) -{ -let -start_index -= -start -. -as_usize -( -) -; -let -index -= -match -anchored -{ -Anchored -: -: -No -= -> -start_index -Anchored -: -: -Yes -= -> -self -. -stride -+ -start_index -Anchored -: -: -Pattern -( -pid -) -= -> -{ -let -pid -= -pid -. -as_usize -( -) -; -let -len -= -self -. -pattern_len -. -expect -( -" -start -states -for -each -pattern -enabled -" -) -; -assert -! -( -pid -< -len -" -invalid -pattern -ID -{ -: -? -} -" -pid -) -; -self -. -stride -. -checked_mul -( -pid -) -. -unwrap -( -) -. -checked_add -( -self -. -stride -. -checked_mul -( -2 -) -. -unwrap -( -) -) -. -unwrap -( -) -. -checked_add -( -start_index -) -. -unwrap -( -) -} -} -; -let -start -= -index -* -StateID -: -: -SIZE -; -let -end -= -start -+ -StateID -: -: -SIZE -; -wire -: -: -write_state_id -: -: -< -wire -: -: -NE -> -( -id -& -mut -self -. -table -. -as_mut -( -) -[ -start -. -. -end -] -) -; -} -} -struct -StartStateIter -< -' -a -T -> -{ -st -: -& -' -a -StartTable -< -T -> -i -: -usize -} -impl -< -' -a -T -: -AsRef -< -[ -u8 -] -> -> -Iterator -for -StartStateIter -< -' -a -T -> -{ -type -Item -= -( -StateID -Anchored -Start -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -StateID -Anchored -Start -) -> -{ -let -i -= -self -. -i -; -if -i -> -= -self -. -st -. -len -( -) -{ -return -None -; -} -self -. -i -+ -= -1 -; -let -start_type -= -Start -: -: -from_usize -( -i -% -self -. -st -. -stride -) -. -unwrap -( -) -; -let -anchored -= -if -i -< -self -. -st -. -stride -{ -Anchored -: -: -No -} -else -if -i -< -( -2 -* -self -. -st -. -stride -) -{ -Anchored -: -: -Yes -} -else -{ -let -pid -= -( -i -- -( -2 -* -self -. -st -. -stride -) -) -/ -self -. -st -. -stride -; -Anchored -: -: -Pattern -( -PatternID -: -: -new -( -pid -) -. -unwrap -( -) -) -} -; -let -start -= -i -* -StateID -: -: -SIZE -; -let -end -= -start -+ -StateID -: -: -SIZE -; -let -bytes -= -self -. -st -. -table -( -) -[ -start -. -. -end -] -. -try_into -( -) -. -unwrap -( -) -; -let -id -= -StateID -: -: -from_ne_bytes_unchecked -( -bytes -) -; -Some -( -( -id -anchored -start_type -) -) -} -} -impl -< -' -a -T -> -fmt -: -: -Debug -for -StartStateIter -< -' -a -T -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -) -- -> -fmt -: -: -Result -{ -f -. -debug_struct -( -" -StartStateIter -" -) -. -field -( -" -i -" -& -self -. -i -) -. -finish -( -) -} -} -struct -StateIter -< -' -a -T -> -{ -trans -: -& -' -a -Transitions -< -T -> -id -: -usize -} -impl -< -' -a -T -: -AsRef -< -[ -u8 -] -> -> -Iterator -for -StateIter -< -' -a -T -> -{ -type -Item -= -State -< -' -a -> -; -fn -next -( -& -mut -self -) -- -> -Option -< -State -< -' -a -> -> -{ -if -self -. -id -> -= -self -. -trans -. -sparse -( -) -. -len -( -) -{ -return -None -; -} -let -state -= -self -. -trans -. -state -( -StateID -: -: -new_unchecked -( -self -. -id -) -) -; -self -. -id -= -self -. -id -+ -state -. -write_to_len -( -) -; -Some -( -state -) -} -} -impl -< -' -a -T -> -fmt -: -: -Debug -for -StateIter -< -' -a -T -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -) -- -> -fmt -: -: -Result -{ -f -. -debug_struct -( -" -StateIter -" -) -. -field -( -" -id -" -& -self -. -id -) -. -finish -( -) -} -} -# -[ -derive -( -Clone -) -] -struct -State -< -' -a -> -{ -id -: -StateID -is_match -: -bool -ntrans -: -usize -input_ranges -: -& -' -a -[ -u8 -] -next -: -& -' -a -[ -u8 -] -pattern_ids -: -& -' -a -[ -u8 -] -accel -: -& -' -a -[ -u8 -] -} -impl -< -' -a -> -State -< -' -a -> -{ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -next -( -& -self -input -: -u8 -) -- -> -StateID -{ -for -i -in -0 -. -. -( -self -. -ntrans -- -1 -) -{ -let -( -start -end -) -= -self -. -range -( -i -) -; -if -start -< -= -input -& -& -input -< -= -end -{ -return -self -. -next_at -( -i -) -; -} -} -DEAD -} -fn -next_eoi -( -& -self -) -- -> -StateID -{ -self -. -next_at -( -self -. -ntrans -- -1 -) -} -fn -id -( -& -self -) -- -> -StateID -{ -self -. -id -} -fn -range -( -& -self -i -: -usize -) -- -> -( -u8 -u8 -) -{ -( -self -. -input_ranges -[ -i -* -2 -] -self -. -input_ranges -[ -i -* -2 -+ -1 -] -) -} -fn -next_at -( -& -self -i -: -usize -) -- -> -StateID -{ -let -start -= -i -* -StateID -: -: -SIZE -; -let -end -= -start -+ -StateID -: -: -SIZE -; -let -bytes -= -self -. -next -[ -start -. -. -end -] -. -try_into -( -) -. -unwrap -( -) -; -StateID -: -: -from_ne_bytes_unchecked -( -bytes -) -} -fn -pattern_id -( -& -self -match_index -: -usize -) -- -> -PatternID -{ -let -start -= -match_index -* -PatternID -: -: -SIZE -; -wire -: -: -read_pattern_id_unchecked -( -& -self -. -pattern_ids -[ -start -. -. -] -) -. -0 -} -fn -pattern_len -( -& -self -) -- -> -usize -{ -assert_eq -! -( -0 -self -. -pattern_ids -. -len -( -) -% -4 -) -; -self -. -pattern_ids -. -len -( -) -/ -4 -} -fn -accelerator -( -& -self -) -- -> -& -' -a -[ -u8 -] -{ -self -. -accel -} -fn -write_to -< -E -: -Endian -> -( -& -self -mut -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -sparse -state -transitions -" -) -) -; -} -let -ntrans -= -if -self -. -is_match -{ -self -. -ntrans -| -( -1 -< -< -15 -) -} -else -{ -self -. -ntrans -} -; -E -: -: -write_u16 -( -u16 -: -: -try_from -( -ntrans -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u16 -> -( -) -. -. -] -; -dst -[ -. -. -self -. -input_ranges -. -len -( -) -] -. -copy_from_slice -( -self -. -input_ranges -) -; -dst -= -& -mut -dst -[ -self -. -input_ranges -. -len -( -) -. -. -] -; -for -i -in -0 -. -. -self -. -ntrans -{ -E -: -: -write_u32 -( -self -. -next_at -( -i -) -. -as_u32 -( -) -dst -) -; -dst -= -& -mut -dst -[ -StateID -: -: -SIZE -. -. -] -; -} -if -self -. -is_match -{ -E -: -: -write_u32 -( -u32 -: -: -try_from -( -self -. -pattern_len -( -) -) -. -unwrap -( -) -dst -) -; -dst -= -& -mut -dst -[ -size_of -: -: -< -u32 -> -( -) -. -. -] -; -for -i -in -0 -. -. -self -. -pattern_len -( -) -{ -let -pid -= -self -. -pattern_id -( -i -) -; -E -: -: -write_u32 -( -pid -. -as_u32 -( -) -dst -) -; -dst -= -& -mut -dst -[ -PatternID -: -: -SIZE -. -. -] -; -} -} -dst -[ -0 -] -= -u8 -: -: -try_from -( -self -. -accel -. -len -( -) -) -. -unwrap -( -) -; -dst -[ -1 -. -. -] -[ -. -. -self -. -accel -. -len -( -) -] -. -copy_from_slice -( -self -. -accel -) -; -Ok -( -nwrite -) -} -fn -write_to_len -( -& -self -) -- -> -usize -{ -let -mut -len -= -2 -+ -( -self -. -ntrans -* -2 -) -+ -( -self -. -ntrans -* -StateID -: -: -SIZE -) -+ -( -1 -+ -self -. -accel -. -len -( -) -) -; -if -self -. -is_match -{ -len -+ -= -size_of -: -: -< -u32 -> -( -) -+ -self -. -pattern_ids -. -len -( -) -; -} -len -} -} -impl -< -' -a -> -fmt -: -: -Debug -for -State -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -let -mut -printed -= -false -; -for -i -in -0 -. -. -( -self -. -ntrans -- -1 -) -{ -let -next -= -self -. -next_at -( -i -) -; -if -next -= -= -DEAD -{ -continue -; -} -if -printed -{ -write -! -( -f -" -" -) -? -; -} -let -( -start -end -) -= -self -. -range -( -i -) -; -if -start -= -= -end -{ -write -! -( -f -" -{ -: -? -} -= -> -{ -: -? -} -" -DebugByte -( -start -) -next -. -as_usize -( -) -) -? -; -} -else -{ -write -! -( -f -" -{ -: -? -} -- -{ -: -? -} -= -> -{ -: -? -} -" -DebugByte -( -start -) -DebugByte -( -end -) -next -. -as_usize -( -) -) -? -; -} -printed -= -true -; -} -let -eoi -= -self -. -next_at -( -self -. -ntrans -- -1 -) -; -if -eoi -! -= -DEAD -{ -if -printed -{ -write -! -( -f -" -" -) -? -; -} -write -! -( -f -" -EOI -= -> -{ -: -? -} -" -eoi -. -as_usize -( -) -) -? -; -} -Ok -( -( -) -) -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -struct -StateMut -< -' -a -> -{ -id -: -StateID -is_match -: -bool -ntrans -: -usize -input_ranges -: -& -' -a -mut -[ -u8 -] -next -: -& -' -a -mut -[ -u8 -] -pattern_ids -: -& -' -a -[ -u8 -] -accel -: -& -' -a -mut -[ -u8 -] -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -< -' -a -> -StateMut -< -' -a -> -{ -fn -set_next_at -( -& -mut -self -i -: -usize -next -: -StateID -) -{ -let -start -= -i -* -StateID -: -: -SIZE -; -let -end -= -start -+ -StateID -: -: -SIZE -; -wire -: -: -write_state_id -: -: -< -wire -: -: -NE -> -( -next -& -mut -self -. -next -[ -start -. -. -end -] -) -; -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -impl -< -' -a -> -fmt -: -: -Debug -for -StateMut -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -let -state -= -State -{ -id -: -self -. -id -is_match -: -self -. -is_match -ntrans -: -self -. -ntrans -input_ranges -: -self -. -input_ranges -next -: -self -. -next -pattern_ids -: -self -. -pattern_ids -accel -: -self -. -accel -} -; -fmt -: -: -Debug -: -: -fmt -( -& -state -f -) -} -} -# -[ -cfg -( -all -( -test -feature -= -" -syntax -" -feature -= -" -dfa -- -build -" -) -) -] -mod -tests -{ -use -crate -: -: -{ -dfa -: -: -{ -dense -: -: -DFA -Automaton -} -nfa -: -: -thompson -Input -MatchError -} -; -# -[ -test -] -fn -heuristic_unicode_forward -( -) -{ -let -dfa -= -DFA -: -: -builder -( -) -. -configure -( -DFA -: -: -config -( -) -. -unicode_word_boundary -( -true -) -) -. -thompson -( -thompson -: -: -Config -: -: -new -( -) -. -reverse -( -true -) -) -. -build -( -r -" -\ -b -[ -0 -- -9 -] -+ -\ -b -" -) -. -unwrap -( -) -. -to_sparse -( -) -. -unwrap -( -) -; -let -input -= -Input -: -: -new -( -" -123 -" -) -. -range -( -2 -. -. -) -; -let -expected -= -MatchError -: -: -quit -( -0xB2 -1 -) -; -let -got -= -dfa -. -try_search_fwd -( -& -input -) -; -assert_eq -! -( -Err -( -expected -) -got -) -; -let -input -= -Input -: -: -new -( -" -123 -" -) -. -range -( -. -. -3 -) -; -let -expected -= -MatchError -: -: -quit -( -0xCE -3 -) -; -let -got -= -dfa -. -try_search_fwd -( -& -input -) -; -assert_eq -! -( -Err -( -expected -) -got -) -; -} -# -[ -test -] -fn -heuristic_unicode_reverse -( -) -{ -let -dfa -= -DFA -: -: -builder -( -) -. -configure -( -DFA -: -: -config -( -) -. -unicode_word_boundary -( -true -) -) -. -thompson -( -thompson -: -: -Config -: -: -new -( -) -. -reverse -( -true -) -) -. -build -( -r -" -\ -b -[ -0 -- -9 -] -+ -\ -b -" -) -. -unwrap -( -) -. -to_sparse -( -) -. -unwrap -( -) -; -let -input -= -Input -: -: -new -( -" -123 -" -) -. -range -( -2 -. -. -) -; -let -expected -= -MatchError -: -: -quit -( -0xB2 -1 -) -; -let -got -= -dfa -. -try_search_rev -( -& -input -) -; -assert_eq -! -( -Err -( -expected -) -got -) -; -let -input -= -Input -: -: -new -( -" -123 -" -) -. -range -( -. -. -3 -) -; -let -expected -= -MatchError -: -: -quit -( -0xCE -3 -) -; -let -got -= -dfa -. -try_search_rev -( -& -input -) -; -assert_eq -! -( -Err -( -expected -) -got -) -; -} -} diff --git a/third_party/rust/regex-automata/src/dfa/special.rs b/third_party/rust/regex-automata/src/dfa/special.rs deleted file mode 100644 index 2dcb187546195..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/special.rs +++ /dev/null @@ -1,2083 +0,0 @@ -use -crate -: -: -{ -dfa -: -: -DEAD -util -: -: -{ -primitives -: -: -StateID -wire -: -: -{ -self -DeserializeError -Endian -SerializeError -} -} -} -; -macro_rules -! -err -{ -( -msg -: -expr -) -= -> -{ -return -Err -( -DeserializeError -: -: -generic -( -msg -) -) -; -} -; -} -# -[ -derive -( -Clone -Copy -Debug -) -] -pub -( -crate -) -struct -Special -{ -pub -( -crate -) -max -: -StateID -pub -( -crate -) -quit_id -: -StateID -pub -( -crate -) -min_match -: -StateID -pub -( -crate -) -max_match -: -StateID -pub -( -crate -) -min_accel -: -StateID -pub -( -crate -) -max_accel -: -StateID -pub -( -crate -) -min_start -: -StateID -pub -( -crate -) -max_start -: -StateID -} -impl -Special -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -new -( -) -- -> -Special -{ -Special -{ -max -: -DEAD -quit_id -: -DEAD -min_match -: -DEAD -max_match -: -DEAD -min_accel -: -DEAD -max_accel -: -DEAD -min_start -: -DEAD -max_start -: -DEAD -} -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -remap -( -& -self -map -: -impl -Fn -( -StateID -) -- -> -StateID -) -- -> -Special -{ -Special -{ -max -: -map -( -self -. -max -) -quit_id -: -map -( -self -. -quit_id -) -min_match -: -map -( -self -. -min_match -) -max_match -: -map -( -self -. -max_match -) -min_accel -: -map -( -self -. -min_accel -) -max_accel -: -map -( -self -. -max_accel -) -min_start -: -map -( -self -. -min_start -) -max_start -: -map -( -self -. -max_start -) -} -} -pub -( -crate -) -fn -from_bytes -( -mut -slice -: -& -[ -u8 -] -) -- -> -Result -< -( -Special -usize -) -DeserializeError -> -{ -wire -: -: -check_slice_len -( -slice -8 -* -StateID -: -: -SIZE -" -special -states -" -) -? -; -let -mut -nread -= -0 -; -let -mut -read_id -= -| -what -| -- -> -Result -< -StateID -DeserializeError -> -{ -let -( -id -nr -) -= -wire -: -: -try_read_state_id -( -slice -what -) -? -; -nread -+ -= -nr -; -slice -= -& -slice -[ -StateID -: -: -SIZE -. -. -] -; -Ok -( -id -) -} -; -let -max -= -read_id -( -" -special -max -id -" -) -? -; -let -quit_id -= -read_id -( -" -special -quit -id -" -) -? -; -let -min_match -= -read_id -( -" -special -min -match -id -" -) -? -; -let -max_match -= -read_id -( -" -special -max -match -id -" -) -? -; -let -min_accel -= -read_id -( -" -special -min -accel -id -" -) -? -; -let -max_accel -= -read_id -( -" -special -max -accel -id -" -) -? -; -let -min_start -= -read_id -( -" -special -min -start -id -" -) -? -; -let -max_start -= -read_id -( -" -special -max -start -id -" -) -? -; -let -special -= -Special -{ -max -quit_id -min_match -max_match -min_accel -max_accel -min_start -max_start -} -; -special -. -validate -( -) -? -; -assert_eq -! -( -nread -special -. -write_to_len -( -) -) -; -Ok -( -( -special -nread -) -) -} -pub -( -crate -) -fn -validate -( -& -self -) -- -> -Result -< -( -) -DeserializeError -> -{ -if -self -. -min_match -= -= -DEAD -& -& -self -. -max_match -! -= -DEAD -{ -err -! -( -" -min_match -is -DEAD -but -max_match -is -not -" -) -; -} -if -self -. -min_match -! -= -DEAD -& -& -self -. -max_match -= -= -DEAD -{ -err -! -( -" -max_match -is -DEAD -but -min_match -is -not -" -) -; -} -if -self -. -min_accel -= -= -DEAD -& -& -self -. -max_accel -! -= -DEAD -{ -err -! -( -" -min_accel -is -DEAD -but -max_accel -is -not -" -) -; -} -if -self -. -min_accel -! -= -DEAD -& -& -self -. -max_accel -= -= -DEAD -{ -err -! -( -" -max_accel -is -DEAD -but -min_accel -is -not -" -) -; -} -if -self -. -min_start -= -= -DEAD -& -& -self -. -max_start -! -= -DEAD -{ -err -! -( -" -min_start -is -DEAD -but -max_start -is -not -" -) -; -} -if -self -. -min_start -! -= -DEAD -& -& -self -. -max_start -= -= -DEAD -{ -err -! -( -" -max_start -is -DEAD -but -min_start -is -not -" -) -; -} -if -self -. -min_match -> -self -. -max_match -{ -err -! -( -" -min_match -should -not -be -greater -than -max_match -" -) -; -} -if -self -. -min_accel -> -self -. -max_accel -{ -err -! -( -" -min_accel -should -not -be -greater -than -max_accel -" -) -; -} -if -self -. -min_start -> -self -. -max_start -{ -err -! -( -" -min_start -should -not -be -greater -than -max_start -" -) -; -} -if -self -. -matches -( -) -& -& -self -. -quit_id -> -= -self -. -min_match -{ -err -! -( -" -quit_id -should -not -be -greater -than -min_match -" -) -; -} -if -self -. -accels -( -) -& -& -self -. -quit_id -> -= -self -. -min_accel -{ -err -! -( -" -quit_id -should -not -be -greater -than -min_accel -" -) -; -} -if -self -. -starts -( -) -& -& -self -. -quit_id -> -= -self -. -min_start -{ -err -! -( -" -quit_id -should -not -be -greater -than -min_start -" -) -; -} -if -self -. -matches -( -) -& -& -self -. -accels -( -) -& -& -self -. -min_accel -< -self -. -min_match -{ -err -! -( -" -min_match -should -not -be -greater -than -min_accel -" -) -; -} -if -self -. -matches -( -) -& -& -self -. -starts -( -) -& -& -self -. -min_start -< -self -. -min_match -{ -err -! -( -" -min_match -should -not -be -greater -than -min_start -" -) -; -} -if -self -. -accels -( -) -& -& -self -. -starts -( -) -& -& -self -. -min_start -< -self -. -min_accel -{ -err -! -( -" -min_accel -should -not -be -greater -than -min_start -" -) -; -} -if -self -. -max -< -self -. -quit_id -{ -err -! -( -" -quit_id -should -not -be -greater -than -max -" -) -; -} -if -self -. -max -< -self -. -max_match -{ -err -! -( -" -max_match -should -not -be -greater -than -max -" -) -; -} -if -self -. -max -< -self -. -max_accel -{ -err -! -( -" -max_accel -should -not -be -greater -than -max -" -) -; -} -if -self -. -max -< -self -. -max_start -{ -err -! -( -" -max_start -should -not -be -greater -than -max -" -) -; -} -Ok -( -( -) -) -} -pub -( -crate -) -fn -validate_state_len -( -& -self -len -: -usize -stride2 -: -usize -) -- -> -Result -< -( -) -DeserializeError -> -{ -if -( -self -. -max -. -as_usize -( -) -> -> -stride2 -) -> -= -len -{ -err -! -( -" -max -should -not -be -greater -than -or -equal -to -state -length -" -) -; -} -Ok -( -( -) -) -} -pub -( -crate -) -fn -write_to -< -E -: -Endian -> -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -use -crate -: -: -util -: -: -wire -: -: -write_state_id -as -write -; -if -dst -. -len -( -) -< -self -. -write_to_len -( -) -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -special -state -ids -" -) -) -; -} -let -mut -nwrite -= -0 -; -nwrite -+ -= -write -: -: -< -E -> -( -self -. -max -& -mut -dst -[ -nwrite -. -. -] -) -; -nwrite -+ -= -write -: -: -< -E -> -( -self -. -quit_id -& -mut -dst -[ -nwrite -. -. -] -) -; -nwrite -+ -= -write -: -: -< -E -> -( -self -. -min_match -& -mut -dst -[ -nwrite -. -. -] -) -; -nwrite -+ -= -write -: -: -< -E -> -( -self -. -max_match -& -mut -dst -[ -nwrite -. -. -] -) -; -nwrite -+ -= -write -: -: -< -E -> -( -self -. -min_accel -& -mut -dst -[ -nwrite -. -. -] -) -; -nwrite -+ -= -write -: -: -< -E -> -( -self -. -max_accel -& -mut -dst -[ -nwrite -. -. -] -) -; -nwrite -+ -= -write -: -: -< -E -> -( -self -. -min_start -& -mut -dst -[ -nwrite -. -. -] -) -; -nwrite -+ -= -write -: -: -< -E -> -( -self -. -max_start -& -mut -dst -[ -nwrite -. -. -] -) -; -assert_eq -! -( -self -. -write_to_len -( -) -nwrite -" -expected -to -write -certain -number -of -bytes -" -) -; -assert_eq -! -( -nwrite -% -8 -0 -" -expected -to -write -multiple -of -8 -bytes -for -special -states -" -) -; -Ok -( -nwrite -) -} -pub -( -crate -) -fn -write_to_len -( -& -self -) -- -> -usize -{ -8 -* -StateID -: -: -SIZE -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -set_max -( -& -mut -self -) -{ -use -core -: -: -cmp -: -: -max -; -self -. -max -= -max -( -self -. -quit_id -max -( -self -. -max_match -max -( -self -. -max_accel -self -. -max_start -) -) -) -; -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -set_no_special_start_states -( -& -mut -self -) -{ -use -core -: -: -cmp -: -: -max -; -self -. -max -= -max -( -self -. -quit_id -max -( -self -. -max_match -self -. -max_accel -) -) -; -self -. -min_start -= -DEAD -; -self -. -max_start -= -DEAD -; -} -# -[ -inline -] -pub -( -crate -) -fn -is_special_state -( -& -self -id -: -StateID -) -- -> -bool -{ -id -< -= -self -. -max -} -# -[ -inline -] -pub -( -crate -) -fn -is_dead_state -( -& -self -id -: -StateID -) -- -> -bool -{ -id -= -= -DEAD -} -# -[ -inline -] -pub -( -crate -) -fn -is_quit_state -( -& -self -id -: -StateID -) -- -> -bool -{ -! -self -. -is_dead_state -( -id -) -& -& -self -. -quit_id -= -= -id -} -# -[ -inline -] -pub -( -crate -) -fn -is_match_state -( -& -self -id -: -StateID -) -- -> -bool -{ -! -self -. -is_dead_state -( -id -) -& -& -self -. -min_match -< -= -id -& -& -id -< -= -self -. -max_match -} -# -[ -inline -] -pub -( -crate -) -fn -is_accel_state -( -& -self -id -: -StateID -) -- -> -bool -{ -! -self -. -is_dead_state -( -id -) -& -& -self -. -min_accel -< -= -id -& -& -id -< -= -self -. -max_accel -} -# -[ -inline -] -pub -( -crate -) -fn -is_start_state -( -& -self -id -: -StateID -) -- -> -bool -{ -! -self -. -is_dead_state -( -id -) -& -& -self -. -min_start -< -= -id -& -& -id -< -= -self -. -max_start -} -# -[ -inline -] -pub -( -crate -) -fn -match_len -( -& -self -stride -: -usize -) -- -> -usize -{ -if -self -. -matches -( -) -{ -( -self -. -max_match -. -as_usize -( -) -- -self -. -min_match -. -as_usize -( -) -+ -stride -) -/ -stride -} -else -{ -0 -} -} -# -[ -inline -] -pub -( -crate -) -fn -matches -( -& -self -) -- -> -bool -{ -self -. -min_match -! -= -DEAD -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -accel_len -( -& -self -stride -: -usize -) -- -> -usize -{ -if -self -. -accels -( -) -{ -( -self -. -max_accel -. -as_usize -( -) -- -self -. -min_accel -. -as_usize -( -) -+ -stride -) -/ -stride -} -else -{ -0 -} -} -# -[ -inline -] -pub -( -crate -) -fn -accels -( -& -self -) -- -> -bool -{ -self -. -min_accel -! -= -DEAD -} -# -[ -inline -] -pub -( -crate -) -fn -starts -( -& -self -) -- -> -bool -{ -self -. -min_start -! -= -DEAD -} -} diff --git a/third_party/rust/regex-automata/src/dfa/start.rs b/third_party/rust/regex-automata/src/dfa/start.rs deleted file mode 100644 index ef535ad027662..0000000000000 --- a/third_party/rust/regex-automata/src/dfa/start.rs +++ /dev/null @@ -1,402 +0,0 @@ -use -core -: -: -mem -: -: -size_of -; -use -crate -: -: -util -: -: -wire -: -: -{ -self -DeserializeError -Endian -SerializeError -} -; -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -StartKind -{ -Both -Unanchored -Anchored -} -impl -StartKind -{ -pub -( -crate -) -fn -from_bytes -( -slice -: -& -[ -u8 -] -) -- -> -Result -< -( -StartKind -usize -) -DeserializeError -> -{ -wire -: -: -check_slice_len -( -slice -size_of -: -: -< -u32 -> -( -) -" -start -kind -bytes -" -) -? -; -let -( -n -nr -) -= -wire -: -: -try_read_u32 -( -slice -" -start -kind -integer -" -) -? -; -match -n -{ -0 -= -> -Ok -( -( -StartKind -: -: -Both -nr -) -) -1 -= -> -Ok -( -( -StartKind -: -: -Unanchored -nr -) -) -2 -= -> -Ok -( -( -StartKind -: -: -Anchored -nr -) -) -_ -= -> -Err -( -DeserializeError -: -: -generic -( -" -unrecognized -start -kind -" -) -) -} -} -pub -( -crate -) -fn -write_to -< -E -: -Endian -> -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -start -kind -" -) -) -; -} -let -n -= -match -* -self -{ -StartKind -: -: -Both -= -> -0 -StartKind -: -: -Unanchored -= -> -1 -StartKind -: -: -Anchored -= -> -2 -} -; -E -: -: -write_u32 -( -n -dst -) -; -Ok -( -nwrite -) -} -pub -( -crate -) -fn -write_to_len -( -& -self -) -- -> -usize -{ -size_of -: -: -< -u32 -> -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -has_unanchored -( -& -self -) -- -> -bool -{ -matches -! -( -* -self -StartKind -: -: -Both -| -StartKind -: -: -Unanchored -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -has_anchored -( -& -self -) -- -> -bool -{ -matches -! -( -* -self -StartKind -: -: -Both -| -StartKind -: -: -Anchored -) -} -} diff --git a/third_party/rust/regex-automata/src/hybrid/dfa.rs b/third_party/rust/regex-automata/src/hybrid/dfa.rs deleted file mode 100644 index 01f644b216697..0000000000000 --- a/third_party/rust/regex-automata/src/hybrid/dfa.rs +++ /dev/null @@ -1,8731 +0,0 @@ -use -core -: -: -{ -iter -mem -: -: -size_of -} -; -use -alloc -: -: -vec -: -: -Vec -; -use -crate -: -: -{ -hybrid -: -: -{ -error -: -: -{ -BuildError -CacheError -} -id -: -: -{ -LazyStateID -LazyStateIDError -} -search -} -nfa -: -: -thompson -util -: -: -{ -alphabet -: -: -{ -self -ByteClasses -ByteSet -} -determinize -: -: -{ -self -State -StateBuilderEmpty -StateBuilderNFA -} -empty -prefilter -: -: -Prefilter -primitives -: -: -{ -PatternID -StateID -as -NFAStateID -} -search -: -: -{ -Anchored -HalfMatch -Input -MatchError -MatchKind -PatternSet -} -sparse_set -: -: -SparseSets -start -: -: -{ -Start -StartByteMap -} -} -} -; -const -MIN_STATES -: -usize -= -SENTINEL_STATES -+ -2 -; -const -SENTINEL_STATES -: -usize -= -3 -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -DFA -{ -config -: -Config -nfa -: -thompson -: -: -NFA -stride2 -: -usize -start_map -: -StartByteMap -classes -: -ByteClasses -quitset -: -ByteSet -cache_capacity -: -usize -} -impl -DFA -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new -( -pattern -: -& -str -) -- -> -Result -< -DFA -BuildError -> -{ -DFA -: -: -builder -( -) -. -build -( -pattern -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -DFA -BuildError -> -{ -DFA -: -: -builder -( -) -. -build_many -( -patterns -) -} -pub -fn -always_match -( -) -- -> -Result -< -DFA -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -always_match -( -) -; -Builder -: -: -new -( -) -. -build_from_nfa -( -nfa -) -} -pub -fn -never_match -( -) -- -> -Result -< -DFA -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -never_match -( -) -; -Builder -: -: -new -( -) -. -build_from_nfa -( -nfa -) -} -pub -fn -config -( -) -- -> -Config -{ -Config -: -: -new -( -) -} -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -pub -fn -create_cache -( -& -self -) -- -> -Cache -{ -Cache -: -: -new -( -self -) -} -pub -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -{ -Lazy -: -: -new -( -self -cache -) -. -reset_cache -( -) -} -pub -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -nfa -. -pattern_len -( -) -} -pub -fn -byte_classes -( -& -self -) -- -> -& -ByteClasses -{ -& -self -. -classes -} -pub -fn -get_config -( -& -self -) -- -> -& -Config -{ -& -self -. -config -} -pub -fn -get_nfa -( -& -self -) -- -> -& -thompson -: -: -NFA -{ -& -self -. -nfa -} -fn -stride2 -( -& -self -) -- -> -usize -{ -self -. -stride2 -} -fn -stride -( -& -self -) -- -> -usize -{ -1 -< -< -self -. -stride2 -( -) -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -0 -} -} -impl -DFA -{ -# -[ -inline -] -pub -fn -try_search_fwd -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -let -hm -= -match -search -: -: -find_fwd -( -self -cache -input -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -hm -) -if -! -utf8empty -= -> -return -Ok -( -Some -( -hm -) -) -Some -( -hm -) -= -> -hm -} -; -empty -: -: -skip_splits_fwd -( -input -hm -hm -. -offset -( -) -| -input -| -{ -let -got -= -search -: -: -find_fwd -( -self -cache -input -) -? -; -Ok -( -got -. -map -( -| -hm -| -( -hm -hm -. -offset -( -) -) -) -) -} -) -} -# -[ -inline -] -pub -fn -try_search_rev -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -let -hm -= -match -search -: -: -find_rev -( -self -cache -input -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -hm -) -if -! -utf8empty -= -> -return -Ok -( -Some -( -hm -) -) -Some -( -hm -) -= -> -hm -} -; -empty -: -: -skip_splits_rev -( -input -hm -hm -. -offset -( -) -| -input -| -{ -let -got -= -search -: -: -find_rev -( -self -cache -input -) -? -; -Ok -( -got -. -map -( -| -hm -| -( -hm -hm -. -offset -( -) -) -) -) -} -) -} -# -[ -inline -] -pub -fn -try_search_overlapping_fwd -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -search -: -: -find_overlapping_fwd -( -self -cache -input -state -) -? -; -match -state -. -get_match -( -) -{ -None -= -> -Ok -( -( -) -) -Some -( -_ -) -if -! -utf8empty -= -> -Ok -( -( -) -) -Some -( -_ -) -= -> -skip_empty_utf8_splits_overlapping -( -input -state -| -input -state -| -{ -search -: -: -find_overlapping_fwd -( -self -cache -input -state -) -} -) -} -} -# -[ -inline -] -pub -fn -try_search_overlapping_rev -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -search -: -: -find_overlapping_rev -( -self -cache -input -state -) -? -; -match -state -. -get_match -( -) -{ -None -= -> -Ok -( -( -) -) -Some -( -_ -) -if -! -utf8empty -= -> -Ok -( -( -) -) -Some -( -_ -) -= -> -skip_empty_utf8_splits_overlapping -( -input -state -| -input -state -| -{ -search -: -: -find_overlapping_rev -( -self -cache -input -state -) -} -) -} -} -# -[ -inline -] -pub -fn -try_which_overlapping_matches -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -- -> -Result -< -( -) -MatchError -> -{ -let -mut -state -= -OverlappingState -: -: -start -( -) -; -while -let -Some -( -m -) -= -{ -self -. -try_search_overlapping_fwd -( -cache -input -& -mut -state -) -? -; -state -. -get_match -( -) -} -{ -let -_ -= -patset -. -try_insert -( -m -. -pattern -( -) -) -; -if -patset -. -is_full -( -) -| -| -input -. -get_earliest -( -) -{ -break -; -} -} -Ok -( -( -) -) -} -} -impl -DFA -{ -# -[ -inline -] -pub -fn -next_state -( -& -self -cache -: -& -mut -Cache -current -: -LazyStateID -input -: -u8 -) -- -> -Result -< -LazyStateID -CacheError -> -{ -let -class -= -usize -: -: -from -( -self -. -classes -. -get -( -input -) -) -; -let -offset -= -current -. -as_usize_untagged -( -) -+ -class -; -let -sid -= -cache -. -trans -[ -offset -] -; -if -! -sid -. -is_unknown -( -) -{ -return -Ok -( -sid -) -; -} -let -unit -= -alphabet -: -: -Unit -: -: -u8 -( -input -) -; -Lazy -: -: -new -( -self -cache -) -. -cache_next_state -( -current -unit -) -} -# -[ -inline -] -pub -fn -next_state_untagged -( -& -self -cache -: -& -Cache -current -: -LazyStateID -input -: -u8 -) -- -> -LazyStateID -{ -debug_assert -! -( -! -current -. -is_tagged -( -) -) -; -let -class -= -usize -: -: -from -( -self -. -classes -. -get -( -input -) -) -; -let -offset -= -current -. -as_usize_unchecked -( -) -+ -class -; -cache -. -trans -[ -offset -] -} -# -[ -inline -] -pub -unsafe -fn -next_state_untagged_unchecked -( -& -self -cache -: -& -Cache -current -: -LazyStateID -input -: -u8 -) -- -> -LazyStateID -{ -debug_assert -! -( -! -current -. -is_tagged -( -) -) -; -let -class -= -usize -: -: -from -( -self -. -classes -. -get -( -input -) -) -; -let -offset -= -current -. -as_usize_unchecked -( -) -+ -class -; -* -cache -. -trans -. -get_unchecked -( -offset -) -} -# -[ -inline -] -pub -fn -next_eoi_state -( -& -self -cache -: -& -mut -Cache -current -: -LazyStateID -) -- -> -Result -< -LazyStateID -CacheError -> -{ -let -eoi -= -self -. -classes -. -eoi -( -) -. -as_usize -( -) -; -let -offset -= -current -. -as_usize_untagged -( -) -+ -eoi -; -let -sid -= -cache -. -trans -[ -offset -] -; -if -! -sid -. -is_unknown -( -) -{ -return -Ok -( -sid -) -; -} -let -unit -= -self -. -classes -. -eoi -( -) -; -Lazy -: -: -new -( -self -cache -) -. -cache_next_state -( -current -unit -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -fn -start_state_forward -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -LazyStateID -MatchError -> -{ -if -! -self -. -quitset -. -is_empty -( -) -& -& -input -. -start -( -) -> -0 -{ -let -offset -= -input -. -start -( -) -- -1 -; -let -byte -= -input -. -haystack -( -) -[ -offset -] -; -if -self -. -quitset -. -contains -( -byte -) -{ -return -Err -( -MatchError -: -: -quit -( -byte -offset -) -) -; -} -} -let -start_type -= -self -. -start_map -. -fwd -( -input -) -; -let -start -= -LazyRef -: -: -new -( -self -cache -) -. -get_cached_start_id -( -input -start_type -) -? -; -if -! -start -. -is_unknown -( -) -{ -return -Ok -( -start -) -; -} -Lazy -: -: -new -( -self -cache -) -. -cache_start_group -( -input -start_type -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -fn -start_state_reverse -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -LazyStateID -MatchError -> -{ -if -! -self -. -quitset -. -is_empty -( -) -& -& -input -. -end -( -) -< -input -. -haystack -( -) -. -len -( -) -{ -let -offset -= -input -. -end -( -) -; -let -byte -= -input -. -haystack -( -) -[ -offset -] -; -if -self -. -quitset -. -contains -( -byte -) -{ -return -Err -( -MatchError -: -: -quit -( -byte -offset -) -) -; -} -} -let -start_type -= -self -. -start_map -. -rev -( -input -) -; -let -start -= -LazyRef -: -: -new -( -self -cache -) -. -get_cached_start_id -( -input -start_type -) -? -; -if -! -start -. -is_unknown -( -) -{ -return -Ok -( -start -) -; -} -Lazy -: -: -new -( -self -cache -) -. -cache_start_group -( -input -start_type -) -} -# -[ -inline -] -pub -fn -match_len -( -& -self -cache -: -& -Cache -id -: -LazyStateID -) -- -> -usize -{ -assert -! -( -id -. -is_match -( -) -) -; -LazyRef -: -: -new -( -self -cache -) -. -get_cached_state -( -id -) -. -match_len -( -) -} -# -[ -inline -] -pub -fn -match_pattern -( -& -self -cache -: -& -Cache -id -: -LazyStateID -match_index -: -usize -) -- -> -PatternID -{ -if -self -. -pattern_len -( -) -= -= -1 -{ -return -PatternID -: -: -ZERO -; -} -LazyRef -: -: -new -( -self -cache -) -. -get_cached_state -( -id -) -. -match_pattern -( -match_index -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Cache -{ -trans -: -Vec -< -LazyStateID -> -starts -: -Vec -< -LazyStateID -> -states -: -Vec -< -State -> -states_to_id -: -StateMap -sparses -: -SparseSets -stack -: -Vec -< -NFAStateID -> -scratch_state_builder -: -StateBuilderEmpty -state_saver -: -StateSaver -memory_usage_state -: -usize -clear_count -: -usize -bytes_searched -: -usize -progress -: -Option -< -SearchProgress -> -} -impl -Cache -{ -pub -fn -new -( -dfa -: -& -DFA -) -- -> -Cache -{ -let -mut -cache -= -Cache -{ -trans -: -alloc -: -: -vec -! -[ -] -starts -: -alloc -: -: -vec -! -[ -] -states -: -alloc -: -: -vec -! -[ -] -states_to_id -: -StateMap -: -: -new -( -) -sparses -: -SparseSets -: -: -new -( -dfa -. -get_nfa -( -) -. -states -( -) -. -len -( -) -) -stack -: -alloc -: -: -vec -! -[ -] -scratch_state_builder -: -StateBuilderEmpty -: -: -new -( -) -state_saver -: -StateSaver -: -: -none -( -) -memory_usage_state -: -0 -clear_count -: -0 -bytes_searched -: -0 -progress -: -None -} -; -debug -! -( -" -pre -- -init -lazy -DFA -cache -size -: -{ -} -" -cache -. -memory_usage -( -) -) -; -Lazy -{ -dfa -cache -: -& -mut -cache -} -. -init_cache -( -) -; -debug -! -( -" -post -- -init -lazy -DFA -cache -size -: -{ -} -" -cache -. -memory_usage -( -) -) -; -cache -} -pub -fn -reset -( -& -mut -self -dfa -: -& -DFA -) -{ -Lazy -: -: -new -( -dfa -self -) -. -reset_cache -( -) -} -# -[ -inline -] -pub -fn -search_start -( -& -mut -self -at -: -usize -) -{ -if -let -Some -( -p -) -= -self -. -progress -. -take -( -) -{ -self -. -bytes_searched -+ -= -p -. -len -( -) -; -} -self -. -progress -= -Some -( -SearchProgress -{ -start -: -at -at -} -) -; -} -# -[ -inline -] -pub -fn -search_update -( -& -mut -self -at -: -usize -) -{ -let -p -= -self -. -progress -. -as_mut -( -) -. -expect -( -" -no -in -- -progress -search -to -update -" -) -; -p -. -at -= -at -; -} -# -[ -inline -] -pub -fn -search_finish -( -& -mut -self -at -: -usize -) -{ -let -mut -p -= -self -. -progress -. -take -( -) -. -expect -( -" -no -in -- -progress -search -to -finish -" -) -; -p -. -at -= -at -; -self -. -bytes_searched -+ -= -p -. -len -( -) -; -} -pub -fn -search_total_len -( -& -self -) -- -> -usize -{ -self -. -bytes_searched -+ -self -. -progress -. -as_ref -( -) -. -map_or -( -0 -| -p -| -p -. -len -( -) -) -} -pub -fn -clear_count -( -& -self -) -- -> -usize -{ -self -. -clear_count -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -const -ID_SIZE -: -usize -= -size_of -: -: -< -LazyStateID -> -( -) -; -const -STATE_SIZE -: -usize -= -size_of -: -: -< -State -> -( -) -; -self -. -trans -. -len -( -) -* -ID_SIZE -+ -self -. -starts -. -len -( -) -* -ID_SIZE -+ -self -. -states -. -len -( -) -* -STATE_SIZE -+ -self -. -states_to_id -. -len -( -) -* -( -STATE_SIZE -+ -ID_SIZE -) -+ -self -. -sparses -. -memory_usage -( -) -+ -self -. -stack -. -capacity -( -) -* -ID_SIZE -+ -self -. -scratch_state_builder -. -capacity -( -) -+ -self -. -memory_usage_state -} -} -# -[ -derive -( -Clone -Debug -) -] -struct -SearchProgress -{ -start -: -usize -at -: -usize -} -impl -SearchProgress -{ -fn -len -( -& -self -) -- -> -usize -{ -if -self -. -start -< -= -self -. -at -{ -self -. -at -- -self -. -start -} -else -{ -self -. -start -- -self -. -at -} -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -type -StateMap -= -std -: -: -collections -: -: -HashMap -< -State -LazyStateID -> -; -# -[ -cfg -( -not -( -feature -= -" -std -" -) -) -] -type -StateMap -= -alloc -: -: -collections -: -: -BTreeMap -< -State -LazyStateID -> -; -# -[ -derive -( -Debug -) -] -struct -Lazy -< -' -i -' -c -> -{ -dfa -: -& -' -i -DFA -cache -: -& -' -c -mut -Cache -} -impl -< -' -i -' -c -> -Lazy -< -' -i -' -c -> -{ -fn -new -( -dfa -: -& -' -i -DFA -cache -: -& -' -c -mut -Cache -) -- -> -Lazy -< -' -i -' -c -> -{ -Lazy -{ -dfa -cache -} -} -fn -as_ref -< -' -a -> -( -& -' -a -self -) -- -> -LazyRef -< -' -i -' -a -> -{ -LazyRef -: -: -new -( -self -. -dfa -self -. -cache -) -} -# -[ -cold -] -# -[ -inline -( -never -) -] -fn -cache_next_state -( -& -mut -self -mut -current -: -LazyStateID -unit -: -alphabet -: -: -Unit -) -- -> -Result -< -LazyStateID -CacheError -> -{ -let -stride2 -= -self -. -dfa -. -stride2 -( -) -; -let -empty_builder -= -self -. -get_state_builder -( -) -; -let -builder -= -determinize -: -: -next -( -self -. -dfa -. -get_nfa -( -) -self -. -dfa -. -get_config -( -) -. -get_match_kind -( -) -& -mut -self -. -cache -. -sparses -& -mut -self -. -cache -. -stack -& -self -. -cache -. -states -[ -current -. -as_usize_untagged -( -) -> -> -stride2 -] -unit -empty_builder -) -; -let -save_state -= -! -self -. -as_ref -( -) -. -state_builder_fits_in_cache -( -& -builder -) -; -if -save_state -{ -self -. -save_state -( -current -) -; -} -let -next -= -self -. -add_builder_state -( -builder -| -sid -| -sid -) -? -; -if -save_state -{ -current -= -self -. -saved_state_id -( -) -; -} -self -. -set_transition -( -current -unit -next -) -; -Ok -( -next -) -} -# -[ -cold -] -# -[ -inline -( -never -) -] -fn -cache_start_group -( -& -mut -self -input -: -& -Input -< -' -_ -> -start -: -Start -) -- -> -Result -< -LazyStateID -MatchError -> -{ -let -mode -= -input -. -get_anchored -( -) -; -let -nfa_start_id -= -match -mode -{ -Anchored -: -: -No -= -> -self -. -dfa -. -get_nfa -( -) -. -start_unanchored -( -) -Anchored -: -: -Yes -= -> -self -. -dfa -. -get_nfa -( -) -. -start_anchored -( -) -Anchored -: -: -Pattern -( -pid -) -= -> -{ -if -! -self -. -dfa -. -get_config -( -) -. -get_starts_for_each_pattern -( -) -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -mode -) -) -; -} -match -self -. -dfa -. -get_nfa -( -) -. -start_pattern -( -pid -) -{ -None -= -> -return -Ok -( -self -. -as_ref -( -) -. -dead_id -( -) -) -Some -( -sid -) -= -> -sid -} -} -} -; -let -id -= -self -. -cache_start_one -( -nfa_start_id -start -) -. -map_err -( -| -_ -| -MatchError -: -: -gave_up -( -input -. -start -( -) -) -) -? -; -self -. -set_start_state -( -input -start -id -) -; -Ok -( -id -) -} -fn -cache_start_one -( -& -mut -self -nfa_start_id -: -NFAStateID -start -: -Start -) -- -> -Result -< -LazyStateID -CacheError -> -{ -let -mut -builder_matches -= -self -. -get_state_builder -( -) -. -into_matches -( -) -; -determinize -: -: -set_lookbehind_from_start -( -self -. -dfa -. -get_nfa -( -) -& -start -& -mut -builder_matches -) -; -self -. -cache -. -sparses -. -set1 -. -clear -( -) -; -determinize -: -: -epsilon_closure -( -self -. -dfa -. -get_nfa -( -) -nfa_start_id -builder_matches -. -look_have -( -) -& -mut -self -. -cache -. -stack -& -mut -self -. -cache -. -sparses -. -set1 -) -; -let -mut -builder -= -builder_matches -. -into_nfa -( -) -; -determinize -: -: -add_nfa_states -( -& -self -. -dfa -. -get_nfa -( -) -& -self -. -cache -. -sparses -. -set1 -& -mut -builder -) -; -let -tag_starts -= -self -. -dfa -. -get_config -( -) -. -get_specialize_start_states -( -) -; -self -. -add_builder_state -( -builder -| -id -| -{ -if -tag_starts -{ -id -. -to_start -( -) -} -else -{ -id -} -} -) -} -fn -add_builder_state -( -& -mut -self -builder -: -StateBuilderNFA -idmap -: -impl -Fn -( -LazyStateID -) -- -> -LazyStateID -) -- -> -Result -< -LazyStateID -CacheError -> -{ -if -let -Some -( -& -cached_id -) -= -self -. -cache -. -states_to_id -. -get -( -builder -. -as_bytes -( -) -) -{ -self -. -put_state_builder -( -builder -) -; -return -Ok -( -cached_id -) -; -} -let -result -= -self -. -add_state -( -builder -. -to_state -( -) -idmap -) -; -self -. -put_state_builder -( -builder -) -; -result -} -fn -add_state -( -& -mut -self -state -: -State -idmap -: -impl -Fn -( -LazyStateID -) -- -> -LazyStateID -) -- -> -Result -< -LazyStateID -CacheError -> -{ -if -! -self -. -as_ref -( -) -. -state_fits_in_cache -( -& -state -) -{ -self -. -try_clear_cache -( -) -? -; -} -let -mut -id -= -idmap -( -self -. -next_state_id -( -) -? -) -; -if -state -. -is_match -( -) -{ -id -= -id -. -to_match -( -) -; -} -self -. -cache -. -trans -. -extend -( -iter -: -: -repeat -( -self -. -as_ref -( -) -. -unknown_id -( -) -) -. -take -( -self -. -dfa -. -stride -( -) -) -) -; -if -! -self -. -dfa -. -quitset -. -is_empty -( -) -& -& -! -self -. -as_ref -( -) -. -is_sentinel -( -id -) -{ -let -quit_id -= -self -. -as_ref -( -) -. -quit_id -( -) -; -for -b -in -self -. -dfa -. -quitset -. -iter -( -) -{ -self -. -set_transition -( -id -alphabet -: -: -Unit -: -: -u8 -( -b -) -quit_id -) -; -} -} -self -. -cache -. -memory_usage_state -+ -= -state -. -memory_usage -( -) -; -self -. -cache -. -states -. -push -( -state -. -clone -( -) -) -; -self -. -cache -. -states_to_id -. -insert -( -state -id -) -; -Ok -( -id -) -} -fn -next_state_id -( -& -mut -self -) -- -> -Result -< -LazyStateID -CacheError -> -{ -let -sid -= -match -LazyStateID -: -: -new -( -self -. -cache -. -trans -. -len -( -) -) -{ -Ok -( -sid -) -= -> -sid -Err -( -_ -) -= -> -{ -self -. -try_clear_cache -( -) -? -; -LazyStateID -: -: -new -( -self -. -cache -. -trans -. -len -( -) -) -. -unwrap -( -) -} -} -; -Ok -( -sid -) -} -fn -try_clear_cache -( -& -mut -self -) -- -> -Result -< -( -) -CacheError -> -{ -let -c -= -self -. -dfa -. -get_config -( -) -; -if -let -Some -( -min_count -) -= -c -. -get_minimum_cache_clear_count -( -) -{ -if -self -. -cache -. -clear_count -> -= -min_count -{ -if -let -Some -( -min_bytes_per -) -= -c -. -get_minimum_bytes_per_state -( -) -{ -let -len -= -self -. -cache -. -search_total_len -( -) -; -let -min_bytes -= -min_bytes_per -. -saturating_mul -( -self -. -cache -. -states -. -len -( -) -) -; -if -len -= -= -0 -{ -trace -! -( -" -number -of -bytes -searched -is -0 -but -\ -a -minimum -bytes -per -state -searched -( -{ -} -) -is -\ -enabled -maybe -Cache -: -: -search_update -\ -is -not -being -used -? -" -min_bytes_per -) -; -} -if -len -< -min_bytes -{ -trace -! -( -" -lazy -DFA -cache -has -been -cleared -{ -} -times -\ -which -exceeds -the -limit -of -{ -} -\ -AND -its -bytes -searched -per -state -is -less -\ -than -the -configured -minimum -of -{ -} -\ -therefore -lazy -DFA -is -giving -up -\ -( -bytes -searched -since -cache -clear -= -{ -} -\ -number -of -states -= -{ -} -) -" -self -. -cache -. -clear_count -min_count -min_bytes_per -len -self -. -cache -. -states -. -len -( -) -) -; -return -Err -( -CacheError -: -: -bad_efficiency -( -) -) -; -} -else -{ -trace -! -( -" -lazy -DFA -cache -has -been -cleared -{ -} -times -\ -which -exceeds -the -limit -of -{ -} -\ -AND -its -bytes -searched -per -state -is -greater -\ -than -the -configured -minimum -of -{ -} -\ -therefore -lazy -DFA -is -continuing -! -\ -( -bytes -searched -since -cache -clear -= -{ -} -\ -number -of -states -= -{ -} -) -" -self -. -cache -. -clear_count -min_count -min_bytes_per -len -self -. -cache -. -states -. -len -( -) -) -; -} -} -else -{ -trace -! -( -" -lazy -DFA -cache -has -been -cleared -{ -} -times -\ -which -exceeds -the -limit -of -{ -} -\ -since -there -is -no -configured -bytes -per -state -\ -minimum -lazy -DFA -is -giving -up -" -self -. -cache -. -clear_count -min_count -) -; -return -Err -( -CacheError -: -: -too_many_cache_clears -( -) -) -; -} -} -} -self -. -clear_cache -( -) -; -Ok -( -( -) -) -} -fn -reset_cache -( -& -mut -self -) -{ -self -. -cache -. -state_saver -= -StateSaver -: -: -none -( -) -; -self -. -clear_cache -( -) -; -self -. -cache -. -sparses -. -resize -( -self -. -dfa -. -get_nfa -( -) -. -states -( -) -. -len -( -) -) -; -self -. -cache -. -clear_count -= -0 -; -self -. -cache -. -progress -= -None -; -} -fn -clear_cache -( -& -mut -self -) -{ -self -. -cache -. -trans -. -clear -( -) -; -self -. -cache -. -starts -. -clear -( -) -; -self -. -cache -. -states -. -clear -( -) -; -self -. -cache -. -states_to_id -. -clear -( -) -; -self -. -cache -. -memory_usage_state -= -0 -; -self -. -cache -. -clear_count -+ -= -1 -; -self -. -cache -. -bytes_searched -= -0 -; -if -let -Some -( -ref -mut -progress -) -= -self -. -cache -. -progress -{ -progress -. -start -= -progress -. -at -; -} -trace -! -( -" -lazy -DFA -cache -has -been -cleared -( -count -: -{ -} -) -" -self -. -cache -. -clear_count -) -; -self -. -init_cache -( -) -; -if -let -Some -( -( -old_id -state -) -) -= -self -. -cache -. -state_saver -. -take_to_save -( -) -{ -assert -! -( -! -self -. -as_ref -( -) -. -is_sentinel -( -old_id -) -" -cannot -save -sentinel -state -" -) -; -let -new_id -= -self -. -add_state -( -state -| -id -| -{ -if -old_id -. -is_start -( -) -{ -id -. -to_start -( -) -} -else -{ -id -} -} -) -. -expect -( -" -adding -one -state -after -cache -clear -must -work -" -) -; -self -. -cache -. -state_saver -= -StateSaver -: -: -Saved -( -new_id -) -; -} -} -fn -init_cache -( -& -mut -self -) -{ -let -mut -starts_len -= -Start -: -: -len -( -) -. -checked_mul -( -2 -) -. -unwrap -( -) -; -if -self -. -dfa -. -get_config -( -) -. -get_starts_for_each_pattern -( -) -{ -starts_len -+ -= -Start -: -: -len -( -) -* -self -. -dfa -. -pattern_len -( -) -; -} -self -. -cache -. -starts -. -extend -( -iter -: -: -repeat -( -self -. -as_ref -( -) -. -unknown_id -( -) -) -. -take -( -starts_len -) -) -; -let -dead -= -State -: -: -dead -( -) -; -let -unk_id -= -self -. -add_state -( -dead -. -clone -( -) -| -id -| -id -. -to_unknown -( -) -) -. -unwrap -( -) -; -let -dead_id -= -self -. -add_state -( -dead -. -clone -( -) -| -id -| -id -. -to_dead -( -) -) -. -unwrap -( -) -; -let -quit_id -= -self -. -add_state -( -dead -. -clone -( -) -| -id -| -id -. -to_quit -( -) -) -. -unwrap -( -) -; -assert_eq -! -( -unk_id -self -. -as_ref -( -) -. -unknown_id -( -) -) -; -assert_eq -! -( -dead_id -self -. -as_ref -( -) -. -dead_id -( -) -) -; -assert_eq -! -( -quit_id -self -. -as_ref -( -) -. -quit_id -( -) -) -; -self -. -set_all_transitions -( -unk_id -unk_id -) -; -self -. -set_all_transitions -( -dead_id -dead_id -) -; -self -. -set_all_transitions -( -quit_id -quit_id -) -; -self -. -cache -. -states_to_id -. -insert -( -dead -dead_id -) -; -} -fn -save_state -( -& -mut -self -id -: -LazyStateID -) -{ -let -state -= -self -. -as_ref -( -) -. -get_cached_state -( -id -) -. -clone -( -) -; -self -. -cache -. -state_saver -= -StateSaver -: -: -ToSave -{ -id -state -} -; -} -fn -saved_state_id -( -& -mut -self -) -- -> -LazyStateID -{ -self -. -cache -. -state_saver -. -take_saved -( -) -. -expect -( -" -state -saver -does -not -have -saved -state -ID -" -) -} -fn -set_all_transitions -( -& -mut -self -from -: -LazyStateID -to -: -LazyStateID -) -{ -for -unit -in -self -. -dfa -. -classes -. -representatives -( -. -. -) -{ -self -. -set_transition -( -from -unit -to -) -; -} -} -fn -set_transition -( -& -mut -self -from -: -LazyStateID -unit -: -alphabet -: -: -Unit -to -: -LazyStateID -) -{ -assert -! -( -self -. -as_ref -( -) -. -is_valid -( -from -) -" -invalid -' -from -' -id -: -{ -: -? -} -" -from -) -; -assert -! -( -self -. -as_ref -( -) -. -is_valid -( -to -) -" -invalid -' -to -' -id -: -{ -: -? -} -" -to -) -; -let -offset -= -from -. -as_usize_untagged -( -) -+ -self -. -dfa -. -classes -. -get_by_unit -( -unit -) -; -self -. -cache -. -trans -[ -offset -] -= -to -; -} -fn -set_start_state -( -& -mut -self -input -: -& -Input -< -' -_ -> -start -: -Start -id -: -LazyStateID -) -{ -assert -! -( -self -. -as_ref -( -) -. -is_valid -( -id -) -) -; -let -start_index -= -start -. -as_usize -( -) -; -let -index -= -match -input -. -get_anchored -( -) -{ -Anchored -: -: -No -= -> -start_index -Anchored -: -: -Yes -= -> -Start -: -: -len -( -) -+ -start_index -Anchored -: -: -Pattern -( -pid -) -= -> -{ -assert -! -( -self -. -dfa -. -get_config -( -) -. -get_starts_for_each_pattern -( -) -" -attempted -to -search -for -a -specific -pattern -\ -without -enabling -starts_for_each_pattern -" -) -; -let -pid -= -pid -. -as_usize -( -) -; -( -2 -* -Start -: -: -len -( -) -) -+ -( -Start -: -: -len -( -) -* -pid -) -+ -start_index -} -} -; -self -. -cache -. -starts -[ -index -] -= -id -; -} -fn -get_state_builder -( -& -mut -self -) -- -> -StateBuilderEmpty -{ -core -: -: -mem -: -: -replace -( -& -mut -self -. -cache -. -scratch_state_builder -StateBuilderEmpty -: -: -new -( -) -) -} -fn -put_state_builder -( -& -mut -self -builder -: -StateBuilderNFA -) -{ -let -_ -= -core -: -: -mem -: -: -replace -( -& -mut -self -. -cache -. -scratch_state_builder -builder -. -clear -( -) -) -; -} -} -# -[ -derive -( -Debug -) -] -struct -LazyRef -< -' -i -' -c -> -{ -dfa -: -& -' -i -DFA -cache -: -& -' -c -Cache -} -impl -< -' -i -' -c -> -LazyRef -< -' -i -' -c -> -{ -fn -new -( -dfa -: -& -' -i -DFA -cache -: -& -' -c -Cache -) -- -> -LazyRef -< -' -i -' -c -> -{ -LazyRef -{ -dfa -cache -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -get_cached_start_id -( -& -self -input -: -& -Input -< -' -_ -> -start -: -Start -) -- -> -Result -< -LazyStateID -MatchError -> -{ -let -start_index -= -start -. -as_usize -( -) -; -let -mode -= -input -. -get_anchored -( -) -; -let -index -= -match -mode -{ -Anchored -: -: -No -= -> -start_index -Anchored -: -: -Yes -= -> -Start -: -: -len -( -) -+ -start_index -Anchored -: -: -Pattern -( -pid -) -= -> -{ -if -! -self -. -dfa -. -get_config -( -) -. -get_starts_for_each_pattern -( -) -{ -return -Err -( -MatchError -: -: -unsupported_anchored -( -mode -) -) -; -} -if -pid -. -as_usize -( -) -> -= -self -. -dfa -. -pattern_len -( -) -{ -return -Ok -( -self -. -dead_id -( -) -) -; -} -( -2 -* -Start -: -: -len -( -) -) -+ -( -Start -: -: -len -( -) -* -pid -. -as_usize -( -) -) -+ -start_index -} -} -; -Ok -( -self -. -cache -. -starts -[ -index -] -) -} -fn -get_cached_state -( -& -self -sid -: -LazyStateID -) -- -> -& -State -{ -let -index -= -sid -. -as_usize_untagged -( -) -> -> -self -. -dfa -. -stride2 -( -) -; -& -self -. -cache -. -states -[ -index -] -} -fn -is_sentinel -( -& -self -id -: -LazyStateID -) -- -> -bool -{ -id -= -= -self -. -unknown_id -( -) -| -| -id -= -= -self -. -dead_id -( -) -| -| -id -= -= -self -. -quit_id -( -) -} -fn -unknown_id -( -& -self -) -- -> -LazyStateID -{ -LazyStateID -: -: -new -( -0 -) -. -unwrap -( -) -. -to_unknown -( -) -} -fn -dead_id -( -& -self -) -- -> -LazyStateID -{ -LazyStateID -: -: -new -( -1 -< -< -self -. -dfa -. -stride2 -( -) -) -. -unwrap -( -) -. -to_dead -( -) -} -fn -quit_id -( -& -self -) -- -> -LazyStateID -{ -LazyStateID -: -: -new -( -2 -< -< -self -. -dfa -. -stride2 -( -) -) -. -unwrap -( -) -. -to_quit -( -) -} -fn -is_valid -( -& -self -id -: -LazyStateID -) -- -> -bool -{ -let -id -= -id -. -as_usize_untagged -( -) -; -id -< -self -. -cache -. -trans -. -len -( -) -& -& -id -% -self -. -dfa -. -stride -( -) -= -= -0 -} -fn -state_fits_in_cache -( -& -self -state -: -& -State -) -- -> -bool -{ -let -needed -= -self -. -cache -. -memory_usage -( -) -+ -self -. -memory_usage_for_one_more_state -( -state -. -memory_usage -( -) -) -; -trace -! -( -" -lazy -DFA -cache -capacity -check -: -{ -: -? -} -? -< -= -? -{ -: -? -} -" -needed -self -. -dfa -. -cache_capacity -) -; -needed -< -= -self -. -dfa -. -cache_capacity -} -fn -state_builder_fits_in_cache -( -& -self -state -: -& -StateBuilderNFA -) -- -> -bool -{ -let -needed -= -self -. -cache -. -memory_usage -( -) -+ -self -. -memory_usage_for_one_more_state -( -state -. -as_bytes -( -) -. -len -( -) -) -; -needed -< -= -self -. -dfa -. -cache_capacity -} -fn -memory_usage_for_one_more_state -( -& -self -state_heap_size -: -usize -) -- -> -usize -{ -const -ID_SIZE -: -usize -= -size_of -: -: -< -LazyStateID -> -( -) -; -const -STATE_SIZE -: -usize -= -size_of -: -: -< -State -> -( -) -; -self -. -dfa -. -stride -( -) -* -ID_SIZE -+ -STATE_SIZE -+ -( -STATE_SIZE -+ -ID_SIZE -) -+ -state_heap_size -} -} -# -[ -derive -( -Clone -Debug -) -] -enum -StateSaver -{ -None -ToSave -{ -id -: -LazyStateID -state -: -State -} -Saved -( -LazyStateID -) -} -impl -StateSaver -{ -fn -none -( -) -- -> -StateSaver -{ -StateSaver -: -: -None -} -fn -take_to_save -( -& -mut -self -) -- -> -Option -< -( -LazyStateID -State -) -> -{ -match -core -: -: -mem -: -: -replace -( -self -StateSaver -: -: -None -) -{ -StateSaver -: -: -None -| -StateSaver -: -: -Saved -( -_ -) -= -> -None -StateSaver -: -: -ToSave -{ -id -state -} -= -> -Some -( -( -id -state -) -) -} -} -fn -take_saved -( -& -mut -self -) -- -> -Option -< -LazyStateID -> -{ -match -core -: -: -mem -: -: -replace -( -self -StateSaver -: -: -None -) -{ -StateSaver -: -: -None -= -> -None -StateSaver -: -: -Saved -( -id -) -| -StateSaver -: -: -ToSave -{ -id -. -. -} -= -> -Some -( -id -) -} -} -} -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -Config -{ -match_kind -: -Option -< -MatchKind -> -pre -: -Option -< -Option -< -Prefilter -> -> -starts_for_each_pattern -: -Option -< -bool -> -byte_classes -: -Option -< -bool -> -unicode_word_boundary -: -Option -< -bool -> -quitset -: -Option -< -ByteSet -> -specialize_start_states -: -Option -< -bool -> -cache_capacity -: -Option -< -usize -> -skip_cache_capacity_check -: -Option -< -bool -> -minimum_cache_clear_count -: -Option -< -Option -< -usize -> -> -minimum_bytes_per_state -: -Option -< -Option -< -usize -> -> -} -impl -Config -{ -pub -fn -new -( -) -- -> -Config -{ -Config -: -: -default -( -) -} -pub -fn -match_kind -( -mut -self -kind -: -MatchKind -) -- -> -Config -{ -self -. -match_kind -= -Some -( -kind -) -; -self -} -pub -fn -prefilter -( -mut -self -pre -: -Option -< -Prefilter -> -) -- -> -Config -{ -self -. -pre -= -Some -( -pre -) -; -if -self -. -specialize_start_states -. -is_none -( -) -{ -self -. -specialize_start_states -= -Some -( -self -. -get_prefilter -( -) -. -is_some -( -) -) -; -} -self -} -pub -fn -starts_for_each_pattern -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -starts_for_each_pattern -= -Some -( -yes -) -; -self -} -pub -fn -byte_classes -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -byte_classes -= -Some -( -yes -) -; -self -} -pub -fn -unicode_word_boundary -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -unicode_word_boundary -= -Some -( -yes -) -; -self -} -pub -fn -quit -( -mut -self -byte -: -u8 -yes -: -bool -) -- -> -Config -{ -if -self -. -get_unicode_word_boundary -( -) -& -& -! -byte -. -is_ascii -( -) -& -& -! -yes -{ -panic -! -( -" -cannot -set -non -- -ASCII -byte -to -be -non -- -quit -when -\ -Unicode -word -boundaries -are -enabled -" -) -; -} -if -self -. -quitset -. -is_none -( -) -{ -self -. -quitset -= -Some -( -ByteSet -: -: -empty -( -) -) -; -} -if -yes -{ -self -. -quitset -. -as_mut -( -) -. -unwrap -( -) -. -add -( -byte -) -; -} -else -{ -self -. -quitset -. -as_mut -( -) -. -unwrap -( -) -. -remove -( -byte -) -; -} -self -} -pub -fn -specialize_start_states -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -specialize_start_states -= -Some -( -yes -) -; -self -} -pub -fn -cache_capacity -( -mut -self -bytes -: -usize -) -- -> -Config -{ -self -. -cache_capacity -= -Some -( -bytes -) -; -self -} -pub -fn -skip_cache_capacity_check -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -skip_cache_capacity_check -= -Some -( -yes -) -; -self -} -pub -fn -minimum_cache_clear_count -( -mut -self -min -: -Option -< -usize -> -) -- -> -Config -{ -self -. -minimum_cache_clear_count -= -Some -( -min -) -; -self -} -pub -fn -minimum_bytes_per_state -( -mut -self -min -: -Option -< -usize -> -) -- -> -Config -{ -self -. -minimum_bytes_per_state -= -Some -( -min -) -; -self -} -pub -fn -get_match_kind -( -& -self -) -- -> -MatchKind -{ -self -. -match_kind -. -unwrap_or -( -MatchKind -: -: -LeftmostFirst -) -} -pub -fn -get_prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -self -. -pre -. -as_ref -( -) -. -unwrap_or -( -& -None -) -. -as_ref -( -) -} -pub -fn -get_starts_for_each_pattern -( -& -self -) -- -> -bool -{ -self -. -starts_for_each_pattern -. -unwrap_or -( -false -) -} -pub -fn -get_byte_classes -( -& -self -) -- -> -bool -{ -self -. -byte_classes -. -unwrap_or -( -true -) -} -pub -fn -get_unicode_word_boundary -( -& -self -) -- -> -bool -{ -self -. -unicode_word_boundary -. -unwrap_or -( -false -) -} -pub -fn -get_quit -( -& -self -byte -: -u8 -) -- -> -bool -{ -self -. -quitset -. -map_or -( -false -| -q -| -q -. -contains -( -byte -) -) -} -pub -fn -get_specialize_start_states -( -& -self -) -- -> -bool -{ -self -. -specialize_start_states -. -unwrap_or -( -false -) -} -pub -fn -get_cache_capacity -( -& -self -) -- -> -usize -{ -self -. -cache_capacity -. -unwrap_or -( -2 -* -( -1 -< -< -20 -) -) -} -pub -fn -get_skip_cache_capacity_check -( -& -self -) -- -> -bool -{ -self -. -skip_cache_capacity_check -. -unwrap_or -( -false -) -} -pub -fn -get_minimum_cache_clear_count -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -minimum_cache_clear_count -. -unwrap_or -( -None -) -} -pub -fn -get_minimum_bytes_per_state -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -minimum_bytes_per_state -. -unwrap_or -( -None -) -} -pub -fn -get_minimum_cache_capacity -( -& -self -nfa -: -& -thompson -: -: -NFA -) -- -> -Result -< -usize -BuildError -> -{ -let -quitset -= -self -. -quit_set_from_nfa -( -nfa -) -? -; -let -classes -= -self -. -byte_classes_from_nfa -( -nfa -& -quitset -) -; -let -starts -= -self -. -get_starts_for_each_pattern -( -) -; -Ok -( -minimum_cache_capacity -( -nfa -& -classes -starts -) -) -} -fn -byte_classes_from_nfa -( -& -self -nfa -: -& -thompson -: -: -NFA -quit -: -& -ByteSet -) -- -> -ByteClasses -{ -if -! -self -. -get_byte_classes -( -) -{ -ByteClasses -: -: -singletons -( -) -} -else -{ -let -mut -set -= -nfa -. -byte_class_set -( -) -. -clone -( -) -; -if -! -quit -. -is_empty -( -) -{ -set -. -add_set -( -& -quit -) -; -} -set -. -byte_classes -( -) -} -} -fn -quit_set_from_nfa -( -& -self -nfa -: -& -thompson -: -: -NFA -) -- -> -Result -< -ByteSet -BuildError -> -{ -let -mut -quit -= -self -. -quitset -. -unwrap_or -( -ByteSet -: -: -empty -( -) -) -; -if -nfa -. -look_set_any -( -) -. -contains_word_unicode -( -) -{ -if -self -. -get_unicode_word_boundary -( -) -{ -for -b -in -0x80 -. -. -= -0xFF -{ -quit -. -add -( -b -) -; -} -} -else -{ -if -! -quit -. -contains_range -( -0x80 -0xFF -) -{ -return -Err -( -BuildError -: -: -unsupported_dfa_word_boundary_unicode -( -) -) -; -} -} -} -Ok -( -quit -) -} -fn -overwrite -( -& -self -o -: -Config -) -- -> -Config -{ -Config -{ -match_kind -: -o -. -match_kind -. -or -( -self -. -match_kind -) -pre -: -o -. -pre -. -or_else -( -| -| -self -. -pre -. -clone -( -) -) -starts_for_each_pattern -: -o -. -starts_for_each_pattern -. -or -( -self -. -starts_for_each_pattern -) -byte_classes -: -o -. -byte_classes -. -or -( -self -. -byte_classes -) -unicode_word_boundary -: -o -. -unicode_word_boundary -. -or -( -self -. -unicode_word_boundary -) -quitset -: -o -. -quitset -. -or -( -self -. -quitset -) -specialize_start_states -: -o -. -specialize_start_states -. -or -( -self -. -specialize_start_states -) -cache_capacity -: -o -. -cache_capacity -. -or -( -self -. -cache_capacity -) -skip_cache_capacity_check -: -o -. -skip_cache_capacity_check -. -or -( -self -. -skip_cache_capacity_check -) -minimum_cache_clear_count -: -o -. -minimum_cache_clear_count -. -or -( -self -. -minimum_cache_clear_count -) -minimum_bytes_per_state -: -o -. -minimum_bytes_per_state -. -or -( -self -. -minimum_bytes_per_state -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -config -: -Config -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -{ -config -: -Config -: -: -default -( -) -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -: -: -new -( -) -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build -( -& -self -pattern -: -& -str -) -- -> -Result -< -DFA -BuildError -> -{ -self -. -build_many -( -& -[ -pattern -] -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build_many -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -DFA -BuildError -> -{ -let -nfa -= -self -. -thompson -. -clone -( -) -. -configure -( -thompson -: -: -Config -: -: -new -( -) -. -which_captures -( -thompson -: -: -WhichCaptures -: -: -None -) -) -. -build_many -( -patterns -) -. -map_err -( -BuildError -: -: -nfa -) -? -; -self -. -build_from_nfa -( -nfa -) -} -pub -fn -build_from_nfa -( -& -self -nfa -: -thompson -: -: -NFA -) -- -> -Result -< -DFA -BuildError -> -{ -let -quitset -= -self -. -config -. -quit_set_from_nfa -( -& -nfa -) -? -; -let -classes -= -self -. -config -. -byte_classes_from_nfa -( -& -nfa -& -quitset -) -; -let -min_cache -= -minimum_cache_capacity -( -& -nfa -& -classes -self -. -config -. -get_starts_for_each_pattern -( -) -) -; -let -mut -cache_capacity -= -self -. -config -. -get_cache_capacity -( -) -; -if -cache_capacity -< -min_cache -{ -if -self -. -config -. -get_skip_cache_capacity_check -( -) -{ -debug -! -( -" -given -capacity -( -{ -} -) -is -too -small -\ -since -skip_cache_capacity_check -is -enabled -\ -setting -cache -capacity -to -minimum -( -{ -} -) -" -cache_capacity -min_cache -) -; -cache_capacity -= -min_cache -; -} -else -{ -return -Err -( -BuildError -: -: -insufficient_cache_capacity -( -min_cache -cache_capacity -) -) -; -} -} -if -let -Err -( -err -) -= -minimum_lazy_state_id -( -& -classes -) -{ -return -Err -( -BuildError -: -: -insufficient_state_id_capacity -( -err -) -) -; -} -let -stride2 -= -classes -. -stride2 -( -) -; -let -start_map -= -StartByteMap -: -: -new -( -nfa -. -look_matcher -( -) -) -; -Ok -( -DFA -{ -config -: -self -. -config -. -clone -( -) -nfa -stride2 -start_map -classes -quitset -cache_capacity -} -) -} -pub -fn -configure -( -& -mut -self -config -: -Config -) -- -> -& -mut -Builder -{ -self -. -config -= -self -. -config -. -overwrite -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -syntax -( -& -mut -self -config -: -crate -: -: -util -: -: -syntax -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -syntax -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -thompson -( -& -mut -self -config -: -thompson -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -configure -( -config -) -; -self -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -OverlappingState -{ -pub -( -crate -) -mat -: -Option -< -HalfMatch -> -pub -( -crate -) -id -: -Option -< -LazyStateID -> -pub -( -crate -) -at -: -usize -pub -( -crate -) -next_match_index -: -Option -< -usize -> -pub -( -crate -) -rev_eoi -: -bool -} -impl -OverlappingState -{ -pub -fn -start -( -) -- -> -OverlappingState -{ -OverlappingState -{ -mat -: -None -id -: -None -at -: -0 -next_match_index -: -None -rev_eoi -: -false -} -} -pub -fn -get_match -( -& -self -) -- -> -Option -< -HalfMatch -> -{ -self -. -mat -} -} -# -[ -cold -] -# -[ -inline -( -never -) -] -fn -skip_empty_utf8_splits_overlapping -< -F -> -( -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -mut -search -: -F -) -- -> -Result -< -( -) -MatchError -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -let -mut -hm -= -match -state -. -get_match -( -) -{ -None -= -> -return -Ok -( -( -) -) -Some -( -hm -) -= -> -hm -} -; -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -if -! -input -. -is_char_boundary -( -hm -. -offset -( -) -) -{ -state -. -mat -= -None -; -} -return -Ok -( -( -) -) -; -} -while -! -input -. -is_char_boundary -( -hm -. -offset -( -) -) -{ -search -( -input -state -) -? -; -hm -= -match -state -. -get_match -( -) -{ -None -= -> -return -Ok -( -( -) -) -Some -( -hm -) -= -> -hm -} -; -} -Ok -( -( -) -) -} -fn -minimum_lazy_state_id -( -classes -: -& -ByteClasses -) -- -> -Result -< -LazyStateID -LazyStateIDError -> -{ -let -stride -= -1 -< -< -classes -. -stride2 -( -) -; -let -min_state_index -= -MIN_STATES -. -checked_sub -( -1 -) -. -unwrap -( -) -; -LazyStateID -: -: -new -( -min_state_index -* -stride -) -} -fn -minimum_cache_capacity -( -nfa -: -& -thompson -: -: -NFA -classes -: -& -ByteClasses -starts_for_each_pattern -: -bool -) -- -> -usize -{ -const -ID_SIZE -: -usize -= -size_of -: -: -< -LazyStateID -> -( -) -; -const -STATE_SIZE -: -usize -= -size_of -: -: -< -State -> -( -) -; -let -stride -= -1 -< -< -classes -. -stride2 -( -) -; -let -states_len -= -nfa -. -states -( -) -. -len -( -) -; -let -sparses -= -2 -* -states_len -* -NFAStateID -: -: -SIZE -; -let -trans -= -MIN_STATES -* -stride -* -ID_SIZE -; -let -mut -starts -= -Start -: -: -len -( -) -* -ID_SIZE -; -if -starts_for_each_pattern -{ -starts -+ -= -( -Start -: -: -len -( -) -* -nfa -. -pattern_len -( -) -) -* -ID_SIZE -; -} -assert -! -( -MIN_STATES -> -= -5 -" -minimum -number -of -states -has -to -be -at -least -5 -" -) -; -let -non_sentinel -= -MIN_STATES -. -checked_sub -( -SENTINEL_STATES -) -. -unwrap -( -) -; -let -dead_state_size -= -State -: -: -dead -( -) -. -memory_usage -( -) -; -let -max_state_size -= -5 -+ -4 -+ -( -nfa -. -pattern_len -( -) -* -4 -) -+ -( -states_len -* -5 -) -; -let -states -= -( -SENTINEL_STATES -* -( -STATE_SIZE -+ -dead_state_size -) -) -+ -( -non_sentinel -* -( -STATE_SIZE -+ -max_state_size -) -) -; -let -states_to_sid -= -( -MIN_STATES -* -STATE_SIZE -) -+ -( -MIN_STATES -* -ID_SIZE -) -; -let -stack -= -states_len -* -NFAStateID -: -: -SIZE -; -let -scratch_state_builder -= -max_state_size -; -trans -+ -starts -+ -states -+ -states_to_sid -+ -sparses -+ -stack -+ -scratch_state_builder -} -# -[ -cfg -( -all -( -test -feature -= -" -syntax -" -) -) -] -mod -tests -{ -use -super -: -: -* -; -# -[ -test -] -fn -heuristic_unicode_reverse -( -) -{ -let -dfa -= -DFA -: -: -builder -( -) -. -configure -( -DFA -: -: -config -( -) -. -unicode_word_boundary -( -true -) -) -. -thompson -( -thompson -: -: -Config -: -: -new -( -) -. -reverse -( -true -) -) -. -build -( -r -" -\ -b -[ -0 -- -9 -] -+ -\ -b -" -) -. -unwrap -( -) -; -let -mut -cache -= -dfa -. -create_cache -( -) -; -let -input -= -Input -: -: -new -( -" -123 -" -) -. -range -( -2 -. -. -) -; -let -expected -= -MatchError -: -: -quit -( -0xB2 -1 -) -; -let -got -= -dfa -. -try_search_rev -( -& -mut -cache -& -input -) -; -assert_eq -! -( -Err -( -expected -) -got -) -; -let -input -= -Input -: -: -new -( -" -123 -" -) -. -range -( -. -. -3 -) -; -let -expected -= -MatchError -: -: -quit -( -0xCE -3 -) -; -let -got -= -dfa -. -try_search_rev -( -& -mut -cache -& -input -) -; -assert_eq -! -( -Err -( -expected -) -got -) -; -} -} diff --git a/third_party/rust/regex-automata/src/hybrid/error.rs b/third_party/rust/regex-automata/src/hybrid/error.rs deleted file mode 100644 index 0de2c32e88c0b..0000000000000 --- a/third_party/rust/regex-automata/src/hybrid/error.rs +++ /dev/null @@ -1,629 +0,0 @@ -use -crate -: -: -{ -hybrid -: -: -id -: -: -LazyStateIDError -nfa -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -BuildError -{ -kind -: -BuildErrorKind -} -# -[ -derive -( -Clone -Debug -) -] -enum -BuildErrorKind -{ -NFA -( -nfa -: -: -thompson -: -: -BuildError -) -InsufficientCacheCapacity -{ -minimum -: -usize -given -: -usize -} -InsufficientStateIDCapacity -{ -err -: -LazyStateIDError -} -Unsupported -( -& -' -static -str -) -} -impl -BuildError -{ -pub -( -crate -) -fn -nfa -( -err -: -nfa -: -: -thompson -: -: -BuildError -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -NFA -( -err -) -} -} -pub -( -crate -) -fn -insufficient_cache_capacity -( -minimum -: -usize -given -: -usize -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -InsufficientCacheCapacity -{ -minimum -given -} -} -} -pub -( -crate -) -fn -insufficient_state_id_capacity -( -err -: -LazyStateIDError -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -InsufficientStateIDCapacity -{ -err -} -} -} -pub -( -crate -) -fn -unsupported_dfa_word_boundary_unicode -( -) -- -> -BuildError -{ -let -msg -= -" -cannot -build -lazy -DFAs -for -regexes -with -Unicode -word -\ -boundaries -; -switch -to -ASCII -word -boundaries -or -\ -heuristically -enable -Unicode -word -boundaries -or -use -a -\ -different -regex -engine -" -; -BuildError -{ -kind -: -BuildErrorKind -: -: -Unsupported -( -msg -) -} -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -BuildError -{ -fn -source -( -& -self -) -- -> -Option -< -& -( -dyn -std -: -: -error -: -: -Error -+ -' -static -) -> -{ -match -self -. -kind -{ -BuildErrorKind -: -: -NFA -( -ref -err -) -= -> -Some -( -err -) -_ -= -> -None -} -} -} -impl -core -: -: -fmt -: -: -Display -for -BuildError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -match -self -. -kind -{ -BuildErrorKind -: -: -NFA -( -_ -) -= -> -write -! -( -f -" -error -building -NFA -" -) -BuildErrorKind -: -: -InsufficientCacheCapacity -{ -minimum -given -} -= -> -{ -write -! -( -f -" -given -cache -capacity -( -{ -} -) -is -smaller -than -\ -minimum -required -( -{ -} -) -" -given -minimum -) -} -BuildErrorKind -: -: -InsufficientStateIDCapacity -{ -ref -err -} -= -> -{ -err -. -fmt -( -f -) -} -BuildErrorKind -: -: -Unsupported -( -ref -msg -) -= -> -{ -write -! -( -f -" -unsupported -regex -feature -for -DFAs -: -{ -} -" -msg -) -} -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -CacheError -( -( -) -) -; -impl -CacheError -{ -pub -( -crate -) -fn -too_many_cache_clears -( -) -- -> -CacheError -{ -CacheError -( -( -) -) -} -pub -( -crate -) -fn -bad_efficiency -( -) -- -> -CacheError -{ -CacheError -( -( -) -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -CacheError -{ -fn -source -( -& -self -) -- -> -Option -< -& -( -dyn -std -: -: -error -: -: -Error -+ -' -static -) -> -{ -None -} -} -impl -core -: -: -fmt -: -: -Display -for -CacheError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -lazy -DFA -cache -has -been -cleared -too -many -times -" -) -} -} diff --git a/third_party/rust/regex-automata/src/hybrid/id.rs b/third_party/rust/regex-automata/src/hybrid/id.rs deleted file mode 100644 index 63dd7cca9b055..0000000000000 --- a/third_party/rust/regex-automata/src/hybrid/id.rs +++ /dev/null @@ -1,798 +0,0 @@ -# -[ -derive -( -Clone -Copy -Debug -Default -Eq -Hash -PartialEq -PartialOrd -Ord -) -] -pub -struct -LazyStateID -( -u32 -) -; -impl -LazyStateID -{ -# -[ -cfg -( -any -( -target_pointer_width -= -" -32 -" -target_pointer_width -= -" -64 -" -) -) -] -const -MAX_BIT -: -usize -= -31 -; -# -[ -cfg -( -target_pointer_width -= -" -16 -" -) -] -const -MAX_BIT -: -usize -= -15 -; -const -MASK_UNKNOWN -: -usize -= -1 -< -< -( -LazyStateID -: -: -MAX_BIT -) -; -const -MASK_DEAD -: -usize -= -1 -< -< -( -LazyStateID -: -: -MAX_BIT -- -1 -) -; -const -MASK_QUIT -: -usize -= -1 -< -< -( -LazyStateID -: -: -MAX_BIT -- -2 -) -; -const -MASK_START -: -usize -= -1 -< -< -( -LazyStateID -: -: -MAX_BIT -- -3 -) -; -const -MASK_MATCH -: -usize -= -1 -< -< -( -LazyStateID -: -: -MAX_BIT -- -4 -) -; -const -MAX -: -usize -= -LazyStateID -: -: -MASK_MATCH -- -1 -; -# -[ -inline -] -pub -( -crate -) -fn -new -( -id -: -usize -) -- -> -Result -< -LazyStateID -LazyStateIDError -> -{ -if -id -> -LazyStateID -: -: -MAX -{ -let -attempted -= -u64 -: -: -try_from -( -id -) -. -unwrap -( -) -; -return -Err -( -LazyStateIDError -{ -attempted -} -) -; -} -Ok -( -LazyStateID -: -: -new_unchecked -( -id -) -) -} -# -[ -inline -] -const -fn -new_unchecked -( -id -: -usize -) -- -> -LazyStateID -{ -LazyStateID -( -id -as -u32 -) -} -# -[ -inline -] -pub -( -crate -) -fn -as_usize_untagged -( -& -self -) -- -> -usize -{ -self -. -as_usize_unchecked -( -) -& -LazyStateID -: -: -MAX -} -# -[ -inline -] -pub -( -crate -) -const -fn -as_usize_unchecked -( -& -self -) -- -> -usize -{ -self -. -0 -as -usize -} -# -[ -inline -] -pub -( -crate -) -const -fn -to_unknown -( -& -self -) -- -> -LazyStateID -{ -LazyStateID -: -: -new_unchecked -( -self -. -as_usize_unchecked -( -) -| -LazyStateID -: -: -MASK_UNKNOWN -) -} -# -[ -inline -] -pub -( -crate -) -const -fn -to_dead -( -& -self -) -- -> -LazyStateID -{ -LazyStateID -: -: -new_unchecked -( -self -. -as_usize_unchecked -( -) -| -LazyStateID -: -: -MASK_DEAD -) -} -# -[ -inline -] -pub -( -crate -) -const -fn -to_quit -( -& -self -) -- -> -LazyStateID -{ -LazyStateID -: -: -new_unchecked -( -self -. -as_usize_unchecked -( -) -| -LazyStateID -: -: -MASK_QUIT -) -} -# -[ -inline -] -pub -( -crate -) -const -fn -to_start -( -& -self -) -- -> -LazyStateID -{ -LazyStateID -: -: -new_unchecked -( -self -. -as_usize_unchecked -( -) -| -LazyStateID -: -: -MASK_START -) -} -# -[ -inline -] -pub -( -crate -) -const -fn -to_match -( -& -self -) -- -> -LazyStateID -{ -LazyStateID -: -: -new_unchecked -( -self -. -as_usize_unchecked -( -) -| -LazyStateID -: -: -MASK_MATCH -) -} -# -[ -inline -] -pub -const -fn -is_tagged -( -& -self -) -- -> -bool -{ -self -. -as_usize_unchecked -( -) -> -LazyStateID -: -: -MAX -} -# -[ -inline -] -pub -const -fn -is_unknown -( -& -self -) -- -> -bool -{ -self -. -as_usize_unchecked -( -) -& -LazyStateID -: -: -MASK_UNKNOWN -> -0 -} -# -[ -inline -] -pub -const -fn -is_dead -( -& -self -) -- -> -bool -{ -self -. -as_usize_unchecked -( -) -& -LazyStateID -: -: -MASK_DEAD -> -0 -} -# -[ -inline -] -pub -const -fn -is_quit -( -& -self -) -- -> -bool -{ -self -. -as_usize_unchecked -( -) -& -LazyStateID -: -: -MASK_QUIT -> -0 -} -# -[ -inline -] -pub -const -fn -is_start -( -& -self -) -- -> -bool -{ -self -. -as_usize_unchecked -( -) -& -LazyStateID -: -: -MASK_START -> -0 -} -# -[ -inline -] -pub -const -fn -is_match -( -& -self -) -- -> -bool -{ -self -. -as_usize_unchecked -( -) -& -LazyStateID -: -: -MASK_MATCH -> -0 -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -( -crate -) -struct -LazyStateIDError -{ -attempted -: -u64 -} -impl -LazyStateIDError -{ -pub -( -crate -) -fn -attempted -( -& -self -) -- -> -u64 -{ -self -. -attempted -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -LazyStateIDError -{ -} -impl -core -: -: -fmt -: -: -Display -for -LazyStateIDError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -failed -to -create -LazyStateID -from -{ -: -? -} -which -exceeds -{ -: -? -} -" -self -. -attempted -( -) -LazyStateID -: -: -MAX -) -} -} diff --git a/third_party/rust/regex-automata/src/hybrid/mod.rs b/third_party/rust/regex-automata/src/hybrid/mod.rs deleted file mode 100644 index 2422309d04d25..0000000000000 --- a/third_party/rust/regex-automata/src/hybrid/mod.rs +++ /dev/null @@ -1,36 +0,0 @@ -pub -use -self -: -: -{ -error -: -: -{ -BuildError -CacheError -} -id -: -: -LazyStateID -} -; -pub -mod -dfa -; -mod -error -; -mod -id -; -pub -mod -regex -; -mod -search -; diff --git a/third_party/rust/regex-automata/src/hybrid/regex.rs b/third_party/rust/regex-automata/src/hybrid/regex.rs deleted file mode 100644 index 8750c64aabdf3..0000000000000 --- a/third_party/rust/regex-automata/src/hybrid/regex.rs +++ /dev/null @@ -1,1715 +0,0 @@ -use -crate -: -: -{ -hybrid -: -: -{ -dfa -: -: -{ -self -DFA -} -error -: -: -BuildError -} -nfa -: -: -thompson -util -: -: -{ -iter -search -: -: -{ -Anchored -Input -Match -MatchError -MatchKind -} -} -} -; -# -[ -derive -( -Debug -) -] -pub -struct -Regex -{ -forward -: -DFA -reverse -: -DFA -} -impl -Regex -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new -( -pattern -: -& -str -) -- -> -Result -< -Regex -BuildError -> -{ -Regex -: -: -builder -( -) -. -build -( -pattern -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -Regex -BuildError -> -{ -Regex -: -: -builder -( -) -. -build_many -( -patterns -) -} -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -pub -fn -create_cache -( -& -self -) -- -> -Cache -{ -Cache -: -: -new -( -self -) -} -pub -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -{ -self -. -forward -( -) -. -reset_cache -( -& -mut -cache -. -forward -) -; -self -. -reverse -( -) -. -reset_cache -( -& -mut -cache -. -reverse -) -; -} -} -impl -Regex -{ -# -[ -inline -] -pub -fn -is_match -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -) -- -> -bool -{ -self -. -forward -( -) -. -try_search_fwd -( -& -mut -cache -. -forward -& -input -. -into -( -) -. -earliest -( -true -) -) -. -unwrap -( -) -. -is_some -( -) -} -# -[ -inline -] -pub -fn -find -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -) -- -> -Option -< -Match -> -{ -self -. -try_search -( -cache -& -input -. -into -( -) -) -. -unwrap -( -) -} -# -[ -inline -] -pub -fn -find_iter -< -' -r -' -c -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -cache -: -& -' -c -mut -Cache -input -: -I -) -- -> -FindMatches -< -' -r -' -c -' -h -> -{ -let -it -= -iter -: -: -Searcher -: -: -new -( -input -. -into -( -) -) -; -FindMatches -{ -re -: -self -cache -it -} -} -} -impl -Regex -{ -# -[ -inline -] -pub -fn -try_search -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -let -( -fcache -rcache -) -= -( -& -mut -cache -. -forward -& -mut -cache -. -reverse -) -; -let -end -= -match -self -. -forward -( -) -. -try_search_fwd -( -fcache -input -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -end -) -= -> -end -} -; -if -input -. -start -( -) -= -= -end -. -offset -( -) -{ -return -Ok -( -Some -( -Match -: -: -new -( -end -. -pattern -( -) -end -. -offset -( -) -. -. -end -. -offset -( -) -) -) -) -; -} -if -self -. -is_anchored -( -input -) -{ -return -Ok -( -Some -( -Match -: -: -new -( -end -. -pattern -( -) -input -. -start -( -) -. -. -end -. -offset -( -) -) -) -) -; -} -let -revsearch -= -input -. -clone -( -) -. -span -( -input -. -start -( -) -. -. -end -. -offset -( -) -) -. -anchored -( -Anchored -: -: -Yes -) -. -earliest -( -false -) -; -let -start -= -self -. -reverse -( -) -. -try_search_rev -( -rcache -& -revsearch -) -? -. -expect -( -" -reverse -search -must -match -if -forward -search -does -" -) -; -debug_assert_eq -! -( -start -. -pattern -( -) -end -. -pattern -( -) -" -forward -and -reverse -search -must -match -same -pattern -" -) -; -debug_assert -! -( -start -. -offset -( -) -< -= -end -. -offset -( -) -) -; -Ok -( -Some -( -Match -: -: -new -( -end -. -pattern -( -) -start -. -offset -( -) -. -. -end -. -offset -( -) -) -) -) -} -fn -is_anchored -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -match -input -. -get_anchored -( -) -{ -Anchored -: -: -No -= -> -{ -self -. -forward -( -) -. -get_nfa -( -) -. -is_always_start_anchored -( -) -} -Anchored -: -: -Yes -| -Anchored -: -: -Pattern -( -_ -) -= -> -true -} -} -} -impl -Regex -{ -pub -fn -forward -( -& -self -) -- -> -& -DFA -{ -& -self -. -forward -} -pub -fn -reverse -( -& -self -) -- -> -& -DFA -{ -& -self -. -reverse -} -pub -fn -pattern_len -( -& -self -) -- -> -usize -{ -assert_eq -! -( -self -. -forward -( -) -. -pattern_len -( -) -self -. -reverse -( -) -. -pattern_len -( -) -) -; -self -. -forward -( -) -. -pattern_len -( -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -FindMatches -< -' -r -' -c -' -h -> -{ -re -: -& -' -r -Regex -cache -: -& -' -c -mut -Cache -it -: -iter -: -: -Searcher -< -' -h -> -} -impl -< -' -r -' -c -' -h -> -Iterator -for -FindMatches -< -' -r -' -c -' -h -> -{ -type -Item -= -Match -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Match -> -{ -let -FindMatches -{ -re -ref -mut -cache -ref -mut -it -} -= -* -self -; -it -. -advance -( -| -input -| -re -. -try_search -( -cache -input -) -) -} -} -# -[ -derive -( -Debug -Clone -) -] -pub -struct -Cache -{ -forward -: -dfa -: -: -Cache -reverse -: -dfa -: -: -Cache -} -impl -Cache -{ -pub -fn -new -( -re -: -& -Regex -) -- -> -Cache -{ -let -forward -= -dfa -: -: -Cache -: -: -new -( -re -. -forward -( -) -) -; -let -reverse -= -dfa -: -: -Cache -: -: -new -( -re -. -reverse -( -) -) -; -Cache -{ -forward -reverse -} -} -pub -fn -reset -( -& -mut -self -re -: -& -Regex -) -{ -self -. -forward -. -reset -( -re -. -forward -( -) -) -; -self -. -reverse -. -reset -( -re -. -reverse -( -) -) -; -} -pub -fn -forward -( -& -mut -self -) -- -> -& -dfa -: -: -Cache -{ -& -self -. -forward -} -pub -fn -reverse -( -& -mut -self -) -- -> -& -dfa -: -: -Cache -{ -& -self -. -reverse -} -pub -fn -forward_mut -( -& -mut -self -) -- -> -& -mut -dfa -: -: -Cache -{ -& -mut -self -. -forward -} -pub -fn -reverse_mut -( -& -mut -self -) -- -> -& -mut -dfa -: -: -Cache -{ -& -mut -self -. -reverse -} -pub -fn -as_parts -( -& -self -) -- -> -( -& -dfa -: -: -Cache -& -dfa -: -: -Cache -) -{ -( -& -self -. -forward -& -self -. -reverse -) -} -pub -fn -as_parts_mut -( -& -mut -self -) -- -> -( -& -mut -dfa -: -: -Cache -& -mut -dfa -: -: -Cache -) -{ -( -& -mut -self -. -forward -& -mut -self -. -reverse -) -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -forward -. -memory_usage -( -) -+ -self -. -reverse -. -memory_usage -( -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -dfa -: -dfa -: -: -Builder -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -{ -dfa -: -DFA -: -: -builder -( -) -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build -( -& -self -pattern -: -& -str -) -- -> -Result -< -Regex -BuildError -> -{ -self -. -build_many -( -& -[ -pattern -] -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build_many -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -Regex -BuildError -> -{ -let -forward -= -self -. -dfa -. -build_many -( -patterns -) -? -; -let -reverse -= -self -. -dfa -. -clone -( -) -. -configure -( -DFA -: -: -config -( -) -. -prefilter -( -None -) -. -specialize_start_states -( -false -) -. -match_kind -( -MatchKind -: -: -All -) -) -. -thompson -( -thompson -: -: -Config -: -: -new -( -) -. -reverse -( -true -) -) -. -build_many -( -patterns -) -? -; -Ok -( -self -. -build_from_dfas -( -forward -reverse -) -) -} -pub -fn -build_from_dfas -( -& -self -forward -: -DFA -reverse -: -DFA -) -- -> -Regex -{ -Regex -{ -forward -reverse -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -syntax -( -& -mut -self -config -: -crate -: -: -util -: -: -syntax -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -dfa -. -syntax -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -thompson -( -& -mut -self -config -: -thompson -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -dfa -. -thompson -( -config -) -; -self -} -pub -fn -dfa -( -& -mut -self -config -: -dfa -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -dfa -. -configure -( -config -) -; -self -} -} -impl -Default -for -Builder -{ -fn -default -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -} diff --git a/third_party/rust/regex-automata/src/hybrid/search.rs b/third_party/rust/regex-automata/src/hybrid/search.rs deleted file mode 100644 index 830f5a856f4d3..0000000000000 --- a/third_party/rust/regex-automata/src/hybrid/search.rs +++ /dev/null @@ -1,3880 +0,0 @@ -use -crate -: -: -{ -hybrid -: -: -{ -dfa -: -: -{ -Cache -OverlappingState -DFA -} -id -: -: -LazyStateID -} -util -: -: -{ -prefilter -: -: -Prefilter -search -: -: -{ -HalfMatch -Input -MatchError -Span -} -} -} -; -# -[ -inline -( -never -) -] -pub -( -crate -) -fn -find_fwd -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -if -input -. -is_done -( -) -{ -return -Ok -( -None -) -; -} -let -pre -= -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -None -} -else -{ -dfa -. -get_config -( -) -. -get_prefilter -( -) -} -; -if -pre -. -is_some -( -) -{ -if -input -. -get_earliest -( -) -{ -find_fwd_imp -( -dfa -cache -input -pre -true -) -} -else -{ -find_fwd_imp -( -dfa -cache -input -pre -false -) -} -} -else -{ -if -input -. -get_earliest -( -) -{ -find_fwd_imp -( -dfa -cache -input -None -true -) -} -else -{ -find_fwd_imp -( -dfa -cache -input -None -false -) -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -find_fwd_imp -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -pre -: -Option -< -& -' -_ -Prefilter -> -earliest -: -bool -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -universal_start -= -dfa -. -get_nfa -( -) -. -look_set_prefix_any -( -) -. -is_empty -( -) -; -let -mut -mat -= -None -; -let -mut -sid -= -init_fwd -( -dfa -cache -input -) -? -; -let -mut -at -= -input -. -start -( -) -; -macro_rules -! -next_unchecked -{ -( -sid -: -expr -at -: -expr -) -= -> -{ -{ -let -byte -= -* -input -. -haystack -( -) -. -get_unchecked -( -at -) -; -dfa -. -next_state_untagged_unchecked -( -cache -sid -byte -) -} -} -; -} -if -let -Some -( -ref -pre -) -= -pre -{ -let -span -= -Span -: -: -from -( -at -. -. -input -. -end -( -) -) -; -match -pre -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -return -Ok -( -mat -) -Some -( -ref -span -) -= -> -{ -at -= -span -. -start -; -if -! -universal_start -{ -sid -= -prefilter_restart -( -dfa -cache -& -input -at -) -? -; -} -} -} -} -cache -. -search_start -( -at -) -; -while -at -< -input -. -end -( -) -{ -if -sid -. -is_tagged -( -) -{ -cache -. -search_update -( -at -) -; -sid -= -dfa -. -next_state -( -cache -sid -input -. -haystack -( -) -[ -at -] -) -. -map_err -( -| -_ -| -gave_up -( -at -) -) -? -; -} -else -{ -let -mut -prev_sid -= -sid -; -while -at -< -input -. -end -( -) -{ -prev_sid -= -unsafe -{ -next_unchecked -! -( -sid -at -) -} -; -if -prev_sid -. -is_tagged -( -) -| -| -at -+ -3 -> -= -input -. -end -( -) -{ -core -: -: -mem -: -: -swap -( -& -mut -prev_sid -& -mut -sid -) -; -break -; -} -at -+ -= -1 -; -sid -= -unsafe -{ -next_unchecked -! -( -prev_sid -at -) -} -; -if -sid -. -is_tagged -( -) -{ -break -; -} -at -+ -= -1 -; -prev_sid -= -unsafe -{ -next_unchecked -! -( -sid -at -) -} -; -if -prev_sid -. -is_tagged -( -) -{ -core -: -: -mem -: -: -swap -( -& -mut -prev_sid -& -mut -sid -) -; -break -; -} -at -+ -= -1 -; -sid -= -unsafe -{ -next_unchecked -! -( -prev_sid -at -) -} -; -if -sid -. -is_tagged -( -) -{ -break -; -} -at -+ -= -1 -; -} -if -sid -. -is_unknown -( -) -{ -cache -. -search_update -( -at -) -; -sid -= -dfa -. -next_state -( -cache -prev_sid -input -. -haystack -( -) -[ -at -] -) -. -map_err -( -| -_ -| -gave_up -( -at -) -) -? -; -} -} -if -sid -. -is_tagged -( -) -{ -if -sid -. -is_start -( -) -{ -if -let -Some -( -ref -pre -) -= -pre -{ -let -span -= -Span -: -: -from -( -at -. -. -input -. -end -( -) -) -; -match -pre -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -{ -cache -. -search_finish -( -span -. -end -) -; -return -Ok -( -mat -) -; -} -Some -( -ref -span -) -= -> -{ -if -span -. -start -> -at -{ -at -= -span -. -start -; -if -! -universal_start -{ -sid -= -prefilter_restart -( -dfa -cache -& -input -at -) -? -; -} -continue -; -} -} -} -} -} -else -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -sid -0 -) -; -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -at -) -) -; -if -earliest -{ -cache -. -search_finish -( -at -) -; -return -Ok -( -mat -) -; -} -} -else -if -sid -. -is_dead -( -) -{ -cache -. -search_finish -( -at -) -; -return -Ok -( -mat -) -; -} -else -if -sid -. -is_quit -( -) -{ -cache -. -search_finish -( -at -) -; -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -at -] -at -) -) -; -} -else -{ -debug_assert -! -( -sid -. -is_unknown -( -) -) -; -unreachable -! -( -" -sid -being -unknown -is -a -bug -" -) -; -} -} -at -+ -= -1 -; -} -eoi_fwd -( -dfa -cache -input -& -mut -sid -& -mut -mat -) -? -; -cache -. -search_finish -( -input -. -end -( -) -) -; -Ok -( -mat -) -} -# -[ -inline -( -never -) -] -pub -( -crate -) -fn -find_rev -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -if -input -. -is_done -( -) -{ -return -Ok -( -None -) -; -} -if -input -. -get_earliest -( -) -{ -find_rev_imp -( -dfa -cache -input -true -) -} -else -{ -find_rev_imp -( -dfa -cache -input -false -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -find_rev_imp -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -earliest -: -bool -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -mut -mat -= -None -; -let -mut -sid -= -init_rev -( -dfa -cache -input -) -? -; -if -input -. -start -( -) -= -= -input -. -end -( -) -{ -eoi_rev -( -dfa -cache -input -& -mut -sid -& -mut -mat -) -? -; -return -Ok -( -mat -) -; -} -let -mut -at -= -input -. -end -( -) -- -1 -; -macro_rules -! -next_unchecked -{ -( -sid -: -expr -at -: -expr -) -= -> -{ -{ -let -byte -= -* -input -. -haystack -( -) -. -get_unchecked -( -at -) -; -dfa -. -next_state_untagged_unchecked -( -cache -sid -byte -) -} -} -; -} -cache -. -search_start -( -at -) -; -loop -{ -if -sid -. -is_tagged -( -) -{ -cache -. -search_update -( -at -) -; -sid -= -dfa -. -next_state -( -cache -sid -input -. -haystack -( -) -[ -at -] -) -. -map_err -( -| -_ -| -gave_up -( -at -) -) -? -; -} -else -{ -let -mut -prev_sid -= -sid -; -while -at -> -= -input -. -start -( -) -{ -prev_sid -= -unsafe -{ -next_unchecked -! -( -sid -at -) -} -; -if -prev_sid -. -is_tagged -( -) -| -| -at -< -= -input -. -start -( -) -. -saturating_add -( -3 -) -{ -core -: -: -mem -: -: -swap -( -& -mut -prev_sid -& -mut -sid -) -; -break -; -} -at -- -= -1 -; -sid -= -unsafe -{ -next_unchecked -! -( -prev_sid -at -) -} -; -if -sid -. -is_tagged -( -) -{ -break -; -} -at -- -= -1 -; -prev_sid -= -unsafe -{ -next_unchecked -! -( -sid -at -) -} -; -if -prev_sid -. -is_tagged -( -) -{ -core -: -: -mem -: -: -swap -( -& -mut -prev_sid -& -mut -sid -) -; -break -; -} -at -- -= -1 -; -sid -= -unsafe -{ -next_unchecked -! -( -prev_sid -at -) -} -; -if -sid -. -is_tagged -( -) -{ -break -; -} -at -- -= -1 -; -} -if -sid -. -is_unknown -( -) -{ -cache -. -search_update -( -at -) -; -sid -= -dfa -. -next_state -( -cache -prev_sid -input -. -haystack -( -) -[ -at -] -) -. -map_err -( -| -_ -| -gave_up -( -at -) -) -? -; -} -} -if -sid -. -is_tagged -( -) -{ -if -sid -. -is_start -( -) -{ -} -else -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -sid -0 -) -; -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -at -+ -1 -) -) -; -if -earliest -{ -cache -. -search_finish -( -at -) -; -return -Ok -( -mat -) -; -} -} -else -if -sid -. -is_dead -( -) -{ -cache -. -search_finish -( -at -) -; -return -Ok -( -mat -) -; -} -else -if -sid -. -is_quit -( -) -{ -cache -. -search_finish -( -at -) -; -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -at -] -at -) -) -; -} -else -{ -debug_assert -! -( -sid -. -is_unknown -( -) -) -; -unreachable -! -( -" -sid -being -unknown -is -a -bug -" -) -; -} -} -if -at -= -= -input -. -start -( -) -{ -break -; -} -at -- -= -1 -; -} -cache -. -search_finish -( -input -. -start -( -) -) -; -eoi_rev -( -dfa -cache -input -& -mut -sid -& -mut -mat -) -? -; -Ok -( -mat -) -} -# -[ -inline -( -never -) -] -pub -( -crate -) -fn -find_overlapping_fwd -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -state -. -mat -= -None -; -if -input -. -is_done -( -) -{ -return -Ok -( -( -) -) -; -} -let -pre -= -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -None -} -else -{ -dfa -. -get_config -( -) -. -get_prefilter -( -) -} -; -if -pre -. -is_some -( -) -{ -find_overlapping_fwd_imp -( -dfa -cache -input -pre -state -) -} -else -{ -find_overlapping_fwd_imp -( -dfa -cache -input -None -state -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -find_overlapping_fwd_imp -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -pre -: -Option -< -& -' -_ -Prefilter -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -let -universal_start -= -dfa -. -get_nfa -( -) -. -look_set_prefix_any -( -) -. -is_empty -( -) -; -let -mut -sid -= -match -state -. -id -{ -None -= -> -{ -state -. -at -= -input -. -start -( -) -; -init_fwd -( -dfa -cache -input -) -? -} -Some -( -sid -) -= -> -{ -if -let -Some -( -match_index -) -= -state -. -next_match_index -{ -let -match_len -= -dfa -. -match_len -( -cache -sid -) -; -if -match_index -< -match_len -{ -state -. -next_match_index -= -Some -( -match_index -+ -1 -) -; -let -pattern -= -dfa -. -match_pattern -( -cache -sid -match_index -) -; -state -. -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -state -. -at -) -) -; -return -Ok -( -( -) -) -; -} -} -state -. -at -+ -= -1 -; -if -state -. -at -> -input -. -end -( -) -{ -return -Ok -( -( -) -) -; -} -sid -} -} -; -cache -. -search_start -( -state -. -at -) -; -while -state -. -at -< -input -. -end -( -) -{ -sid -= -dfa -. -next_state -( -cache -sid -input -. -haystack -( -) -[ -state -. -at -] -) -. -map_err -( -| -_ -| -gave_up -( -state -. -at -) -) -? -; -if -sid -. -is_tagged -( -) -{ -state -. -id -= -Some -( -sid -) -; -if -sid -. -is_start -( -) -{ -if -let -Some -( -ref -pre -) -= -pre -{ -let -span -= -Span -: -: -from -( -state -. -at -. -. -input -. -end -( -) -) -; -match -pre -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -return -Ok -( -( -) -) -Some -( -ref -span -) -= -> -{ -if -span -. -start -> -state -. -at -{ -state -. -at -= -span -. -start -; -if -! -universal_start -{ -sid -= -prefilter_restart -( -dfa -cache -& -input -state -. -at -) -? -; -} -continue -; -} -} -} -} -} -else -if -sid -. -is_match -( -) -{ -state -. -next_match_index -= -Some -( -1 -) -; -let -pattern -= -dfa -. -match_pattern -( -cache -sid -0 -) -; -state -. -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -state -. -at -) -) -; -cache -. -search_finish -( -state -. -at -) -; -return -Ok -( -( -) -) -; -} -else -if -sid -. -is_dead -( -) -{ -cache -. -search_finish -( -state -. -at -) -; -return -Ok -( -( -) -) -; -} -else -if -sid -. -is_quit -( -) -{ -cache -. -search_finish -( -state -. -at -) -; -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -state -. -at -] -state -. -at -) -) -; -} -else -{ -debug_assert -! -( -sid -. -is_unknown -( -) -) -; -unreachable -! -( -" -sid -being -unknown -is -a -bug -" -) -; -} -} -state -. -at -+ -= -1 -; -cache -. -search_update -( -state -. -at -) -; -} -let -result -= -eoi_fwd -( -dfa -cache -input -& -mut -sid -& -mut -state -. -mat -) -; -state -. -id -= -Some -( -sid -) -; -if -state -. -mat -. -is_some -( -) -{ -state -. -next_match_index -= -Some -( -1 -) -; -} -cache -. -search_finish -( -input -. -end -( -) -) -; -result -} -# -[ -inline -( -never -) -] -pub -( -crate -) -fn -find_overlapping_rev -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -state -: -& -mut -OverlappingState -) -- -> -Result -< -( -) -MatchError -> -{ -state -. -mat -= -None -; -if -input -. -is_done -( -) -{ -return -Ok -( -( -) -) -; -} -let -mut -sid -= -match -state -. -id -{ -None -= -> -{ -let -sid -= -init_rev -( -dfa -cache -input -) -? -; -state -. -id -= -Some -( -sid -) -; -if -input -. -start -( -) -= -= -input -. -end -( -) -{ -state -. -rev_eoi -= -true -; -} -else -{ -state -. -at -= -input -. -end -( -) -- -1 -; -} -sid -} -Some -( -sid -) -= -> -{ -if -let -Some -( -match_index -) -= -state -. -next_match_index -{ -let -match_len -= -dfa -. -match_len -( -cache -sid -) -; -if -match_index -< -match_len -{ -state -. -next_match_index -= -Some -( -match_index -+ -1 -) -; -let -pattern -= -dfa -. -match_pattern -( -cache -sid -match_index -) -; -state -. -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -state -. -at -) -) -; -return -Ok -( -( -) -) -; -} -} -if -state -. -rev_eoi -{ -return -Ok -( -( -) -) -; -} -else -if -state -. -at -= -= -input -. -start -( -) -{ -state -. -rev_eoi -= -true -; -} -else -{ -state -. -at -- -= -1 -; -} -sid -} -} -; -cache -. -search_start -( -state -. -at -) -; -while -! -state -. -rev_eoi -{ -sid -= -dfa -. -next_state -( -cache -sid -input -. -haystack -( -) -[ -state -. -at -] -) -. -map_err -( -| -_ -| -gave_up -( -state -. -at -) -) -? -; -if -sid -. -is_tagged -( -) -{ -state -. -id -= -Some -( -sid -) -; -if -sid -. -is_start -( -) -{ -} -else -if -sid -. -is_match -( -) -{ -state -. -next_match_index -= -Some -( -1 -) -; -let -pattern -= -dfa -. -match_pattern -( -cache -sid -0 -) -; -state -. -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -state -. -at -+ -1 -) -) -; -cache -. -search_finish -( -state -. -at -) -; -return -Ok -( -( -) -) -; -} -else -if -sid -. -is_dead -( -) -{ -cache -. -search_finish -( -state -. -at -) -; -return -Ok -( -( -) -) -; -} -else -if -sid -. -is_quit -( -) -{ -cache -. -search_finish -( -state -. -at -) -; -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -state -. -at -] -state -. -at -) -) -; -} -else -{ -debug_assert -! -( -sid -. -is_unknown -( -) -) -; -unreachable -! -( -" -sid -being -unknown -is -a -bug -" -) -; -} -} -if -state -. -at -= -= -input -. -start -( -) -{ -break -; -} -state -. -at -- -= -1 -; -cache -. -search_update -( -state -. -at -) -; -} -let -result -= -eoi_rev -( -dfa -cache -input -& -mut -sid -& -mut -state -. -mat -) -; -state -. -rev_eoi -= -true -; -state -. -id -= -Some -( -sid -) -; -if -state -. -mat -. -is_some -( -) -{ -state -. -next_match_index -= -Some -( -1 -) -; -} -cache -. -search_finish -( -input -. -start -( -) -) -; -result -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -init_fwd -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -LazyStateID -MatchError -> -{ -let -sid -= -dfa -. -start_state_forward -( -cache -input -) -? -; -debug_assert -! -( -! -sid -. -is_match -( -) -) -; -Ok -( -sid -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -init_rev -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -LazyStateID -MatchError -> -{ -let -sid -= -dfa -. -start_state_reverse -( -cache -input -) -? -; -debug_assert -! -( -! -sid -. -is_match -( -) -) -; -Ok -( -sid -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -eoi_fwd -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -sid -: -& -mut -LazyStateID -mat -: -& -mut -Option -< -HalfMatch -> -) -- -> -Result -< -( -) -MatchError -> -{ -let -sp -= -input -. -get_span -( -) -; -match -input -. -haystack -( -) -. -get -( -sp -. -end -) -{ -Some -( -& -b -) -= -> -{ -* -sid -= -dfa -. -next_state -( -cache -* -sid -b -) -. -map_err -( -| -_ -| -gave_up -( -sp -. -end -) -) -? -; -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -sp -. -end -) -) -; -} -else -if -sid -. -is_quit -( -) -{ -return -Err -( -MatchError -: -: -quit -( -b -sp -. -end -) -) -; -} -} -None -= -> -{ -* -sid -= -dfa -. -next_eoi_state -( -cache -* -sid -) -. -map_err -( -| -_ -| -gave_up -( -input -. -haystack -( -) -. -len -( -) -) -) -? -; -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -input -. -haystack -( -) -. -len -( -) -) -) -; -} -debug_assert -! -( -! -sid -. -is_quit -( -) -) -; -} -} -Ok -( -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -eoi_rev -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -sid -: -& -mut -LazyStateID -mat -: -& -mut -Option -< -HalfMatch -> -) -- -> -Result -< -( -) -MatchError -> -{ -let -sp -= -input -. -get_span -( -) -; -if -sp -. -start -> -0 -{ -let -byte -= -input -. -haystack -( -) -[ -sp -. -start -- -1 -] -; -* -sid -= -dfa -. -next_state -( -cache -* -sid -byte -) -. -map_err -( -| -_ -| -gave_up -( -sp -. -start -) -) -? -; -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -sp -. -start -) -) -; -} -else -if -sid -. -is_quit -( -) -{ -return -Err -( -MatchError -: -: -quit -( -byte -sp -. -start -- -1 -) -) -; -} -} -else -{ -* -sid -= -dfa -. -next_eoi_state -( -cache -* -sid -) -. -map_err -( -| -_ -| -gave_up -( -sp -. -start -) -) -? -; -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -0 -) -) -; -} -debug_assert -! -( -! -sid -. -is_quit -( -) -) -; -} -Ok -( -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -prefilter_restart -( -dfa -: -& -DFA -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -at -: -usize -) -- -> -Result -< -LazyStateID -MatchError -> -{ -let -mut -input -= -input -. -clone -( -) -; -input -. -set_start -( -at -) -; -init_fwd -( -dfa -cache -& -input -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -gave_up -( -offset -: -usize -) -- -> -MatchError -{ -MatchError -: -: -gave_up -( -offset -) -} diff --git a/third_party/rust/regex-automata/src/lib.rs b/third_party/rust/regex-automata/src/lib.rs deleted file mode 100644 index 1194d0991dd46..0000000000000 --- a/third_party/rust/regex-automata/src/lib.rs +++ /dev/null @@ -1,390 +0,0 @@ -# -! -[ -no_std -] -# -! -[ -deny -( -missing_docs -) -] -# -! -[ -cfg_attr -( -all -( -feature -= -" -std -" -feature -= -" -nfa -" -feature -= -" -dfa -" -feature -= -" -hybrid -" -) -deny -( -rustdoc -: -: -broken_intra_doc_links -) -) -] -# -! -[ -cfg_attr -( -not -( -all -( -feature -= -" -std -" -feature -= -" -nfa -" -feature -= -" -dfa -" -feature -= -" -hybrid -" -) -) -allow -( -rustdoc -: -: -broken_intra_doc_links -) -) -] -# -! -[ -cfg_attr -( -not -( -all -( -feature -= -" -std -" -feature -= -" -nfa -" -feature -= -" -dfa -" -feature -= -" -hybrid -" -feature -= -" -perf -- -literal -- -substring -" -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -allow -( -dead_code -unused_imports -unused_variables -) -) -] -# -! -[ -warn -( -missing_debug_implementations -) -] -# -! -[ -cfg_attr -( -docsrs -feature -( -doc_auto_cfg -) -) -] -# -[ -cfg -( -not -( -any -( -target_pointer_width -= -" -16 -" -target_pointer_width -= -" -32 -" -target_pointer_width -= -" -64 -" -) -) -) -] -compile_error -! -( -" -not -supported -on -non -- -{ -16 -32 -64 -} -please -file -an -issue -" -) -; -# -[ -cfg -( -any -( -test -feature -= -" -std -" -) -) -] -extern -crate -std -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -extern -crate -alloc -; -# -[ -cfg -( -doctest -) -] -doc_comment -: -: -doctest -! -( -" -. -. -/ -README -. -md -" -) -; -# -[ -doc -( -inline -) -] -pub -use -crate -: -: -util -: -: -primitives -: -: -PatternID -; -pub -use -crate -: -: -util -: -: -search -: -: -* -; -# -[ -macro_use -] -mod -macros -; -# -[ -cfg -( -any -( -feature -= -" -dfa -- -search -" -feature -= -" -dfa -- -onepass -" -) -) -] -pub -mod -dfa -; -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -pub -mod -hybrid -; -# -[ -cfg -( -feature -= -" -meta -" -) -] -pub -mod -meta -; -# -[ -cfg -( -feature -= -" -nfa -- -thompson -" -) -] -pub -mod -nfa -; -pub -mod -util -; diff --git a/third_party/rust/regex-automata/src/macros.rs b/third_party/rust/regex-automata/src/macros.rs deleted file mode 100644 index 61ad29abb5f57..0000000000000 --- a/third_party/rust/regex-automata/src/macros.rs +++ /dev/null @@ -1,106 +0,0 @@ -# -! -[ -allow -( -unused_macros -) -] -macro_rules -! -log -{ -( -( -tt -: -tt -) -* -) -= -> -{ -# -[ -cfg -( -feature -= -" -logging -" -) -] -{ -( -tt -) -* -} -} -} -macro_rules -! -debug -{ -( -( -tt -: -tt -) -* -) -= -> -{ -log -! -( -log -: -: -debug -! -( -( -tt -) -* -) -) -} -} -macro_rules -! -trace -{ -( -( -tt -: -tt -) -* -) -= -> -{ -log -! -( -log -: -: -trace -! -( -( -tt -) -* -) -) -} -} diff --git a/third_party/rust/regex-automata/src/meta/error.rs b/third_party/rust/regex-automata/src/meta/error.rs deleted file mode 100644 index af51ee0f93b81..0000000000000 --- a/third_party/rust/regex-automata/src/meta/error.rs +++ /dev/null @@ -1,1092 +0,0 @@ -use -regex_syntax -: -: -{ -ast -hir -} -; -use -crate -: -: -{ -nfa -util -: -: -search -: -: -MatchError -PatternID -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -BuildError -{ -kind -: -BuildErrorKind -} -# -[ -derive -( -Clone -Debug -) -] -enum -BuildErrorKind -{ -Syntax -{ -pid -: -PatternID -err -: -regex_syntax -: -: -Error -} -NFA -( -nfa -: -: -thompson -: -: -BuildError -) -} -impl -BuildError -{ -pub -fn -pattern -( -& -self -) -- -> -Option -< -PatternID -> -{ -match -self -. -kind -{ -BuildErrorKind -: -: -Syntax -{ -pid -. -. -} -= -> -Some -( -pid -) -_ -= -> -None -} -} -pub -fn -size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -match -self -. -kind -{ -BuildErrorKind -: -: -NFA -( -ref -err -) -= -> -err -. -size_limit -( -) -_ -= -> -None -} -} -pub -fn -syntax_error -( -& -self -) -- -> -Option -< -& -regex_syntax -: -: -Error -> -{ -match -self -. -kind -{ -BuildErrorKind -: -: -Syntax -{ -ref -err -. -. -} -= -> -Some -( -err -) -_ -= -> -None -} -} -pub -( -crate -) -fn -ast -( -pid -: -PatternID -err -: -ast -: -: -Error -) -- -> -BuildError -{ -let -err -= -regex_syntax -: -: -Error -: -: -from -( -err -) -; -BuildError -{ -kind -: -BuildErrorKind -: -: -Syntax -{ -pid -err -} -} -} -pub -( -crate -) -fn -hir -( -pid -: -PatternID -err -: -hir -: -: -Error -) -- -> -BuildError -{ -let -err -= -regex_syntax -: -: -Error -: -: -from -( -err -) -; -BuildError -{ -kind -: -BuildErrorKind -: -: -Syntax -{ -pid -err -} -} -} -pub -( -crate -) -fn -nfa -( -err -: -nfa -: -: -thompson -: -: -BuildError -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -NFA -( -err -) -} -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -BuildError -{ -fn -source -( -& -self -) -- -> -Option -< -& -( -dyn -std -: -: -error -: -: -Error -+ -' -static -) -> -{ -match -self -. -kind -{ -BuildErrorKind -: -: -Syntax -{ -ref -err -. -. -} -= -> -Some -( -err -) -BuildErrorKind -: -: -NFA -( -ref -err -) -= -> -Some -( -err -) -} -} -} -impl -core -: -: -fmt -: -: -Display -for -BuildError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -match -self -. -kind -{ -BuildErrorKind -: -: -Syntax -{ -pid -. -. -} -= -> -{ -write -! -( -f -" -error -parsing -pattern -{ -} -" -pid -. -as_usize -( -) -) -} -BuildErrorKind -: -: -NFA -( -_ -) -= -> -write -! -( -f -" -error -building -NFA -" -) -} -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -enum -RetryError -{ -Quadratic -( -RetryQuadraticError -) -Fail -( -RetryFailError -) -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -RetryError -{ -} -impl -core -: -: -fmt -: -: -Display -for -RetryError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -match -* -self -{ -RetryError -: -: -Quadratic -( -ref -err -) -= -> -err -. -fmt -( -f -) -RetryError -: -: -Fail -( -ref -err -) -= -> -err -. -fmt -( -f -) -} -} -} -impl -From -< -MatchError -> -for -RetryError -{ -fn -from -( -merr -: -MatchError -) -- -> -RetryError -{ -RetryError -: -: -Fail -( -RetryFailError -: -: -from -( -merr -) -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -RetryQuadraticError -( -( -) -) -; -impl -RetryQuadraticError -{ -pub -( -crate -) -fn -new -( -) -- -> -RetryQuadraticError -{ -RetryQuadraticError -( -( -) -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -RetryQuadraticError -{ -} -impl -core -: -: -fmt -: -: -Display -for -RetryQuadraticError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -regex -engine -gave -up -to -avoid -quadratic -behavior -" -) -} -} -impl -From -< -RetryQuadraticError -> -for -RetryError -{ -fn -from -( -err -: -RetryQuadraticError -) -- -> -RetryError -{ -RetryError -: -: -Quadratic -( -err -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -RetryFailError -{ -offset -: -usize -} -impl -RetryFailError -{ -pub -( -crate -) -fn -from_offset -( -offset -: -usize -) -- -> -RetryFailError -{ -RetryFailError -{ -offset -} -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -RetryFailError -{ -} -impl -core -: -: -fmt -: -: -Display -for -RetryFailError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -regex -engine -failed -at -offset -{ -: -? -} -" -self -. -offset -) -} -} -impl -From -< -RetryFailError -> -for -RetryError -{ -fn -from -( -err -: -RetryFailError -) -- -> -RetryError -{ -RetryError -: -: -Fail -( -err -) -} -} -impl -From -< -MatchError -> -for -RetryFailError -{ -fn -from -( -merr -: -MatchError -) -- -> -RetryFailError -{ -use -crate -: -: -util -: -: -search -: -: -MatchErrorKind -: -: -* -; -match -* -merr -. -kind -( -) -{ -Quit -{ -offset -. -. -} -= -> -RetryFailError -: -: -from_offset -( -offset -) -GaveUp -{ -offset -} -= -> -RetryFailError -: -: -from_offset -( -offset -) -HaystackTooLong -{ -. -. -} -| -UnsupportedAnchored -{ -. -. -} -= -> -{ -unreachable -! -( -" -found -impossible -error -in -meta -engine -: -{ -} -" -merr -) -} -} -} -} diff --git a/third_party/rust/regex-automata/src/meta/limited.rs b/third_party/rust/regex-automata/src/meta/limited.rs deleted file mode 100644 index c0a92bd17840a..0000000000000 --- a/third_party/rust/regex-automata/src/meta/limited.rs +++ /dev/null @@ -1,1546 +0,0 @@ -use -crate -: -: -{ -meta -: -: -error -: -: -{ -RetryError -RetryQuadraticError -} -HalfMatch -Input -MatchError -} -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -dfa_try_search_half_rev -( -dfa -: -& -crate -: -: -dfa -: -: -dense -: -: -DFA -< -alloc -: -: -vec -: -: -Vec -< -u32 -> -> -input -: -& -Input -< -' -_ -> -min_start -: -usize -) -- -> -Result -< -Option -< -HalfMatch -> -RetryError -> -{ -use -crate -: -: -dfa -: -: -Automaton -; -let -mut -mat -= -None -; -let -mut -sid -= -dfa -. -start_state_reverse -( -input -) -? -; -if -input -. -start -( -) -= -= -input -. -end -( -) -{ -dfa_eoi_rev -( -dfa -input -& -mut -sid -& -mut -mat -) -? -; -return -Ok -( -mat -) -; -} -let -mut -at -= -input -. -end -( -) -- -1 -; -loop -{ -sid -= -dfa -. -next_state -( -sid -input -. -haystack -( -) -[ -at -] -) -; -if -dfa -. -is_special_state -( -sid -) -{ -if -dfa -. -is_match_state -( -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -sid -0 -) -; -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -at -+ -1 -) -) -; -} -else -if -dfa -. -is_dead_state -( -sid -) -{ -return -Ok -( -mat -) -; -} -else -if -dfa -. -is_quit_state -( -sid -) -{ -if -mat -. -is_some -( -) -{ -return -Ok -( -mat -) -; -} -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -at -] -at -) -. -into -( -) -) -; -} -} -if -at -= -= -input -. -start -( -) -{ -break -; -} -at -- -= -1 -; -if -at -< -min_start -{ -trace -! -( -" -reached -position -{ -} -which -is -before -the -previous -literal -\ -match -quitting -to -avoid -quadratic -behavior -" -at -) -; -return -Err -( -RetryError -: -: -Quadratic -( -RetryQuadraticError -: -: -new -( -) -) -) -; -} -} -let -was_dead -= -dfa -. -is_dead_state -( -sid -) -; -dfa_eoi_rev -( -dfa -input -& -mut -sid -& -mut -mat -) -? -; -if -at -= -= -input -. -start -( -) -& -& -mat -. -map_or -( -false -| -m -| -m -. -offset -( -) -> -input -. -start -( -) -) -& -& -! -was_dead -{ -trace -! -( -" -reached -beginning -of -search -at -offset -{ -} -without -hitting -\ -a -dead -state -quitting -to -avoid -potential -false -positive -match -" -at -) -; -return -Err -( -RetryError -: -: -Quadratic -( -RetryQuadraticError -: -: -new -( -) -) -) -; -} -Ok -( -mat -) -} -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -pub -( -crate -) -fn -hybrid_try_search_half_rev -( -dfa -: -& -crate -: -: -hybrid -: -: -dfa -: -: -DFA -cache -: -& -mut -crate -: -: -hybrid -: -: -dfa -: -: -Cache -input -: -& -Input -< -' -_ -> -min_start -: -usize -) -- -> -Result -< -Option -< -HalfMatch -> -RetryError -> -{ -let -mut -mat -= -None -; -let -mut -sid -= -dfa -. -start_state_reverse -( -cache -input -) -? -; -if -input -. -start -( -) -= -= -input -. -end -( -) -{ -hybrid_eoi_rev -( -dfa -cache -input -& -mut -sid -& -mut -mat -) -? -; -return -Ok -( -mat -) -; -} -let -mut -at -= -input -. -end -( -) -- -1 -; -loop -{ -sid -= -dfa -. -next_state -( -cache -sid -input -. -haystack -( -) -[ -at -] -) -. -map_err -( -| -_ -| -MatchError -: -: -gave_up -( -at -) -) -? -; -if -sid -. -is_tagged -( -) -{ -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -sid -0 -) -; -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -at -+ -1 -) -) -; -} -else -if -sid -. -is_dead -( -) -{ -return -Ok -( -mat -) -; -} -else -if -sid -. -is_quit -( -) -{ -if -mat -. -is_some -( -) -{ -return -Ok -( -mat -) -; -} -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -at -] -at -) -. -into -( -) -) -; -} -} -if -at -= -= -input -. -start -( -) -{ -break -; -} -at -- -= -1 -; -if -at -< -min_start -{ -trace -! -( -" -reached -position -{ -} -which -is -before -the -previous -literal -\ -match -quitting -to -avoid -quadratic -behavior -" -at -) -; -return -Err -( -RetryError -: -: -Quadratic -( -RetryQuadraticError -: -: -new -( -) -) -) -; -} -} -let -was_dead -= -sid -. -is_dead -( -) -; -hybrid_eoi_rev -( -dfa -cache -input -& -mut -sid -& -mut -mat -) -? -; -if -at -= -= -input -. -start -( -) -& -& -mat -. -map_or -( -false -| -m -| -m -. -offset -( -) -> -input -. -start -( -) -) -& -& -! -was_dead -{ -trace -! -( -" -reached -beginning -of -search -at -offset -{ -} -without -hitting -\ -a -dead -state -quitting -to -avoid -potential -false -positive -match -" -at -) -; -return -Err -( -RetryError -: -: -Quadratic -( -RetryQuadraticError -: -: -new -( -) -) -) -; -} -Ok -( -mat -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -dfa_eoi_rev -( -dfa -: -& -crate -: -: -dfa -: -: -dense -: -: -DFA -< -alloc -: -: -vec -: -: -Vec -< -u32 -> -> -input -: -& -Input -< -' -_ -> -sid -: -& -mut -crate -: -: -util -: -: -primitives -: -: -StateID -mat -: -& -mut -Option -< -HalfMatch -> -) -- -> -Result -< -( -) -MatchError -> -{ -use -crate -: -: -dfa -: -: -Automaton -; -let -sp -= -input -. -get_span -( -) -; -if -sp -. -start -> -0 -{ -let -byte -= -input -. -haystack -( -) -[ -sp -. -start -- -1 -] -; -* -sid -= -dfa -. -next_state -( -* -sid -byte -) -; -if -dfa -. -is_match_state -( -* -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -sp -. -start -) -) -; -} -else -if -dfa -. -is_quit_state -( -* -sid -) -{ -if -mat -. -is_some -( -) -{ -return -Ok -( -( -) -) -; -} -return -Err -( -MatchError -: -: -quit -( -byte -sp -. -start -- -1 -) -) -; -} -} -else -{ -* -sid -= -dfa -. -next_eoi_state -( -* -sid -) -; -if -dfa -. -is_match_state -( -* -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -0 -) -) -; -} -debug_assert -! -( -! -dfa -. -is_quit_state -( -* -sid -) -) -; -} -Ok -( -( -) -) -} -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -hybrid_eoi_rev -( -dfa -: -& -crate -: -: -hybrid -: -: -dfa -: -: -DFA -cache -: -& -mut -crate -: -: -hybrid -: -: -dfa -: -: -Cache -input -: -& -Input -< -' -_ -> -sid -: -& -mut -crate -: -: -hybrid -: -: -LazyStateID -mat -: -& -mut -Option -< -HalfMatch -> -) -- -> -Result -< -( -) -MatchError -> -{ -let -sp -= -input -. -get_span -( -) -; -if -sp -. -start -> -0 -{ -let -byte -= -input -. -haystack -( -) -[ -sp -. -start -- -1 -] -; -* -sid -= -dfa -. -next_state -( -cache -* -sid -byte -) -. -map_err -( -| -_ -| -MatchError -: -: -gave_up -( -sp -. -start -) -) -? -; -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -sp -. -start -) -) -; -} -else -if -sid -. -is_quit -( -) -{ -if -mat -. -is_some -( -) -{ -return -Ok -( -( -) -) -; -} -return -Err -( -MatchError -: -: -quit -( -byte -sp -. -start -- -1 -) -) -; -} -} -else -{ -* -sid -= -dfa -. -next_eoi_state -( -cache -* -sid -) -. -map_err -( -| -_ -| -MatchError -: -: -gave_up -( -sp -. -start -) -) -? -; -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -0 -) -) -; -} -debug_assert -! -( -! -sid -. -is_quit -( -) -) -; -} -Ok -( -( -) -) -} diff --git a/third_party/rust/regex-automata/src/meta/literal.rs b/third_party/rust/regex-automata/src/meta/literal.rs deleted file mode 100644 index d8e27fa32efc2..0000000000000 --- a/third_party/rust/regex-automata/src/meta/literal.rs +++ /dev/null @@ -1,406 +0,0 @@ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -regex_syntax -: -: -hir -: -: -Hir -; -use -crate -: -: -{ -meta -: -: -regex -: -: -RegexInfo -util -: -: -search -: -: -MatchKind -} -; -pub -( -crate -) -fn -alternation_literals -( -info -: -& -RegexInfo -hirs -: -& -[ -& -Hir -] -) -- -> -Option -< -Vec -< -Vec -< -u8 -> -> -> -{ -use -regex_syntax -: -: -hir -: -: -{ -HirKind -Literal -} -; -if -! -cfg -! -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -{ -return -None -; -} -if -hirs -. -len -( -) -! -= -1 -| -| -! -info -. -props -( -) -[ -0 -] -. -look_set -( -) -. -is_empty -( -) -| -| -info -. -props -( -) -[ -0 -] -. -explicit_captures_len -( -) -> -0 -| -| -! -info -. -props -( -) -[ -0 -] -. -is_alternation_literal -( -) -| -| -info -. -config -( -) -. -get_match_kind -( -) -! -= -MatchKind -: -: -LeftmostFirst -{ -return -None -; -} -let -hir -= -& -hirs -[ -0 -] -; -let -alts -= -match -* -hir -. -kind -( -) -{ -HirKind -: -: -Alternation -( -ref -alts -) -= -> -alts -_ -= -> -return -None -} -; -let -mut -lits -= -vec -! -[ -] -; -for -alt -in -alts -{ -let -mut -lit -= -vec -! -[ -] -; -match -* -alt -. -kind -( -) -{ -HirKind -: -: -Literal -( -Literal -( -ref -bytes -) -) -= -> -{ -lit -. -extend_from_slice -( -bytes -) -} -HirKind -: -: -Concat -( -ref -exprs -) -= -> -{ -for -e -in -exprs -{ -match -* -e -. -kind -( -) -{ -HirKind -: -: -Literal -( -Literal -( -ref -bytes -) -) -= -> -{ -lit -. -extend_from_slice -( -bytes -) -; -} -_ -= -> -unreachable -! -( -" -expected -literal -got -{ -: -? -} -" -e -) -} -} -} -_ -= -> -unreachable -! -( -" -expected -literal -or -concat -got -{ -: -? -} -" -alt -) -} -lits -. -push -( -lit -) -; -} -if -lits -. -len -( -) -< -3000 -{ -debug -! -( -" -skipping -Aho -- -Corasick -because -there -are -too -few -literals -" -) -; -return -None -; -} -Some -( -lits -) -} diff --git a/third_party/rust/regex-automata/src/meta/mod.rs b/third_party/rust/regex-automata/src/meta/mod.rs deleted file mode 100644 index be7a0f9565616..0000000000000 --- a/third_party/rust/regex-automata/src/meta/mod.rs +++ /dev/null @@ -1,91 +0,0 @@ -pub -use -self -: -: -{ -error -: -: -BuildError -regex -: -: -{ -Builder -Cache -CapturesMatches -Config -FindMatches -Regex -Split -SplitN -} -} -; -mod -error -; -# -[ -cfg -( -any -( -feature -= -" -dfa -- -build -" -feature -= -" -hybrid -" -) -) -] -mod -limited -; -mod -literal -; -mod -regex -; -mod -reverse_inner -; -# -[ -cfg -( -any -( -feature -= -" -dfa -- -build -" -feature -= -" -hybrid -" -) -) -] -mod -stopat -; -mod -strategy -; -mod -wrappers -; diff --git a/third_party/rust/regex-automata/src/meta/regex.rs b/third_party/rust/regex-automata/src/meta/regex.rs deleted file mode 100644 index 89728c3a3f724..0000000000000 --- a/third_party/rust/regex-automata/src/meta/regex.rs +++ /dev/null @@ -1,5956 +0,0 @@ -use -core -: -: -{ -borrow -: -: -Borrow -panic -: -: -{ -RefUnwindSafe -UnwindSafe -} -} -; -use -alloc -: -: -{ -boxed -: -: -Box -sync -: -: -Arc -vec -vec -: -: -Vec -} -; -use -regex_syntax -: -: -{ -ast -hir -: -: -{ -self -Hir -} -} -; -use -crate -: -: -{ -meta -: -: -{ -error -: -: -BuildError -strategy -: -: -{ -self -Strategy -} -wrappers -} -nfa -: -: -thompson -: -: -WhichCaptures -util -: -: -{ -captures -: -: -{ -Captures -GroupInfo -} -iter -pool -: -: -{ -Pool -PoolGuard -} -prefilter -: -: -Prefilter -primitives -: -: -{ -NonMaxUsize -PatternID -} -search -: -: -{ -HalfMatch -Input -Match -MatchKind -PatternSet -Span -} -} -} -; -type -CachePool -= -Pool -< -Cache -CachePoolFn -> -; -type -CachePoolGuard -< -' -a -> -= -PoolGuard -< -' -a -Cache -CachePoolFn -> -; -type -CachePoolFn -= -Box -< -dyn -Fn -( -) -- -> -Cache -+ -Send -+ -Sync -+ -UnwindSafe -+ -RefUnwindSafe -> -; -# -[ -derive -( -Debug -) -] -pub -struct -Regex -{ -imp -: -Arc -< -RegexI -> -pool -: -CachePool -} -# -[ -derive -( -Debug -) -] -struct -RegexI -{ -strat -: -Arc -< -dyn -Strategy -> -info -: -RegexInfo -} -impl -Regex -{ -pub -fn -new -( -pattern -: -& -str -) -- -> -Result -< -Regex -BuildError -> -{ -Regex -: -: -builder -( -) -. -build -( -pattern -) -} -pub -fn -new_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -Regex -BuildError -> -{ -Regex -: -: -builder -( -) -. -build_many -( -patterns -) -} -pub -fn -config -( -) -- -> -Config -{ -Config -: -: -new -( -) -} -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -} -impl -Regex -{ -# -[ -inline -] -pub -fn -is_match -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -input -: -I -) -- -> -bool -{ -let -input -= -input -. -into -( -) -. -earliest -( -true -) -; -if -self -. -imp -. -info -. -is_impossible -( -& -input -) -{ -return -false -; -} -let -mut -guard -= -self -. -pool -. -get -( -) -; -let -result -= -self -. -imp -. -strat -. -is_match -( -& -mut -guard -& -input -) -; -PoolGuard -: -: -put -( -guard -) -; -result -} -# -[ -inline -] -pub -fn -find -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -input -: -I -) -- -> -Option -< -Match -> -{ -self -. -search -( -& -input -. -into -( -) -) -} -# -[ -inline -] -pub -fn -captures -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -input -: -I -caps -: -& -mut -Captures -) -{ -self -. -search_captures -( -& -input -. -into -( -) -caps -) -} -# -[ -inline -] -pub -fn -find_iter -< -' -r -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -input -: -I -) -- -> -FindMatches -< -' -r -' -h -> -{ -let -cache -= -self -. -pool -. -get -( -) -; -let -it -= -iter -: -: -Searcher -: -: -new -( -input -. -into -( -) -) -; -FindMatches -{ -re -: -self -cache -it -} -} -# -[ -inline -] -pub -fn -captures_iter -< -' -r -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -input -: -I -) -- -> -CapturesMatches -< -' -r -' -h -> -{ -let -cache -= -self -. -pool -. -get -( -) -; -let -caps -= -self -. -create_captures -( -) -; -let -it -= -iter -: -: -Searcher -: -: -new -( -input -. -into -( -) -) -; -CapturesMatches -{ -re -: -self -cache -caps -it -} -} -# -[ -inline -] -pub -fn -split -< -' -r -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -input -: -I -) -- -> -Split -< -' -r -' -h -> -{ -Split -{ -finder -: -self -. -find_iter -( -input -) -last -: -0 -} -} -pub -fn -splitn -< -' -r -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -input -: -I -limit -: -usize -) -- -> -SplitN -< -' -r -' -h -> -{ -SplitN -{ -splits -: -self -. -split -( -input -) -limit -} -} -} -impl -Regex -{ -# -[ -inline -] -pub -fn -search -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Match -> -{ -if -self -. -imp -. -info -. -is_impossible -( -input -) -{ -return -None -; -} -let -mut -guard -= -self -. -pool -. -get -( -) -; -let -result -= -self -. -imp -. -strat -. -search -( -& -mut -guard -input -) -; -PoolGuard -: -: -put -( -guard -) -; -result -} -# -[ -inline -] -pub -fn -search_half -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -HalfMatch -> -{ -if -self -. -imp -. -info -. -is_impossible -( -input -) -{ -return -None -; -} -let -mut -guard -= -self -. -pool -. -get -( -) -; -let -result -= -self -. -imp -. -strat -. -search_half -( -& -mut -guard -input -) -; -PoolGuard -: -: -put -( -guard -) -; -result -} -# -[ -inline -] -pub -fn -search_captures -( -& -self -input -: -& -Input -< -' -_ -> -caps -: -& -mut -Captures -) -{ -caps -. -set_pattern -( -None -) -; -let -pid -= -self -. -search_slots -( -input -caps -. -slots_mut -( -) -) -; -caps -. -set_pattern -( -pid -) -; -} -# -[ -inline -] -pub -fn -search_slots -( -& -self -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -if -self -. -imp -. -info -. -is_impossible -( -input -) -{ -return -None -; -} -let -mut -guard -= -self -. -pool -. -get -( -) -; -let -result -= -self -. -imp -. -strat -. -search_slots -( -& -mut -guard -input -slots -) -; -PoolGuard -: -: -put -( -guard -) -; -result -} -# -[ -inline -] -pub -fn -which_overlapping_matches -( -& -self -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -if -self -. -imp -. -info -. -is_impossible -( -input -) -{ -return -; -} -let -mut -guard -= -self -. -pool -. -get -( -) -; -let -result -= -self -. -imp -. -strat -. -which_overlapping_matches -( -& -mut -guard -input -patset -) -; -PoolGuard -: -: -put -( -guard -) -; -result -} -} -impl -Regex -{ -# -[ -inline -] -pub -fn -search_with -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Match -> -{ -if -self -. -imp -. -info -. -is_impossible -( -input -) -{ -return -None -; -} -self -. -imp -. -strat -. -search -( -cache -input -) -} -# -[ -inline -] -pub -fn -search_half_with -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -HalfMatch -> -{ -if -self -. -imp -. -info -. -is_impossible -( -input -) -{ -return -None -; -} -self -. -imp -. -strat -. -search_half -( -cache -input -) -} -# -[ -inline -] -pub -fn -search_captures_with -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -caps -: -& -mut -Captures -) -{ -caps -. -set_pattern -( -None -) -; -let -pid -= -self -. -search_slots_with -( -cache -input -caps -. -slots_mut -( -) -) -; -caps -. -set_pattern -( -pid -) -; -} -# -[ -inline -] -pub -fn -search_slots_with -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -if -self -. -imp -. -info -. -is_impossible -( -input -) -{ -return -None -; -} -self -. -imp -. -strat -. -search_slots -( -cache -input -slots -) -} -# -[ -inline -] -pub -fn -which_overlapping_matches_with -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -if -self -. -imp -. -info -. -is_impossible -( -input -) -{ -return -; -} -self -. -imp -. -strat -. -which_overlapping_matches -( -cache -input -patset -) -} -} -impl -Regex -{ -pub -fn -create_captures -( -& -self -) -- -> -Captures -{ -Captures -: -: -all -( -self -. -group_info -( -) -. -clone -( -) -) -} -pub -fn -create_cache -( -& -self -) -- -> -Cache -{ -self -. -imp -. -strat -. -create_cache -( -) -} -pub -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -imp -. -info -. -pattern_len -( -) -} -pub -fn -captures_len -( -& -self -) -- -> -usize -{ -self -. -imp -. -info -. -props_union -( -) -. -explicit_captures_len -( -) -. -saturating_add -( -self -. -pattern_len -( -) -) -} -# -[ -inline -] -pub -fn -static_captures_len -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -imp -. -info -. -props_union -( -) -. -static_explicit_captures_len -( -) -. -map -( -| -len -| -len -. -saturating_add -( -1 -) -) -} -# -[ -inline -] -pub -fn -group_info -( -& -self -) -- -> -& -GroupInfo -{ -self -. -imp -. -strat -. -group_info -( -) -} -# -[ -inline -] -pub -fn -get_config -( -& -self -) -- -> -& -Config -{ -self -. -imp -. -info -. -config -( -) -} -# -[ -inline -] -pub -fn -is_accelerated -( -& -self -) -- -> -bool -{ -self -. -imp -. -strat -. -is_accelerated -( -) -} -# -[ -inline -] -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -imp -. -strat -. -memory_usage -( -) -} -} -impl -Clone -for -Regex -{ -fn -clone -( -& -self -) -- -> -Regex -{ -let -imp -= -Arc -: -: -clone -( -& -self -. -imp -) -; -let -pool -= -{ -let -strat -= -Arc -: -: -clone -( -& -imp -. -strat -) -; -let -create -: -CachePoolFn -= -Box -: -: -new -( -move -| -| -strat -. -create_cache -( -) -) -; -Pool -: -: -new -( -create -) -} -; -Regex -{ -imp -pool -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -RegexInfo -( -Arc -< -RegexInfoI -> -) -; -# -[ -derive -( -Clone -Debug -) -] -struct -RegexInfoI -{ -config -: -Config -props -: -Vec -< -hir -: -: -Properties -> -props_union -: -hir -: -: -Properties -} -impl -RegexInfo -{ -fn -new -( -config -: -Config -hirs -: -& -[ -& -Hir -] -) -- -> -RegexInfo -{ -let -mut -props -= -vec -! -[ -] -; -for -hir -in -hirs -. -iter -( -) -{ -props -. -push -( -hir -. -properties -( -) -. -clone -( -) -) -; -} -let -props_union -= -hir -: -: -Properties -: -: -union -( -& -props -) -; -RegexInfo -( -Arc -: -: -new -( -RegexInfoI -{ -config -props -props_union -} -) -) -} -pub -( -crate -) -fn -config -( -& -self -) -- -> -& -Config -{ -& -self -. -0 -. -config -} -pub -( -crate -) -fn -props -( -& -self -) -- -> -& -[ -hir -: -: -Properties -] -{ -& -self -. -0 -. -props -} -pub -( -crate -) -fn -props_union -( -& -self -) -- -> -& -hir -: -: -Properties -{ -& -self -. -0 -. -props_union -} -pub -( -crate -) -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -props -( -) -. -len -( -) -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -props -( -) -. -iter -( -) -. -map -( -| -p -| -p -. -memory_usage -( -) -) -. -sum -: -: -< -usize -> -( -) -+ -self -. -props_union -( -) -. -memory_usage -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -is_anchored_start -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -input -. -get_anchored -( -) -. -is_anchored -( -) -| -| -self -. -is_always_anchored_start -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -is_always_anchored_start -( -& -self -) -- -> -bool -{ -use -regex_syntax -: -: -hir -: -: -Look -; -self -. -props_union -( -) -. -look_set_prefix -( -) -. -contains -( -Look -: -: -Start -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -is_always_anchored_end -( -& -self -) -- -> -bool -{ -use -regex_syntax -: -: -hir -: -: -Look -; -self -. -props_union -( -) -. -look_set_suffix -( -) -. -contains -( -Look -: -: -End -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_impossible -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -if -input -. -start -( -) -> -0 -& -& -self -. -is_always_anchored_start -( -) -{ -return -true -; -} -if -input -. -end -( -) -< -input -. -haystack -( -) -. -len -( -) -& -& -self -. -is_always_anchored_end -( -) -{ -return -true -; -} -let -minlen -= -match -self -. -props_union -( -) -. -minimum_len -( -) -{ -None -= -> -return -false -Some -( -minlen -) -= -> -minlen -} -; -if -input -. -get_span -( -) -. -len -( -) -< -minlen -{ -return -true -; -} -if -self -. -is_anchored_start -( -input -) -& -& -self -. -is_always_anchored_end -( -) -{ -let -maxlen -= -match -self -. -props_union -( -) -. -maximum_len -( -) -{ -None -= -> -return -false -Some -( -maxlen -) -= -> -maxlen -} -; -if -input -. -get_span -( -) -. -len -( -) -> -maxlen -{ -return -true -; -} -} -false -} -} -# -[ -derive -( -Debug -) -] -pub -struct -FindMatches -< -' -r -' -h -> -{ -re -: -& -' -r -Regex -cache -: -CachePoolGuard -< -' -r -> -it -: -iter -: -: -Searcher -< -' -h -> -} -impl -< -' -r -' -h -> -FindMatches -< -' -r -' -h -> -{ -# -[ -inline -] -pub -fn -regex -( -& -self -) -- -> -& -' -r -Regex -{ -self -. -re -} -# -[ -inline -] -pub -fn -input -< -' -s -> -( -& -' -s -self -) -- -> -& -' -s -Input -< -' -h -> -{ -self -. -it -. -input -( -) -} -} -impl -< -' -r -' -h -> -Iterator -for -FindMatches -< -' -r -' -h -> -{ -type -Item -= -Match -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Match -> -{ -let -FindMatches -{ -re -ref -mut -cache -ref -mut -it -} -= -* -self -; -it -. -advance -( -| -input -| -Ok -( -re -. -search_with -( -cache -input -) -) -) -} -# -[ -inline -] -fn -count -( -self -) -- -> -usize -{ -let -FindMatches -{ -re -mut -cache -it -} -= -self -; -let -cache -= -& -mut -* -cache -; -it -. -into_half_matches_iter -( -| -input -| -Ok -( -re -. -search_half_with -( -cache -input -) -) -) -. -count -( -) -} -} -impl -< -' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -FindMatches -< -' -r -' -h -> -{ -} -# -[ -derive -( -Debug -) -] -pub -struct -CapturesMatches -< -' -r -' -h -> -{ -re -: -& -' -r -Regex -cache -: -CachePoolGuard -< -' -r -> -caps -: -Captures -it -: -iter -: -: -Searcher -< -' -h -> -} -impl -< -' -r -' -h -> -CapturesMatches -< -' -r -' -h -> -{ -# -[ -inline -] -pub -fn -regex -( -& -self -) -- -> -& -' -r -Regex -{ -self -. -re -} -# -[ -inline -] -pub -fn -input -< -' -s -> -( -& -' -s -self -) -- -> -& -' -s -Input -< -' -h -> -{ -self -. -it -. -input -( -) -} -} -impl -< -' -r -' -h -> -Iterator -for -CapturesMatches -< -' -r -' -h -> -{ -type -Item -= -Captures -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Captures -> -{ -let -CapturesMatches -{ -re -ref -mut -cache -ref -mut -caps -ref -mut -it -} -= -* -self -; -let -_ -= -it -. -advance -( -| -input -| -{ -re -. -search_captures_with -( -cache -input -caps -) -; -Ok -( -caps -. -get_match -( -) -) -} -) -; -if -caps -. -is_match -( -) -{ -Some -( -caps -. -clone -( -) -) -} -else -{ -None -} -} -# -[ -inline -] -fn -count -( -self -) -- -> -usize -{ -let -CapturesMatches -{ -re -mut -cache -it -. -. -} -= -self -; -let -cache -= -& -mut -* -cache -; -it -. -into_half_matches_iter -( -| -input -| -Ok -( -re -. -search_half_with -( -cache -input -) -) -) -. -count -( -) -} -} -impl -< -' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -CapturesMatches -< -' -r -' -h -> -{ -} -# -[ -derive -( -Debug -) -] -pub -struct -Split -< -' -r -' -h -> -{ -finder -: -FindMatches -< -' -r -' -h -> -last -: -usize -} -impl -< -' -r -' -h -> -Split -< -' -r -' -h -> -{ -# -[ -inline -] -pub -fn -input -< -' -s -> -( -& -' -s -self -) -- -> -& -' -s -Input -< -' -h -> -{ -self -. -finder -. -input -( -) -} -} -impl -< -' -r -' -h -> -Iterator -for -Split -< -' -r -' -h -> -{ -type -Item -= -Span -; -fn -next -( -& -mut -self -) -- -> -Option -< -Span -> -{ -match -self -. -finder -. -next -( -) -{ -None -= -> -{ -let -len -= -self -. -finder -. -it -. -input -( -) -. -haystack -( -) -. -len -( -) -; -if -self -. -last -> -len -{ -None -} -else -{ -let -span -= -Span -: -: -from -( -self -. -last -. -. -len -) -; -self -. -last -= -len -+ -1 -; -Some -( -span -) -} -} -Some -( -m -) -= -> -{ -let -span -= -Span -: -: -from -( -self -. -last -. -. -m -. -start -( -) -) -; -self -. -last -= -m -. -end -( -) -; -Some -( -span -) -} -} -} -} -impl -< -' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -Split -< -' -r -' -h -> -{ -} -# -[ -derive -( -Debug -) -] -pub -struct -SplitN -< -' -r -' -h -> -{ -splits -: -Split -< -' -r -' -h -> -limit -: -usize -} -impl -< -' -r -' -h -> -SplitN -< -' -r -' -h -> -{ -# -[ -inline -] -pub -fn -input -< -' -s -> -( -& -' -s -self -) -- -> -& -' -s -Input -< -' -h -> -{ -self -. -splits -. -input -( -) -} -} -impl -< -' -r -' -h -> -Iterator -for -SplitN -< -' -r -' -h -> -{ -type -Item -= -Span -; -fn -next -( -& -mut -self -) -- -> -Option -< -Span -> -{ -if -self -. -limit -= -= -0 -{ -return -None -; -} -self -. -limit -- -= -1 -; -if -self -. -limit -> -0 -{ -return -self -. -splits -. -next -( -) -; -} -let -len -= -self -. -splits -. -finder -. -it -. -input -( -) -. -haystack -( -) -. -len -( -) -; -if -self -. -splits -. -last -> -len -{ -None -} -else -{ -Some -( -Span -: -: -from -( -self -. -splits -. -last -. -. -len -) -) -} -} -fn -size_hint -( -& -self -) -- -> -( -usize -Option -< -usize -> -) -{ -( -0 -Some -( -self -. -limit -) -) -} -} -impl -< -' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -SplitN -< -' -r -' -h -> -{ -} -# -[ -derive -( -Debug -Clone -) -] -pub -struct -Cache -{ -pub -( -crate -) -capmatches -: -Captures -pub -( -crate -) -pikevm -: -wrappers -: -: -PikeVMCache -pub -( -crate -) -backtrack -: -wrappers -: -: -BoundedBacktrackerCache -pub -( -crate -) -onepass -: -wrappers -: -: -OnePassCache -pub -( -crate -) -hybrid -: -wrappers -: -: -HybridCache -pub -( -crate -) -revhybrid -: -wrappers -: -: -ReverseHybridCache -} -impl -Cache -{ -pub -fn -new -( -re -: -& -Regex -) -- -> -Cache -{ -re -. -create_cache -( -) -} -pub -fn -reset -( -& -mut -self -re -: -& -Regex -) -{ -re -. -imp -. -strat -. -reset_cache -( -self -) -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -let -mut -bytes -= -0 -; -bytes -+ -= -self -. -pikevm -. -memory_usage -( -) -; -bytes -+ -= -self -. -backtrack -. -memory_usage -( -) -; -bytes -+ -= -self -. -onepass -. -memory_usage -( -) -; -bytes -+ -= -self -. -hybrid -. -memory_usage -( -) -; -bytes -+ -= -self -. -revhybrid -. -memory_usage -( -) -; -bytes -} -} -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -Config -{ -match_kind -: -Option -< -MatchKind -> -utf8_empty -: -Option -< -bool -> -autopre -: -Option -< -bool -> -pre -: -Option -< -Option -< -Prefilter -> -> -which_captures -: -Option -< -WhichCaptures -> -nfa_size_limit -: -Option -< -Option -< -usize -> -> -onepass_size_limit -: -Option -< -Option -< -usize -> -> -hybrid_cache_capacity -: -Option -< -usize -> -hybrid -: -Option -< -bool -> -dfa -: -Option -< -bool -> -dfa_size_limit -: -Option -< -Option -< -usize -> -> -dfa_state_limit -: -Option -< -Option -< -usize -> -> -onepass -: -Option -< -bool -> -backtrack -: -Option -< -bool -> -byte_classes -: -Option -< -bool -> -line_terminator -: -Option -< -u8 -> -} -impl -Config -{ -pub -fn -new -( -) -- -> -Config -{ -Config -: -: -default -( -) -} -pub -fn -match_kind -( -self -kind -: -MatchKind -) -- -> -Config -{ -Config -{ -match_kind -: -Some -( -kind -) -. -. -self -} -} -pub -fn -utf8_empty -( -self -yes -: -bool -) -- -> -Config -{ -Config -{ -utf8_empty -: -Some -( -yes -) -. -. -self -} -} -pub -fn -auto_prefilter -( -self -yes -: -bool -) -- -> -Config -{ -Config -{ -autopre -: -Some -( -yes -) -. -. -self -} -} -pub -fn -prefilter -( -self -pre -: -Option -< -Prefilter -> -) -- -> -Config -{ -Config -{ -pre -: -Some -( -pre -) -. -. -self -} -} -pub -fn -which_captures -( -mut -self -which_captures -: -WhichCaptures -) -- -> -Config -{ -self -. -which_captures -= -Some -( -which_captures -) -; -self -} -pub -fn -nfa_size_limit -( -self -limit -: -Option -< -usize -> -) -- -> -Config -{ -Config -{ -nfa_size_limit -: -Some -( -limit -) -. -. -self -} -} -pub -fn -onepass_size_limit -( -self -limit -: -Option -< -usize -> -) -- -> -Config -{ -Config -{ -onepass_size_limit -: -Some -( -limit -) -. -. -self -} -} -pub -fn -hybrid_cache_capacity -( -self -limit -: -usize -) -- -> -Config -{ -Config -{ -hybrid_cache_capacity -: -Some -( -limit -) -. -. -self -} -} -pub -fn -dfa_size_limit -( -self -limit -: -Option -< -usize -> -) -- -> -Config -{ -Config -{ -dfa_size_limit -: -Some -( -limit -) -. -. -self -} -} -pub -fn -dfa_state_limit -( -self -limit -: -Option -< -usize -> -) -- -> -Config -{ -Config -{ -dfa_state_limit -: -Some -( -limit -) -. -. -self -} -} -pub -fn -byte_classes -( -self -yes -: -bool -) -- -> -Config -{ -Config -{ -byte_classes -: -Some -( -yes -) -. -. -self -} -} -pub -fn -line_terminator -( -self -byte -: -u8 -) -- -> -Config -{ -Config -{ -line_terminator -: -Some -( -byte -) -. -. -self -} -} -pub -fn -hybrid -( -self -yes -: -bool -) -- -> -Config -{ -Config -{ -hybrid -: -Some -( -yes -) -. -. -self -} -} -pub -fn -dfa -( -self -yes -: -bool -) -- -> -Config -{ -Config -{ -dfa -: -Some -( -yes -) -. -. -self -} -} -pub -fn -onepass -( -self -yes -: -bool -) -- -> -Config -{ -Config -{ -onepass -: -Some -( -yes -) -. -. -self -} -} -pub -fn -backtrack -( -self -yes -: -bool -) -- -> -Config -{ -Config -{ -backtrack -: -Some -( -yes -) -. -. -self -} -} -pub -fn -get_match_kind -( -& -self -) -- -> -MatchKind -{ -self -. -match_kind -. -unwrap_or -( -MatchKind -: -: -LeftmostFirst -) -} -pub -fn -get_utf8_empty -( -& -self -) -- -> -bool -{ -self -. -utf8_empty -. -unwrap_or -( -true -) -} -pub -fn -get_auto_prefilter -( -& -self -) -- -> -bool -{ -self -. -autopre -. -unwrap_or -( -true -) -} -pub -fn -get_prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -self -. -pre -. -as_ref -( -) -. -unwrap_or -( -& -None -) -. -as_ref -( -) -} -pub -fn -get_which_captures -( -& -self -) -- -> -WhichCaptures -{ -self -. -which_captures -. -unwrap_or -( -WhichCaptures -: -: -All -) -} -pub -fn -get_nfa_size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -nfa_size_limit -. -unwrap_or -( -Some -( -10 -* -( -1 -< -< -20 -) -) -) -} -pub -fn -get_onepass_size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -onepass_size_limit -. -unwrap_or -( -Some -( -1 -* -( -1 -< -< -20 -) -) -) -} -pub -fn -get_hybrid_cache_capacity -( -& -self -) -- -> -usize -{ -self -. -hybrid_cache_capacity -. -unwrap_or -( -2 -* -( -1 -< -< -20 -) -) -} -pub -fn -get_dfa_size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -dfa_size_limit -. -unwrap_or -( -Some -( -40 -* -( -1 -< -< -10 -) -) -) -} -pub -fn -get_dfa_state_limit -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -dfa_state_limit -. -unwrap_or -( -Some -( -30 -) -) -} -pub -fn -get_byte_classes -( -& -self -) -- -> -bool -{ -self -. -byte_classes -. -unwrap_or -( -true -) -} -pub -fn -get_line_terminator -( -& -self -) -- -> -u8 -{ -self -. -line_terminator -. -unwrap_or -( -b -' -\ -n -' -) -} -pub -fn -get_hybrid -( -& -self -) -- -> -bool -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -self -. -hybrid -. -unwrap_or -( -true -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -false -} -} -pub -fn -get_dfa -( -& -self -) -- -> -bool -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -self -. -dfa -. -unwrap_or -( -true -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -false -} -} -pub -fn -get_onepass -( -& -self -) -- -> -bool -{ -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -{ -self -. -onepass -. -unwrap_or -( -true -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -{ -false -} -} -pub -fn -get_backtrack -( -& -self -) -- -> -bool -{ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -{ -self -. -backtrack -. -unwrap_or -( -true -) -} -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -{ -false -} -} -pub -( -crate -) -fn -overwrite -( -& -self -o -: -Config -) -- -> -Config -{ -Config -{ -match_kind -: -o -. -match_kind -. -or -( -self -. -match_kind -) -utf8_empty -: -o -. -utf8_empty -. -or -( -self -. -utf8_empty -) -autopre -: -o -. -autopre -. -or -( -self -. -autopre -) -pre -: -o -. -pre -. -or_else -( -| -| -self -. -pre -. -clone -( -) -) -which_captures -: -o -. -which_captures -. -or -( -self -. -which_captures -) -nfa_size_limit -: -o -. -nfa_size_limit -. -or -( -self -. -nfa_size_limit -) -onepass_size_limit -: -o -. -onepass_size_limit -. -or -( -self -. -onepass_size_limit -) -hybrid_cache_capacity -: -o -. -hybrid_cache_capacity -. -or -( -self -. -hybrid_cache_capacity -) -hybrid -: -o -. -hybrid -. -or -( -self -. -hybrid -) -dfa -: -o -. -dfa -. -or -( -self -. -dfa -) -dfa_size_limit -: -o -. -dfa_size_limit -. -or -( -self -. -dfa_size_limit -) -dfa_state_limit -: -o -. -dfa_state_limit -. -or -( -self -. -dfa_state_limit -) -onepass -: -o -. -onepass -. -or -( -self -. -onepass -) -backtrack -: -o -. -backtrack -. -or -( -self -. -backtrack -) -byte_classes -: -o -. -byte_classes -. -or -( -self -. -byte_classes -) -line_terminator -: -o -. -line_terminator -. -or -( -self -. -line_terminator -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -config -: -Config -ast -: -ast -: -: -parse -: -: -ParserBuilder -hir -: -hir -: -: -translate -: -: -TranslatorBuilder -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -{ -config -: -Config -: -: -default -( -) -ast -: -ast -: -: -parse -: -: -ParserBuilder -: -: -new -( -) -hir -: -hir -: -: -translate -: -: -TranslatorBuilder -: -: -new -( -) -} -} -pub -fn -build -( -& -self -pattern -: -& -str -) -- -> -Result -< -Regex -BuildError -> -{ -self -. -build_many -( -& -[ -pattern -] -) -} -pub -fn -build_many -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -Regex -BuildError -> -{ -use -crate -: -: -util -: -: -primitives -: -: -IteratorIndexExt -; -log -! -{ -debug -! -( -" -building -meta -regex -with -{ -} -patterns -: -" -patterns -. -len -( -) -) -; -for -( -pid -p -) -in -patterns -. -iter -( -) -. -with_pattern_ids -( -) -{ -let -p -= -p -. -as_ref -( -) -; -/ -/ -We -might -split -a -grapheme -with -this -truncation -logic -but -/ -/ -that -' -s -fine -. -We -at -least -avoid -splitting -a -codepoint -. -let -maxoff -= -p -. -char_indices -( -) -. -map -( -| -( -i -ch -) -| -i -+ -ch -. -len_utf8 -( -) -) -. -take -( -1000 -) -. -last -( -) -. -unwrap_or -( -0 -) -; -if -maxoff -< -p -. -len -( -) -{ -debug -! -( -" -{ -: -? -} -: -{ -} -[ -. -. -. -snip -. -. -. -] -" -pid -& -p -[ -. -. -maxoff -] -) -; -} -else -{ -debug -! -( -" -{ -: -? -} -: -{ -} -" -pid -p -) -; -} -} -} -let -( -mut -asts -mut -hirs -) -= -( -vec -! -[ -] -vec -! -[ -] -) -; -for -( -pid -p -) -in -patterns -. -iter -( -) -. -with_pattern_ids -( -) -{ -let -ast -= -self -. -ast -. -build -( -) -. -parse -( -p -. -as_ref -( -) -) -. -map_err -( -| -err -| -BuildError -: -: -ast -( -pid -err -) -) -? -; -asts -. -push -( -ast -) -; -} -for -( -( -pid -p -) -ast -) -in -patterns -. -iter -( -) -. -with_pattern_ids -( -) -. -zip -( -asts -. -iter -( -) -) -{ -let -hir -= -self -. -hir -. -build -( -) -. -translate -( -p -. -as_ref -( -) -ast -) -. -map_err -( -| -err -| -BuildError -: -: -hir -( -pid -err -) -) -? -; -hirs -. -push -( -hir -) -; -} -self -. -build_many_from_hir -( -& -hirs -) -} -pub -fn -build_from_hir -( -& -self -hir -: -& -Hir -) -- -> -Result -< -Regex -BuildError -> -{ -self -. -build_many_from_hir -( -& -[ -hir -] -) -} -pub -fn -build_many_from_hir -< -H -: -Borrow -< -Hir -> -> -( -& -self -hirs -: -& -[ -H -] -) -- -> -Result -< -Regex -BuildError -> -{ -let -config -= -self -. -config -. -clone -( -) -; -let -hirs -: -Vec -< -& -Hir -> -= -hirs -. -iter -( -) -. -map -( -| -hir -| -hir -. -borrow -( -) -) -. -collect -( -) -; -let -info -= -RegexInfo -: -: -new -( -config -& -hirs -) -; -let -strat -= -strategy -: -: -new -( -& -info -& -hirs -) -? -; -let -pool -= -{ -let -strat -= -Arc -: -: -clone -( -& -strat -) -; -let -create -: -CachePoolFn -= -Box -: -: -new -( -move -| -| -strat -. -create_cache -( -) -) -; -Pool -: -: -new -( -create -) -} -; -Ok -( -Regex -{ -imp -: -Arc -: -: -new -( -RegexI -{ -strat -info -} -) -pool -} -) -} -pub -fn -configure -( -& -mut -self -config -: -Config -) -- -> -& -mut -Builder -{ -self -. -config -= -self -. -config -. -overwrite -( -config -) -; -self -} -pub -fn -syntax -( -& -mut -self -config -: -crate -: -: -util -: -: -syntax -: -: -Config -) -- -> -& -mut -Builder -{ -config -. -apply_ast -( -& -mut -self -. -ast -) -; -config -. -apply_hir -( -& -mut -self -. -hir -) -; -self -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -super -: -: -* -; -# -[ -test -] -fn -regression -( -) -{ -env_logger -: -: -init -( -) -; -let -re -= -Regex -: -: -new -( -r -" -[ -a -- -zA -- -Z -] -+ -ing -" -) -. -unwrap -( -) -; -assert_eq -! -( -1 -re -. -find_iter -( -" -tingling -" -) -. -count -( -) -) -; -} -} diff --git a/third_party/rust/regex-automata/src/meta/reverse_inner.rs b/third_party/rust/regex-automata/src/meta/reverse_inner.rs deleted file mode 100644 index 9355f6a04c5de..0000000000000 --- a/third_party/rust/regex-automata/src/meta/reverse_inner.rs +++ /dev/null @@ -1,882 +0,0 @@ -use -alloc -: -: -vec -: -: -Vec -; -use -regex_syntax -: -: -hir -: -: -{ -self -literal -Hir -HirKind -} -; -use -crate -: -: -{ -util -: -: -prefilter -: -: -Prefilter -MatchKind -} -; -pub -( -crate -) -fn -extract -( -hirs -: -& -[ -& -Hir -] -) -- -> -Option -< -( -Hir -Prefilter -) -> -{ -if -hirs -. -len -( -) -! -= -1 -{ -debug -! -( -" -skipping -reverse -inner -optimization -since -it -only -\ -supports -1 -pattern -{ -} -were -given -" -hirs -. -len -( -) -) -; -return -None -; -} -let -mut -concat -= -match -top_concat -( -hirs -[ -0 -] -) -{ -Some -( -concat -) -= -> -concat -None -= -> -{ -debug -! -( -" -skipping -reverse -inner -optimization -because -a -top -- -level -\ -concatenation -could -not -found -" -) -; -return -None -; -} -} -; -for -i -in -1 -. -. -concat -. -len -( -) -{ -let -hir -= -& -concat -[ -i -] -; -let -pre -= -match -prefilter -( -hir -) -{ -None -= -> -continue -Some -( -pre -) -= -> -pre -} -; -if -! -pre -. -is_fast -( -) -{ -debug -! -( -" -skipping -extracted -inner -prefilter -because -\ -it -probably -isn -' -t -fast -" -) -; -continue -; -} -let -concat_suffix -= -Hir -: -: -concat -( -concat -. -split_off -( -i -) -) -; -let -concat_prefix -= -Hir -: -: -concat -( -concat -) -; -let -pre2 -= -match -prefilter -( -& -concat_suffix -) -{ -None -= -> -pre -Some -( -pre2 -) -= -> -{ -if -pre2 -. -is_fast -( -) -{ -pre2 -} -else -{ -pre -} -} -} -; -return -Some -( -( -concat_prefix -pre2 -) -) -; -} -debug -! -( -" -skipping -reverse -inner -optimization -because -a -top -- -level -\ -sub -- -expression -with -a -fast -prefilter -could -not -be -found -" -) -; -None -} -fn -prefilter -( -hir -: -& -Hir -) -- -> -Option -< -Prefilter -> -{ -let -mut -extractor -= -literal -: -: -Extractor -: -: -new -( -) -; -extractor -. -kind -( -literal -: -: -ExtractKind -: -: -Prefix -) -; -let -mut -prefixes -= -extractor -. -extract -( -hir -) -; -debug -! -( -" -inner -prefixes -( -len -= -{ -: -? -} -) -extracted -before -optimization -: -{ -: -? -} -" -prefixes -. -len -( -) -prefixes -) -; -prefixes -. -make_inexact -( -) -; -prefixes -. -optimize_for_prefix_by_preference -( -) -; -debug -! -( -" -inner -prefixes -( -len -= -{ -: -? -} -) -extracted -after -optimization -: -{ -: -? -} -" -prefixes -. -len -( -) -prefixes -) -; -prefixes -. -literals -( -) -. -and_then -( -| -lits -| -Prefilter -: -: -new -( -MatchKind -: -: -LeftmostFirst -lits -) -) -} -fn -top_concat -( -mut -hir -: -& -Hir -) -- -> -Option -< -Vec -< -Hir -> -> -{ -loop -{ -hir -= -match -hir -. -kind -( -) -{ -HirKind -: -: -Empty -| -HirKind -: -: -Literal -( -_ -) -| -HirKind -: -: -Class -( -_ -) -| -HirKind -: -: -Look -( -_ -) -| -HirKind -: -: -Repetition -( -_ -) -| -HirKind -: -: -Alternation -( -_ -) -= -> -return -None -HirKind -: -: -Capture -( -hir -: -: -Capture -{ -ref -sub -. -. -} -) -= -> -sub -HirKind -: -: -Concat -( -ref -subs -) -= -> -{ -let -concat -= -Hir -: -: -concat -( -subs -. -iter -( -) -. -map -( -| -h -| -flatten -( -h -) -) -. -collect -( -) -) -; -return -match -concat -. -into_kind -( -) -{ -HirKind -: -: -Concat -( -xs -) -= -> -Some -( -xs -) -_ -= -> -return -None -} -; -} -} -; -} -} -fn -flatten -( -hir -: -& -Hir -) -- -> -Hir -{ -match -hir -. -kind -( -) -{ -HirKind -: -: -Empty -= -> -Hir -: -: -empty -( -) -HirKind -: -: -Literal -( -hir -: -: -Literal -( -ref -x -) -) -= -> -Hir -: -: -literal -( -x -. -clone -( -) -) -HirKind -: -: -Class -( -ref -x -) -= -> -Hir -: -: -class -( -x -. -clone -( -) -) -HirKind -: -: -Look -( -ref -x -) -= -> -Hir -: -: -look -( -x -. -clone -( -) -) -HirKind -: -: -Repetition -( -ref -x -) -= -> -Hir -: -: -repetition -( -x -. -with -( -flatten -( -& -x -. -sub -) -) -) -HirKind -: -: -Capture -( -hir -: -: -Capture -{ -ref -sub -. -. -} -) -= -> -flatten -( -sub -) -HirKind -: -: -Alternation -( -ref -xs -) -= -> -{ -Hir -: -: -alternation -( -xs -. -iter -( -) -. -map -( -| -x -| -flatten -( -x -) -) -. -collect -( -) -) -} -HirKind -: -: -Concat -( -ref -xs -) -= -> -{ -Hir -: -: -concat -( -xs -. -iter -( -) -. -map -( -| -x -| -flatten -( -x -) -) -. -collect -( -) -) -} -} -} diff --git a/third_party/rust/regex-automata/src/meta/stopat.rs b/third_party/rust/regex-automata/src/meta/stopat.rs deleted file mode 100644 index 749d1e1d15016..0000000000000 --- a/third_party/rust/regex-automata/src/meta/stopat.rs +++ /dev/null @@ -1,1393 +0,0 @@ -use -crate -: -: -{ -meta -: -: -error -: -: -RetryFailError -HalfMatch -Input -MatchError -} -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -pub -( -crate -) -fn -dfa_try_search_half_fwd -( -dfa -: -& -crate -: -: -dfa -: -: -dense -: -: -DFA -< -alloc -: -: -vec -: -: -Vec -< -u32 -> -> -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Result -< -HalfMatch -usize -> -RetryFailError -> -{ -use -crate -: -: -dfa -: -: -{ -accel -Automaton -} -; -let -mut -mat -= -None -; -let -mut -sid -= -dfa -. -start_state_forward -( -input -) -? -; -let -mut -at -= -input -. -start -( -) -; -while -at -< -input -. -end -( -) -{ -sid -= -dfa -. -next_state -( -sid -input -. -haystack -( -) -[ -at -] -) -; -if -dfa -. -is_special_state -( -sid -) -{ -if -dfa -. -is_match_state -( -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -sid -0 -) -; -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -at -) -) -; -if -input -. -get_earliest -( -) -{ -return -Ok -( -mat -. -ok_or -( -at -) -) -; -} -if -dfa -. -is_accel_state -( -sid -) -{ -let -needs -= -dfa -. -accelerator -( -sid -) -; -at -= -accel -: -: -find_fwd -( -needs -input -. -haystack -( -) -at -) -. -unwrap_or -( -input -. -end -( -) -) -; -continue -; -} -} -else -if -dfa -. -is_accel_state -( -sid -) -{ -let -needs -= -dfa -. -accelerator -( -sid -) -; -at -= -accel -: -: -find_fwd -( -needs -input -. -haystack -( -) -at -) -. -unwrap_or -( -input -. -end -( -) -) -; -continue -; -} -else -if -dfa -. -is_dead_state -( -sid -) -{ -return -Ok -( -mat -. -ok_or -( -at -) -) -; -} -else -if -dfa -. -is_quit_state -( -sid -) -{ -if -mat -. -is_some -( -) -{ -return -Ok -( -mat -. -ok_or -( -at -) -) -; -} -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -at -] -at -) -. -into -( -) -) -; -} -else -{ -debug_assert -! -( -dfa -. -is_start_state -( -sid -) -) -; -} -} -at -+ -= -1 -; -} -dfa_eoi_fwd -( -dfa -input -& -mut -sid -& -mut -mat -) -? -; -Ok -( -mat -. -ok_or -( -at -) -) -} -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -pub -( -crate -) -fn -hybrid_try_search_half_fwd -( -dfa -: -& -crate -: -: -hybrid -: -: -dfa -: -: -DFA -cache -: -& -mut -crate -: -: -hybrid -: -: -dfa -: -: -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Result -< -HalfMatch -usize -> -RetryFailError -> -{ -let -mut -mat -= -None -; -let -mut -sid -= -dfa -. -start_state_forward -( -cache -input -) -? -; -let -mut -at -= -input -. -start -( -) -; -while -at -< -input -. -end -( -) -{ -sid -= -dfa -. -next_state -( -cache -sid -input -. -haystack -( -) -[ -at -] -) -. -map_err -( -| -_ -| -MatchError -: -: -gave_up -( -at -) -) -? -; -if -sid -. -is_tagged -( -) -{ -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -sid -0 -) -; -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -at -) -) -; -if -input -. -get_earliest -( -) -{ -return -Ok -( -mat -. -ok_or -( -at -) -) -; -} -} -else -if -sid -. -is_dead -( -) -{ -return -Ok -( -mat -. -ok_or -( -at -) -) -; -} -else -if -sid -. -is_quit -( -) -{ -if -mat -. -is_some -( -) -{ -return -Ok -( -mat -. -ok_or -( -at -) -) -; -} -return -Err -( -MatchError -: -: -quit -( -input -. -haystack -( -) -[ -at -] -at -) -. -into -( -) -) -; -} -else -{ -debug_assert -! -( -! -sid -. -is_unknown -( -) -) -; -debug_assert -! -( -sid -. -is_start -( -) -) -; -} -} -at -+ -= -1 -; -} -hybrid_eoi_fwd -( -dfa -cache -input -& -mut -sid -& -mut -mat -) -? -; -Ok -( -mat -. -ok_or -( -at -) -) -} -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -dfa_eoi_fwd -( -dfa -: -& -crate -: -: -dfa -: -: -dense -: -: -DFA -< -alloc -: -: -vec -: -: -Vec -< -u32 -> -> -input -: -& -Input -< -' -_ -> -sid -: -& -mut -crate -: -: -util -: -: -primitives -: -: -StateID -mat -: -& -mut -Option -< -HalfMatch -> -) -- -> -Result -< -( -) -MatchError -> -{ -use -crate -: -: -dfa -: -: -Automaton -; -let -sp -= -input -. -get_span -( -) -; -match -input -. -haystack -( -) -. -get -( -sp -. -end -) -{ -Some -( -& -b -) -= -> -{ -* -sid -= -dfa -. -next_state -( -* -sid -b -) -; -if -dfa -. -is_match_state -( -* -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -sp -. -end -) -) -; -} -else -if -dfa -. -is_quit_state -( -* -sid -) -{ -if -mat -. -is_some -( -) -{ -return -Ok -( -( -) -) -; -} -return -Err -( -MatchError -: -: -quit -( -b -sp -. -end -) -) -; -} -} -None -= -> -{ -* -sid -= -dfa -. -next_eoi_state -( -* -sid -) -; -if -dfa -. -is_match_state -( -* -sid -) -{ -let -pattern -= -dfa -. -match_pattern -( -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -input -. -haystack -( -) -. -len -( -) -) -) -; -} -debug_assert -! -( -! -dfa -. -is_quit_state -( -* -sid -) -) -; -} -} -Ok -( -( -) -) -} -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -hybrid_eoi_fwd -( -dfa -: -& -crate -: -: -hybrid -: -: -dfa -: -: -DFA -cache -: -& -mut -crate -: -: -hybrid -: -: -dfa -: -: -Cache -input -: -& -Input -< -' -_ -> -sid -: -& -mut -crate -: -: -hybrid -: -: -LazyStateID -mat -: -& -mut -Option -< -HalfMatch -> -) -- -> -Result -< -( -) -MatchError -> -{ -let -sp -= -input -. -get_span -( -) -; -match -input -. -haystack -( -) -. -get -( -sp -. -end -) -{ -Some -( -& -b -) -= -> -{ -* -sid -= -dfa -. -next_state -( -cache -* -sid -b -) -. -map_err -( -| -_ -| -MatchError -: -: -gave_up -( -sp -. -end -) -) -? -; -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -sp -. -end -) -) -; -} -else -if -sid -. -is_quit -( -) -{ -if -mat -. -is_some -( -) -{ -return -Ok -( -( -) -) -; -} -return -Err -( -MatchError -: -: -quit -( -b -sp -. -end -) -) -; -} -} -None -= -> -{ -* -sid -= -dfa -. -next_eoi_state -( -cache -* -sid -) -. -map_err -( -| -_ -| -MatchError -: -: -gave_up -( -input -. -haystack -( -) -. -len -( -) -) -) -? -; -if -sid -. -is_match -( -) -{ -let -pattern -= -dfa -. -match_pattern -( -cache -* -sid -0 -) -; -* -mat -= -Some -( -HalfMatch -: -: -new -( -pattern -input -. -haystack -( -) -. -len -( -) -) -) -; -} -debug_assert -! -( -! -sid -. -is_quit -( -) -) -; -} -} -Ok -( -( -) -) -} diff --git a/third_party/rust/regex-automata/src/meta/strategy.rs b/third_party/rust/regex-automata/src/meta/strategy.rs deleted file mode 100644 index 27cf031ced954..0000000000000 --- a/third_party/rust/regex-automata/src/meta/strategy.rs +++ /dev/null @@ -1,11322 +0,0 @@ -use -core -: -: -{ -fmt -: -: -Debug -panic -: -: -{ -RefUnwindSafe -UnwindSafe -} -} -; -use -alloc -: -: -sync -: -: -Arc -; -use -regex_syntax -: -: -hir -: -: -{ -literal -Hir -} -; -use -crate -: -: -{ -meta -: -: -{ -error -: -: -{ -BuildError -RetryError -RetryFailError -RetryQuadraticError -} -regex -: -: -{ -Cache -RegexInfo -} -reverse_inner -wrappers -} -nfa -: -: -thompson -: -: -{ -self -WhichCaptures -NFA -} -util -: -: -{ -captures -: -: -{ -Captures -GroupInfo -} -look -: -: -LookMatcher -prefilter -: -: -{ -self -Prefilter -PrefilterI -} -primitives -: -: -{ -NonMaxUsize -PatternID -} -search -: -: -{ -Anchored -HalfMatch -Input -Match -MatchKind -PatternSet -} -} -} -; -pub -( -super -) -trait -Strategy -: -Debug -+ -Send -+ -Sync -+ -RefUnwindSafe -+ -UnwindSafe -+ -' -static -{ -fn -group_info -( -& -self -) -- -> -& -GroupInfo -; -fn -create_cache -( -& -self -) -- -> -Cache -; -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -; -fn -is_accelerated -( -& -self -) -- -> -bool -; -fn -memory_usage -( -& -self -) -- -> -usize -; -fn -search -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Match -> -; -fn -search_half -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -HalfMatch -> -; -fn -is_match -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -bool -; -fn -search_slots -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -; -fn -which_overlapping_matches -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -; -} -pub -( -super -) -fn -new -( -info -: -& -RegexInfo -hirs -: -& -[ -& -Hir -] -) -- -> -Result -< -Arc -< -dyn -Strategy -> -BuildError -> -{ -let -pre -= -if -info -. -is_always_anchored_start -( -) -{ -debug -! -( -" -skipping -literal -extraction -since -regex -is -anchored -" -) -; -None -} -else -if -let -Some -( -pre -) -= -info -. -config -( -) -. -get_prefilter -( -) -{ -debug -! -( -" -skipping -literal -extraction -since -the -caller -provided -a -prefilter -" -) -; -Some -( -pre -. -clone -( -) -) -} -else -if -info -. -config -( -) -. -get_auto_prefilter -( -) -{ -let -kind -= -info -. -config -( -) -. -get_match_kind -( -) -; -let -prefixes -= -crate -: -: -util -: -: -prefilter -: -: -prefixes -( -kind -hirs -) -; -if -let -Some -( -pre -) -= -Pre -: -: -from_prefixes -( -info -& -prefixes -) -{ -debug -! -( -" -found -that -the -regex -can -be -broken -down -to -a -literal -\ -search -avoiding -the -regex -engine -entirely -" -) -; -return -Ok -( -pre -) -; -} -if -let -Some -( -pre -) -= -Pre -: -: -from_alternation_literals -( -info -hirs -) -{ -debug -! -( -" -found -plain -alternation -of -literals -\ -avoiding -regex -engine -entirely -and -using -Aho -- -Corasick -" -) -; -return -Ok -( -pre -) -; -} -prefixes -. -literals -( -) -. -and_then -( -| -strings -| -{ -debug -! -( -" -creating -prefilter -from -{ -} -literals -: -{ -: -? -} -" -strings -. -len -( -) -strings -) -; -Prefilter -: -: -new -( -kind -strings -) -} -) -} -else -{ -debug -! -( -" -skipping -literal -extraction -since -prefilters -were -disabled -" -) -; -None -} -; -let -mut -core -= -Core -: -: -new -( -info -. -clone -( -) -pre -. -clone -( -) -hirs -) -? -; -core -= -match -ReverseAnchored -: -: -new -( -core -) -{ -Err -( -core -) -= -> -core -Ok -( -ra -) -= -> -{ -debug -! -( -" -using -reverse -anchored -strategy -" -) -; -return -Ok -( -Arc -: -: -new -( -ra -) -) -; -} -} -; -core -= -match -ReverseSuffix -: -: -new -( -core -hirs -) -{ -Err -( -core -) -= -> -core -Ok -( -rs -) -= -> -{ -debug -! -( -" -using -reverse -suffix -strategy -" -) -; -return -Ok -( -Arc -: -: -new -( -rs -) -) -; -} -} -; -core -= -match -ReverseInner -: -: -new -( -core -hirs -) -{ -Err -( -core -) -= -> -core -Ok -( -ri -) -= -> -{ -debug -! -( -" -using -reverse -inner -strategy -" -) -; -return -Ok -( -Arc -: -: -new -( -ri -) -) -; -} -} -; -debug -! -( -" -using -core -strategy -" -) -; -Ok -( -Arc -: -: -new -( -core -) -) -} -# -[ -derive -( -Clone -Debug -) -] -struct -Pre -< -P -> -{ -pre -: -P -group_info -: -GroupInfo -} -impl -< -P -: -PrefilterI -> -Pre -< -P -> -{ -fn -new -( -pre -: -P -) -- -> -Arc -< -dyn -Strategy -> -{ -let -group_info -= -GroupInfo -: -: -new -( -[ -[ -None -: -: -< -& -str -> -] -] -) -. -unwrap -( -) -; -Arc -: -: -new -( -Pre -{ -pre -group_info -} -) -} -} -impl -Pre -< -( -) -> -{ -fn -from_prefixes -( -info -: -& -RegexInfo -prefixes -: -& -literal -: -: -Seq -) -- -> -Option -< -Arc -< -dyn -Strategy -> -> -{ -let -kind -= -info -. -config -( -) -. -get_match_kind -( -) -; -if -! -prefixes -. -is_exact -( -) -{ -return -None -; -} -if -info -. -pattern_len -( -) -! -= -1 -{ -return -None -; -} -if -info -. -props -( -) -[ -0 -] -. -explicit_captures_len -( -) -! -= -0 -{ -return -None -; -} -if -! -info -. -props -( -) -[ -0 -] -. -look_set -( -) -. -is_empty -( -) -{ -return -None -; -} -if -kind -! -= -MatchKind -: -: -LeftmostFirst -{ -return -None -; -} -let -prefixes -= -prefixes -. -literals -( -) -. -unwrap -( -) -; -debug -! -( -" -trying -to -bypass -regex -engine -by -creating -\ -prefilter -from -{ -} -literals -: -{ -: -? -} -" -prefixes -. -len -( -) -prefixes -) -; -let -choice -= -match -prefilter -: -: -Choice -: -: -new -( -kind -prefixes -) -{ -Some -( -choice -) -= -> -choice -None -= -> -{ -debug -! -( -" -regex -bypass -failed -because -no -prefilter -could -be -built -" -) -; -return -None -; -} -} -; -let -strat -: -Arc -< -dyn -Strategy -> -= -match -choice -{ -prefilter -: -: -Choice -: -: -Memchr -( -pre -) -= -> -Pre -: -: -new -( -pre -) -prefilter -: -: -Choice -: -: -Memchr2 -( -pre -) -= -> -Pre -: -: -new -( -pre -) -prefilter -: -: -Choice -: -: -Memchr3 -( -pre -) -= -> -Pre -: -: -new -( -pre -) -prefilter -: -: -Choice -: -: -Memmem -( -pre -) -= -> -Pre -: -: -new -( -pre -) -prefilter -: -: -Choice -: -: -Teddy -( -pre -) -= -> -Pre -: -: -new -( -pre -) -prefilter -: -: -Choice -: -: -ByteSet -( -pre -) -= -> -Pre -: -: -new -( -pre -) -prefilter -: -: -Choice -: -: -AhoCorasick -( -pre -) -= -> -Pre -: -: -new -( -pre -) -} -; -Some -( -strat -) -} -fn -from_alternation_literals -( -info -: -& -RegexInfo -hirs -: -& -[ -& -Hir -] -) -- -> -Option -< -Arc -< -dyn -Strategy -> -> -{ -use -crate -: -: -util -: -: -prefilter -: -: -AhoCorasick -; -let -lits -= -crate -: -: -meta -: -: -literal -: -: -alternation_literals -( -info -hirs -) -? -; -let -ac -= -AhoCorasick -: -: -new -( -MatchKind -: -: -LeftmostFirst -& -lits -) -? -; -Some -( -Pre -: -: -new -( -ac -) -) -} -} -impl -< -P -: -PrefilterI -> -Strategy -for -Pre -< -P -> -{ -fn -group_info -( -& -self -) -- -> -& -GroupInfo -{ -& -self -. -group_info -} -fn -create_cache -( -& -self -) -- -> -Cache -{ -Cache -{ -capmatches -: -Captures -: -: -all -( -self -. -group_info -( -) -. -clone -( -) -) -pikevm -: -wrappers -: -: -PikeVMCache -: -: -none -( -) -backtrack -: -wrappers -: -: -BoundedBacktrackerCache -: -: -none -( -) -onepass -: -wrappers -: -: -OnePassCache -: -: -none -( -) -hybrid -: -wrappers -: -: -HybridCache -: -: -none -( -) -revhybrid -: -wrappers -: -: -ReverseHybridCache -: -: -none -( -) -} -} -fn -reset_cache -( -& -self -_cache -: -& -mut -Cache -) -{ -} -fn -is_accelerated -( -& -self -) -- -> -bool -{ -self -. -pre -. -is_fast -( -) -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -pre -. -memory_usage -( -) -} -fn -search -( -& -self -_cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Match -> -{ -if -input -. -is_done -( -) -{ -return -None -; -} -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -pre -. -prefix -( -input -. -haystack -( -) -input -. -get_span -( -) -) -. -map -( -| -sp -| -Match -: -: -new -( -PatternID -: -: -ZERO -sp -) -) -; -} -self -. -pre -. -find -( -input -. -haystack -( -) -input -. -get_span -( -) -) -. -map -( -| -sp -| -Match -: -: -new -( -PatternID -: -: -ZERO -sp -) -) -} -fn -search_half -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -HalfMatch -> -{ -self -. -search -( -cache -input -) -. -map -( -| -m -| -HalfMatch -: -: -new -( -m -. -pattern -( -) -m -. -end -( -) -) -) -} -fn -is_match -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -self -. -search -( -cache -input -) -. -is_some -( -) -} -fn -search_slots -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -let -m -= -self -. -search -( -cache -input -) -? -; -if -let -Some -( -slot -) -= -slots -. -get_mut -( -0 -) -{ -* -slot -= -NonMaxUsize -: -: -new -( -m -. -start -( -) -) -; -} -if -let -Some -( -slot -) -= -slots -. -get_mut -( -1 -) -{ -* -slot -= -NonMaxUsize -: -: -new -( -m -. -end -( -) -) -; -} -Some -( -m -. -pattern -( -) -) -} -fn -which_overlapping_matches -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -if -self -. -search -( -cache -input -) -. -is_some -( -) -{ -patset -. -insert -( -PatternID -: -: -ZERO -) -; -} -} -} -# -[ -derive -( -Debug -) -] -struct -Core -{ -info -: -RegexInfo -pre -: -Option -< -Prefilter -> -nfa -: -NFA -nfarev -: -Option -< -NFA -> -pikevm -: -wrappers -: -: -PikeVM -backtrack -: -wrappers -: -: -BoundedBacktracker -onepass -: -wrappers -: -: -OnePass -hybrid -: -wrappers -: -: -Hybrid -dfa -: -wrappers -: -: -DFA -} -impl -Core -{ -fn -new -( -info -: -RegexInfo -pre -: -Option -< -Prefilter -> -hirs -: -& -[ -& -Hir -] -) -- -> -Result -< -Core -BuildError -> -{ -let -mut -lookm -= -LookMatcher -: -: -new -( -) -; -lookm -. -set_line_terminator -( -info -. -config -( -) -. -get_line_terminator -( -) -) -; -let -thompson_config -= -thompson -: -: -Config -: -: -new -( -) -. -utf8 -( -info -. -config -( -) -. -get_utf8_empty -( -) -) -. -nfa_size_limit -( -info -. -config -( -) -. -get_nfa_size_limit -( -) -) -. -shrink -( -false -) -. -which_captures -( -info -. -config -( -) -. -get_which_captures -( -) -) -. -look_matcher -( -lookm -) -; -let -nfa -= -thompson -: -: -Compiler -: -: -new -( -) -. -configure -( -thompson_config -. -clone -( -) -) -. -build_many_from_hir -( -hirs -) -. -map_err -( -BuildError -: -: -nfa -) -? -; -let -pikevm -= -wrappers -: -: -PikeVM -: -: -new -( -& -info -pre -. -clone -( -) -& -nfa -) -? -; -let -backtrack -= -wrappers -: -: -BoundedBacktracker -: -: -new -( -& -info -pre -. -clone -( -) -& -nfa -) -? -; -let -onepass -= -wrappers -: -: -OnePass -: -: -new -( -& -info -& -nfa -) -; -let -( -nfarev -hybrid -dfa -) -= -if -! -info -. -config -( -) -. -get_hybrid -( -) -& -& -! -info -. -config -( -) -. -get_dfa -( -) -{ -( -None -wrappers -: -: -Hybrid -: -: -none -( -) -wrappers -: -: -DFA -: -: -none -( -) -) -} -else -{ -let -nfarev -= -thompson -: -: -Compiler -: -: -new -( -) -. -configure -( -thompson_config -. -clone -( -) -. -which_captures -( -WhichCaptures -: -: -None -) -. -reverse -( -true -) -) -. -build_many_from_hir -( -hirs -) -. -map_err -( -BuildError -: -: -nfa -) -? -; -let -dfa -= -if -! -info -. -config -( -) -. -get_dfa -( -) -{ -wrappers -: -: -DFA -: -: -none -( -) -} -else -{ -wrappers -: -: -DFA -: -: -new -( -& -info -pre -. -clone -( -) -& -nfa -& -nfarev -) -} -; -let -hybrid -= -if -! -info -. -config -( -) -. -get_hybrid -( -) -{ -wrappers -: -: -Hybrid -: -: -none -( -) -} -else -if -dfa -. -is_some -( -) -{ -debug -! -( -" -skipping -lazy -DFA -because -we -have -a -full -DFA -" -) -; -wrappers -: -: -Hybrid -: -: -none -( -) -} -else -{ -wrappers -: -: -Hybrid -: -: -new -( -& -info -pre -. -clone -( -) -& -nfa -& -nfarev -) -} -; -( -Some -( -nfarev -) -hybrid -dfa -) -} -; -Ok -( -Core -{ -info -pre -nfa -nfarev -pikevm -backtrack -onepass -hybrid -dfa -} -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -try_search_mayfail -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Result -< -Option -< -Match -> -RetryFailError -> -> -{ -if -let -Some -( -e -) -= -self -. -dfa -. -get -( -input -) -{ -trace -! -( -" -using -full -DFA -for -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -Some -( -e -. -try_search -( -input -) -) -} -else -if -let -Some -( -e -) -= -self -. -hybrid -. -get -( -input -) -{ -trace -! -( -" -using -lazy -DFA -for -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -Some -( -e -. -try_search -( -& -mut -cache -. -hybrid -input -) -) -} -else -{ -None -} -} -fn -search_nofail -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Match -> -{ -let -caps -= -& -mut -cache -. -capmatches -; -caps -. -set_pattern -( -None -) -; -let -pid -= -if -let -Some -( -ref -e -) -= -self -. -onepass -. -get -( -input -) -{ -trace -! -( -" -using -OnePass -for -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -search_slots -( -& -mut -cache -. -onepass -input -caps -. -slots_mut -( -) -) -} -else -if -let -Some -( -ref -e -) -= -self -. -backtrack -. -get -( -input -) -{ -trace -! -( -" -using -BoundedBacktracker -for -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -search_slots -( -& -mut -cache -. -backtrack -input -caps -. -slots_mut -( -) -) -} -else -{ -trace -! -( -" -using -PikeVM -for -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -let -e -= -self -. -pikevm -. -get -( -) -; -e -. -search_slots -( -& -mut -cache -. -pikevm -input -caps -. -slots_mut -( -) -) -} -; -caps -. -set_pattern -( -pid -) -; -caps -. -get_match -( -) -} -fn -search_half_nofail -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -HalfMatch -> -{ -let -m -= -self -. -search_nofail -( -cache -input -) -? -; -Some -( -HalfMatch -: -: -new -( -m -. -pattern -( -) -m -. -end -( -) -) -) -} -fn -search_slots_nofail -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -if -let -Some -( -ref -e -) -= -self -. -onepass -. -get -( -input -) -{ -trace -! -( -" -using -OnePass -for -capture -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -search_slots -( -& -mut -cache -. -onepass -input -slots -) -} -else -if -let -Some -( -ref -e -) -= -self -. -backtrack -. -get -( -input -) -{ -trace -! -( -" -using -BoundedBacktracker -for -capture -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -search_slots -( -& -mut -cache -. -backtrack -input -slots -) -} -else -{ -trace -! -( -" -using -PikeVM -for -capture -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -let -e -= -self -. -pikevm -. -get -( -) -; -e -. -search_slots -( -& -mut -cache -. -pikevm -input -slots -) -} -} -fn -is_match_nofail -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -if -let -Some -( -ref -e -) -= -self -. -onepass -. -get -( -input -) -{ -trace -! -( -" -using -OnePass -for -is -- -match -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -search_slots -( -& -mut -cache -. -onepass -input -& -mut -[ -] -) -. -is_some -( -) -} -else -if -let -Some -( -ref -e -) -= -self -. -backtrack -. -get -( -input -) -{ -trace -! -( -" -using -BoundedBacktracker -for -is -- -match -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -is_match -( -& -mut -cache -. -backtrack -input -) -} -else -{ -trace -! -( -" -using -PikeVM -for -is -- -match -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -let -e -= -self -. -pikevm -. -get -( -) -; -e -. -is_match -( -& -mut -cache -. -pikevm -input -) -} -} -fn -is_capture_search_needed -( -& -self -slots_len -: -usize -) -- -> -bool -{ -slots_len -> -self -. -nfa -. -group_info -( -) -. -implicit_slot_len -( -) -} -} -impl -Strategy -for -Core -{ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -group_info -( -& -self -) -- -> -& -GroupInfo -{ -self -. -nfa -. -group_info -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -create_cache -( -& -self -) -- -> -Cache -{ -Cache -{ -capmatches -: -Captures -: -: -all -( -self -. -group_info -( -) -. -clone -( -) -) -pikevm -: -self -. -pikevm -. -create_cache -( -) -backtrack -: -self -. -backtrack -. -create_cache -( -) -onepass -: -self -. -onepass -. -create_cache -( -) -hybrid -: -self -. -hybrid -. -create_cache -( -) -revhybrid -: -wrappers -: -: -ReverseHybridCache -: -: -none -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -{ -cache -. -pikevm -. -reset -( -& -self -. -pikevm -) -; -cache -. -backtrack -. -reset -( -& -self -. -backtrack -) -; -cache -. -onepass -. -reset -( -& -self -. -onepass -) -; -cache -. -hybrid -. -reset -( -& -self -. -hybrid -) -; -} -fn -is_accelerated -( -& -self -) -- -> -bool -{ -self -. -pre -. -as_ref -( -) -. -map_or -( -false -| -pre -| -pre -. -is_fast -( -) -) -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -info -. -memory_usage -( -) -+ -self -. -pre -. -as_ref -( -) -. -map_or -( -0 -| -pre -| -pre -. -memory_usage -( -) -) -+ -self -. -nfa -. -memory_usage -( -) -+ -self -. -nfarev -. -as_ref -( -) -. -map_or -( -0 -| -nfa -| -nfa -. -memory_usage -( -) -) -+ -self -. -onepass -. -memory_usage -( -) -+ -self -. -dfa -. -memory_usage -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Match -> -{ -return -if -let -Some -( -e -) -= -self -. -dfa -. -get -( -input -) -{ -trace -! -( -" -using -full -DFA -for -full -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -match -e -. -try_search -( -input -) -{ -Ok -( -x -) -= -> -x -Err -( -_err -) -= -> -{ -trace -! -( -" -full -DFA -search -failed -: -{ -} -" -_err -) -; -self -. -search_nofail -( -cache -input -) -} -} -} -else -if -let -Some -( -e -) -= -self -. -hybrid -. -get -( -input -) -{ -trace -! -( -" -using -lazy -DFA -for -full -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -match -e -. -try_search -( -& -mut -cache -. -hybrid -input -) -{ -Ok -( -x -) -= -> -x -Err -( -_err -) -= -> -{ -trace -! -( -" -lazy -DFA -search -failed -: -{ -} -" -_err -) -; -self -. -search_nofail -( -cache -input -) -} -} -} -else -{ -self -. -search_nofail -( -cache -input -) -} -; -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search_half -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -HalfMatch -> -{ -if -let -Some -( -e -) -= -self -. -dfa -. -get -( -input -) -{ -trace -! -( -" -using -full -DFA -for -half -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -match -e -. -try_search_half_fwd -( -input -) -{ -Ok -( -x -) -= -> -x -Err -( -_err -) -= -> -{ -trace -! -( -" -full -DFA -half -search -failed -: -{ -} -" -_err -) -; -self -. -search_half_nofail -( -cache -input -) -} -} -} -else -if -let -Some -( -e -) -= -self -. -hybrid -. -get -( -input -) -{ -trace -! -( -" -using -lazy -DFA -for -half -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -match -e -. -try_search_half_fwd -( -& -mut -cache -. -hybrid -input -) -{ -Ok -( -x -) -= -> -x -Err -( -_err -) -= -> -{ -trace -! -( -" -lazy -DFA -half -search -failed -: -{ -} -" -_err -) -; -self -. -search_half_nofail -( -cache -input -) -} -} -} -else -{ -self -. -search_half_nofail -( -cache -input -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_match -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -if -let -Some -( -e -) -= -self -. -dfa -. -get -( -input -) -{ -trace -! -( -" -using -full -DFA -for -is -- -match -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -match -e -. -try_search_half_fwd -( -input -) -{ -Ok -( -x -) -= -> -x -. -is_some -( -) -Err -( -_err -) -= -> -{ -trace -! -( -" -full -DFA -half -search -failed -: -{ -} -" -_err -) -; -self -. -is_match_nofail -( -cache -input -) -} -} -} -else -if -let -Some -( -e -) -= -self -. -hybrid -. -get -( -input -) -{ -trace -! -( -" -using -lazy -DFA -for -is -- -match -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -match -e -. -try_search_half_fwd -( -& -mut -cache -. -hybrid -input -) -{ -Ok -( -x -) -= -> -x -. -is_some -( -) -Err -( -_err -) -= -> -{ -trace -! -( -" -lazy -DFA -half -search -failed -: -{ -} -" -_err -) -; -self -. -is_match_nofail -( -cache -input -) -} -} -} -else -{ -self -. -is_match_nofail -( -cache -input -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search_slots -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -if -! -self -. -is_capture_search_needed -( -slots -. -len -( -) -) -{ -trace -! -( -" -asked -for -slots -unnecessarily -trying -fast -path -" -) -; -let -m -= -self -. -search -( -cache -input -) -? -; -copy_match_to_slots -( -m -slots -) -; -return -Some -( -m -. -pattern -( -) -) -; -} -if -self -. -onepass -. -get -( -& -input -) -. -is_some -( -) -{ -return -self -. -search_slots_nofail -( -cache -& -input -slots -) -; -} -let -m -= -match -self -. -try_search_mayfail -( -cache -input -) -{ -Some -( -Ok -( -Some -( -m -) -) -) -= -> -m -Some -( -Ok -( -None -) -) -= -> -return -None -Some -( -Err -( -_err -) -) -= -> -{ -trace -! -( -" -fast -capture -search -failed -: -{ -} -" -_err -) -; -return -self -. -search_slots_nofail -( -cache -input -slots -) -; -} -None -= -> -{ -return -self -. -search_slots_nofail -( -cache -input -slots -) -; -} -} -; -trace -! -( -" -match -found -at -{ -} -. -. -{ -} -in -capture -search -\ -using -another -engine -to -find -captures -" -m -. -start -( -) -m -. -end -( -) -) -; -let -input -= -input -. -clone -( -) -. -span -( -m -. -start -( -) -. -. -m -. -end -( -) -) -. -anchored -( -Anchored -: -: -Pattern -( -m -. -pattern -( -) -) -) -; -Some -( -self -. -search_slots_nofail -( -cache -& -input -slots -) -. -expect -( -" -should -find -a -match -" -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -which_overlapping_matches -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -if -let -Some -( -e -) -= -self -. -dfa -. -get -( -input -) -{ -trace -! -( -" -using -full -DFA -for -overlapping -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -let -_err -= -match -e -. -try_which_overlapping_matches -( -input -patset -) -{ -Ok -( -( -) -) -= -> -return -Err -( -err -) -= -> -err -} -; -trace -! -( -" -fast -overlapping -search -failed -: -{ -} -" -_err -) -; -} -else -if -let -Some -( -e -) -= -self -. -hybrid -. -get -( -input -) -{ -trace -! -( -" -using -lazy -DFA -for -overlapping -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -let -_err -= -match -e -. -try_which_overlapping_matches -( -& -mut -cache -. -hybrid -input -patset -) -{ -Ok -( -( -) -) -= -> -{ -return -; -} -Err -( -err -) -= -> -err -} -; -trace -! -( -" -fast -overlapping -search -failed -: -{ -} -" -_err -) -; -} -trace -! -( -" -using -PikeVM -for -overlapping -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -let -e -= -self -. -pikevm -. -get -( -) -; -e -. -which_overlapping_matches -( -& -mut -cache -. -pikevm -input -patset -) -} -} -# -[ -derive -( -Debug -) -] -struct -ReverseAnchored -{ -core -: -Core -} -impl -ReverseAnchored -{ -fn -new -( -core -: -Core -) -- -> -Result -< -ReverseAnchored -Core -> -{ -if -! -core -. -info -. -is_always_anchored_end -( -) -{ -debug -! -( -" -skipping -reverse -anchored -optimization -because -\ -the -regex -is -not -always -anchored -at -the -end -" -) -; -return -Err -( -core -) -; -} -if -core -. -info -. -is_always_anchored_start -( -) -{ -debug -! -( -" -skipping -reverse -anchored -optimization -because -\ -the -regex -is -also -anchored -at -the -start -" -) -; -return -Err -( -core -) -; -} -if -! -core -. -hybrid -. -is_some -( -) -& -& -! -core -. -dfa -. -is_some -( -) -{ -debug -! -( -" -skipping -reverse -anchored -optimization -because -\ -we -don -' -t -have -a -lazy -DFA -or -a -full -DFA -" -) -; -return -Err -( -core -) -; -} -Ok -( -ReverseAnchored -{ -core -} -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -try_search_half_anchored_rev -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -RetryFailError -> -{ -let -input -= -input -. -clone -( -) -. -anchored -( -Anchored -: -: -Yes -) -; -if -let -Some -( -e -) -= -self -. -core -. -dfa -. -get -( -& -input -) -{ -trace -! -( -" -using -full -DFA -for -reverse -anchored -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -try_search_half_rev -( -& -input -) -} -else -if -let -Some -( -e -) -= -self -. -core -. -hybrid -. -get -( -& -input -) -{ -trace -! -( -" -using -lazy -DFA -for -reverse -anchored -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -try_search_half_rev -( -& -mut -cache -. -hybrid -& -input -) -} -else -{ -unreachable -! -( -" -ReverseAnchored -always -has -a -DFA -" -) -} -} -} -impl -Strategy -for -ReverseAnchored -{ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -group_info -( -& -self -) -- -> -& -GroupInfo -{ -self -. -core -. -group_info -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -create_cache -( -& -self -) -- -> -Cache -{ -self -. -core -. -create_cache -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -{ -self -. -core -. -reset_cache -( -cache -) -; -} -fn -is_accelerated -( -& -self -) -- -> -bool -{ -true -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -core -. -memory_usage -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Match -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -search -( -cache -input -) -; -} -match -self -. -try_search_half_anchored_rev -( -cache -input -) -{ -Err -( -_err -) -= -> -{ -trace -! -( -" -fast -reverse -anchored -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -None -Ok -( -Some -( -hm -) -) -= -> -{ -Some -( -Match -: -: -new -( -hm -. -pattern -( -) -hm -. -offset -( -) -. -. -input -. -end -( -) -) -) -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search_half -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -HalfMatch -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -search_half -( -cache -input -) -; -} -match -self -. -try_search_half_anchored_rev -( -cache -input -) -{ -Err -( -_err -) -= -> -{ -trace -! -( -" -fast -reverse -anchored -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_half_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -None -Ok -( -Some -( -hm -) -) -= -> -{ -Some -( -HalfMatch -: -: -new -( -hm -. -pattern -( -) -input -. -end -( -) -) -) -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_match -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -is_match -( -cache -input -) -; -} -match -self -. -try_search_half_anchored_rev -( -cache -input -) -{ -Err -( -_err -) -= -> -{ -trace -! -( -" -fast -reverse -anchored -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -is_match_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -false -Ok -( -Some -( -_ -) -) -= -> -true -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search_slots -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -search_slots -( -cache -input -slots -) -; -} -match -self -. -try_search_half_anchored_rev -( -cache -input -) -{ -Err -( -_err -) -= -> -{ -trace -! -( -" -fast -reverse -anchored -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_slots_nofail -( -cache -input -slots -) -} -Ok -( -None -) -= -> -None -Ok -( -Some -( -hm -) -) -= -> -{ -if -! -self -. -core -. -is_capture_search_needed -( -slots -. -len -( -) -) -{ -trace -! -( -" -asked -for -slots -unnecessarily -skipping -captures -" -) -; -let -m -= -Match -: -: -new -( -hm -. -pattern -( -) -hm -. -offset -( -) -. -. -input -. -end -( -) -) -; -copy_match_to_slots -( -m -slots -) -; -return -Some -( -m -. -pattern -( -) -) -; -} -let -start -= -hm -. -offset -( -) -; -let -input -= -input -. -clone -( -) -. -span -( -start -. -. -input -. -end -( -) -) -. -anchored -( -Anchored -: -: -Pattern -( -hm -. -pattern -( -) -) -) -; -self -. -core -. -search_slots_nofail -( -cache -& -input -slots -) -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -which_overlapping_matches -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -self -. -core -. -which_overlapping_matches -( -cache -input -patset -) -} -} -# -[ -derive -( -Debug -) -] -struct -ReverseSuffix -{ -core -: -Core -pre -: -Prefilter -} -impl -ReverseSuffix -{ -fn -new -( -core -: -Core -hirs -: -& -[ -& -Hir -] -) -- -> -Result -< -ReverseSuffix -Core -> -{ -if -! -core -. -info -. -config -( -) -. -get_auto_prefilter -( -) -{ -debug -! -( -" -skipping -reverse -suffix -optimization -because -\ -automatic -prefilters -are -disabled -" -) -; -return -Err -( -core -) -; -} -if -core -. -info -. -is_always_anchored_start -( -) -{ -debug -! -( -" -skipping -reverse -suffix -optimization -because -\ -the -regex -is -always -anchored -at -the -start -" -) -; -return -Err -( -core -) -; -} -if -! -core -. -hybrid -. -is_some -( -) -& -& -! -core -. -dfa -. -is_some -( -) -{ -debug -! -( -" -skipping -reverse -suffix -optimization -because -\ -we -don -' -t -have -a -lazy -DFA -or -a -full -DFA -" -) -; -return -Err -( -core -) -; -} -if -core -. -pre -. -as_ref -( -) -. -map_or -( -false -| -p -| -p -. -is_fast -( -) -) -{ -debug -! -( -" -skipping -reverse -suffix -optimization -because -\ -we -already -have -a -prefilter -that -we -think -is -fast -" -) -; -return -Err -( -core -) -; -} -let -kind -= -core -. -info -. -config -( -) -. -get_match_kind -( -) -; -let -suffixes -= -crate -: -: -util -: -: -prefilter -: -: -suffixes -( -kind -hirs -) -; -let -lcs -= -match -suffixes -. -longest_common_suffix -( -) -{ -None -= -> -{ -debug -! -( -" -skipping -reverse -suffix -optimization -because -\ -a -longest -common -suffix -could -not -be -found -" -) -; -return -Err -( -core -) -; -} -Some -( -lcs -) -if -lcs -. -is_empty -( -) -= -> -{ -debug -! -( -" -skipping -reverse -suffix -optimization -because -\ -the -longest -common -suffix -is -the -empty -string -" -) -; -return -Err -( -core -) -; -} -Some -( -lcs -) -= -> -lcs -} -; -let -pre -= -match -Prefilter -: -: -new -( -kind -& -[ -lcs -] -) -{ -Some -( -pre -) -= -> -pre -None -= -> -{ -debug -! -( -" -skipping -reverse -suffix -optimization -because -\ -a -prefilter -could -not -be -constructed -from -the -\ -longest -common -suffix -" -) -; -return -Err -( -core -) -; -} -} -; -if -! -pre -. -is_fast -( -) -{ -debug -! -( -" -skipping -reverse -suffix -optimization -because -\ -while -we -have -a -suffix -prefilter -it -is -not -\ -believed -to -be -' -fast -' -" -) -; -return -Err -( -core -) -; -} -Ok -( -ReverseSuffix -{ -core -pre -} -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -try_search_half_start -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -RetryError -> -{ -let -mut -span -= -input -. -get_span -( -) -; -let -mut -min_start -= -0 -; -loop -{ -let -litmatch -= -match -self -. -pre -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -return -Ok -( -None -) -Some -( -span -) -= -> -span -} -; -trace -! -( -" -reverse -suffix -scan -found -suffix -match -at -{ -: -? -} -" -litmatch -) -; -let -revinput -= -input -. -clone -( -) -. -anchored -( -Anchored -: -: -Yes -) -. -span -( -input -. -start -( -) -. -. -litmatch -. -end -) -; -match -self -. -try_search_half_rev_limited -( -cache -& -revinput -min_start -) -? -{ -None -= -> -{ -if -span -. -start -> -= -span -. -end -{ -break -; -} -span -. -start -= -litmatch -. -start -. -checked_add -( -1 -) -. -unwrap -( -) -; -} -Some -( -hm -) -= -> -return -Ok -( -Some -( -hm -) -) -} -min_start -= -litmatch -. -end -; -} -Ok -( -None -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -try_search_half_fwd -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -RetryFailError -> -{ -if -let -Some -( -e -) -= -self -. -core -. -dfa -. -get -( -& -input -) -{ -trace -! -( -" -using -full -DFA -for -forward -reverse -suffix -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -try_search_half_fwd -( -& -input -) -} -else -if -let -Some -( -e -) -= -self -. -core -. -hybrid -. -get -( -& -input -) -{ -trace -! -( -" -using -lazy -DFA -for -forward -reverse -suffix -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -try_search_half_fwd -( -& -mut -cache -. -hybrid -& -input -) -} -else -{ -unreachable -! -( -" -ReverseSuffix -always -has -a -DFA -" -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -try_search_half_rev_limited -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -min_start -: -usize -) -- -> -Result -< -Option -< -HalfMatch -> -RetryError -> -{ -if -let -Some -( -e -) -= -self -. -core -. -dfa -. -get -( -& -input -) -{ -trace -! -( -" -using -full -DFA -for -reverse -suffix -search -at -{ -: -? -} -\ -but -will -be -stopped -at -{ -} -to -avoid -quadratic -behavior -" -input -. -get_span -( -) -min_start -) -; -e -. -try_search_half_rev_limited -( -& -input -min_start -) -} -else -if -let -Some -( -e -) -= -self -. -core -. -hybrid -. -get -( -& -input -) -{ -trace -! -( -" -using -lazy -DFA -for -reverse -inner -search -at -{ -: -? -} -\ -but -will -be -stopped -at -{ -} -to -avoid -quadratic -behavior -" -input -. -get_span -( -) -min_start -) -; -e -. -try_search_half_rev_limited -( -& -mut -cache -. -hybrid -& -input -min_start -) -} -else -{ -unreachable -! -( -" -ReverseSuffix -always -has -a -DFA -" -) -} -} -} -impl -Strategy -for -ReverseSuffix -{ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -group_info -( -& -self -) -- -> -& -GroupInfo -{ -self -. -core -. -group_info -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -create_cache -( -& -self -) -- -> -Cache -{ -self -. -core -. -create_cache -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -{ -self -. -core -. -reset_cache -( -cache -) -; -} -fn -is_accelerated -( -& -self -) -- -> -bool -{ -self -. -pre -. -is_fast -( -) -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -core -. -memory_usage -( -) -+ -self -. -pre -. -memory_usage -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Match -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -search -( -cache -input -) -; -} -match -self -. -try_search_half_start -( -cache -input -) -{ -Err -( -RetryError -: -: -Quadratic -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -suffix -optimization -failed -: -{ -} -" -_err -) -; -self -. -core -. -search -( -cache -input -) -} -Err -( -RetryError -: -: -Fail -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -suffix -reverse -fast -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -None -Ok -( -Some -( -hm_start -) -) -= -> -{ -let -fwdinput -= -input -. -clone -( -) -. -anchored -( -Anchored -: -: -Pattern -( -hm_start -. -pattern -( -) -) -) -. -span -( -hm_start -. -offset -( -) -. -. -input -. -end -( -) -) -; -match -self -. -try_search_half_fwd -( -cache -& -fwdinput -) -{ -Err -( -_err -) -= -> -{ -trace -! -( -" -reverse -suffix -forward -fast -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -{ -unreachable -! -( -" -suffix -match -plus -reverse -match -implies -\ -there -must -be -a -match -" -) -} -Ok -( -Some -( -hm_end -) -) -= -> -Some -( -Match -: -: -new -( -hm_start -. -pattern -( -) -hm_start -. -offset -( -) -. -. -hm_end -. -offset -( -) -) -) -} -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search_half -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -HalfMatch -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -search_half -( -cache -input -) -; -} -match -self -. -try_search_half_start -( -cache -input -) -{ -Err -( -RetryError -: -: -Quadratic -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -suffix -half -optimization -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_half -( -cache -input -) -} -Err -( -RetryError -: -: -Fail -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -suffix -reverse -fast -half -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_half_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -None -Ok -( -Some -( -hm_start -) -) -= -> -{ -let -fwdinput -= -input -. -clone -( -) -. -anchored -( -Anchored -: -: -Pattern -( -hm_start -. -pattern -( -) -) -) -. -span -( -hm_start -. -offset -( -) -. -. -input -. -end -( -) -) -; -match -self -. -try_search_half_fwd -( -cache -& -fwdinput -) -{ -Err -( -_err -) -= -> -{ -trace -! -( -" -reverse -suffix -forward -fast -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_half_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -{ -unreachable -! -( -" -suffix -match -plus -reverse -match -implies -\ -there -must -be -a -match -" -) -} -Ok -( -Some -( -hm_end -) -) -= -> -Some -( -hm_end -) -} -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_match -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -is_match -( -cache -input -) -; -} -match -self -. -try_search_half_start -( -cache -input -) -{ -Err -( -RetryError -: -: -Quadratic -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -suffix -half -optimization -failed -: -{ -} -" -_err -) -; -self -. -core -. -is_match_nofail -( -cache -input -) -} -Err -( -RetryError -: -: -Fail -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -suffix -reverse -fast -half -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -is_match_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -false -Ok -( -Some -( -_ -) -) -= -> -true -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search_slots -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -search_slots -( -cache -input -slots -) -; -} -if -! -self -. -core -. -is_capture_search_needed -( -slots -. -len -( -) -) -{ -trace -! -( -" -asked -for -slots -unnecessarily -trying -fast -path -" -) -; -let -m -= -self -. -search -( -cache -input -) -? -; -copy_match_to_slots -( -m -slots -) -; -return -Some -( -m -. -pattern -( -) -) -; -} -let -hm_start -= -match -self -. -try_search_half_start -( -cache -input -) -{ -Err -( -RetryError -: -: -Quadratic -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -suffix -captures -optimization -failed -: -{ -} -" -_err -) -; -return -self -. -core -. -search_slots -( -cache -input -slots -) -; -} -Err -( -RetryError -: -: -Fail -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -suffix -reverse -fast -captures -search -failed -: -{ -} -" -_err -) -; -return -self -. -core -. -search_slots_nofail -( -cache -input -slots -) -; -} -Ok -( -None -) -= -> -return -None -Ok -( -Some -( -hm_start -) -) -= -> -hm_start -} -; -trace -! -( -" -match -found -at -{ -} -. -. -{ -} -in -capture -search -\ -using -another -engine -to -find -captures -" -hm_start -. -offset -( -) -input -. -end -( -) -) -; -let -start -= -hm_start -. -offset -( -) -; -let -input -= -input -. -clone -( -) -. -span -( -start -. -. -input -. -end -( -) -) -. -anchored -( -Anchored -: -: -Pattern -( -hm_start -. -pattern -( -) -) -) -; -self -. -core -. -search_slots_nofail -( -cache -& -input -slots -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -which_overlapping_matches -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -self -. -core -. -which_overlapping_matches -( -cache -input -patset -) -} -} -# -[ -derive -( -Debug -) -] -struct -ReverseInner -{ -core -: -Core -preinner -: -Prefilter -nfarev -: -NFA -hybrid -: -wrappers -: -: -ReverseHybrid -dfa -: -wrappers -: -: -ReverseDFA -} -impl -ReverseInner -{ -fn -new -( -core -: -Core -hirs -: -& -[ -& -Hir -] -) -- -> -Result -< -ReverseInner -Core -> -{ -if -! -core -. -info -. -config -( -) -. -get_auto_prefilter -( -) -{ -debug -! -( -" -skipping -reverse -inner -optimization -because -\ -automatic -prefilters -are -disabled -" -) -; -return -Err -( -core -) -; -} -if -core -. -info -. -config -( -) -. -get_match_kind -( -) -! -= -MatchKind -: -: -LeftmostFirst -{ -debug -! -( -" -skipping -reverse -inner -optimization -because -\ -match -kind -is -{ -: -? -} -but -this -only -supports -leftmost -- -first -" -core -. -info -. -config -( -) -. -get_match_kind -( -) -) -; -return -Err -( -core -) -; -} -if -core -. -info -. -is_always_anchored_start -( -) -{ -debug -! -( -" -skipping -reverse -inner -optimization -because -\ -the -regex -is -always -anchored -at -the -start -" -) -; -return -Err -( -core -) -; -} -if -! -core -. -hybrid -. -is_some -( -) -& -& -! -core -. -dfa -. -is_some -( -) -{ -debug -! -( -" -skipping -reverse -inner -optimization -because -\ -we -don -' -t -have -a -lazy -DFA -or -a -full -DFA -" -) -; -return -Err -( -core -) -; -} -if -core -. -pre -. -as_ref -( -) -. -map_or -( -false -| -p -| -p -. -is_fast -( -) -) -{ -debug -! -( -" -skipping -reverse -inner -optimization -because -\ -we -already -have -a -prefilter -that -we -think -is -fast -" -) -; -return -Err -( -core -) -; -} -else -if -core -. -pre -. -is_some -( -) -{ -debug -! -( -" -core -engine -has -a -prefix -prefilter -but -it -is -\ -probably -not -fast -so -continuing -with -attempt -to -\ -use -reverse -inner -prefilter -" -) -; -} -let -( -concat_prefix -preinner -) -= -match -reverse_inner -: -: -extract -( -hirs -) -{ -Some -( -x -) -= -> -x -None -= -> -return -Err -( -core -) -} -; -debug -! -( -" -building -reverse -NFA -for -prefix -before -inner -literal -" -) -; -let -mut -lookm -= -LookMatcher -: -: -new -( -) -; -lookm -. -set_line_terminator -( -core -. -info -. -config -( -) -. -get_line_terminator -( -) -) -; -let -thompson_config -= -thompson -: -: -Config -: -: -new -( -) -. -reverse -( -true -) -. -utf8 -( -core -. -info -. -config -( -) -. -get_utf8_empty -( -) -) -. -nfa_size_limit -( -core -. -info -. -config -( -) -. -get_nfa_size_limit -( -) -) -. -shrink -( -false -) -. -which_captures -( -WhichCaptures -: -: -None -) -. -look_matcher -( -lookm -) -; -let -result -= -thompson -: -: -Compiler -: -: -new -( -) -. -configure -( -thompson_config -) -. -build_from_hir -( -& -concat_prefix -) -; -let -nfarev -= -match -result -{ -Ok -( -nfarev -) -= -> -nfarev -Err -( -_err -) -= -> -{ -debug -! -( -" -skipping -reverse -inner -optimization -because -the -\ -reverse -NFA -failed -to -build -: -{ -} -" -_err -) -; -return -Err -( -core -) -; -} -} -; -debug -! -( -" -building -reverse -DFA -for -prefix -before -inner -literal -" -) -; -let -dfa -= -if -! -core -. -info -. -config -( -) -. -get_dfa -( -) -{ -wrappers -: -: -ReverseDFA -: -: -none -( -) -} -else -{ -wrappers -: -: -ReverseDFA -: -: -new -( -& -core -. -info -& -nfarev -) -} -; -let -hybrid -= -if -! -core -. -info -. -config -( -) -. -get_hybrid -( -) -{ -wrappers -: -: -ReverseHybrid -: -: -none -( -) -} -else -if -dfa -. -is_some -( -) -{ -debug -! -( -" -skipping -lazy -DFA -for -reverse -inner -optimization -\ -because -we -have -a -full -DFA -" -) -; -wrappers -: -: -ReverseHybrid -: -: -none -( -) -} -else -{ -wrappers -: -: -ReverseHybrid -: -: -new -( -& -core -. -info -& -nfarev -) -} -; -Ok -( -ReverseInner -{ -core -preinner -nfarev -hybrid -dfa -} -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -try_search_full -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -RetryError -> -{ -let -mut -span -= -input -. -get_span -( -) -; -let -mut -min_match_start -= -0 -; -let -mut -min_pre_start -= -0 -; -loop -{ -let -litmatch -= -match -self -. -preinner -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -return -Ok -( -None -) -Some -( -span -) -= -> -span -} -; -if -litmatch -. -start -< -min_pre_start -{ -trace -! -( -" -found -inner -prefilter -match -at -{ -: -? -} -which -starts -\ -before -the -end -of -the -last -forward -scan -at -{ -} -\ -quitting -to -avoid -quadratic -behavior -" -litmatch -min_pre_start -) -; -return -Err -( -RetryError -: -: -Quadratic -( -RetryQuadraticError -: -: -new -( -) -) -) -; -} -trace -! -( -" -reverse -inner -scan -found -inner -match -at -{ -: -? -} -" -litmatch -) -; -let -revinput -= -input -. -clone -( -) -. -anchored -( -Anchored -: -: -Yes -) -. -span -( -input -. -start -( -) -. -. -litmatch -. -start -) -; -match -self -. -try_search_half_rev_limited -( -cache -& -revinput -min_match_start -) -? -{ -None -= -> -{ -if -span -. -start -> -= -span -. -end -{ -break -; -} -span -. -start -= -litmatch -. -start -. -checked_add -( -1 -) -. -unwrap -( -) -; -} -Some -( -hm_start -) -= -> -{ -let -fwdinput -= -input -. -clone -( -) -. -anchored -( -Anchored -: -: -Pattern -( -hm_start -. -pattern -( -) -) -) -. -span -( -hm_start -. -offset -( -) -. -. -input -. -end -( -) -) -; -match -self -. -try_search_half_fwd_stopat -( -cache -& -fwdinput -) -? -{ -Err -( -stopat -) -= -> -{ -min_pre_start -= -stopat -; -span -. -start -= -litmatch -. -start -. -checked_add -( -1 -) -. -unwrap -( -) -; -} -Ok -( -hm_end -) -= -> -{ -return -Ok -( -Some -( -Match -: -: -new -( -hm_start -. -pattern -( -) -hm_start -. -offset -( -) -. -. -hm_end -. -offset -( -) -) -) -) -} -} -} -} -min_match_start -= -litmatch -. -end -; -} -Ok -( -None -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -try_search_half_fwd_stopat -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Result -< -HalfMatch -usize -> -RetryFailError -> -{ -if -let -Some -( -e -) -= -self -. -core -. -dfa -. -get -( -& -input -) -{ -trace -! -( -" -using -full -DFA -for -forward -reverse -inner -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -try_search_half_fwd_stopat -( -& -input -) -} -else -if -let -Some -( -e -) -= -self -. -core -. -hybrid -. -get -( -& -input -) -{ -trace -! -( -" -using -lazy -DFA -for -forward -reverse -inner -search -at -{ -: -? -} -" -input -. -get_span -( -) -) -; -e -. -try_search_half_fwd_stopat -( -& -mut -cache -. -hybrid -& -input -) -} -else -{ -unreachable -! -( -" -ReverseInner -always -has -a -DFA -" -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -try_search_half_rev_limited -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -min_start -: -usize -) -- -> -Result -< -Option -< -HalfMatch -> -RetryError -> -{ -if -let -Some -( -e -) -= -self -. -dfa -. -get -( -& -input -) -{ -trace -! -( -" -using -full -DFA -for -reverse -inner -search -at -{ -: -? -} -\ -but -will -be -stopped -at -{ -} -to -avoid -quadratic -behavior -" -input -. -get_span -( -) -min_start -) -; -e -. -try_search_half_rev_limited -( -& -input -min_start -) -} -else -if -let -Some -( -e -) -= -self -. -hybrid -. -get -( -& -input -) -{ -trace -! -( -" -using -lazy -DFA -for -reverse -inner -search -at -{ -: -? -} -\ -but -will -be -stopped -at -{ -} -to -avoid -quadratic -behavior -" -input -. -get_span -( -) -min_start -) -; -e -. -try_search_half_rev_limited -( -& -mut -cache -. -revhybrid -& -input -min_start -) -} -else -{ -unreachable -! -( -" -ReverseInner -always -has -a -DFA -" -) -} -} -} -impl -Strategy -for -ReverseInner -{ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -group_info -( -& -self -) -- -> -& -GroupInfo -{ -self -. -core -. -group_info -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -create_cache -( -& -self -) -- -> -Cache -{ -let -mut -cache -= -self -. -core -. -create_cache -( -) -; -cache -. -revhybrid -= -self -. -hybrid -. -create_cache -( -) -; -cache -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -{ -self -. -core -. -reset_cache -( -cache -) -; -cache -. -revhybrid -. -reset -( -& -self -. -hybrid -) -; -} -fn -is_accelerated -( -& -self -) -- -> -bool -{ -self -. -preinner -. -is_fast -( -) -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -core -. -memory_usage -( -) -+ -self -. -preinner -. -memory_usage -( -) -+ -self -. -nfarev -. -memory_usage -( -) -+ -self -. -dfa -. -memory_usage -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -Match -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -search -( -cache -input -) -; -} -match -self -. -try_search_full -( -cache -input -) -{ -Err -( -RetryError -: -: -Quadratic -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -inner -optimization -failed -: -{ -} -" -_err -) -; -self -. -core -. -search -( -cache -input -) -} -Err -( -RetryError -: -: -Fail -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -inner -fast -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_nofail -( -cache -input -) -} -Ok -( -matornot -) -= -> -matornot -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search_half -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -HalfMatch -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -search_half -( -cache -input -) -; -} -match -self -. -try_search_full -( -cache -input -) -{ -Err -( -RetryError -: -: -Quadratic -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -inner -half -optimization -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_half -( -cache -input -) -} -Err -( -RetryError -: -: -Fail -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -inner -fast -half -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -search_half_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -None -Ok -( -Some -( -m -) -) -= -> -Some -( -HalfMatch -: -: -new -( -m -. -pattern -( -) -m -. -end -( -) -) -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_match -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -is_match -( -cache -input -) -; -} -match -self -. -try_search_full -( -cache -input -) -{ -Err -( -RetryError -: -: -Quadratic -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -inner -half -optimization -failed -: -{ -} -" -_err -) -; -self -. -core -. -is_match_nofail -( -cache -input -) -} -Err -( -RetryError -: -: -Fail -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -inner -fast -half -search -failed -: -{ -} -" -_err -) -; -self -. -core -. -is_match_nofail -( -cache -input -) -} -Ok -( -None -) -= -> -false -Ok -( -Some -( -_ -) -) -= -> -true -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -search_slots -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -self -. -core -. -search_slots -( -cache -input -slots -) -; -} -if -! -self -. -core -. -is_capture_search_needed -( -slots -. -len -( -) -) -{ -trace -! -( -" -asked -for -slots -unnecessarily -trying -fast -path -" -) -; -let -m -= -self -. -search -( -cache -input -) -? -; -copy_match_to_slots -( -m -slots -) -; -return -Some -( -m -. -pattern -( -) -) -; -} -let -m -= -match -self -. -try_search_full -( -cache -input -) -{ -Err -( -RetryError -: -: -Quadratic -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -inner -captures -optimization -failed -: -{ -} -" -_err -) -; -return -self -. -core -. -search_slots -( -cache -input -slots -) -; -} -Err -( -RetryError -: -: -Fail -( -_err -) -) -= -> -{ -trace -! -( -" -reverse -inner -fast -captures -search -failed -: -{ -} -" -_err -) -; -return -self -. -core -. -search_slots_nofail -( -cache -input -slots -) -; -} -Ok -( -None -) -= -> -return -None -Ok -( -Some -( -m -) -) -= -> -m -} -; -trace -! -( -" -match -found -at -{ -} -. -. -{ -} -in -capture -search -\ -using -another -engine -to -find -captures -" -m -. -start -( -) -m -. -end -( -) -) -; -let -input -= -input -. -clone -( -) -. -span -( -m -. -start -( -) -. -. -m -. -end -( -) -) -. -anchored -( -Anchored -: -: -Pattern -( -m -. -pattern -( -) -) -) -; -self -. -core -. -search_slots_nofail -( -cache -& -input -slots -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -which_overlapping_matches -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -self -. -core -. -which_overlapping_matches -( -cache -input -patset -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -copy_match_to_slots -( -m -: -Match -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -{ -let -slot_start -= -m -. -pattern -( -) -. -as_usize -( -) -* -2 -; -let -slot_end -= -slot_start -+ -1 -; -if -let -Some -( -slot -) -= -slots -. -get_mut -( -slot_start -) -{ -* -slot -= -NonMaxUsize -: -: -new -( -m -. -start -( -) -) -; -} -if -let -Some -( -slot -) -= -slots -. -get_mut -( -slot_end -) -{ -* -slot -= -NonMaxUsize -: -: -new -( -m -. -end -( -) -) -; -} -} diff --git a/third_party/rust/regex-automata/src/meta/wrappers.rs b/third_party/rust/regex-automata/src/meta/wrappers.rs deleted file mode 100644 index 2bf6916599d64..0000000000000 --- a/third_party/rust/regex-automata/src/meta/wrappers.rs +++ /dev/null @@ -1,7866 +0,0 @@ -use -alloc -: -: -vec -: -: -Vec -; -use -crate -: -: -{ -meta -: -: -{ -error -: -: -{ -BuildError -RetryError -RetryFailError -} -regex -: -: -RegexInfo -} -nfa -: -: -thompson -: -: -{ -pikevm -NFA -} -util -: -: -{ -prefilter -: -: -Prefilter -primitives -: -: -NonMaxUsize -} -HalfMatch -Input -Match -MatchKind -PatternID -PatternSet -} -; -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -use -crate -: -: -dfa -; -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -use -crate -: -: -dfa -: -: -onepass -; -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -use -crate -: -: -hybrid -; -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -use -crate -: -: -nfa -: -: -thompson -: -: -backtrack -; -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -PikeVM -( -PikeVMEngine -) -; -impl -PikeVM -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -pre -: -Option -< -Prefilter -> -nfa -: -& -NFA -) -- -> -Result -< -PikeVM -BuildError -> -{ -PikeVMEngine -: -: -new -( -info -pre -nfa -) -. -map -( -PikeVM -) -} -pub -( -crate -) -fn -create_cache -( -& -self -) -- -> -PikeVMCache -{ -PikeVMCache -: -: -new -( -self -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -get -( -& -self -) -- -> -& -PikeVMEngine -{ -& -self -. -0 -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -PikeVMEngine -( -pikevm -: -: -PikeVM -) -; -impl -PikeVMEngine -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -pre -: -Option -< -Prefilter -> -nfa -: -& -NFA -) -- -> -Result -< -PikeVMEngine -BuildError -> -{ -let -pikevm_config -= -pikevm -: -: -Config -: -: -new -( -) -. -match_kind -( -info -. -config -( -) -. -get_match_kind -( -) -) -. -prefilter -( -pre -) -; -let -engine -= -pikevm -: -: -Builder -: -: -new -( -) -. -configure -( -pikevm_config -) -. -build_from_nfa -( -nfa -. -clone -( -) -) -. -map_err -( -BuildError -: -: -nfa -) -? -; -debug -! -( -" -PikeVM -built -" -) -; -Ok -( -PikeVMEngine -( -engine -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -is_match -( -& -self -cache -: -& -mut -PikeVMCache -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -self -. -0 -. -is_match -( -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -input -. -clone -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -search_slots -( -& -self -cache -: -& -mut -PikeVMCache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -self -. -0 -. -search_slots -( -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -input -slots -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -which_overlapping_matches -( -& -self -cache -: -& -mut -PikeVMCache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -self -. -0 -. -which_overlapping_matches -( -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -input -patset -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -PikeVMCache -( -Option -< -pikevm -: -: -Cache -> -) -; -impl -PikeVMCache -{ -pub -( -crate -) -fn -none -( -) -- -> -PikeVMCache -{ -PikeVMCache -( -None -) -} -pub -( -crate -) -fn -new -( -builder -: -& -PikeVM -) -- -> -PikeVMCache -{ -PikeVMCache -( -Some -( -builder -. -get -( -) -. -0 -. -create_cache -( -) -) -) -} -pub -( -crate -) -fn -reset -( -& -mut -self -builder -: -& -PikeVM -) -{ -self -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -reset -( -& -builder -. -get -( -) -. -0 -) -; -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -0 -. -as_ref -( -) -. -map_or -( -0 -| -c -| -c -. -memory_usage -( -) -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -BoundedBacktracker -( -Option -< -BoundedBacktrackerEngine -> -) -; -impl -BoundedBacktracker -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -pre -: -Option -< -Prefilter -> -nfa -: -& -NFA -) -- -> -Result -< -BoundedBacktracker -BuildError -> -{ -BoundedBacktrackerEngine -: -: -new -( -info -pre -nfa -) -. -map -( -BoundedBacktracker -) -} -pub -( -crate -) -fn -create_cache -( -& -self -) -- -> -BoundedBacktrackerCache -{ -BoundedBacktrackerCache -: -: -new -( -self -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -get -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -& -BoundedBacktrackerEngine -> -{ -let -engine -= -self -. -0 -. -as_ref -( -) -? -; -if -input -. -get_earliest -( -) -& -& -input -. -haystack -( -) -. -len -( -) -> -128 -{ -return -None -; -} -if -input -. -get_span -( -) -. -len -( -) -> -engine -. -max_haystack_len -( -) -{ -return -None -; -} -Some -( -engine -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -BoundedBacktrackerEngine -( -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -backtrack -: -: -BoundedBacktracker -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -( -) -) -; -impl -BoundedBacktrackerEngine -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -pre -: -Option -< -Prefilter -> -nfa -: -& -NFA -) -- -> -Result -< -Option -< -BoundedBacktrackerEngine -> -BuildError -> -{ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -{ -if -! -info -. -config -( -) -. -get_backtrack -( -) -| -| -info -. -config -( -) -. -get_match_kind -( -) -! -= -MatchKind -: -: -LeftmostFirst -{ -return -Ok -( -None -) -; -} -let -backtrack_config -= -backtrack -: -: -Config -: -: -new -( -) -. -prefilter -( -pre -) -; -let -engine -= -backtrack -: -: -Builder -: -: -new -( -) -. -configure -( -backtrack_config -) -. -build_from_nfa -( -nfa -. -clone -( -) -) -. -map_err -( -BuildError -: -: -nfa -) -? -; -debug -! -( -" -BoundedBacktracker -built -" -) -; -Ok -( -Some -( -BoundedBacktrackerEngine -( -engine -) -) -) -} -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -{ -Ok -( -None -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -is_match -( -& -self -cache -: -& -mut -BoundedBacktrackerCache -input -: -& -Input -< -' -_ -> -) -- -> -bool -{ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -{ -self -. -0 -. -try_is_match -( -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -input -. -clone -( -) -) -. -unwrap -( -) -} -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -search_slots -( -& -self -cache -: -& -mut -BoundedBacktrackerCache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -{ -self -. -0 -. -try_search_slots -( -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -input -slots -) -. -unwrap -( -) -} -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -max_haystack_len -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -{ -self -. -0 -. -max_haystack_len -( -) -} -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -{ -unreachable -! -( -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -BoundedBacktrackerCache -( -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -Option -< -backtrack -: -: -Cache -> -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -( -) -) -; -impl -BoundedBacktrackerCache -{ -pub -( -crate -) -fn -none -( -) -- -> -BoundedBacktrackerCache -{ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -{ -BoundedBacktrackerCache -( -None -) -} -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -{ -BoundedBacktrackerCache -( -( -) -) -} -} -pub -( -crate -) -fn -new -( -builder -: -& -BoundedBacktracker -) -- -> -BoundedBacktrackerCache -{ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -{ -BoundedBacktrackerCache -( -builder -. -0 -. -as_ref -( -) -. -map -( -| -e -| -e -. -0 -. -create_cache -( -) -) -) -} -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -{ -BoundedBacktrackerCache -( -( -) -) -} -} -pub -( -crate -) -fn -reset -( -& -mut -self -builder -: -& -BoundedBacktracker -) -{ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -if -let -Some -( -ref -e -) -= -builder -. -0 -{ -self -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -reset -( -& -e -. -0 -) -; -} -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -{ -self -. -0 -. -as_ref -( -) -. -map_or -( -0 -| -c -| -c -. -memory_usage -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -nfa -- -backtrack -" -) -) -] -{ -0 -} -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -OnePass -( -Option -< -OnePassEngine -> -) -; -impl -OnePass -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -nfa -: -& -NFA -) -- -> -OnePass -{ -OnePass -( -OnePassEngine -: -: -new -( -info -nfa -) -) -} -pub -( -crate -) -fn -create_cache -( -& -self -) -- -> -OnePassCache -{ -OnePassCache -: -: -new -( -self -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -get -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -& -OnePassEngine -> -{ -let -engine -= -self -. -0 -. -as_ref -( -) -? -; -if -! -input -. -get_anchored -( -) -. -is_anchored -( -) -& -& -! -engine -. -get_nfa -( -) -. -is_always_start_anchored -( -) -{ -return -None -; -} -Some -( -engine -) -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -0 -. -as_ref -( -) -. -map_or -( -0 -| -e -| -e -. -memory_usage -( -) -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -OnePassEngine -( -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -onepass -: -: -DFA -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -( -) -) -; -impl -OnePassEngine -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -nfa -: -& -NFA -) -- -> -Option -< -OnePassEngine -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -{ -if -! -info -. -config -( -) -. -get_onepass -( -) -{ -return -None -; -} -if -info -. -props_union -( -) -. -explicit_captures_len -( -) -= -= -0 -& -& -! -info -. -props_union -( -) -. -look_set -( -) -. -contains_word_unicode -( -) -{ -debug -! -( -" -not -building -OnePass -because -it -isn -' -t -worth -it -" -) -; -return -None -; -} -let -onepass_config -= -onepass -: -: -Config -: -: -new -( -) -. -match_kind -( -info -. -config -( -) -. -get_match_kind -( -) -) -. -starts_for_each_pattern -( -true -) -. -byte_classes -( -info -. -config -( -) -. -get_byte_classes -( -) -) -. -size_limit -( -info -. -config -( -) -. -get_onepass_size_limit -( -) -) -; -let -result -= -onepass -: -: -Builder -: -: -new -( -) -. -configure -( -onepass_config -) -. -build_from_nfa -( -nfa -. -clone -( -) -) -; -let -engine -= -match -result -{ -Ok -( -engine -) -= -> -engine -Err -( -_err -) -= -> -{ -debug -! -( -" -OnePass -failed -to -build -: -{ -} -" -_err -) -; -return -None -; -} -} -; -debug -! -( -" -OnePass -built -{ -} -bytes -" -engine -. -memory_usage -( -) -) -; -Some -( -OnePassEngine -( -engine -) -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -{ -None -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -search_slots -( -& -self -cache -: -& -mut -OnePassCache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -{ -self -. -0 -. -try_search_slots -( -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -input -slots -) -. -unwrap -( -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -{ -unreachable -! -( -) -} -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -{ -self -. -0 -. -memory_usage -( -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -get_nfa -( -& -self -) -- -> -& -NFA -{ -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -{ -self -. -0 -. -get_nfa -( -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -{ -unreachable -! -( -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -OnePassCache -( -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -Option -< -onepass -: -: -Cache -> -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -( -) -) -; -impl -OnePassCache -{ -pub -( -crate -) -fn -none -( -) -- -> -OnePassCache -{ -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -{ -OnePassCache -( -None -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -{ -OnePassCache -( -( -) -) -} -} -pub -( -crate -) -fn -new -( -builder -: -& -OnePass -) -- -> -OnePassCache -{ -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -{ -OnePassCache -( -builder -. -0 -. -as_ref -( -) -. -map -( -| -e -| -e -. -0 -. -create_cache -( -) -) -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -{ -OnePassCache -( -( -) -) -} -} -pub -( -crate -) -fn -reset -( -& -mut -self -builder -: -& -OnePass -) -{ -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -if -let -Some -( -ref -e -) -= -builder -. -0 -{ -self -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -reset -( -& -e -. -0 -) -; -} -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -{ -self -. -0 -. -as_ref -( -) -. -map_or -( -0 -| -c -| -c -. -memory_usage -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -onepass -" -) -) -] -{ -0 -} -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -Hybrid -( -Option -< -HybridEngine -> -) -; -impl -Hybrid -{ -pub -( -crate -) -fn -none -( -) -- -> -Hybrid -{ -Hybrid -( -None -) -} -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -pre -: -Option -< -Prefilter -> -nfa -: -& -NFA -nfarev -: -& -NFA -) -- -> -Hybrid -{ -Hybrid -( -HybridEngine -: -: -new -( -info -pre -nfa -nfarev -) -) -} -pub -( -crate -) -fn -create_cache -( -& -self -) -- -> -HybridCache -{ -HybridCache -: -: -new -( -self -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -get -( -& -self -_input -: -& -Input -< -' -_ -> -) -- -> -Option -< -& -HybridEngine -> -{ -let -engine -= -self -. -0 -. -as_ref -( -) -? -; -Some -( -engine -) -} -pub -( -crate -) -fn -is_some -( -& -self -) -- -> -bool -{ -self -. -0 -. -is_some -( -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -HybridEngine -( -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -hybrid -: -: -regex -: -: -Regex -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -( -) -) -; -impl -HybridEngine -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -pre -: -Option -< -Prefilter -> -nfa -: -& -NFA -nfarev -: -& -NFA -) -- -> -Option -< -HybridEngine -> -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -if -! -info -. -config -( -) -. -get_hybrid -( -) -{ -return -None -; -} -let -dfa_config -= -hybrid -: -: -dfa -: -: -Config -: -: -new -( -) -. -match_kind -( -info -. -config -( -) -. -get_match_kind -( -) -) -. -prefilter -( -pre -. -clone -( -) -) -. -starts_for_each_pattern -( -true -) -. -byte_classes -( -info -. -config -( -) -. -get_byte_classes -( -) -) -. -unicode_word_boundary -( -true -) -. -specialize_start_states -( -pre -. -is_some -( -) -) -. -cache_capacity -( -info -. -config -( -) -. -get_hybrid_cache_capacity -( -) -) -. -skip_cache_capacity_check -( -false -) -. -minimum_cache_clear_count -( -Some -( -3 -) -) -. -minimum_bytes_per_state -( -Some -( -10 -) -) -; -let -result -= -hybrid -: -: -dfa -: -: -Builder -: -: -new -( -) -. -configure -( -dfa_config -. -clone -( -) -) -. -build_from_nfa -( -nfa -. -clone -( -) -) -; -let -fwd -= -match -result -{ -Ok -( -fwd -) -= -> -fwd -Err -( -_err -) -= -> -{ -debug -! -( -" -forward -lazy -DFA -failed -to -build -: -{ -} -" -_err -) -; -return -None -; -} -} -; -let -result -= -hybrid -: -: -dfa -: -: -Builder -: -: -new -( -) -. -configure -( -dfa_config -. -clone -( -) -. -match_kind -( -MatchKind -: -: -All -) -. -prefilter -( -None -) -. -specialize_start_states -( -false -) -) -. -build_from_nfa -( -nfarev -. -clone -( -) -) -; -let -rev -= -match -result -{ -Ok -( -rev -) -= -> -rev -Err -( -_err -) -= -> -{ -debug -! -( -" -reverse -lazy -DFA -failed -to -build -: -{ -} -" -_err -) -; -return -None -; -} -} -; -let -engine -= -hybrid -: -: -regex -: -: -Builder -: -: -new -( -) -. -build_from_dfas -( -fwd -rev -) -; -debug -! -( -" -lazy -DFA -built -" -) -; -Some -( -HybridEngine -( -engine -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -None -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search -( -& -self -cache -: -& -mut -HybridCache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -let -cache -= -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -; -self -. -0 -. -try_search -( -cache -input -) -. -map_err -( -| -e -| -e -. -into -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_fwd -( -& -self -cache -: -& -mut -HybridCache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -let -fwd -= -self -. -0 -. -forward -( -) -; -let -mut -fwdcache -= -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -as_parts_mut -( -) -. -0 -; -fwd -. -try_search_fwd -( -& -mut -fwdcache -input -) -. -map_err -( -| -e -| -e -. -into -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_fwd_stopat -( -& -self -cache -: -& -mut -HybridCache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Result -< -HalfMatch -usize -> -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -let -dfa -= -self -. -0 -. -forward -( -) -; -let -mut -cache -= -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -as_parts_mut -( -) -. -0 -; -crate -: -: -meta -: -: -stopat -: -: -hybrid_try_search_half_fwd -( -dfa -& -mut -cache -input -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_rev -( -& -self -cache -: -& -mut -HybridCache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -let -rev -= -self -. -0 -. -reverse -( -) -; -let -mut -revcache -= -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -as_parts_mut -( -) -. -1 -; -rev -. -try_search_rev -( -& -mut -revcache -input -) -. -map_err -( -| -e -| -e -. -into -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_rev_limited -( -& -self -cache -: -& -mut -HybridCache -input -: -& -Input -< -' -_ -> -min_start -: -usize -) -- -> -Result -< -Option -< -HalfMatch -> -RetryError -> -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -let -dfa -= -self -. -0 -. -reverse -( -) -; -let -mut -cache -= -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -as_parts_mut -( -) -. -1 -; -crate -: -: -meta -: -: -limited -: -: -hybrid_try_search_half_rev -( -dfa -& -mut -cache -input -min_start -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -inline -] -pub -( -crate -) -fn -try_which_overlapping_matches -( -& -self -cache -: -& -mut -HybridCache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -- -> -Result -< -( -) -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -let -fwd -= -self -. -0 -. -forward -( -) -; -let -mut -fwdcache -= -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -as_parts_mut -( -) -. -0 -; -fwd -. -try_which_overlapping_matches -( -& -mut -fwdcache -input -patset -) -. -map_err -( -| -e -| -e -. -into -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -unreachable -! -( -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -HybridCache -( -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -Option -< -hybrid -: -: -regex -: -: -Cache -> -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -( -) -) -; -impl -HybridCache -{ -pub -( -crate -) -fn -none -( -) -- -> -HybridCache -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -HybridCache -( -None -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -HybridCache -( -( -) -) -} -} -pub -( -crate -) -fn -new -( -builder -: -& -Hybrid -) -- -> -HybridCache -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -HybridCache -( -builder -. -0 -. -as_ref -( -) -. -map -( -| -e -| -e -. -0 -. -create_cache -( -) -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -HybridCache -( -( -) -) -} -} -pub -( -crate -) -fn -reset -( -& -mut -self -builder -: -& -Hybrid -) -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -if -let -Some -( -ref -e -) -= -builder -. -0 -{ -self -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -reset -( -& -e -. -0 -) -; -} -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -self -. -0 -. -as_ref -( -) -. -map_or -( -0 -| -c -| -c -. -memory_usage -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -0 -} -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -DFA -( -Option -< -DFAEngine -> -) -; -impl -DFA -{ -pub -( -crate -) -fn -none -( -) -- -> -DFA -{ -DFA -( -None -) -} -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -pre -: -Option -< -Prefilter -> -nfa -: -& -NFA -nfarev -: -& -NFA -) -- -> -DFA -{ -DFA -( -DFAEngine -: -: -new -( -info -pre -nfa -nfarev -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -get -( -& -self -_input -: -& -Input -< -' -_ -> -) -- -> -Option -< -& -DFAEngine -> -{ -let -engine -= -self -. -0 -. -as_ref -( -) -? -; -Some -( -engine -) -} -pub -( -crate -) -fn -is_some -( -& -self -) -- -> -bool -{ -self -. -0 -. -is_some -( -) -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -0 -. -as_ref -( -) -. -map_or -( -0 -| -e -| -e -. -memory_usage -( -) -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -DFAEngine -( -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -dfa -: -: -regex -: -: -Regex -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -( -) -) -; -impl -DFAEngine -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -pre -: -Option -< -Prefilter -> -nfa -: -& -NFA -nfarev -: -& -NFA -) -- -> -Option -< -DFAEngine -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -if -! -info -. -config -( -) -. -get_dfa -( -) -{ -return -None -; -} -if -let -Some -( -state_limit -) -= -info -. -config -( -) -. -get_dfa_state_limit -( -) -{ -if -nfa -. -states -( -) -. -len -( -) -> -state_limit -{ -debug -! -( -" -skipping -full -DFA -because -NFA -has -{ -} -states -\ -which -exceeds -the -heuristic -limit -of -{ -} -" -nfa -. -states -( -) -. -len -( -) -state_limit -) -; -return -None -; -} -} -let -size_limit -= -info -. -config -( -) -. -get_dfa_size_limit -( -) -. -map -( -| -n -| -n -/ -4 -) -; -let -dfa_config -= -dfa -: -: -dense -: -: -Config -: -: -new -( -) -. -match_kind -( -info -. -config -( -) -. -get_match_kind -( -) -) -. -prefilter -( -pre -. -clone -( -) -) -. -starts_for_each_pattern -( -true -) -. -byte_classes -( -info -. -config -( -) -. -get_byte_classes -( -) -) -. -unicode_word_boundary -( -true -) -. -specialize_start_states -( -pre -. -is_some -( -) -) -. -determinize_size_limit -( -size_limit -) -. -dfa_size_limit -( -size_limit -) -; -let -result -= -dfa -: -: -dense -: -: -Builder -: -: -new -( -) -. -configure -( -dfa_config -. -clone -( -) -) -. -build_from_nfa -( -& -nfa -) -; -let -fwd -= -match -result -{ -Ok -( -fwd -) -= -> -fwd -Err -( -_err -) -= -> -{ -debug -! -( -" -forward -full -DFA -failed -to -build -: -{ -} -" -_err -) -; -return -None -; -} -} -; -let -result -= -dfa -: -: -dense -: -: -Builder -: -: -new -( -) -. -configure -( -dfa_config -. -clone -( -) -. -start_kind -( -dfa -: -: -StartKind -: -: -Anchored -) -. -match_kind -( -MatchKind -: -: -All -) -. -prefilter -( -None -) -. -specialize_start_states -( -false -) -) -. -build_from_nfa -( -& -nfarev -) -; -let -rev -= -match -result -{ -Ok -( -rev -) -= -> -rev -Err -( -_err -) -= -> -{ -debug -! -( -" -reverse -full -DFA -failed -to -build -: -{ -} -" -_err -) -; -return -None -; -} -} -; -let -engine -= -dfa -: -: -regex -: -: -Builder -: -: -new -( -) -. -build_from_dfas -( -fwd -rev -) -; -debug -! -( -" -fully -compiled -forward -and -reverse -DFAs -built -{ -} -bytes -" -engine -. -forward -( -) -. -memory_usage -( -) -+ -engine -. -reverse -( -) -. -memory_usage -( -) -) -; -Some -( -DFAEngine -( -engine -) -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -None -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -self -. -0 -. -try_search -( -input -) -. -map_err -( -| -e -| -e -. -into -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_fwd -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -use -crate -: -: -dfa -: -: -Automaton -; -self -. -0 -. -forward -( -) -. -try_search_fwd -( -input -) -. -map_err -( -| -e -| -e -. -into -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_fwd_stopat -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Result -< -HalfMatch -usize -> -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -let -dfa -= -self -. -0 -. -forward -( -) -; -crate -: -: -meta -: -: -stopat -: -: -dfa_try_search_half_fwd -( -dfa -input -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_rev -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -use -crate -: -: -dfa -: -: -Automaton -; -self -. -0 -. -reverse -( -) -. -try_search_rev -( -& -input -) -. -map_err -( -| -e -| -e -. -into -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_rev_limited -( -& -self -input -: -& -Input -< -' -_ -> -min_start -: -usize -) -- -> -Result -< -Option -< -HalfMatch -> -RetryError -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -let -dfa -= -self -. -0 -. -reverse -( -) -; -crate -: -: -meta -: -: -limited -: -: -dfa_try_search_half_rev -( -dfa -input -min_start -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -unreachable -! -( -) -} -} -# -[ -inline -] -pub -( -crate -) -fn -try_which_overlapping_matches -( -& -self -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -- -> -Result -< -( -) -RetryFailError -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -use -crate -: -: -dfa -: -: -Automaton -; -self -. -0 -. -forward -( -) -. -try_which_overlapping_matches -( -input -patset -) -. -map_err -( -| -e -| -e -. -into -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -unreachable -! -( -) -} -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -self -. -0 -. -forward -( -) -. -memory_usage -( -) -+ -self -. -0 -. -reverse -( -) -. -memory_usage -( -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -unreachable -! -( -) -} -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -ReverseHybrid -( -Option -< -ReverseHybridEngine -> -) -; -impl -ReverseHybrid -{ -pub -( -crate -) -fn -none -( -) -- -> -ReverseHybrid -{ -ReverseHybrid -( -None -) -} -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -nfarev -: -& -NFA -) -- -> -ReverseHybrid -{ -ReverseHybrid -( -ReverseHybridEngine -: -: -new -( -info -nfarev -) -) -} -pub -( -crate -) -fn -create_cache -( -& -self -) -- -> -ReverseHybridCache -{ -ReverseHybridCache -: -: -new -( -self -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -get -( -& -self -_input -: -& -Input -< -' -_ -> -) -- -> -Option -< -& -ReverseHybridEngine -> -{ -let -engine -= -self -. -0 -. -as_ref -( -) -? -; -Some -( -engine -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -ReverseHybridEngine -( -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -hybrid -: -: -dfa -: -: -DFA -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -( -) -) -; -impl -ReverseHybridEngine -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -nfarev -: -& -NFA -) -- -> -Option -< -ReverseHybridEngine -> -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -if -! -info -. -config -( -) -. -get_hybrid -( -) -{ -return -None -; -} -let -dfa_config -= -hybrid -: -: -dfa -: -: -Config -: -: -new -( -) -. -match_kind -( -MatchKind -: -: -All -) -. -prefilter -( -None -) -. -starts_for_each_pattern -( -false -) -. -byte_classes -( -info -. -config -( -) -. -get_byte_classes -( -) -) -. -unicode_word_boundary -( -true -) -. -specialize_start_states -( -false -) -. -cache_capacity -( -info -. -config -( -) -. -get_hybrid_cache_capacity -( -) -) -. -skip_cache_capacity_check -( -false -) -. -minimum_cache_clear_count -( -Some -( -3 -) -) -. -minimum_bytes_per_state -( -Some -( -10 -) -) -; -let -result -= -hybrid -: -: -dfa -: -: -Builder -: -: -new -( -) -. -configure -( -dfa_config -) -. -build_from_nfa -( -nfarev -. -clone -( -) -) -; -let -rev -= -match -result -{ -Ok -( -rev -) -= -> -rev -Err -( -_err -) -= -> -{ -debug -! -( -" -lazy -reverse -DFA -failed -to -build -: -{ -} -" -_err -) -; -return -None -; -} -} -; -debug -! -( -" -lazy -reverse -DFA -built -" -) -; -Some -( -ReverseHybridEngine -( -rev -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -None -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_rev_limited -( -& -self -cache -: -& -mut -ReverseHybridCache -input -: -& -Input -< -' -_ -> -min_start -: -usize -) -- -> -Result -< -Option -< -HalfMatch -> -RetryError -> -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -let -dfa -= -& -self -. -0 -; -let -mut -cache -= -cache -. -0 -. -as_mut -( -) -. -unwrap -( -) -; -crate -: -: -meta -: -: -limited -: -: -hybrid_try_search_half_rev -( -dfa -& -mut -cache -input -min_start -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -unreachable -! -( -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -ReverseHybridCache -( -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -Option -< -hybrid -: -: -dfa -: -: -Cache -> -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -( -) -) -; -impl -ReverseHybridCache -{ -pub -( -crate -) -fn -none -( -) -- -> -ReverseHybridCache -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -ReverseHybridCache -( -None -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -ReverseHybridCache -( -( -) -) -} -} -pub -( -crate -) -fn -new -( -builder -: -& -ReverseHybrid -) -- -> -ReverseHybridCache -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -ReverseHybridCache -( -builder -. -0 -. -as_ref -( -) -. -map -( -| -e -| -e -. -0 -. -create_cache -( -) -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -ReverseHybridCache -( -( -) -) -} -} -pub -( -crate -) -fn -reset -( -& -mut -self -builder -: -& -ReverseHybrid -) -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -if -let -Some -( -ref -e -) -= -builder -. -0 -{ -self -. -0 -. -as_mut -( -) -. -unwrap -( -) -. -reset -( -& -e -. -0 -) -; -} -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -{ -self -. -0 -. -as_ref -( -) -. -map_or -( -0 -| -c -| -c -. -memory_usage -( -) -) -} -# -[ -cfg -( -not -( -feature -= -" -hybrid -" -) -) -] -{ -0 -} -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -ReverseDFA -( -Option -< -ReverseDFAEngine -> -) -; -impl -ReverseDFA -{ -pub -( -crate -) -fn -none -( -) -- -> -ReverseDFA -{ -ReverseDFA -( -None -) -} -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -nfarev -: -& -NFA -) -- -> -ReverseDFA -{ -ReverseDFA -( -ReverseDFAEngine -: -: -new -( -info -nfarev -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -get -( -& -self -_input -: -& -Input -< -' -_ -> -) -- -> -Option -< -& -ReverseDFAEngine -> -{ -let -engine -= -self -. -0 -. -as_ref -( -) -? -; -Some -( -engine -) -} -pub -( -crate -) -fn -is_some -( -& -self -) -- -> -bool -{ -self -. -0 -. -is_some -( -) -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -0 -. -as_ref -( -) -. -map_or -( -0 -| -e -| -e -. -memory_usage -( -) -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -ReverseDFAEngine -( -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -dfa -: -: -dense -: -: -DFA -< -Vec -< -u32 -> -> -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -( -) -) -; -impl -ReverseDFAEngine -{ -pub -( -crate -) -fn -new -( -info -: -& -RegexInfo -nfarev -: -& -NFA -) -- -> -Option -< -ReverseDFAEngine -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -if -! -info -. -config -( -) -. -get_dfa -( -) -{ -return -None -; -} -if -let -Some -( -state_limit -) -= -info -. -config -( -) -. -get_dfa_state_limit -( -) -{ -if -nfarev -. -states -( -) -. -len -( -) -> -state_limit -{ -debug -! -( -" -skipping -full -reverse -DFA -because -NFA -has -{ -} -states -\ -which -exceeds -the -heuristic -limit -of -{ -} -" -nfarev -. -states -( -) -. -len -( -) -state_limit -) -; -return -None -; -} -} -let -size_limit -= -info -. -config -( -) -. -get_dfa_size_limit -( -) -. -map -( -| -n -| -n -/ -2 -) -; -let -dfa_config -= -dfa -: -: -dense -: -: -Config -: -: -new -( -) -. -match_kind -( -MatchKind -: -: -All -) -. -prefilter -( -None -) -. -accelerate -( -false -) -. -start_kind -( -dfa -: -: -StartKind -: -: -Anchored -) -. -starts_for_each_pattern -( -false -) -. -byte_classes -( -info -. -config -( -) -. -get_byte_classes -( -) -) -. -unicode_word_boundary -( -true -) -. -specialize_start_states -( -false -) -. -determinize_size_limit -( -size_limit -) -. -dfa_size_limit -( -size_limit -) -; -let -result -= -dfa -: -: -dense -: -: -Builder -: -: -new -( -) -. -configure -( -dfa_config -) -. -build_from_nfa -( -& -nfarev -) -; -let -rev -= -match -result -{ -Ok -( -rev -) -= -> -rev -Err -( -_err -) -= -> -{ -debug -! -( -" -full -reverse -DFA -failed -to -build -: -{ -} -" -_err -) -; -return -None -; -} -} -; -debug -! -( -" -fully -compiled -reverse -DFA -built -{ -} -bytes -" -rev -. -memory_usage -( -) -) -; -Some -( -ReverseDFAEngine -( -rev -) -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -None -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -try_search_half_rev_limited -( -& -self -input -: -& -Input -< -' -_ -> -min_start -: -usize -) -- -> -Result -< -Option -< -HalfMatch -> -RetryError -> -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -let -dfa -= -& -self -. -0 -; -crate -: -: -meta -: -: -limited -: -: -dfa_try_search_half_rev -( -dfa -input -min_start -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -unreachable -! -( -) -} -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -feature -= -" -dfa -- -build -" -) -] -{ -self -. -0 -. -memory_usage -( -) -} -# -[ -cfg -( -not -( -feature -= -" -dfa -- -build -" -) -) -] -{ -unreachable -! -( -) -} -} -} diff --git a/third_party/rust/regex-automata/src/nfa/mod.rs b/third_party/rust/regex-automata/src/nfa/mod.rs deleted file mode 100644 index 89d9e54874093..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/mod.rs +++ /dev/null @@ -1,17 +0,0 @@ -# -[ -cfg -( -feature -= -" -nfa -- -thompson -" -) -] -pub -mod -thompson -; diff --git a/third_party/rust/regex-automata/src/nfa/thompson/backtrack.rs b/third_party/rust/regex-automata/src/nfa/thompson/backtrack.rs deleted file mode 100644 index ed227f526ee5f..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/thompson/backtrack.rs +++ /dev/null @@ -1,4353 +0,0 @@ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -nfa -: -: -thompson -: -: -{ -self -BuildError -State -NFA -} -util -: -: -{ -captures -: -: -Captures -empty -iter -prefilter -: -: -Prefilter -primitives -: -: -{ -NonMaxUsize -PatternID -SmallIndex -StateID -} -search -: -: -{ -Anchored -HalfMatch -Input -Match -MatchError -Span -} -} -} -; -pub -fn -min_visited_capacity -( -nfa -: -& -NFA -input -: -& -Input -< -' -_ -> -) -- -> -usize -{ -div_ceil -( -nfa -. -states -( -) -. -len -( -) -* -( -input -. -get_span -( -) -. -len -( -) -+ -1 -) -8 -) -} -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -Config -{ -pre -: -Option -< -Option -< -Prefilter -> -> -visited_capacity -: -Option -< -usize -> -} -impl -Config -{ -pub -fn -new -( -) -- -> -Config -{ -Config -: -: -default -( -) -} -pub -fn -prefilter -( -mut -self -pre -: -Option -< -Prefilter -> -) -- -> -Config -{ -self -. -pre -= -Some -( -pre -) -; -self -} -pub -fn -visited_capacity -( -mut -self -capacity -: -usize -) -- -> -Config -{ -self -. -visited_capacity -= -Some -( -capacity -) -; -self -} -pub -fn -get_prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -self -. -pre -. -as_ref -( -) -. -unwrap_or -( -& -None -) -. -as_ref -( -) -} -pub -fn -get_visited_capacity -( -& -self -) -- -> -usize -{ -const -DEFAULT -: -usize -= -256 -* -( -1 -< -< -10 -) -; -self -. -visited_capacity -. -unwrap_or -( -DEFAULT -) -} -pub -( -crate -) -fn -overwrite -( -& -self -o -: -Config -) -- -> -Config -{ -Config -{ -pre -: -o -. -pre -. -or_else -( -| -| -self -. -pre -. -clone -( -) -) -visited_capacity -: -o -. -visited_capacity -. -or -( -self -. -visited_capacity -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -config -: -Config -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -{ -config -: -Config -: -: -default -( -) -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -: -: -new -( -) -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build -( -& -self -pattern -: -& -str -) -- -> -Result -< -BoundedBacktracker -BuildError -> -{ -self -. -build_many -( -& -[ -pattern -] -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build_many -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -BoundedBacktracker -BuildError -> -{ -let -nfa -= -self -. -thompson -. -build_many -( -patterns -) -? -; -self -. -build_from_nfa -( -nfa -) -} -pub -fn -build_from_nfa -( -& -self -nfa -: -NFA -) -- -> -Result -< -BoundedBacktracker -BuildError -> -{ -nfa -. -look_set_any -( -) -. -available -( -) -. -map_err -( -BuildError -: -: -word -) -? -; -Ok -( -BoundedBacktracker -{ -config -: -self -. -config -. -clone -( -) -nfa -} -) -} -pub -fn -configure -( -& -mut -self -config -: -Config -) -- -> -& -mut -Builder -{ -self -. -config -= -self -. -config -. -overwrite -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -syntax -( -& -mut -self -config -: -crate -: -: -util -: -: -syntax -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -syntax -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -thompson -( -& -mut -self -config -: -thompson -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -configure -( -config -) -; -self -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -BoundedBacktracker -{ -config -: -Config -nfa -: -NFA -} -impl -BoundedBacktracker -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new -( -pattern -: -& -str -) -- -> -Result -< -BoundedBacktracker -BuildError -> -{ -BoundedBacktracker -: -: -builder -( -) -. -build -( -pattern -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -BoundedBacktracker -BuildError -> -{ -BoundedBacktracker -: -: -builder -( -) -. -build_many -( -patterns -) -} -pub -fn -new_from_nfa -( -nfa -: -NFA -) -- -> -Result -< -BoundedBacktracker -BuildError -> -{ -BoundedBacktracker -: -: -builder -( -) -. -build_from_nfa -( -nfa -) -} -pub -fn -always_match -( -) -- -> -Result -< -BoundedBacktracker -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -always_match -( -) -; -BoundedBacktracker -: -: -new_from_nfa -( -nfa -) -} -pub -fn -never_match -( -) -- -> -Result -< -BoundedBacktracker -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -never_match -( -) -; -BoundedBacktracker -: -: -new_from_nfa -( -nfa -) -} -pub -fn -config -( -) -- -> -Config -{ -Config -: -: -new -( -) -} -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -pub -fn -create_cache -( -& -self -) -- -> -Cache -{ -Cache -: -: -new -( -self -) -} -pub -fn -create_captures -( -& -self -) -- -> -Captures -{ -Captures -: -: -all -( -self -. -get_nfa -( -) -. -group_info -( -) -. -clone -( -) -) -} -pub -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -{ -cache -. -reset -( -self -) -; -} -pub -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -nfa -. -pattern_len -( -) -} -# -[ -inline -] -pub -fn -get_config -( -& -self -) -- -> -& -Config -{ -& -self -. -config -} -# -[ -inline -] -pub -fn -get_nfa -( -& -self -) -- -> -& -NFA -{ -& -self -. -nfa -} -# -[ -inline -] -pub -fn -max_haystack_len -( -& -self -) -- -> -usize -{ -let -capacity -= -8 -* -self -. -get_config -( -) -. -get_visited_capacity -( -) -; -let -blocks -= -div_ceil -( -capacity -Visited -: -: -BLOCK_SIZE -) -; -let -real_capacity -= -blocks -* -Visited -: -: -BLOCK_SIZE -; -( -real_capacity -/ -self -. -nfa -. -states -( -) -. -len -( -) -) -- -1 -} -} -impl -BoundedBacktracker -{ -# -[ -inline -] -pub -fn -try_is_match -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -) -- -> -Result -< -bool -MatchError -> -{ -let -input -= -input -. -into -( -) -. -earliest -( -true -) -; -self -. -try_search_slots -( -cache -& -input -& -mut -[ -] -) -. -map -( -| -pid -| -pid -. -is_some -( -) -) -} -# -[ -inline -] -pub -fn -try_find -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -let -input -= -input -. -into -( -) -; -if -self -. -get_nfa -( -) -. -pattern_len -( -) -= -= -1 -{ -let -mut -slots -= -[ -None -None -] -; -let -pid -= -match -self -. -try_search_slots -( -cache -& -input -& -mut -slots -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -pid -) -= -> -pid -} -; -let -start -= -match -slots -[ -0 -] -{ -None -= -> -return -Ok -( -None -) -Some -( -s -) -= -> -s -. -get -( -) -} -; -let -end -= -match -slots -[ -1 -] -{ -None -= -> -return -Ok -( -None -) -Some -( -s -) -= -> -s -. -get -( -) -} -; -return -Ok -( -Some -( -Match -: -: -new -( -pid -Span -{ -start -end -} -) -) -) -; -} -let -ginfo -= -self -. -get_nfa -( -) -. -group_info -( -) -; -let -slots_len -= -ginfo -. -implicit_slot_len -( -) -; -let -mut -slots -= -vec -! -[ -None -; -slots_len -] -; -let -pid -= -match -self -. -try_search_slots -( -cache -& -input -& -mut -slots -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -pid -) -= -> -pid -} -; -let -start -= -match -slots -[ -pid -. -as_usize -( -) -* -2 -] -{ -None -= -> -return -Ok -( -None -) -Some -( -s -) -= -> -s -. -get -( -) -} -; -let -end -= -match -slots -[ -pid -. -as_usize -( -) -* -2 -+ -1 -] -{ -None -= -> -return -Ok -( -None -) -Some -( -s -) -= -> -s -. -get -( -) -} -; -Ok -( -Some -( -Match -: -: -new -( -pid -Span -{ -start -end -} -) -) -) -} -# -[ -inline -] -pub -fn -try_captures -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -caps -: -& -mut -Captures -) -- -> -Result -< -( -) -MatchError -> -{ -self -. -try_search -( -cache -& -input -. -into -( -) -caps -) -} -# -[ -inline -] -pub -fn -try_find_iter -< -' -r -' -c -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -cache -: -& -' -c -mut -Cache -input -: -I -) -- -> -TryFindMatches -< -' -r -' -c -' -h -> -{ -let -caps -= -Captures -: -: -matches -( -self -. -get_nfa -( -) -. -group_info -( -) -. -clone -( -) -) -; -let -it -= -iter -: -: -Searcher -: -: -new -( -input -. -into -( -) -) -; -TryFindMatches -{ -re -: -self -cache -caps -it -} -} -# -[ -inline -] -pub -fn -try_captures_iter -< -' -r -' -c -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -cache -: -& -' -c -mut -Cache -input -: -I -) -- -> -TryCapturesMatches -< -' -r -' -c -' -h -> -{ -let -caps -= -self -. -create_captures -( -) -; -let -it -= -iter -: -: -Searcher -: -: -new -( -input -. -into -( -) -) -; -TryCapturesMatches -{ -re -: -self -cache -caps -it -} -} -} -impl -BoundedBacktracker -{ -# -[ -inline -] -pub -fn -try_search -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -caps -: -& -mut -Captures -) -- -> -Result -< -( -) -MatchError -> -{ -caps -. -set_pattern -( -None -) -; -let -pid -= -self -. -try_search_slots -( -cache -input -caps -. -slots_mut -( -) -) -? -; -caps -. -set_pattern -( -pid -) -; -Ok -( -( -) -) -} -# -[ -inline -] -pub -fn -try_search_slots -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Result -< -Option -< -PatternID -> -MatchError -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -if -! -utf8empty -{ -let -maybe_hm -= -self -. -try_search_slots_imp -( -cache -input -slots -) -? -; -return -Ok -( -maybe_hm -. -map -( -| -hm -| -hm -. -pattern -( -) -) -) -; -} -let -min -= -self -. -get_nfa -( -) -. -group_info -( -) -. -implicit_slot_len -( -) -; -if -slots -. -len -( -) -> -= -min -{ -let -maybe_hm -= -self -. -try_search_slots_imp -( -cache -input -slots -) -? -; -return -Ok -( -maybe_hm -. -map -( -| -hm -| -hm -. -pattern -( -) -) -) -; -} -if -self -. -get_nfa -( -) -. -pattern_len -( -) -= -= -1 -{ -let -mut -enough -= -[ -None -None -] -; -let -got -= -self -. -try_search_slots_imp -( -cache -input -& -mut -enough -) -? -; -slots -. -copy_from_slice -( -& -enough -[ -. -. -slots -. -len -( -) -] -) -; -return -Ok -( -got -. -map -( -| -hm -| -hm -. -pattern -( -) -) -) -; -} -let -mut -enough -= -vec -! -[ -None -; -min -] -; -let -got -= -self -. -try_search_slots_imp -( -cache -input -& -mut -enough -) -? -; -slots -. -copy_from_slice -( -& -enough -[ -. -. -slots -. -len -( -) -] -) -; -Ok -( -got -. -map -( -| -hm -| -hm -. -pattern -( -) -) -) -} -# -[ -inline -( -never -) -] -fn -try_search_slots_imp -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -let -hm -= -match -self -. -search_imp -( -cache -input -slots -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -hm -) -if -! -utf8empty -= -> -return -Ok -( -Some -( -hm -) -) -Some -( -hm -) -= -> -hm -} -; -empty -: -: -skip_splits_fwd -( -input -hm -hm -. -offset -( -) -| -input -| -{ -Ok -( -self -. -search_imp -( -cache -input -slots -) -? -. -map -( -| -hm -| -( -hm -hm -. -offset -( -) -) -) -) -} -) -} -fn -search_imp -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -for -slot -in -slots -. -iter_mut -( -) -{ -* -slot -= -None -; -} -cache -. -setup_search -( -& -self -input -) -? -; -if -input -. -is_done -( -) -{ -return -Ok -( -None -) -; -} -let -( -anchored -start_id -) -= -match -input -. -get_anchored -( -) -{ -Anchored -: -: -No -= -> -( -self -. -nfa -. -is_always_start_anchored -( -) -self -. -nfa -. -start_anchored -( -) -) -Anchored -: -: -Yes -= -> -( -true -self -. -nfa -. -start_anchored -( -) -) -Anchored -: -: -Pattern -( -pid -) -= -> -match -self -. -nfa -. -start_pattern -( -pid -) -{ -None -= -> -return -Ok -( -None -) -Some -( -sid -) -= -> -( -true -sid -) -} -} -; -if -anchored -{ -let -at -= -input -. -start -( -) -; -return -Ok -( -self -. -backtrack -( -cache -input -at -start_id -slots -) -) -; -} -let -pre -= -self -. -get_config -( -) -. -get_prefilter -( -) -; -let -mut -at -= -input -. -start -( -) -; -while -at -< -= -input -. -end -( -) -{ -if -let -Some -( -ref -pre -) -= -pre -{ -let -span -= -Span -: -: -from -( -at -. -. -input -. -end -( -) -) -; -match -pre -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -break -Some -( -ref -span -) -= -> -at -= -span -. -start -} -} -if -let -Some -( -hm -) -= -self -. -backtrack -( -cache -input -at -start_id -slots -) -{ -return -Ok -( -Some -( -hm -) -) -; -} -at -+ -= -1 -; -} -Ok -( -None -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -backtrack -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -at -: -usize -start_id -: -StateID -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -HalfMatch -> -{ -cache -. -stack -. -push -( -Frame -: -: -Step -{ -sid -: -start_id -at -} -) -; -while -let -Some -( -frame -) -= -cache -. -stack -. -pop -( -) -{ -match -frame -{ -Frame -: -: -Step -{ -sid -at -} -= -> -{ -if -let -Some -( -hm -) -= -self -. -step -( -cache -input -sid -at -slots -) -{ -return -Some -( -hm -) -; -} -} -Frame -: -: -RestoreCapture -{ -slot -offset -} -= -> -{ -slots -[ -slot -] -= -offset -; -} -} -} -None -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -step -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -mut -sid -: -StateID -mut -at -: -usize -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -HalfMatch -> -{ -loop -{ -if -! -cache -. -visited -. -insert -( -sid -at -- -input -. -start -( -) -) -{ -return -None -; -} -match -* -self -. -nfa -. -state -( -sid -) -{ -State -: -: -ByteRange -{ -ref -trans -} -= -> -{ -if -at -> -= -input -. -end -( -) -{ -return -None -; -} -if -! -trans -. -matches -( -input -. -haystack -( -) -at -) -{ -return -None -; -} -sid -= -trans -. -next -; -at -+ -= -1 -; -} -State -: -: -Sparse -( -ref -sparse -) -= -> -{ -if -at -> -= -input -. -end -( -) -{ -return -None -; -} -sid -= -sparse -. -matches -( -input -. -haystack -( -) -at -) -? -; -at -+ -= -1 -; -} -State -: -: -Dense -( -ref -dense -) -= -> -{ -if -at -> -= -input -. -end -( -) -{ -return -None -; -} -sid -= -dense -. -matches -( -input -. -haystack -( -) -at -) -? -; -at -+ -= -1 -; -} -State -: -: -Look -{ -look -next -} -= -> -{ -if -! -self -. -nfa -. -look_matcher -( -) -. -matches_inline -( -look -input -. -haystack -( -) -at -) -{ -return -None -; -} -sid -= -next -; -} -State -: -: -Union -{ -ref -alternates -} -= -> -{ -sid -= -match -alternates -. -get -( -0 -) -{ -None -= -> -return -None -Some -( -& -sid -) -= -> -sid -} -; -cache -. -stack -. -extend -( -alternates -[ -1 -. -. -] -. -iter -( -) -. -copied -( -) -. -rev -( -) -. -map -( -| -sid -| -Frame -: -: -Step -{ -sid -at -} -) -) -; -} -State -: -: -BinaryUnion -{ -alt1 -alt2 -} -= -> -{ -sid -= -alt1 -; -cache -. -stack -. -push -( -Frame -: -: -Step -{ -sid -: -alt2 -at -} -) -; -} -State -: -: -Capture -{ -next -slot -. -. -} -= -> -{ -if -slot -. -as_usize -( -) -< -slots -. -len -( -) -{ -cache -. -stack -. -push -( -Frame -: -: -RestoreCapture -{ -slot -offset -: -slots -[ -slot -] -} -) -; -slots -[ -slot -] -= -NonMaxUsize -: -: -new -( -at -) -; -} -sid -= -next -; -} -State -: -: -Fail -= -> -return -None -State -: -: -Match -{ -pattern_id -} -= -> -{ -return -Some -( -HalfMatch -: -: -new -( -pattern_id -at -) -) -; -} -} -} -} -} -# -[ -derive -( -Debug -) -] -pub -struct -TryFindMatches -< -' -r -' -c -' -h -> -{ -re -: -& -' -r -BoundedBacktracker -cache -: -& -' -c -mut -Cache -caps -: -Captures -it -: -iter -: -: -Searcher -< -' -h -> -} -impl -< -' -r -' -c -' -h -> -Iterator -for -TryFindMatches -< -' -r -' -c -' -h -> -{ -type -Item -= -Result -< -Match -MatchError -> -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Result -< -Match -MatchError -> -> -{ -let -TryFindMatches -{ -re -ref -mut -cache -ref -mut -caps -ref -mut -it -} -= -* -self -; -it -. -try_advance -( -| -input -| -{ -re -. -try_search -( -cache -input -caps -) -? -; -Ok -( -caps -. -get_match -( -) -) -} -) -. -transpose -( -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -TryCapturesMatches -< -' -r -' -c -' -h -> -{ -re -: -& -' -r -BoundedBacktracker -cache -: -& -' -c -mut -Cache -caps -: -Captures -it -: -iter -: -: -Searcher -< -' -h -> -} -impl -< -' -r -' -c -' -h -> -Iterator -for -TryCapturesMatches -< -' -r -' -c -' -h -> -{ -type -Item -= -Result -< -Captures -MatchError -> -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Result -< -Captures -MatchError -> -> -{ -let -TryCapturesMatches -{ -re -ref -mut -cache -ref -mut -caps -ref -mut -it -} -= -* -self -; -let -_ -= -it -. -try_advance -( -| -input -| -{ -re -. -try_search -( -cache -input -caps -) -? -; -Ok -( -caps -. -get_match -( -) -) -} -) -. -transpose -( -) -? -; -if -caps -. -is_match -( -) -{ -Some -( -Ok -( -caps -. -clone -( -) -) -) -} -else -{ -None -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Cache -{ -stack -: -Vec -< -Frame -> -visited -: -Visited -} -impl -Cache -{ -pub -fn -new -( -re -: -& -BoundedBacktracker -) -- -> -Cache -{ -Cache -{ -stack -: -vec -! -[ -] -visited -: -Visited -: -: -new -( -re -) -} -} -pub -fn -reset -( -& -mut -self -re -: -& -BoundedBacktracker -) -{ -self -. -visited -. -reset -( -re -) -; -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -stack -. -len -( -) -* -core -: -: -mem -: -: -size_of -: -: -< -Frame -> -( -) -+ -self -. -visited -. -memory_usage -( -) -} -fn -setup_search -( -& -mut -self -re -: -& -BoundedBacktracker -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -( -) -MatchError -> -{ -self -. -stack -. -clear -( -) -; -self -. -visited -. -setup_search -( -re -input -) -? -; -Ok -( -( -) -) -} -} -# -[ -derive -( -Clone -Debug -) -] -enum -Frame -{ -Step -{ -sid -: -StateID -at -: -usize -} -RestoreCapture -{ -slot -: -SmallIndex -offset -: -Option -< -NonMaxUsize -> -} -} -# -[ -derive -( -Clone -Debug -) -] -struct -Visited -{ -bitset -: -Vec -< -usize -> -stride -: -usize -} -impl -Visited -{ -const -BLOCK_SIZE -: -usize -= -8 -* -core -: -: -mem -: -: -size_of -: -: -< -usize -> -( -) -; -fn -new -( -re -: -& -BoundedBacktracker -) -- -> -Visited -{ -let -mut -visited -= -Visited -{ -bitset -: -vec -! -[ -] -stride -: -0 -} -; -visited -. -reset -( -re -) -; -visited -} -fn -insert -( -& -mut -self -sid -: -StateID -at -: -usize -) -- -> -bool -{ -let -table_index -= -sid -. -as_usize -( -) -* -self -. -stride -+ -at -; -let -block_index -= -table_index -/ -Visited -: -: -BLOCK_SIZE -; -let -bit -= -table_index -% -Visited -: -: -BLOCK_SIZE -; -let -block_with_bit -= -1 -< -< -bit -; -if -self -. -bitset -[ -block_index -] -& -block_with_bit -! -= -0 -{ -return -false -; -} -self -. -bitset -[ -block_index -] -| -= -block_with_bit -; -true -} -fn -reset -( -& -mut -self -_ -: -& -BoundedBacktracker -) -{ -self -. -bitset -. -truncate -( -0 -) -; -} -fn -setup_search -( -& -mut -self -re -: -& -BoundedBacktracker -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -( -) -MatchError -> -{ -let -haylen -= -input -. -get_span -( -) -. -len -( -) -; -let -err -= -| -| -MatchError -: -: -haystack_too_long -( -haylen -) -; -self -. -stride -= -haylen -+ -1 -; -let -needed_capacity -= -match -re -. -get_nfa -( -) -. -states -( -) -. -len -( -) -. -checked_mul -( -self -. -stride -) -{ -None -= -> -return -Err -( -err -( -) -) -Some -( -capacity -) -= -> -capacity -} -; -let -max_capacity -= -8 -* -re -. -get_config -( -) -. -get_visited_capacity -( -) -; -if -needed_capacity -> -max_capacity -{ -return -Err -( -err -( -) -) -; -} -let -needed_blocks -= -div_ceil -( -needed_capacity -Visited -: -: -BLOCK_SIZE -) -; -self -. -bitset -. -truncate -( -needed_blocks -) -; -for -block -in -self -. -bitset -. -iter_mut -( -) -{ -* -block -= -0 -; -} -if -needed_blocks -> -self -. -bitset -. -len -( -) -{ -self -. -bitset -. -resize -( -needed_blocks -0 -) -; -} -Ok -( -( -) -) -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -bitset -. -len -( -) -* -core -: -: -mem -: -: -size_of -: -: -< -usize -> -( -) -} -} -fn -div_ceil -( -lhs -: -usize -rhs -: -usize -) -- -> -usize -{ -if -lhs -% -rhs -= -= -0 -{ -lhs -/ -rhs -} -else -{ -( -lhs -/ -rhs -) -+ -1 -} -} diff --git a/third_party/rust/regex-automata/src/nfa/thompson/builder.rs b/third_party/rust/regex-automata/src/nfa/thompson/builder.rs deleted file mode 100644 index 85da3e5d1a80e..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/thompson/builder.rs +++ /dev/null @@ -1,3215 +0,0 @@ -use -core -: -: -mem -; -use -alloc -: -: -{ -sync -: -: -Arc -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -nfa -: -: -thompson -: -: -{ -error -: -: -BuildError -nfa -: -: -{ -self -SparseTransitions -Transition -NFA -} -} -util -: -: -{ -look -: -: -{ -Look -LookMatcher -} -primitives -: -: -{ -IteratorIndexExt -PatternID -SmallIndex -StateID -} -} -} -; -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -enum -State -{ -Empty -{ -next -: -StateID -} -ByteRange -{ -trans -: -Transition -} -Sparse -{ -transitions -: -Vec -< -Transition -> -} -Look -{ -look -: -Look -next -: -StateID -} -CaptureStart -{ -pattern_id -: -PatternID -group_index -: -SmallIndex -next -: -StateID -} -CaptureEnd -{ -pattern_id -: -PatternID -group_index -: -SmallIndex -next -: -StateID -} -Union -{ -alternates -: -Vec -< -StateID -> -} -UnionReverse -{ -alternates -: -Vec -< -StateID -> -} -Fail -Match -{ -pattern_id -: -PatternID -} -} -impl -State -{ -fn -goto -( -& -self -) -- -> -Option -< -StateID -> -{ -match -* -self -{ -State -: -: -Empty -{ -next -} -= -> -Some -( -next -) -State -: -: -Union -{ -ref -alternates -} -if -alternates -. -len -( -) -= -= -1 -= -> -{ -Some -( -alternates -[ -0 -] -) -} -State -: -: -UnionReverse -{ -ref -alternates -} -if -alternates -. -len -( -) -= -= -1 -= -> -{ -Some -( -alternates -[ -0 -] -) -} -_ -= -> -None -} -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -match -* -self -{ -State -: -: -Empty -{ -. -. -} -| -State -: -: -ByteRange -{ -. -. -} -| -State -: -: -Look -{ -. -. -} -| -State -: -: -CaptureStart -{ -. -. -} -| -State -: -: -CaptureEnd -{ -. -. -} -| -State -: -: -Fail -| -State -: -: -Match -{ -. -. -} -= -> -0 -State -: -: -Sparse -{ -ref -transitions -} -= -> -{ -transitions -. -len -( -) -* -mem -: -: -size_of -: -: -< -Transition -> -( -) -} -State -: -: -Union -{ -ref -alternates -} -= -> -{ -alternates -. -len -( -) -* -mem -: -: -size_of -: -: -< -StateID -> -( -) -} -State -: -: -UnionReverse -{ -ref -alternates -} -= -> -{ -alternates -. -len -( -) -* -mem -: -: -size_of -: -: -< -StateID -> -( -) -} -} -} -} -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -Builder -{ -pattern_id -: -Option -< -PatternID -> -states -: -Vec -< -State -> -start_pattern -: -Vec -< -StateID -> -captures -: -Vec -< -Vec -< -Option -< -Arc -< -str -> -> -> -> -memory_states -: -usize -utf8 -: -bool -reverse -: -bool -look_matcher -: -LookMatcher -size_limit -: -Option -< -usize -> -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -: -: -default -( -) -} -pub -fn -clear -( -& -mut -self -) -{ -self -. -pattern_id -= -None -; -self -. -states -. -clear -( -) -; -self -. -start_pattern -. -clear -( -) -; -self -. -captures -. -clear -( -) -; -self -. -memory_states -= -0 -; -} -pub -fn -build -( -& -self -start_anchored -: -StateID -start_unanchored -: -StateID -) -- -> -Result -< -NFA -BuildError -> -{ -assert -! -( -self -. -pattern_id -. -is_none -( -) -" -must -call -' -finish_pattern -' -first -" -) -; -debug -! -( -" -intermediate -NFA -compilation -via -builder -is -complete -\ -intermediate -NFA -size -: -{ -} -states -{ -} -bytes -on -heap -" -self -. -states -. -len -( -) -self -. -memory_usage -( -) -) -; -let -mut -nfa -= -nfa -: -: -Inner -: -: -default -( -) -; -nfa -. -set_utf8 -( -self -. -utf8 -) -; -nfa -. -set_reverse -( -self -. -reverse -) -; -nfa -. -set_look_matcher -( -self -. -look_matcher -. -clone -( -) -) -; -let -mut -empties -= -vec -! -[ -] -; -let -mut -remap -= -vec -! -[ -] -; -remap -. -resize -( -self -. -states -. -len -( -) -StateID -: -: -ZERO -) -; -nfa -. -set_starts -( -start_anchored -start_unanchored -& -self -. -start_pattern -) -; -nfa -. -set_captures -( -& -self -. -captures -) -. -map_err -( -BuildError -: -: -captures -) -? -; -for -( -sid -state -) -in -self -. -states -. -iter -( -) -. -with_state_ids -( -) -{ -match -* -state -{ -State -: -: -Empty -{ -next -} -= -> -{ -empties -. -push -( -( -sid -next -) -) -; -} -State -: -: -ByteRange -{ -trans -} -= -> -{ -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -ByteRange -{ -trans -} -) -; -} -State -: -: -Sparse -{ -ref -transitions -} -= -> -{ -remap -[ -sid -] -= -match -transitions -. -len -( -) -{ -0 -= -> -nfa -. -add -( -nfa -: -: -State -: -: -Fail -) -1 -= -> -nfa -. -add -( -nfa -: -: -State -: -: -ByteRange -{ -trans -: -transitions -[ -0 -] -} -) -_ -= -> -{ -let -transitions -= -transitions -. -to_vec -( -) -. -into_boxed_slice -( -) -; -let -sparse -= -SparseTransitions -{ -transitions -} -; -nfa -. -add -( -nfa -: -: -State -: -: -Sparse -( -sparse -) -) -} -} -} -State -: -: -Look -{ -look -next -} -= -> -{ -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -Look -{ -look -next -} -) -; -} -State -: -: -CaptureStart -{ -pattern_id -group_index -next -} -= -> -{ -let -slot -= -nfa -. -group_info -( -) -. -slot -( -pattern_id -group_index -. -as_usize -( -) -) -. -expect -( -" -invalid -capture -index -" -) -; -let -slot -= -SmallIndex -: -: -new -( -slot -) -. -expect -( -" -a -small -enough -slot -" -) -; -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -Capture -{ -next -pattern_id -group_index -slot -} -) -; -} -State -: -: -CaptureEnd -{ -pattern_id -group_index -next -} -= -> -{ -let -slot -= -nfa -. -group_info -( -) -. -slot -( -pattern_id -group_index -. -as_usize -( -) -) -. -expect -( -" -invalid -capture -index -" -) -. -checked_add -( -1 -) -. -unwrap -( -) -; -let -slot -= -SmallIndex -: -: -new -( -slot -) -. -expect -( -" -a -small -enough -slot -" -) -; -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -Capture -{ -next -pattern_id -group_index -slot -} -) -; -} -State -: -: -Union -{ -ref -alternates -} -= -> -{ -if -alternates -. -is_empty -( -) -{ -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -Fail -) -; -} -else -if -alternates -. -len -( -) -= -= -1 -{ -empties -. -push -( -( -sid -alternates -[ -0 -] -) -) -; -remap -[ -sid -] -= -alternates -[ -0 -] -; -} -else -if -alternates -. -len -( -) -= -= -2 -{ -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -BinaryUnion -{ -alt1 -: -alternates -[ -0 -] -alt2 -: -alternates -[ -1 -] -} -) -; -} -else -{ -let -alternates -= -alternates -. -to_vec -( -) -. -into_boxed_slice -( -) -; -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -Union -{ -alternates -} -) -; -} -} -State -: -: -UnionReverse -{ -ref -alternates -} -= -> -{ -if -alternates -. -is_empty -( -) -{ -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -Fail -) -; -} -else -if -alternates -. -len -( -) -= -= -1 -{ -empties -. -push -( -( -sid -alternates -[ -0 -] -) -) -; -remap -[ -sid -] -= -alternates -[ -0 -] -; -} -else -if -alternates -. -len -( -) -= -= -2 -{ -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -BinaryUnion -{ -alt1 -: -alternates -[ -1 -] -alt2 -: -alternates -[ -0 -] -} -) -; -} -else -{ -let -mut -alternates -= -alternates -. -to_vec -( -) -. -into_boxed_slice -( -) -; -alternates -. -reverse -( -) -; -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -Union -{ -alternates -} -) -; -} -} -State -: -: -Fail -= -> -{ -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -Fail -) -; -} -State -: -: -Match -{ -pattern_id -} -= -> -{ -remap -[ -sid -] -= -nfa -. -add -( -nfa -: -: -State -: -: -Match -{ -pattern_id -} -) -; -} -} -} -let -mut -remapped -= -vec -! -[ -false -; -self -. -states -. -len -( -) -] -; -for -& -( -empty_id -empty_next -) -in -empties -. -iter -( -) -{ -if -remapped -[ -empty_id -] -{ -continue -; -} -let -mut -new_next -= -empty_next -; -while -let -Some -( -next -) -= -self -. -states -[ -new_next -] -. -goto -( -) -{ -new_next -= -next -; -} -remap -[ -empty_id -] -= -remap -[ -new_next -] -; -remapped -[ -empty_id -] -= -true -; -let -mut -next2 -= -empty_next -; -while -let -Some -( -next -) -= -self -. -states -[ -next2 -] -. -goto -( -) -{ -remap -[ -next2 -] -= -remap -[ -new_next -] -; -remapped -[ -next2 -] -= -true -; -next2 -= -next -; -} -} -nfa -. -remap -( -& -remap -) -; -let -final_nfa -= -nfa -. -into_nfa -( -) -; -debug -! -( -" -NFA -compilation -via -builder -complete -\ -final -NFA -size -: -{ -} -states -{ -} -bytes -on -heap -\ -has -empty -? -{ -: -? -} -utf8 -? -{ -: -? -} -" -final_nfa -. -states -( -) -. -len -( -) -final_nfa -. -memory_usage -( -) -final_nfa -. -has_empty -( -) -final_nfa -. -is_utf8 -( -) -) -; -Ok -( -final_nfa -) -} -pub -fn -start_pattern -( -& -mut -self -) -- -> -Result -< -PatternID -BuildError -> -{ -assert -! -( -self -. -pattern_id -. -is_none -( -) -" -must -call -' -finish_pattern -' -first -" -) -; -let -proposed -= -self -. -start_pattern -. -len -( -) -; -let -pid -= -PatternID -: -: -new -( -proposed -) -. -map_err -( -| -_ -| -BuildError -: -: -too_many_patterns -( -proposed -) -) -? -; -self -. -pattern_id -= -Some -( -pid -) -; -self -. -start_pattern -. -push -( -StateID -: -: -ZERO -) -; -Ok -( -pid -) -} -pub -fn -finish_pattern -( -& -mut -self -start_id -: -StateID -) -- -> -Result -< -PatternID -BuildError -> -{ -let -pid -= -self -. -current_pattern_id -( -) -; -self -. -start_pattern -[ -pid -] -= -start_id -; -self -. -pattern_id -= -None -; -Ok -( -pid -) -} -pub -fn -current_pattern_id -( -& -self -) -- -> -PatternID -{ -self -. -pattern_id -. -expect -( -" -must -call -' -start_pattern -' -first -" -) -} -pub -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -start_pattern -. -len -( -) -} -pub -fn -add_empty -( -& -mut -self -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -add -( -State -: -: -Empty -{ -next -: -StateID -: -: -ZERO -} -) -} -pub -fn -add_union -( -& -mut -self -alternates -: -Vec -< -StateID -> -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -add -( -State -: -: -Union -{ -alternates -} -) -} -pub -fn -add_union_reverse -( -& -mut -self -alternates -: -Vec -< -StateID -> -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -add -( -State -: -: -UnionReverse -{ -alternates -} -) -} -pub -fn -add_range -( -& -mut -self -trans -: -Transition -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -add -( -State -: -: -ByteRange -{ -trans -} -) -} -pub -fn -add_sparse -( -& -mut -self -transitions -: -Vec -< -Transition -> -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -add -( -State -: -: -Sparse -{ -transitions -} -) -} -pub -fn -add_look -( -& -mut -self -next -: -StateID -look -: -Look -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -add -( -State -: -: -Look -{ -look -next -} -) -} -pub -fn -add_capture_start -( -& -mut -self -next -: -StateID -group_index -: -u32 -name -: -Option -< -Arc -< -str -> -> -) -- -> -Result -< -StateID -BuildError -> -{ -let -pid -= -self -. -current_pattern_id -( -) -; -let -group_index -= -match -SmallIndex -: -: -try_from -( -group_index -) -{ -Err -( -_ -) -= -> -{ -return -Err -( -BuildError -: -: -invalid_capture_index -( -group_index -) -) -} -Ok -( -group_index -) -= -> -group_index -} -; -if -pid -. -as_usize -( -) -> -= -self -. -captures -. -len -( -) -{ -for -_ -in -0 -. -. -= -( -pid -. -as_usize -( -) -- -self -. -captures -. -len -( -) -) -{ -self -. -captures -. -push -( -vec -! -[ -] -) -; -} -} -if -group_index -. -as_usize -( -) -> -= -self -. -captures -[ -pid -] -. -len -( -) -{ -for -_ -in -0 -. -. -( -group_index -. -as_usize -( -) -- -self -. -captures -[ -pid -] -. -len -( -) -) -{ -self -. -captures -[ -pid -] -. -push -( -None -) -; -} -self -. -captures -[ -pid -] -. -push -( -name -) -; -} -self -. -add -( -State -: -: -CaptureStart -{ -pattern_id -: -pid -group_index -next -} -) -} -pub -fn -add_capture_end -( -& -mut -self -next -: -StateID -group_index -: -u32 -) -- -> -Result -< -StateID -BuildError -> -{ -let -pid -= -self -. -current_pattern_id -( -) -; -let -group_index -= -match -SmallIndex -: -: -try_from -( -group_index -) -{ -Err -( -_ -) -= -> -{ -return -Err -( -BuildError -: -: -invalid_capture_index -( -group_index -) -) -} -Ok -( -group_index -) -= -> -group_index -} -; -self -. -add -( -State -: -: -CaptureEnd -{ -pattern_id -: -pid -group_index -next -} -) -} -pub -fn -add_fail -( -& -mut -self -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -add -( -State -: -: -Fail -) -} -pub -fn -add_match -( -& -mut -self -) -- -> -Result -< -StateID -BuildError -> -{ -let -pattern_id -= -self -. -current_pattern_id -( -) -; -let -sid -= -self -. -add -( -State -: -: -Match -{ -pattern_id -} -) -? -; -Ok -( -sid -) -} -fn -add -( -& -mut -self -state -: -State -) -- -> -Result -< -StateID -BuildError -> -{ -let -id -= -StateID -: -: -new -( -self -. -states -. -len -( -) -) -. -map_err -( -| -_ -| -BuildError -: -: -too_many_states -( -self -. -states -. -len -( -) -) -) -? -; -self -. -memory_states -+ -= -state -. -memory_usage -( -) -; -self -. -states -. -push -( -state -) -; -self -. -check_size_limit -( -) -? -; -Ok -( -id -) -} -pub -fn -patch -( -& -mut -self -from -: -StateID -to -: -StateID -) -- -> -Result -< -( -) -BuildError -> -{ -let -old_memory_states -= -self -. -memory_states -; -match -self -. -states -[ -from -] -{ -State -: -: -Empty -{ -ref -mut -next -} -= -> -{ -* -next -= -to -; -} -State -: -: -ByteRange -{ -ref -mut -trans -} -= -> -{ -trans -. -next -= -to -; -} -State -: -: -Sparse -{ -. -. -} -= -> -{ -panic -! -( -" -cannot -patch -from -a -sparse -NFA -state -" -) -} -State -: -: -Look -{ -ref -mut -next -. -. -} -= -> -{ -* -next -= -to -; -} -State -: -: -Union -{ -ref -mut -alternates -} -= -> -{ -alternates -. -push -( -to -) -; -self -. -memory_states -+ -= -mem -: -: -size_of -: -: -< -StateID -> -( -) -; -} -State -: -: -UnionReverse -{ -ref -mut -alternates -} -= -> -{ -alternates -. -push -( -to -) -; -self -. -memory_states -+ -= -mem -: -: -size_of -: -: -< -StateID -> -( -) -; -} -State -: -: -CaptureStart -{ -ref -mut -next -. -. -} -= -> -{ -* -next -= -to -; -} -State -: -: -CaptureEnd -{ -ref -mut -next -. -. -} -= -> -{ -* -next -= -to -; -} -State -: -: -Fail -= -> -{ -} -State -: -: -Match -{ -. -. -} -= -> -{ -} -} -if -old_memory_states -! -= -self -. -memory_states -{ -self -. -check_size_limit -( -) -? -; -} -Ok -( -( -) -) -} -pub -fn -set_utf8 -( -& -mut -self -yes -: -bool -) -{ -self -. -utf8 -= -yes -; -} -pub -fn -get_utf8 -( -& -self -) -- -> -bool -{ -self -. -utf8 -} -pub -fn -set_reverse -( -& -mut -self -yes -: -bool -) -{ -self -. -reverse -= -yes -; -} -pub -fn -get_reverse -( -& -self -) -- -> -bool -{ -self -. -reverse -} -pub -fn -set_look_matcher -( -& -mut -self -m -: -LookMatcher -) -{ -self -. -look_matcher -= -m -; -} -pub -fn -get_look_matcher -( -& -self -) -- -> -& -LookMatcher -{ -& -self -. -look_matcher -} -pub -fn -set_size_limit -( -& -mut -self -limit -: -Option -< -usize -> -) -- -> -Result -< -( -) -BuildError -> -{ -self -. -size_limit -= -limit -; -self -. -check_size_limit -( -) -} -pub -fn -get_size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -size_limit -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -states -. -len -( -) -* -mem -: -: -size_of -: -: -< -State -> -( -) -+ -self -. -memory_states -} -fn -check_size_limit -( -& -self -) -- -> -Result -< -( -) -BuildError -> -{ -if -let -Some -( -limit -) -= -self -. -size_limit -{ -if -self -. -memory_usage -( -) -> -limit -{ -return -Err -( -BuildError -: -: -exceeded_size_limit -( -limit -) -) -; -} -} -Ok -( -( -) -) -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -super -: -: -* -; -# -[ -test -] -fn -state_has_small_size -( -) -{ -# -[ -cfg -( -target_pointer_width -= -" -64 -" -) -] -assert_eq -! -( -32 -core -: -: -mem -: -: -size_of -: -: -< -State -> -( -) -) -; -# -[ -cfg -( -target_pointer_width -= -" -32 -" -) -] -assert_eq -! -( -16 -core -: -: -mem -: -: -size_of -: -: -< -State -> -( -) -) -; -} -} diff --git a/third_party/rust/regex-automata/src/nfa/thompson/compiler.rs b/third_party/rust/regex-automata/src/nfa/thompson/compiler.rs deleted file mode 100644 index 9a231700ad6a8..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/thompson/compiler.rs +++ /dev/null @@ -1,8592 +0,0 @@ -use -core -: -: -{ -borrow -: -: -Borrow -cell -: -: -RefCell -} -; -use -alloc -: -: -{ -sync -: -: -Arc -vec -vec -: -: -Vec -} -; -use -regex_syntax -: -: -{ -hir -: -: -{ -self -Hir -} -utf8 -: -: -{ -Utf8Range -Utf8Sequences -} -ParserBuilder -} -; -use -crate -: -: -{ -nfa -: -: -thompson -: -: -{ -builder -: -: -Builder -error -: -: -BuildError -literal_trie -: -: -LiteralTrie -map -: -: -{ -Utf8BoundedMap -Utf8SuffixKey -Utf8SuffixMap -} -nfa -: -: -{ -Transition -NFA -} -range_trie -: -: -RangeTrie -} -util -: -: -{ -look -: -: -{ -Look -LookMatcher -} -primitives -: -: -{ -PatternID -StateID -} -} -} -; -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -Config -{ -utf8 -: -Option -< -bool -> -reverse -: -Option -< -bool -> -nfa_size_limit -: -Option -< -Option -< -usize -> -> -shrink -: -Option -< -bool -> -which_captures -: -Option -< -WhichCaptures -> -look_matcher -: -Option -< -LookMatcher -> -# -[ -cfg -( -test -) -] -unanchored_prefix -: -Option -< -bool -> -} -impl -Config -{ -pub -fn -new -( -) -- -> -Config -{ -Config -: -: -default -( -) -} -pub -fn -utf8 -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -utf8 -= -Some -( -yes -) -; -self -} -pub -fn -reverse -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -reverse -= -Some -( -yes -) -; -self -} -pub -fn -nfa_size_limit -( -mut -self -bytes -: -Option -< -usize -> -) -- -> -Config -{ -self -. -nfa_size_limit -= -Some -( -bytes -) -; -self -} -pub -fn -shrink -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -shrink -= -Some -( -yes -) -; -self -} -# -[ -deprecated -( -since -= -" -0 -. -3 -. -5 -" -note -= -" -use -which_captures -instead -" -) -] -pub -fn -captures -( -self -yes -: -bool -) -- -> -Config -{ -self -. -which_captures -( -if -yes -{ -WhichCaptures -: -: -All -} -else -{ -WhichCaptures -: -: -None -} -) -} -pub -fn -which_captures -( -mut -self -which_captures -: -WhichCaptures -) -- -> -Config -{ -self -. -which_captures -= -Some -( -which_captures -) -; -self -} -pub -fn -look_matcher -( -mut -self -m -: -LookMatcher -) -- -> -Config -{ -self -. -look_matcher -= -Some -( -m -) -; -self -} -# -[ -cfg -( -test -) -] -fn -unanchored_prefix -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -unanchored_prefix -= -Some -( -yes -) -; -self -} -pub -fn -get_utf8 -( -& -self -) -- -> -bool -{ -self -. -utf8 -. -unwrap_or -( -true -) -} -pub -fn -get_reverse -( -& -self -) -- -> -bool -{ -self -. -reverse -. -unwrap_or -( -false -) -} -pub -fn -get_nfa_size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -nfa_size_limit -. -unwrap_or -( -None -) -} -pub -fn -get_shrink -( -& -self -) -- -> -bool -{ -self -. -shrink -. -unwrap_or -( -false -) -} -# -[ -deprecated -( -since -= -" -0 -. -3 -. -5 -" -note -= -" -use -get_which_captures -instead -" -) -] -pub -fn -get_captures -( -& -self -) -- -> -bool -{ -self -. -get_which_captures -( -) -. -is_any -( -) -} -pub -fn -get_which_captures -( -& -self -) -- -> -WhichCaptures -{ -self -. -which_captures -. -unwrap_or -( -WhichCaptures -: -: -All -) -} -pub -fn -get_look_matcher -( -& -self -) -- -> -LookMatcher -{ -self -. -look_matcher -. -clone -( -) -. -unwrap_or -( -LookMatcher -: -: -default -( -) -) -} -fn -get_unanchored_prefix -( -& -self -) -- -> -bool -{ -# -[ -cfg -( -test -) -] -{ -self -. -unanchored_prefix -. -unwrap_or -( -true -) -} -# -[ -cfg -( -not -( -test -) -) -] -{ -true -} -} -pub -( -crate -) -fn -overwrite -( -& -self -o -: -Config -) -- -> -Config -{ -Config -{ -utf8 -: -o -. -utf8 -. -or -( -self -. -utf8 -) -reverse -: -o -. -reverse -. -or -( -self -. -reverse -) -nfa_size_limit -: -o -. -nfa_size_limit -. -or -( -self -. -nfa_size_limit -) -shrink -: -o -. -shrink -. -or -( -self -. -shrink -) -which_captures -: -o -. -which_captures -. -or -( -self -. -which_captures -) -look_matcher -: -o -. -look_matcher -. -or_else -( -| -| -self -. -look_matcher -. -clone -( -) -) -# -[ -cfg -( -test -) -] -unanchored_prefix -: -o -. -unanchored_prefix -. -or -( -self -. -unanchored_prefix -) -} -} -} -# -[ -derive -( -Clone -Copy -Debug -) -] -pub -enum -WhichCaptures -{ -All -Implicit -None -} -impl -Default -for -WhichCaptures -{ -fn -default -( -) -- -> -WhichCaptures -{ -WhichCaptures -: -: -All -} -} -impl -WhichCaptures -{ -pub -fn -is_none -( -& -self -) -- -> -bool -{ -matches -! -( -* -self -WhichCaptures -: -: -None -) -} -pub -fn -is_any -( -& -self -) -- -> -bool -{ -! -self -. -is_none -( -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Compiler -{ -parser -: -ParserBuilder -config -: -Config -builder -: -RefCell -< -Builder -> -utf8_state -: -RefCell -< -Utf8State -> -trie_state -: -RefCell -< -RangeTrie -> -utf8_suffix -: -RefCell -< -Utf8SuffixMap -> -} -impl -Compiler -{ -pub -fn -new -( -) -- -> -Compiler -{ -Compiler -{ -parser -: -ParserBuilder -: -: -new -( -) -config -: -Config -: -: -default -( -) -builder -: -RefCell -: -: -new -( -Builder -: -: -new -( -) -) -utf8_state -: -RefCell -: -: -new -( -Utf8State -: -: -new -( -) -) -trie_state -: -RefCell -: -: -new -( -RangeTrie -: -: -new -( -) -) -utf8_suffix -: -RefCell -: -: -new -( -Utf8SuffixMap -: -: -new -( -1000 -) -) -} -} -pub -fn -build -( -& -self -pattern -: -& -str -) -- -> -Result -< -NFA -BuildError -> -{ -self -. -build_many -( -& -[ -pattern -] -) -} -pub -fn -build_many -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -NFA -BuildError -> -{ -let -mut -hirs -= -vec -! -[ -] -; -for -p -in -patterns -{ -hirs -. -push -( -self -. -parser -. -build -( -) -. -parse -( -p -. -as_ref -( -) -) -. -map_err -( -BuildError -: -: -syntax -) -? -) -; -debug -! -( -" -parsed -: -{ -: -? -} -" -p -. -as_ref -( -) -) -; -} -self -. -build_many_from_hir -( -& -hirs -) -} -pub -fn -build_from_hir -( -& -self -expr -: -& -Hir -) -- -> -Result -< -NFA -BuildError -> -{ -self -. -build_many_from_hir -( -& -[ -expr -] -) -} -pub -fn -build_many_from_hir -< -H -: -Borrow -< -Hir -> -> -( -& -self -exprs -: -& -[ -H -] -) -- -> -Result -< -NFA -BuildError -> -{ -self -. -compile -( -exprs -) -} -pub -fn -configure -( -& -mut -self -config -: -Config -) -- -> -& -mut -Compiler -{ -self -. -config -= -self -. -config -. -overwrite -( -config -) -; -self -} -pub -fn -syntax -( -& -mut -self -config -: -crate -: -: -util -: -: -syntax -: -: -Config -) -- -> -& -mut -Compiler -{ -config -. -apply -( -& -mut -self -. -parser -) -; -self -} -} -impl -Compiler -{ -fn -compile -< -H -: -Borrow -< -Hir -> -> -( -& -self -exprs -: -& -[ -H -] -) -- -> -Result -< -NFA -BuildError -> -{ -if -exprs -. -len -( -) -> -PatternID -: -: -LIMIT -{ -return -Err -( -BuildError -: -: -too_many_patterns -( -exprs -. -len -( -) -) -) -; -} -if -self -. -config -. -get_reverse -( -) -& -& -self -. -config -. -get_which_captures -( -) -. -is_any -( -) -{ -return -Err -( -BuildError -: -: -unsupported_captures -( -) -) -; -} -self -. -builder -. -borrow_mut -( -) -. -clear -( -) -; -self -. -builder -. -borrow_mut -( -) -. -set_utf8 -( -self -. -config -. -get_utf8 -( -) -) -; -self -. -builder -. -borrow_mut -( -) -. -set_reverse -( -self -. -config -. -get_reverse -( -) -) -; -self -. -builder -. -borrow_mut -( -) -. -set_look_matcher -( -self -. -config -. -get_look_matcher -( -) -) -; -self -. -builder -. -borrow_mut -( -) -. -set_size_limit -( -self -. -config -. -get_nfa_size_limit -( -) -) -? -; -let -all_anchored -= -exprs -. -iter -( -) -. -all -( -| -e -| -{ -e -. -borrow -( -) -. -properties -( -) -. -look_set_prefix -( -) -. -contains -( -hir -: -: -Look -: -: -Start -) -} -) -; -let -anchored -= -! -self -. -config -. -get_unanchored_prefix -( -) -| -| -all_anchored -; -let -unanchored_prefix -= -if -anchored -{ -self -. -c_empty -( -) -? -} -else -{ -self -. -c_at_least -( -& -Hir -: -: -dot -( -hir -: -: -Dot -: -: -AnyByte -) -false -0 -) -? -} -; -let -compiled -= -self -. -c_alt_iter -( -exprs -. -iter -( -) -. -map -( -| -e -| -{ -let -_ -= -self -. -start_pattern -( -) -? -; -let -one -= -self -. -c_cap -( -0 -None -e -. -borrow -( -) -) -? -; -let -match_state_id -= -self -. -add_match -( -) -? -; -self -. -patch -( -one -. -end -match_state_id -) -? -; -let -_ -= -self -. -finish_pattern -( -one -. -start -) -? -; -Ok -( -ThompsonRef -{ -start -: -one -. -start -end -: -match_state_id -} -) -} -) -) -? -; -self -. -patch -( -unanchored_prefix -. -end -compiled -. -start -) -? -; -let -nfa -= -self -. -builder -. -borrow_mut -( -) -. -build -( -compiled -. -start -unanchored_prefix -. -start -) -? -; -debug -! -( -" -HIR -- -to -- -NFA -compilation -complete -config -: -{ -: -? -} -" -self -. -config -) -; -Ok -( -nfa -) -} -fn -c -( -& -self -expr -: -& -Hir -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -use -regex_syntax -: -: -hir -: -: -{ -Class -HirKind -: -: -* -} -; -match -* -expr -. -kind -( -) -{ -Empty -= -> -self -. -c_empty -( -) -Literal -( -hir -: -: -Literal -( -ref -bytes -) -) -= -> -self -. -c_literal -( -bytes -) -Class -( -Class -: -: -Bytes -( -ref -c -) -) -= -> -self -. -c_byte_class -( -c -) -Class -( -Class -: -: -Unicode -( -ref -c -) -) -= -> -self -. -c_unicode_class -( -c -) -Look -( -ref -look -) -= -> -self -. -c_look -( -look -) -Repetition -( -ref -rep -) -= -> -self -. -c_repetition -( -rep -) -Capture -( -ref -c -) -= -> -self -. -c_cap -( -c -. -index -c -. -name -. -as_deref -( -) -& -c -. -sub -) -Concat -( -ref -es -) -= -> -self -. -c_concat -( -es -. -iter -( -) -. -map -( -| -e -| -self -. -c -( -e -) -) -) -Alternation -( -ref -es -) -= -> -self -. -c_alt_slice -( -es -) -} -} -fn -c_concat -< -I -> -( -& -self -mut -it -: -I -) -- -> -Result -< -ThompsonRef -BuildError -> -where -I -: -DoubleEndedIterator -< -Item -= -Result -< -ThompsonRef -BuildError -> -> -{ -let -first -= -if -self -. -is_reverse -( -) -{ -it -. -next_back -( -) -} -else -{ -it -. -next -( -) -} -; -let -ThompsonRef -{ -start -mut -end -} -= -match -first -{ -Some -( -result -) -= -> -result -? -None -= -> -return -self -. -c_empty -( -) -} -; -loop -{ -let -next -= -if -self -. -is_reverse -( -) -{ -it -. -next_back -( -) -} -else -{ -it -. -next -( -) -} -; -let -compiled -= -match -next -{ -Some -( -result -) -= -> -result -? -None -= -> -break -} -; -self -. -patch -( -end -compiled -. -start -) -? -; -end -= -compiled -. -end -; -} -Ok -( -ThompsonRef -{ -start -end -} -) -} -fn -c_alt_slice -( -& -self -exprs -: -& -[ -Hir -] -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -literal_count -= -exprs -. -iter -( -) -. -filter -( -| -e -| -{ -matches -! -( -* -e -. -kind -( -) -hir -: -: -HirKind -: -: -Literal -( -hir -: -: -Literal -( -_ -) -) -) -} -) -. -count -( -) -; -if -literal_count -< -= -1 -| -| -literal_count -< -exprs -. -len -( -) -{ -return -self -. -c_alt_iter -( -exprs -. -iter -( -) -. -map -( -| -e -| -self -. -c -( -e -) -) -) -; -} -let -mut -trie -= -if -self -. -is_reverse -( -) -{ -LiteralTrie -: -: -reverse -( -) -} -else -{ -LiteralTrie -: -: -forward -( -) -} -; -for -expr -in -exprs -. -iter -( -) -{ -let -literal -= -match -* -expr -. -kind -( -) -{ -hir -: -: -HirKind -: -: -Literal -( -hir -: -: -Literal -( -ref -bytes -) -) -= -> -bytes -_ -= -> -unreachable -! -( -) -} -; -trie -. -add -( -literal -) -? -; -} -trie -. -compile -( -& -mut -self -. -builder -. -borrow_mut -( -) -) -} -fn -c_alt_iter -< -I -> -( -& -self -mut -it -: -I -) -- -> -Result -< -ThompsonRef -BuildError -> -where -I -: -Iterator -< -Item -= -Result -< -ThompsonRef -BuildError -> -> -{ -let -first -= -match -it -. -next -( -) -{ -None -= -> -return -self -. -c_fail -( -) -Some -( -result -) -= -> -result -? -} -; -let -second -= -match -it -. -next -( -) -{ -None -= -> -return -Ok -( -first -) -Some -( -result -) -= -> -result -? -} -; -let -union -= -self -. -add_union -( -) -? -; -let -end -= -self -. -add_empty -( -) -? -; -self -. -patch -( -union -first -. -start -) -? -; -self -. -patch -( -first -. -end -end -) -? -; -self -. -patch -( -union -second -. -start -) -? -; -self -. -patch -( -second -. -end -end -) -? -; -for -result -in -it -{ -let -compiled -= -result -? -; -self -. -patch -( -union -compiled -. -start -) -? -; -self -. -patch -( -compiled -. -end -end -) -? -; -} -Ok -( -ThompsonRef -{ -start -: -union -end -} -) -} -fn -c_cap -( -& -self -index -: -u32 -name -: -Option -< -& -str -> -expr -: -& -Hir -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -match -self -. -config -. -get_which_captures -( -) -{ -WhichCaptures -: -: -None -= -> -return -self -. -c -( -expr -) -WhichCaptures -: -: -Implicit -if -index -> -0 -= -> -return -self -. -c -( -expr -) -_ -= -> -{ -} -} -let -start -= -self -. -add_capture_start -( -index -name -) -? -; -let -inner -= -self -. -c -( -expr -) -? -; -let -end -= -self -. -add_capture_end -( -index -) -? -; -self -. -patch -( -start -inner -. -start -) -? -; -self -. -patch -( -inner -. -end -end -) -? -; -Ok -( -ThompsonRef -{ -start -end -} -) -} -fn -c_repetition -( -& -self -rep -: -& -hir -: -: -Repetition -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -match -( -rep -. -min -rep -. -max -) -{ -( -0 -Some -( -1 -) -) -= -> -self -. -c_zero_or_one -( -& -rep -. -sub -rep -. -greedy -) -( -min -None -) -= -> -self -. -c_at_least -( -& -rep -. -sub -rep -. -greedy -min -) -( -min -Some -( -max -) -) -if -min -= -= -max -= -> -self -. -c_exactly -( -& -rep -. -sub -min -) -( -min -Some -( -max -) -) -= -> -self -. -c_bounded -( -& -rep -. -sub -rep -. -greedy -min -max -) -} -} -fn -c_bounded -( -& -self -expr -: -& -Hir -greedy -: -bool -min -: -u32 -max -: -u32 -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -prefix -= -self -. -c_exactly -( -expr -min -) -? -; -if -min -= -= -max -{ -return -Ok -( -prefix -) -; -} -let -empty -= -self -. -add_empty -( -) -? -; -let -mut -prev_end -= -prefix -. -end -; -for -_ -in -min -. -. -max -{ -let -union -= -if -greedy -{ -self -. -add_union -( -) -} -else -{ -self -. -add_union_reverse -( -) -} -? -; -let -compiled -= -self -. -c -( -expr -) -? -; -self -. -patch -( -prev_end -union -) -? -; -self -. -patch -( -union -compiled -. -start -) -? -; -self -. -patch -( -union -empty -) -? -; -prev_end -= -compiled -. -end -; -} -self -. -patch -( -prev_end -empty -) -? -; -Ok -( -ThompsonRef -{ -start -: -prefix -. -start -end -: -empty -} -) -} -fn -c_at_least -( -& -self -expr -: -& -Hir -greedy -: -bool -n -: -u32 -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -if -n -= -= -0 -{ -if -expr -. -properties -( -) -. -minimum_len -( -) -. -map_or -( -false -| -len -| -len -> -0 -) -{ -let -union -= -if -greedy -{ -self -. -add_union -( -) -} -else -{ -self -. -add_union_reverse -( -) -} -? -; -let -compiled -= -self -. -c -( -expr -) -? -; -self -. -patch -( -union -compiled -. -start -) -? -; -self -. -patch -( -compiled -. -end -union -) -? -; -return -Ok -( -ThompsonRef -{ -start -: -union -end -: -union -} -) -; -} -let -compiled -= -self -. -c -( -expr -) -? -; -let -plus -= -if -greedy -{ -self -. -add_union -( -) -} -else -{ -self -. -add_union_reverse -( -) -} -? -; -self -. -patch -( -compiled -. -end -plus -) -? -; -self -. -patch -( -plus -compiled -. -start -) -? -; -let -question -= -if -greedy -{ -self -. -add_union -( -) -} -else -{ -self -. -add_union_reverse -( -) -} -? -; -let -empty -= -self -. -add_empty -( -) -? -; -self -. -patch -( -question -compiled -. -start -) -? -; -self -. -patch -( -question -empty -) -? -; -self -. -patch -( -plus -empty -) -? -; -Ok -( -ThompsonRef -{ -start -: -question -end -: -empty -} -) -} -else -if -n -= -= -1 -{ -let -compiled -= -self -. -c -( -expr -) -? -; -let -union -= -if -greedy -{ -self -. -add_union -( -) -} -else -{ -self -. -add_union_reverse -( -) -} -? -; -self -. -patch -( -compiled -. -end -union -) -? -; -self -. -patch -( -union -compiled -. -start -) -? -; -Ok -( -ThompsonRef -{ -start -: -compiled -. -start -end -: -union -} -) -} -else -{ -let -prefix -= -self -. -c_exactly -( -expr -n -- -1 -) -? -; -let -last -= -self -. -c -( -expr -) -? -; -let -union -= -if -greedy -{ -self -. -add_union -( -) -} -else -{ -self -. -add_union_reverse -( -) -} -? -; -self -. -patch -( -prefix -. -end -last -. -start -) -? -; -self -. -patch -( -last -. -end -union -) -? -; -self -. -patch -( -union -last -. -start -) -? -; -Ok -( -ThompsonRef -{ -start -: -prefix -. -start -end -: -union -} -) -} -} -fn -c_zero_or_one -( -& -self -expr -: -& -Hir -greedy -: -bool -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -union -= -if -greedy -{ -self -. -add_union -( -) -} -else -{ -self -. -add_union_reverse -( -) -} -? -; -let -compiled -= -self -. -c -( -expr -) -? -; -let -empty -= -self -. -add_empty -( -) -? -; -self -. -patch -( -union -compiled -. -start -) -? -; -self -. -patch -( -union -empty -) -? -; -self -. -patch -( -compiled -. -end -empty -) -? -; -Ok -( -ThompsonRef -{ -start -: -union -end -: -empty -} -) -} -fn -c_exactly -( -& -self -expr -: -& -Hir -n -: -u32 -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -it -= -( -0 -. -. -n -) -. -map -( -| -_ -| -self -. -c -( -expr -) -) -; -self -. -c_concat -( -it -) -} -fn -c_byte_class -( -& -self -cls -: -& -hir -: -: -ClassBytes -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -end -= -self -. -add_empty -( -) -? -; -let -mut -trans -= -Vec -: -: -with_capacity -( -cls -. -ranges -( -) -. -len -( -) -) -; -for -r -in -cls -. -iter -( -) -{ -trans -. -push -( -Transition -{ -start -: -r -. -start -( -) -end -: -r -. -end -( -) -next -: -end -} -) -; -} -Ok -( -ThompsonRef -{ -start -: -self -. -add_sparse -( -trans -) -? -end -} -) -} -fn -c_unicode_class -( -& -self -cls -: -& -hir -: -: -ClassUnicode -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -if -cls -. -is_ascii -( -) -{ -let -end -= -self -. -add_empty -( -) -? -; -let -mut -trans -= -Vec -: -: -with_capacity -( -cls -. -ranges -( -) -. -len -( -) -) -; -for -r -in -cls -. -iter -( -) -{ -trans -. -push -( -Transition -{ -start -: -u8 -: -: -try_from -( -u32 -: -: -from -( -r -. -start -( -) -) -) -. -unwrap -( -) -end -: -u8 -: -: -try_from -( -u32 -: -: -from -( -r -. -end -( -) -) -) -. -unwrap -( -) -next -: -end -} -) -; -} -Ok -( -ThompsonRef -{ -start -: -self -. -add_sparse -( -trans -) -? -end -} -) -} -else -if -self -. -is_reverse -( -) -{ -if -! -self -. -config -. -get_shrink -( -) -{ -self -. -c_unicode_class_reverse_with_suffix -( -cls -) -} -else -{ -let -mut -trie -= -self -. -trie_state -. -borrow_mut -( -) -; -trie -. -clear -( -) -; -for -rng -in -cls -. -iter -( -) -{ -for -mut -seq -in -Utf8Sequences -: -: -new -( -rng -. -start -( -) -rng -. -end -( -) -) -{ -seq -. -reverse -( -) -; -trie -. -insert -( -seq -. -as_slice -( -) -) -; -} -} -let -mut -builder -= -self -. -builder -. -borrow_mut -( -) -; -let -mut -utf8_state -= -self -. -utf8_state -. -borrow_mut -( -) -; -let -mut -utf8c -= -Utf8Compiler -: -: -new -( -& -mut -* -builder -& -mut -* -utf8_state -) -? -; -trie -. -iter -( -| -seq -| -{ -utf8c -. -add -( -& -seq -) -? -; -Ok -( -( -) -) -} -) -? -; -utf8c -. -finish -( -) -} -} -else -{ -let -mut -builder -= -self -. -builder -. -borrow_mut -( -) -; -let -mut -utf8_state -= -self -. -utf8_state -. -borrow_mut -( -) -; -let -mut -utf8c -= -Utf8Compiler -: -: -new -( -& -mut -* -builder -& -mut -* -utf8_state -) -? -; -for -rng -in -cls -. -iter -( -) -{ -for -seq -in -Utf8Sequences -: -: -new -( -rng -. -start -( -) -rng -. -end -( -) -) -{ -utf8c -. -add -( -seq -. -as_slice -( -) -) -? -; -} -} -utf8c -. -finish -( -) -} -} -fn -c_unicode_class_reverse_with_suffix -( -& -self -cls -: -& -hir -: -: -ClassUnicode -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -mut -cache -= -self -. -utf8_suffix -. -borrow_mut -( -) -; -cache -. -clear -( -) -; -let -union -= -self -. -add_union -( -) -? -; -let -alt_end -= -self -. -add_empty -( -) -? -; -for -urng -in -cls -. -iter -( -) -{ -for -seq -in -Utf8Sequences -: -: -new -( -urng -. -start -( -) -urng -. -end -( -) -) -{ -let -mut -end -= -alt_end -; -for -brng -in -seq -. -as_slice -( -) -{ -let -key -= -Utf8SuffixKey -{ -from -: -end -start -: -brng -. -start -end -: -brng -. -end -} -; -let -hash -= -cache -. -hash -( -& -key -) -; -if -let -Some -( -id -) -= -cache -. -get -( -& -key -hash -) -{ -end -= -id -; -continue -; -} -let -compiled -= -self -. -c_range -( -brng -. -start -brng -. -end -) -? -; -self -. -patch -( -compiled -. -end -end -) -? -; -end -= -compiled -. -start -; -cache -. -set -( -key -hash -end -) -; -} -self -. -patch -( -union -end -) -? -; -} -} -Ok -( -ThompsonRef -{ -start -: -union -end -: -alt_end -} -) -} -fn -c_look -( -& -self -anchor -: -& -hir -: -: -Look -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -look -= -match -* -anchor -{ -hir -: -: -Look -: -: -Start -= -> -Look -: -: -Start -hir -: -: -Look -: -: -End -= -> -Look -: -: -End -hir -: -: -Look -: -: -StartLF -= -> -Look -: -: -StartLF -hir -: -: -Look -: -: -EndLF -= -> -Look -: -: -EndLF -hir -: -: -Look -: -: -StartCRLF -= -> -Look -: -: -StartCRLF -hir -: -: -Look -: -: -EndCRLF -= -> -Look -: -: -EndCRLF -hir -: -: -Look -: -: -WordAscii -= -> -Look -: -: -WordAscii -hir -: -: -Look -: -: -WordAsciiNegate -= -> -Look -: -: -WordAsciiNegate -hir -: -: -Look -: -: -WordUnicode -= -> -Look -: -: -WordUnicode -hir -: -: -Look -: -: -WordUnicodeNegate -= -> -Look -: -: -WordUnicodeNegate -} -; -let -id -= -self -. -add_look -( -look -) -? -; -Ok -( -ThompsonRef -{ -start -: -id -end -: -id -} -) -} -fn -c_literal -( -& -self -bytes -: -& -[ -u8 -] -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -self -. -c_concat -( -bytes -. -iter -( -) -. -copied -( -) -. -map -( -| -b -| -self -. -c_range -( -b -b -) -) -) -} -fn -c_range -( -& -self -start -: -u8 -end -: -u8 -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -id -= -self -. -add_range -( -start -end -) -? -; -Ok -( -ThompsonRef -{ -start -: -id -end -: -id -} -) -} -fn -c_empty -( -& -self -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -id -= -self -. -add_empty -( -) -? -; -Ok -( -ThompsonRef -{ -start -: -id -end -: -id -} -) -} -fn -c_fail -( -& -self -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -id -= -self -. -add_fail -( -) -? -; -Ok -( -ThompsonRef -{ -start -: -id -end -: -id -} -) -} -fn -patch -( -& -self -from -: -StateID -to -: -StateID -) -- -> -Result -< -( -) -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -patch -( -from -to -) -} -fn -start_pattern -( -& -self -) -- -> -Result -< -PatternID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -start_pattern -( -) -} -fn -finish_pattern -( -& -self -start_id -: -StateID -) -- -> -Result -< -PatternID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -finish_pattern -( -start_id -) -} -fn -add_empty -( -& -self -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -add_empty -( -) -} -fn -add_range -( -& -self -start -: -u8 -end -: -u8 -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -add_range -( -Transition -{ -start -end -next -: -StateID -: -: -ZERO -} -) -} -fn -add_sparse -( -& -self -ranges -: -Vec -< -Transition -> -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -add_sparse -( -ranges -) -} -fn -add_look -( -& -self -mut -look -: -Look -) -- -> -Result -< -StateID -BuildError -> -{ -if -self -. -is_reverse -( -) -{ -look -= -look -. -reversed -( -) -; -} -self -. -builder -. -borrow_mut -( -) -. -add_look -( -StateID -: -: -ZERO -look -) -} -fn -add_union -( -& -self -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -add_union -( -vec -! -[ -] -) -} -fn -add_union_reverse -( -& -self -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -add_union_reverse -( -vec -! -[ -] -) -} -fn -add_capture_start -( -& -self -capture_index -: -u32 -name -: -Option -< -& -str -> -) -- -> -Result -< -StateID -BuildError -> -{ -let -name -= -name -. -map -( -| -n -| -Arc -: -: -from -( -n -) -) -; -self -. -builder -. -borrow_mut -( -) -. -add_capture_start -( -StateID -: -: -ZERO -capture_index -name -) -} -fn -add_capture_end -( -& -self -capture_index -: -u32 -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -add_capture_end -( -StateID -: -: -ZERO -capture_index -) -} -fn -add_fail -( -& -self -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -add_fail -( -) -} -fn -add_match -( -& -self -) -- -> -Result -< -StateID -BuildError -> -{ -self -. -builder -. -borrow_mut -( -) -. -add_match -( -) -} -fn -is_reverse -( -& -self -) -- -> -bool -{ -self -. -config -. -get_reverse -( -) -} -} -# -[ -derive -( -Clone -Copy -Debug -) -] -pub -( -crate -) -struct -ThompsonRef -{ -pub -( -crate -) -start -: -StateID -pub -( -crate -) -end -: -StateID -} -# -[ -derive -( -Debug -) -] -struct -Utf8Compiler -< -' -a -> -{ -builder -: -& -' -a -mut -Builder -state -: -& -' -a -mut -Utf8State -target -: -StateID -} -# -[ -derive -( -Clone -Debug -) -] -struct -Utf8State -{ -compiled -: -Utf8BoundedMap -uncompiled -: -Vec -< -Utf8Node -> -} -# -[ -derive -( -Clone -Debug -) -] -struct -Utf8Node -{ -trans -: -Vec -< -Transition -> -last -: -Option -< -Utf8LastTransition -> -} -# -[ -derive -( -Clone -Debug -) -] -struct -Utf8LastTransition -{ -start -: -u8 -end -: -u8 -} -impl -Utf8State -{ -fn -new -( -) -- -> -Utf8State -{ -Utf8State -{ -compiled -: -Utf8BoundedMap -: -: -new -( -10_000 -) -uncompiled -: -vec -! -[ -] -} -} -fn -clear -( -& -mut -self -) -{ -self -. -compiled -. -clear -( -) -; -self -. -uncompiled -. -clear -( -) -; -} -} -impl -< -' -a -> -Utf8Compiler -< -' -a -> -{ -fn -new -( -builder -: -& -' -a -mut -Builder -state -: -& -' -a -mut -Utf8State -) -- -> -Result -< -Utf8Compiler -< -' -a -> -BuildError -> -{ -let -target -= -builder -. -add_empty -( -) -? -; -state -. -clear -( -) -; -let -mut -utf8c -= -Utf8Compiler -{ -builder -state -target -} -; -utf8c -. -add_empty -( -) -; -Ok -( -utf8c -) -} -fn -finish -( -& -mut -self -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -self -. -compile_from -( -0 -) -? -; -let -node -= -self -. -pop_root -( -) -; -let -start -= -self -. -compile -( -node -) -? -; -Ok -( -ThompsonRef -{ -start -end -: -self -. -target -} -) -} -fn -add -( -& -mut -self -ranges -: -& -[ -Utf8Range -] -) -- -> -Result -< -( -) -BuildError -> -{ -let -prefix_len -= -ranges -. -iter -( -) -. -zip -( -& -self -. -state -. -uncompiled -) -. -take_while -( -| -& -( -range -node -) -| -{ -node -. -last -. -as_ref -( -) -. -map_or -( -false -| -t -| -{ -( -t -. -start -t -. -end -) -= -= -( -range -. -start -range -. -end -) -} -) -} -) -. -count -( -) -; -assert -! -( -prefix_len -< -ranges -. -len -( -) -) -; -self -. -compile_from -( -prefix_len -) -? -; -self -. -add_suffix -( -& -ranges -[ -prefix_len -. -. -] -) -; -Ok -( -( -) -) -} -fn -compile_from -( -& -mut -self -from -: -usize -) -- -> -Result -< -( -) -BuildError -> -{ -let -mut -next -= -self -. -target -; -while -from -+ -1 -< -self -. -state -. -uncompiled -. -len -( -) -{ -let -node -= -self -. -pop_freeze -( -next -) -; -next -= -self -. -compile -( -node -) -? -; -} -self -. -top_last_freeze -( -next -) -; -Ok -( -( -) -) -} -fn -compile -( -& -mut -self -node -: -Vec -< -Transition -> -) -- -> -Result -< -StateID -BuildError -> -{ -let -hash -= -self -. -state -. -compiled -. -hash -( -& -node -) -; -if -let -Some -( -id -) -= -self -. -state -. -compiled -. -get -( -& -node -hash -) -{ -return -Ok -( -id -) -; -} -let -id -= -self -. -builder -. -add_sparse -( -node -. -clone -( -) -) -? -; -self -. -state -. -compiled -. -set -( -node -hash -id -) -; -Ok -( -id -) -} -fn -add_suffix -( -& -mut -self -ranges -: -& -[ -Utf8Range -] -) -{ -assert -! -( -! -ranges -. -is_empty -( -) -) -; -let -last -= -self -. -state -. -uncompiled -. -len -( -) -. -checked_sub -( -1 -) -. -expect -( -" -non -- -empty -nodes -" -) -; -assert -! -( -self -. -state -. -uncompiled -[ -last -] -. -last -. -is_none -( -) -) -; -self -. -state -. -uncompiled -[ -last -] -. -last -= -Some -( -Utf8LastTransition -{ -start -: -ranges -[ -0 -] -. -start -end -: -ranges -[ -0 -] -. -end -} -) -; -for -r -in -& -ranges -[ -1 -. -. -] -{ -self -. -state -. -uncompiled -. -push -( -Utf8Node -{ -trans -: -vec -! -[ -] -last -: -Some -( -Utf8LastTransition -{ -start -: -r -. -start -end -: -r -. -end -} -) -} -) -; -} -} -fn -add_empty -( -& -mut -self -) -{ -self -. -state -. -uncompiled -. -push -( -Utf8Node -{ -trans -: -vec -! -[ -] -last -: -None -} -) -; -} -fn -pop_freeze -( -& -mut -self -next -: -StateID -) -- -> -Vec -< -Transition -> -{ -let -mut -uncompiled -= -self -. -state -. -uncompiled -. -pop -( -) -. -unwrap -( -) -; -uncompiled -. -set_last_transition -( -next -) -; -uncompiled -. -trans -} -fn -pop_root -( -& -mut -self -) -- -> -Vec -< -Transition -> -{ -assert_eq -! -( -self -. -state -. -uncompiled -. -len -( -) -1 -) -; -assert -! -( -self -. -state -. -uncompiled -[ -0 -] -. -last -. -is_none -( -) -) -; -self -. -state -. -uncompiled -. -pop -( -) -. -expect -( -" -non -- -empty -nodes -" -) -. -trans -} -fn -top_last_freeze -( -& -mut -self -next -: -StateID -) -{ -let -last -= -self -. -state -. -uncompiled -. -len -( -) -. -checked_sub -( -1 -) -. -expect -( -" -non -- -empty -nodes -" -) -; -self -. -state -. -uncompiled -[ -last -] -. -set_last_transition -( -next -) -; -} -} -impl -Utf8Node -{ -fn -set_last_transition -( -& -mut -self -next -: -StateID -) -{ -if -let -Some -( -last -) -= -self -. -last -. -take -( -) -{ -self -. -trans -. -push -( -Transition -{ -start -: -last -. -start -end -: -last -. -end -next -} -) -; -} -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -nfa -: -: -thompson -: -: -{ -SparseTransitions -State -Transition -NFA -} -util -: -: -primitives -: -: -{ -PatternID -SmallIndex -StateID -} -} -; -use -super -: -: -* -; -fn -build -( -pattern -: -& -str -) -- -> -NFA -{ -NFA -: -: -compiler -( -) -. -configure -( -NFA -: -: -config -( -) -. -which_captures -( -WhichCaptures -: -: -None -) -. -unanchored_prefix -( -false -) -) -. -build -( -pattern -) -. -unwrap -( -) -} -fn -pid -( -id -: -usize -) -- -> -PatternID -{ -PatternID -: -: -new -( -id -) -. -unwrap -( -) -} -fn -sid -( -id -: -usize -) -- -> -StateID -{ -StateID -: -: -new -( -id -) -. -unwrap -( -) -} -fn -s_byte -( -byte -: -u8 -next -: -usize -) -- -> -State -{ -let -next -= -sid -( -next -) -; -let -trans -= -Transition -{ -start -: -byte -end -: -byte -next -} -; -State -: -: -ByteRange -{ -trans -} -} -fn -s_range -( -start -: -u8 -end -: -u8 -next -: -usize -) -- -> -State -{ -let -next -= -sid -( -next -) -; -let -trans -= -Transition -{ -start -end -next -} -; -State -: -: -ByteRange -{ -trans -} -} -fn -s_sparse -( -transitions -: -& -[ -( -u8 -u8 -usize -) -] -) -- -> -State -{ -let -transitions -= -transitions -. -iter -( -) -. -map -( -| -& -( -start -end -next -) -| -Transition -{ -start -end -next -: -sid -( -next -) -} -) -. -collect -( -) -; -State -: -: -Sparse -( -SparseTransitions -{ -transitions -} -) -} -fn -s_bin_union -( -alt1 -: -usize -alt2 -: -usize -) -- -> -State -{ -State -: -: -BinaryUnion -{ -alt1 -: -sid -( -alt1 -) -alt2 -: -sid -( -alt2 -) -} -} -fn -s_union -( -alts -: -& -[ -usize -] -) -- -> -State -{ -State -: -: -Union -{ -alternates -: -alts -. -iter -( -) -. -map -( -| -& -id -| -sid -( -id -) -) -. -collect -: -: -< -Vec -< -StateID -> -> -( -) -. -into_boxed_slice -( -) -} -} -fn -s_cap -( -next -: -usize -pattern -: -usize -index -: -usize -slot -: -usize -) -- -> -State -{ -State -: -: -Capture -{ -next -: -sid -( -next -) -pattern_id -: -pid -( -pattern -) -group_index -: -SmallIndex -: -: -new -( -index -) -. -unwrap -( -) -slot -: -SmallIndex -: -: -new -( -slot -) -. -unwrap -( -) -} -} -fn -s_fail -( -) -- -> -State -{ -State -: -: -Fail -} -fn -s_match -( -id -: -usize -) -- -> -State -{ -State -: -: -Match -{ -pattern_id -: -pid -( -id -) -} -} -# -[ -test -] -fn -compile_unanchored_prefix -( -) -{ -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -NFA -: -: -config -( -) -. -which_captures -( -WhichCaptures -: -: -None -) -) -. -build -( -r -" -a -" -) -. -unwrap -( -) -; -assert_eq -! -( -nfa -. -states -( -) -& -[ -s_bin_union -( -2 -1 -) -s_range -( -0 -255 -0 -) -s_byte -( -b -' -a -' -3 -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -compile_empty -( -) -{ -assert_eq -! -( -build -( -" -" -) -. -states -( -) -& -[ -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -compile_literal -( -) -{ -assert_eq -! -( -build -( -" -a -" -) -. -states -( -) -& -[ -s_byte -( -b -' -a -' -1 -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -" -ab -" -) -. -states -( -) -& -[ -s_byte -( -b -' -a -' -1 -) -s_byte -( -b -' -b -' -2 -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -" -" -) -. -states -( -) -& -[ -s_byte -( -0xE2 -1 -) -s_byte -( -0x98 -2 -) -s_byte -( -0x83 -3 -) -s_match -( -0 -) -] -) -; -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -NFA -: -: -config -( -) -. -which_captures -( -WhichCaptures -: -: -None -) -. -unanchored_prefix -( -false -) -) -. -syntax -( -crate -: -: -util -: -: -syntax -: -: -Config -: -: -new -( -) -. -utf8 -( -false -) -) -. -build -( -r -" -( -? -- -u -) -\ -xFF -" -) -. -unwrap -( -) -; -assert_eq -! -( -nfa -. -states -( -) -& -[ -s_byte -( -b -' -\ -xFF -' -1 -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -compile_class_ascii -( -) -{ -assert_eq -! -( -build -( -r -" -[ -a -- -z -] -" -) -. -states -( -) -& -[ -s_range -( -b -' -a -' -b -' -z -' -1 -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -r -" -[ -x -- -za -- -c -] -" -) -. -states -( -) -& -[ -s_sparse -( -& -[ -( -b -' -a -' -b -' -c -' -1 -) -( -b -' -x -' -b -' -z -' -1 -) -] -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -# -[ -cfg -( -not -( -miri -) -) -] -fn -compile_class_unicode -( -) -{ -assert_eq -! -( -build -( -r -" -[ -\ -u03B1 -- -\ -u03B4 -] -" -) -. -states -( -) -& -[ -s_range -( -0xB1 -0xB4 -2 -) -s_byte -( -0xCE -0 -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -r -" -[ -\ -u03B1 -- -\ -u03B4 -\ -u -{ -1F919 -} -- -\ -u -{ -1F91E -} -] -" -) -. -states -( -) -& -[ -s_range -( -0xB1 -0xB4 -5 -) -s_range -( -0x99 -0x9E -5 -) -s_byte -( -0xA4 -1 -) -s_byte -( -0x9F -2 -) -s_sparse -( -& -[ -( -0xCE -0xCE -0 -) -( -0xF0 -0xF0 -3 -) -] -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -r -" -[ -a -- -z -] -" -) -. -states -( -) -& -[ -s_byte -( -0x83 -3 -) -s_byte -( -0x98 -0 -) -s_sparse -( -& -[ -( -b -' -a -' -b -' -z -' -3 -) -( -0xE2 -0xE2 -1 -) -] -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -compile_repetition -( -) -{ -assert_eq -! -( -build -( -r -" -a -? -" -) -. -states -( -) -& -[ -s_bin_union -( -1 -2 -) -s_byte -( -b -' -a -' -2 -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -r -" -a -? -? -" -) -. -states -( -) -& -[ -s_bin_union -( -2 -1 -) -s_byte -( -b -' -a -' -2 -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -compile_group -( -) -{ -assert_eq -! -( -build -( -r -" -ab -+ -" -) -. -states -( -) -& -[ -s_byte -( -b -' -a -' -1 -) -s_byte -( -b -' -b -' -2 -) -s_bin_union -( -1 -3 -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -r -" -( -ab -) -" -) -. -states -( -) -& -[ -s_byte -( -b -' -a -' -1 -) -s_byte -( -b -' -b -' -2 -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -r -" -( -ab -) -+ -" -) -. -states -( -) -& -[ -s_byte -( -b -' -a -' -1 -) -s_byte -( -b -' -b -' -2 -) -s_bin_union -( -0 -3 -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -compile_alternation -( -) -{ -assert_eq -! -( -build -( -r -" -a -| -b -" -) -. -states -( -) -& -[ -s_range -( -b -' -a -' -b -' -b -' -1 -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -r -" -ab -| -cd -" -) -. -states -( -) -& -[ -s_byte -( -b -' -b -' -3 -) -s_byte -( -b -' -d -' -3 -) -s_sparse -( -& -[ -( -b -' -a -' -b -' -a -' -0 -) -( -b -' -c -' -b -' -c -' -1 -) -] -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -r -" -| -b -" -) -. -states -( -) -& -[ -s_byte -( -b -' -b -' -2 -) -s_bin_union -( -2 -0 -) -s_match -( -0 -) -] -) -; -assert_eq -! -( -build -( -r -" -a -| -" -) -. -states -( -) -& -[ -s_byte -( -b -' -a -' -2 -) -s_bin_union -( -0 -2 -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -compile_non_binary_union -( -) -{ -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -NFA -: -: -config -( -) -. -which_captures -( -WhichCaptures -: -: -None -) -. -reverse -( -true -) -. -shrink -( -false -) -. -unanchored_prefix -( -false -) -) -. -build -( -r -" -[ -\ -u1000 -\ -u2000 -\ -u3000 -] -" -) -. -unwrap -( -) -; -assert_eq -! -( -nfa -. -states -( -) -& -[ -s_union -( -& -[ -3 -6 -9 -] -) -s_byte -( -0xE1 -10 -) -s_byte -( -0x80 -1 -) -s_byte -( -0x80 -2 -) -s_byte -( -0xE2 -10 -) -s_byte -( -0x80 -4 -) -s_byte -( -0x80 -5 -) -s_byte -( -0xE3 -10 -) -s_byte -( -0x80 -7 -) -s_byte -( -0x80 -8 -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -compile_many_start_pattern -( -) -{ -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -NFA -: -: -config -( -) -. -which_captures -( -WhichCaptures -: -: -None -) -. -unanchored_prefix -( -false -) -) -. -build_many -( -& -[ -" -a -" -" -b -" -] -) -. -unwrap -( -) -; -assert_eq -! -( -nfa -. -states -( -) -& -[ -s_byte -( -b -' -a -' -1 -) -s_match -( -0 -) -s_byte -( -b -' -b -' -3 -) -s_match -( -1 -) -s_bin_union -( -0 -2 -) -] -) -; -assert_eq -! -( -nfa -. -start_anchored -( -) -. -as_usize -( -) -4 -) -; -assert_eq -! -( -nfa -. -start_unanchored -( -) -. -as_usize -( -) -4 -) -; -assert_eq -! -( -nfa -. -start_pattern -( -pid -( -0 -) -) -. -unwrap -( -) -sid -( -0 -) -) -; -assert_eq -! -( -nfa -. -start_pattern -( -pid -( -1 -) -) -. -unwrap -( -) -sid -( -2 -) -) -; -} -# -[ -test -] -fn -empty_class_bytes -( -) -{ -use -regex_syntax -: -: -hir -: -: -{ -Class -ClassBytes -Hir -} -; -let -hir -= -Hir -: -: -class -( -Class -: -: -Bytes -( -ClassBytes -: -: -new -( -vec -! -[ -] -) -) -) -; -let -config -= -NFA -: -: -config -( -) -. -which_captures -( -WhichCaptures -: -: -None -) -. -unanchored_prefix -( -false -) -; -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -config -) -. -build_from_hir -( -& -hir -) -. -unwrap -( -) -; -assert_eq -! -( -nfa -. -states -( -) -& -[ -s_fail -( -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -empty_class_unicode -( -) -{ -use -regex_syntax -: -: -hir -: -: -{ -Class -ClassUnicode -Hir -} -; -let -hir -= -Hir -: -: -class -( -Class -: -: -Unicode -( -ClassUnicode -: -: -new -( -vec -! -[ -] -) -) -) -; -let -config -= -NFA -: -: -config -( -) -. -which_captures -( -WhichCaptures -: -: -None -) -. -unanchored_prefix -( -false -) -; -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -config -) -. -build_from_hir -( -& -hir -) -. -unwrap -( -) -; -assert_eq -! -( -nfa -. -states -( -) -& -[ -s_fail -( -) -s_match -( -0 -) -] -) -; -} -# -[ -test -] -fn -compile_captures_all -( -) -{ -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -NFA -: -: -config -( -) -. -unanchored_prefix -( -false -) -. -which_captures -( -WhichCaptures -: -: -All -) -) -. -build -( -" -a -( -b -) -c -" -) -. -unwrap -( -) -; -assert_eq -! -( -nfa -. -states -( -) -& -[ -s_cap -( -1 -0 -0 -0 -) -s_byte -( -b -' -a -' -2 -) -s_cap -( -3 -0 -1 -2 -) -s_byte -( -b -' -b -' -4 -) -s_cap -( -5 -0 -1 -3 -) -s_byte -( -b -' -c -' -6 -) -s_cap -( -7 -0 -0 -1 -) -s_match -( -0 -) -] -) -; -let -ginfo -= -nfa -. -group_info -( -) -; -assert_eq -! -( -2 -ginfo -. -all_group_len -( -) -) -; -} -# -[ -test -] -fn -compile_captures_implicit -( -) -{ -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -NFA -: -: -config -( -) -. -unanchored_prefix -( -false -) -. -which_captures -( -WhichCaptures -: -: -Implicit -) -) -. -build -( -" -a -( -b -) -c -" -) -. -unwrap -( -) -; -assert_eq -! -( -nfa -. -states -( -) -& -[ -s_cap -( -1 -0 -0 -0 -) -s_byte -( -b -' -a -' -2 -) -s_byte -( -b -' -b -' -3 -) -s_byte -( -b -' -c -' -4 -) -s_cap -( -5 -0 -0 -1 -) -s_match -( -0 -) -] -) -; -let -ginfo -= -nfa -. -group_info -( -) -; -assert_eq -! -( -1 -ginfo -. -all_group_len -( -) -) -; -} -# -[ -test -] -fn -compile_captures_none -( -) -{ -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -NFA -: -: -config -( -) -. -unanchored_prefix -( -false -) -. -which_captures -( -WhichCaptures -: -: -None -) -) -. -build -( -" -a -( -b -) -c -" -) -. -unwrap -( -) -; -assert_eq -! -( -nfa -. -states -( -) -& -[ -s_byte -( -b -' -a -' -1 -) -s_byte -( -b -' -b -' -2 -) -s_byte -( -b -' -c -' -3 -) -s_match -( -0 -) -] -) -; -let -ginfo -= -nfa -. -group_info -( -) -; -assert_eq -! -( -0 -ginfo -. -all_group_len -( -) -) -; -} -} diff --git a/third_party/rust/regex-automata/src/nfa/thompson/error.rs b/third_party/rust/regex-automata/src/nfa/thompson/error.rs deleted file mode 100644 index 1387fc6e4e8a2..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/thompson/error.rs +++ /dev/null @@ -1,833 +0,0 @@ -use -crate -: -: -util -: -: -{ -captures -look -primitives -: -: -{ -PatternID -StateID -} -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -BuildError -{ -kind -: -BuildErrorKind -} -# -[ -derive -( -Clone -Debug -) -] -enum -BuildErrorKind -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -Syntax -( -regex_syntax -: -: -Error -) -Captures -( -captures -: -: -GroupInfoError -) -Word -( -look -: -: -UnicodeWordBoundaryError -) -TooManyPatterns -{ -given -: -usize -limit -: -usize -} -TooManyStates -{ -given -: -usize -limit -: -usize -} -ExceededSizeLimit -{ -limit -: -usize -} -InvalidCaptureIndex -{ -index -: -u32 -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -UnsupportedCaptures -} -impl -BuildError -{ -pub -fn -size_limit -( -& -self -) -- -> -Option -< -usize -> -{ -match -self -. -kind -{ -BuildErrorKind -: -: -ExceededSizeLimit -{ -limit -} -= -> -Some -( -limit -) -_ -= -> -None -} -} -fn -kind -( -& -self -) -- -> -& -BuildErrorKind -{ -& -self -. -kind -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -( -crate -) -fn -syntax -( -err -: -regex_syntax -: -: -Error -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -Syntax -( -err -) -} -} -pub -( -crate -) -fn -captures -( -err -: -captures -: -: -GroupInfoError -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -Captures -( -err -) -} -} -pub -( -crate -) -fn -word -( -err -: -look -: -: -UnicodeWordBoundaryError -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -Word -( -err -) -} -} -pub -( -crate -) -fn -too_many_patterns -( -given -: -usize -) -- -> -BuildError -{ -let -limit -= -PatternID -: -: -LIMIT -; -BuildError -{ -kind -: -BuildErrorKind -: -: -TooManyPatterns -{ -given -limit -} -} -} -pub -( -crate -) -fn -too_many_states -( -given -: -usize -) -- -> -BuildError -{ -let -limit -= -StateID -: -: -LIMIT -; -BuildError -{ -kind -: -BuildErrorKind -: -: -TooManyStates -{ -given -limit -} -} -} -pub -( -crate -) -fn -exceeded_size_limit -( -limit -: -usize -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -ExceededSizeLimit -{ -limit -} -} -} -pub -( -crate -) -fn -invalid_capture_index -( -index -: -u32 -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -InvalidCaptureIndex -{ -index -} -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -( -crate -) -fn -unsupported_captures -( -) -- -> -BuildError -{ -BuildError -{ -kind -: -BuildErrorKind -: -: -UnsupportedCaptures -} -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -BuildError -{ -fn -source -( -& -self -) -- -> -Option -< -& -( -dyn -std -: -: -error -: -: -Error -+ -' -static -) -> -{ -match -self -. -kind -( -) -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -BuildErrorKind -: -: -Syntax -( -ref -err -) -= -> -Some -( -err -) -BuildErrorKind -: -: -Captures -( -ref -err -) -= -> -Some -( -err -) -_ -= -> -None -} -} -} -impl -core -: -: -fmt -: -: -Display -for -BuildError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -match -self -. -kind -( -) -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -BuildErrorKind -: -: -Syntax -( -_ -) -= -> -write -! -( -f -" -error -parsing -regex -" -) -BuildErrorKind -: -: -Captures -( -_ -) -= -> -{ -write -! -( -f -" -error -with -capture -groups -" -) -} -BuildErrorKind -: -: -Word -( -_ -) -= -> -{ -write -! -( -f -" -NFA -contains -Unicode -word -boundary -" -) -} -BuildErrorKind -: -: -TooManyPatterns -{ -given -limit -} -= -> -write -! -( -f -" -attempted -to -compile -{ -} -patterns -\ -which -exceeds -the -limit -of -{ -} -" -given -limit -) -BuildErrorKind -: -: -TooManyStates -{ -given -limit -} -= -> -write -! -( -f -" -attempted -to -compile -{ -} -NFA -states -\ -which -exceeds -the -limit -of -{ -} -" -given -limit -) -BuildErrorKind -: -: -ExceededSizeLimit -{ -limit -} -= -> -write -! -( -f -" -heap -usage -during -NFA -compilation -exceeded -limit -of -{ -} -" -limit -) -BuildErrorKind -: -: -InvalidCaptureIndex -{ -index -} -= -> -write -! -( -f -" -capture -group -index -{ -} -is -invalid -( -too -big -or -discontinuous -) -" -index -) -# -[ -cfg -( -feature -= -" -syntax -" -) -] -BuildErrorKind -: -: -UnsupportedCaptures -= -> -write -! -( -f -" -currently -captures -must -be -disabled -when -compiling -\ -a -reverse -NFA -" -) -} -} -} diff --git a/third_party/rust/regex-automata/src/nfa/thompson/literal_trie.rs b/third_party/rust/regex-automata/src/nfa/thompson/literal_trie.rs deleted file mode 100644 index bf001e5684115..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/thompson/literal_trie.rs +++ /dev/null @@ -1,2230 +0,0 @@ -use -core -: -: -mem -; -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -nfa -: -: -thompson -: -: -{ -self -compiler -: -: -ThompsonRef -BuildError -Builder -} -util -: -: -primitives -: -: -{ -IteratorIndexExt -StateID -} -} -; -# -[ -derive -( -Clone -) -] -pub -( -crate -) -struct -LiteralTrie -{ -states -: -Vec -< -State -> -rev -: -bool -} -impl -LiteralTrie -{ -pub -( -crate -) -fn -forward -( -) -- -> -LiteralTrie -{ -let -root -= -State -: -: -default -( -) -; -LiteralTrie -{ -states -: -vec -! -[ -root -] -rev -: -false -} -} -pub -( -crate -) -fn -reverse -( -) -- -> -LiteralTrie -{ -let -root -= -State -: -: -default -( -) -; -LiteralTrie -{ -states -: -vec -! -[ -root -] -rev -: -true -} -} -pub -( -crate -) -fn -add -( -& -mut -self -bytes -: -& -[ -u8 -] -) -- -> -Result -< -( -) -BuildError -> -{ -let -mut -prev -= -StateID -: -: -ZERO -; -let -mut -it -= -bytes -. -iter -( -) -. -copied -( -) -; -while -let -Some -( -b -) -= -if -self -. -rev -{ -it -. -next_back -( -) -} -else -{ -it -. -next -( -) -} -{ -prev -= -self -. -get_or_add_state -( -prev -b -) -? -; -} -self -. -states -[ -prev -] -. -add_match -( -) -; -Ok -( -( -) -) -} -fn -get_or_add_state -( -& -mut -self -from -: -StateID -byte -: -u8 -) -- -> -Result -< -StateID -BuildError -> -{ -let -active -= -self -. -states -[ -from -] -. -active_chunk -( -) -; -match -active -. -binary_search_by_key -( -& -byte -| -t -| -t -. -byte -) -{ -Ok -( -i -) -= -> -Ok -( -active -[ -i -] -. -next -) -Err -( -i -) -= -> -{ -let -next -= -StateID -: -: -new -( -self -. -states -. -len -( -) -) -. -map_err -( -| -_ -| -{ -BuildError -: -: -too_many_states -( -self -. -states -. -len -( -) -) -} -) -? -; -self -. -states -. -push -( -State -: -: -default -( -) -) -; -let -i -= -self -. -states -[ -from -] -. -active_chunk_start -( -) -+ -i -; -let -t -= -Transition -{ -byte -next -} -; -self -. -states -[ -from -] -. -transitions -. -insert -( -i -t -) -; -Ok -( -next -) -} -} -} -pub -( -crate -) -fn -compile -( -& -self -builder -: -& -mut -Builder -) -- -> -Result -< -ThompsonRef -BuildError -> -{ -let -end -= -builder -. -add_empty -( -) -? -; -let -mut -stack -= -vec -! -[ -] -; -let -mut -f -= -Frame -: -: -new -( -& -self -. -states -[ -StateID -: -: -ZERO -] -) -; -loop -{ -if -let -Some -( -t -) -= -f -. -transitions -. -next -( -) -{ -if -self -. -states -[ -t -. -next -] -. -is_leaf -( -) -{ -f -. -sparse -. -push -( -thompson -: -: -Transition -{ -start -: -t -. -byte -end -: -t -. -byte -next -: -end -} -) -; -} -else -{ -f -. -sparse -. -push -( -thompson -: -: -Transition -{ -start -: -t -. -byte -end -: -t -. -byte -next -: -StateID -: -: -ZERO -} -) -; -stack -. -push -( -f -) -; -f -= -Frame -: -: -new -( -& -self -. -states -[ -t -. -next -] -) -; -} -continue -; -} -if -! -f -. -sparse -. -is_empty -( -) -{ -let -chunk_id -= -if -f -. -sparse -. -len -( -) -= -= -1 -{ -builder -. -add_range -( -f -. -sparse -. -pop -( -) -. -unwrap -( -) -) -? -} -else -{ -let -sparse -= -mem -: -: -replace -( -& -mut -f -. -sparse -vec -! -[ -] -) -; -builder -. -add_sparse -( -sparse -) -? -} -; -f -. -union -. -push -( -chunk_id -) -; -} -if -let -Some -( -chunk -) -= -f -. -chunks -. -next -( -) -{ -f -. -union -. -push -( -end -) -; -f -. -transitions -= -chunk -. -iter -( -) -; -continue -; -} -let -start -= -builder -. -add_union -( -f -. -union -) -? -; -match -stack -. -pop -( -) -{ -None -= -> -{ -return -Ok -( -ThompsonRef -{ -start -end -} -) -; -} -Some -( -mut -parent -) -= -> -{ -parent -. -sparse -. -last_mut -( -) -. -unwrap -( -) -. -next -= -start -; -f -= -parent -; -} -} -} -} -# -[ -cfg -( -test -) -] -fn -compile_to_hir -( -& -self -) -- -> -regex_syntax -: -: -hir -: -: -Hir -{ -self -. -compile_state_to_hir -( -StateID -: -: -ZERO -) -} -# -[ -cfg -( -test -) -] -fn -compile_state_to_hir -( -& -self -sid -: -StateID -) -- -> -regex_syntax -: -: -hir -: -: -Hir -{ -use -regex_syntax -: -: -hir -: -: -Hir -; -let -mut -alt -= -vec -! -[ -] -; -for -( -i -chunk -) -in -self -. -states -[ -sid -] -. -chunks -( -) -. -enumerate -( -) -{ -if -i -> -0 -{ -alt -. -push -( -Hir -: -: -empty -( -) -) -; -} -if -chunk -. -is_empty -( -) -{ -continue -; -} -let -mut -chunk_alt -= -vec -! -[ -] -; -for -t -in -chunk -. -iter -( -) -{ -chunk_alt -. -push -( -Hir -: -: -concat -( -vec -! -[ -Hir -: -: -literal -( -vec -! -[ -t -. -byte -] -) -self -. -compile_state_to_hir -( -t -. -next -) -] -) -) -; -} -alt -. -push -( -Hir -: -: -alternation -( -chunk_alt -) -) -; -} -Hir -: -: -alternation -( -alt -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -LiteralTrie -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -writeln -! -( -f -" -LiteralTrie -( -" -) -? -; -for -( -sid -state -) -in -self -. -states -. -iter -( -) -. -with_state_ids -( -) -{ -writeln -! -( -f -" -{ -: -06 -? -} -: -{ -: -? -} -" -sid -. -as_usize -( -) -state -) -? -; -} -writeln -! -( -f -" -) -" -) -? -; -Ok -( -( -) -) -} -} -# -[ -derive -( -Debug -) -] -struct -Frame -< -' -a -> -{ -chunks -: -StateChunksIter -< -' -a -> -transitions -: -core -: -: -slice -: -: -Iter -< -' -a -Transition -> -union -: -Vec -< -StateID -> -sparse -: -Vec -< -thompson -: -: -Transition -> -} -impl -< -' -a -> -Frame -< -' -a -> -{ -fn -new -( -state -: -& -' -a -State -) -- -> -Frame -< -' -a -> -{ -let -mut -chunks -= -state -. -chunks -( -) -; -let -chunk -= -chunks -. -next -( -) -. -unwrap -( -) -; -let -transitions -= -chunk -. -iter -( -) -; -Frame -{ -chunks -transitions -union -: -vec -! -[ -] -sparse -: -vec -! -[ -] -} -} -} -# -[ -derive -( -Clone -Default -) -] -struct -State -{ -transitions -: -Vec -< -Transition -> -chunks -: -Vec -< -( -usize -usize -) -> -} -impl -State -{ -fn -add_match -( -& -mut -self -) -{ -if -self -. -transitions -. -is_empty -( -) -& -& -! -self -. -chunks -. -is_empty -( -) -{ -return -; -} -let -chunk_start -= -self -. -active_chunk_start -( -) -; -let -chunk_end -= -self -. -transitions -. -len -( -) -; -self -. -chunks -. -push -( -( -chunk_start -chunk_end -) -) -; -} -fn -is_leaf -( -& -self -) -- -> -bool -{ -self -. -transitions -. -is_empty -( -) -} -fn -chunks -( -& -self -) -- -> -StateChunksIter -< -' -_ -> -{ -StateChunksIter -{ -transitions -: -& -* -self -. -transitions -chunks -: -self -. -chunks -. -iter -( -) -active -: -Some -( -self -. -active_chunk -( -) -) -} -} -fn -active_chunk -( -& -self -) -- -> -& -[ -Transition -] -{ -let -start -= -self -. -active_chunk_start -( -) -; -& -self -. -transitions -[ -start -. -. -] -} -fn -active_chunk_start -( -& -self -) -- -> -usize -{ -self -. -chunks -. -last -( -) -. -map_or -( -0 -| -& -( -_ -end -) -| -end -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -State -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -let -mut -spacing -= -" -" -; -for -( -i -chunk -) -in -self -. -chunks -( -) -. -enumerate -( -) -{ -if -i -> -0 -{ -write -! -( -f -" -{ -} -MATCH -" -spacing -) -? -; -} -spacing -= -" -" -; -for -( -j -t -) -in -chunk -. -iter -( -) -. -enumerate -( -) -{ -spacing -= -" -" -; -if -j -= -= -0 -& -& -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -else -if -j -> -0 -{ -write -! -( -f -" -" -) -? -; -} -write -! -( -f -" -{ -: -? -} -" -t -) -? -; -} -} -Ok -( -( -) -) -} -} -# -[ -derive -( -Debug -) -] -struct -StateChunksIter -< -' -a -> -{ -transitions -: -& -' -a -[ -Transition -] -chunks -: -core -: -: -slice -: -: -Iter -< -' -a -( -usize -usize -) -> -active -: -Option -< -& -' -a -[ -Transition -] -> -} -impl -< -' -a -> -Iterator -for -StateChunksIter -< -' -a -> -{ -type -Item -= -& -' -a -[ -Transition -] -; -fn -next -( -& -mut -self -) -- -> -Option -< -& -' -a -[ -Transition -] -> -{ -if -let -Some -( -& -( -start -end -) -) -= -self -. -chunks -. -next -( -) -{ -return -Some -( -& -self -. -transitions -[ -start -. -. -end -] -) -; -} -if -let -Some -( -chunk -) -= -self -. -active -. -take -( -) -{ -return -Some -( -chunk -) -; -} -None -} -} -# -[ -derive -( -Clone -Copy -) -] -struct -Transition -{ -byte -: -u8 -next -: -StateID -} -impl -core -: -: -fmt -: -: -Debug -for -Transition -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -{ -: -? -} -= -> -{ -} -" -crate -: -: -util -: -: -escape -: -: -DebugByte -( -self -. -byte -) -self -. -next -. -as_usize -( -) -) -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -bstr -: -: -B -; -use -regex_syntax -: -: -hir -: -: -Hir -; -use -super -: -: -* -; -# -[ -test -] -fn -zap -( -) -{ -let -mut -trie -= -LiteralTrie -: -: -forward -( -) -; -trie -. -add -( -b -" -zapper -" -) -. -unwrap -( -) -; -trie -. -add -( -b -" -z -" -) -. -unwrap -( -) -; -trie -. -add -( -b -" -zap -" -) -. -unwrap -( -) -; -let -got -= -trie -. -compile_to_hir -( -) -; -let -expected -= -Hir -: -: -concat -( -vec -! -[ -Hir -: -: -literal -( -B -( -" -z -" -) -) -Hir -: -: -alternation -( -vec -! -[ -Hir -: -: -literal -( -B -( -" -apper -" -) -) -Hir -: -: -empty -( -) -Hir -: -: -literal -( -B -( -" -ap -" -) -) -] -) -] -) -; -assert_eq -! -( -expected -got -) -; -} -# -[ -test -] -fn -maker -( -) -{ -let -mut -trie -= -LiteralTrie -: -: -forward -( -) -; -trie -. -add -( -b -" -make -" -) -. -unwrap -( -) -; -trie -. -add -( -b -" -maple -" -) -. -unwrap -( -) -; -trie -. -add -( -b -" -maker -" -) -. -unwrap -( -) -; -let -got -= -trie -. -compile_to_hir -( -) -; -let -expected -= -Hir -: -: -concat -( -vec -! -[ -Hir -: -: -literal -( -B -( -" -ma -" -) -) -Hir -: -: -alternation -( -vec -! -[ -Hir -: -: -concat -( -vec -! -[ -Hir -: -: -literal -( -B -( -" -ke -" -) -) -Hir -: -: -alternation -( -vec -! -[ -Hir -: -: -empty -( -) -Hir -: -: -literal -( -B -( -" -r -" -) -) -] -) -] -) -Hir -: -: -literal -( -B -( -" -ple -" -) -) -] -) -] -) -; -assert_eq -! -( -expected -got -) -; -} -} diff --git a/third_party/rust/regex-automata/src/nfa/thompson/map.rs b/third_party/rust/regex-automata/src/nfa/thompson/map.rs deleted file mode 100644 index c16c7a8fcebcd..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/thompson/map.rs +++ /dev/null @@ -1,865 +0,0 @@ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -nfa -: -: -thompson -: -: -Transition -util -: -: -{ -int -: -: -{ -Usize -U64 -} -primitives -: -: -StateID -} -} -; -const -PRIME -: -u64 -= -1099511628211 -; -const -INIT -: -u64 -= -14695981039346656037 -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Utf8BoundedMap -{ -version -: -u16 -capacity -: -usize -map -: -Vec -< -Utf8BoundedEntry -> -} -# -[ -derive -( -Clone -Debug -Default -) -] -struct -Utf8BoundedEntry -{ -version -: -u16 -key -: -Vec -< -Transition -> -val -: -StateID -} -impl -Utf8BoundedMap -{ -pub -fn -new -( -capacity -: -usize -) -- -> -Utf8BoundedMap -{ -assert -! -( -capacity -> -0 -) -; -Utf8BoundedMap -{ -version -: -0 -capacity -map -: -vec -! -[ -] -} -} -pub -fn -clear -( -& -mut -self -) -{ -if -self -. -map -. -is_empty -( -) -{ -self -. -map -= -vec -! -[ -Utf8BoundedEntry -: -: -default -( -) -; -self -. -capacity -] -; -} -else -{ -self -. -version -= -self -. -version -. -wrapping_add -( -1 -) -; -if -self -. -version -= -= -0 -{ -self -. -map -= -vec -! -[ -Utf8BoundedEntry -: -: -default -( -) -; -self -. -capacity -] -; -} -} -} -pub -fn -hash -( -& -self -key -: -& -[ -Transition -] -) -- -> -usize -{ -let -mut -h -= -INIT -; -for -t -in -key -{ -h -= -( -h -^ -u64 -: -: -from -( -t -. -start -) -) -. -wrapping_mul -( -PRIME -) -; -h -= -( -h -^ -u64 -: -: -from -( -t -. -end -) -) -. -wrapping_mul -( -PRIME -) -; -h -= -( -h -^ -t -. -next -. -as_u64 -( -) -) -. -wrapping_mul -( -PRIME -) -; -} -( -h -% -self -. -map -. -len -( -) -. -as_u64 -( -) -) -. -as_usize -( -) -} -pub -fn -get -( -& -mut -self -key -: -& -[ -Transition -] -hash -: -usize -) -- -> -Option -< -StateID -> -{ -let -entry -= -& -self -. -map -[ -hash -] -; -if -entry -. -version -! -= -self -. -version -{ -return -None -; -} -if -entry -. -key -! -= -key -{ -return -None -; -} -Some -( -entry -. -val -) -} -pub -fn -set -( -& -mut -self -key -: -Vec -< -Transition -> -hash -: -usize -state_id -: -StateID -) -{ -self -. -map -[ -hash -] -= -Utf8BoundedEntry -{ -version -: -self -. -version -key -val -: -state_id -} -; -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Utf8SuffixMap -{ -version -: -u16 -capacity -: -usize -map -: -Vec -< -Utf8SuffixEntry -> -} -# -[ -derive -( -Clone -Debug -Default -Eq -PartialEq -) -] -pub -struct -Utf8SuffixKey -{ -pub -from -: -StateID -pub -start -: -u8 -pub -end -: -u8 -} -# -[ -derive -( -Clone -Debug -Default -) -] -struct -Utf8SuffixEntry -{ -version -: -u16 -key -: -Utf8SuffixKey -val -: -StateID -} -impl -Utf8SuffixMap -{ -pub -fn -new -( -capacity -: -usize -) -- -> -Utf8SuffixMap -{ -assert -! -( -capacity -> -0 -) -; -Utf8SuffixMap -{ -version -: -0 -capacity -map -: -vec -! -[ -] -} -} -pub -fn -clear -( -& -mut -self -) -{ -if -self -. -map -. -is_empty -( -) -{ -self -. -map -= -vec -! -[ -Utf8SuffixEntry -: -: -default -( -) -; -self -. -capacity -] -; -} -else -{ -self -. -version -= -self -. -version -. -wrapping_add -( -1 -) -; -if -self -. -version -= -= -0 -{ -self -. -map -= -vec -! -[ -Utf8SuffixEntry -: -: -default -( -) -; -self -. -capacity -] -; -} -} -} -pub -fn -hash -( -& -self -key -: -& -Utf8SuffixKey -) -- -> -usize -{ -const -PRIME -: -u64 -= -1099511628211 -; -const -INIT -: -u64 -= -14695981039346656037 -; -let -mut -h -= -INIT -; -h -= -( -h -^ -key -. -from -. -as_u64 -( -) -) -. -wrapping_mul -( -PRIME -) -; -h -= -( -h -^ -u64 -: -: -from -( -key -. -start -) -) -. -wrapping_mul -( -PRIME -) -; -h -= -( -h -^ -u64 -: -: -from -( -key -. -end -) -) -. -wrapping_mul -( -PRIME -) -; -( -h -% -self -. -map -. -len -( -) -. -as_u64 -( -) -) -. -as_usize -( -) -} -pub -fn -get -( -& -mut -self -key -: -& -Utf8SuffixKey -hash -: -usize -) -- -> -Option -< -StateID -> -{ -let -entry -= -& -self -. -map -[ -hash -] -; -if -entry -. -version -! -= -self -. -version -{ -return -None -; -} -if -key -! -= -& -entry -. -key -{ -return -None -; -} -Some -( -entry -. -val -) -} -pub -fn -set -( -& -mut -self -key -: -Utf8SuffixKey -hash -: -usize -state_id -: -StateID -) -{ -self -. -map -[ -hash -] -= -Utf8SuffixEntry -{ -version -: -self -. -version -key -val -: -state_id -} -; -} -} diff --git a/third_party/rust/regex-automata/src/nfa/thompson/mod.rs b/third_party/rust/regex-automata/src/nfa/thompson/mod.rs deleted file mode 100644 index b9f83a7027c15..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/thompson/mod.rs +++ /dev/null @@ -1,148 +0,0 @@ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -pub -mod -backtrack -; -mod -builder -; -# -[ -cfg -( -feature -= -" -syntax -" -) -] -mod -compiler -; -mod -error -; -# -[ -cfg -( -feature -= -" -syntax -" -) -] -mod -literal_trie -; -# -[ -cfg -( -feature -= -" -syntax -" -) -] -mod -map -; -mod -nfa -; -# -[ -cfg -( -feature -= -" -nfa -- -pikevm -" -) -] -pub -mod -pikevm -; -# -[ -cfg -( -feature -= -" -syntax -" -) -] -mod -range_trie -; -pub -use -self -: -: -{ -builder -: -: -Builder -error -: -: -BuildError -nfa -: -: -{ -DenseTransitions -PatternIter -SparseTransitions -State -Transition -NFA -} -} -; -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -use -compiler -: -: -{ -Compiler -Config -WhichCaptures -} -; diff --git a/third_party/rust/regex-automata/src/nfa/thompson/pikevm.rs b/third_party/rust/regex-automata/src/nfa/thompson/pikevm.rs deleted file mode 100644 index c2342e1617000..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/thompson/pikevm.rs +++ /dev/null @@ -1,6417 +0,0 @@ -# -[ -cfg -( -feature -= -" -internal -- -instrument -- -pikevm -" -) -] -use -core -: -: -cell -: -: -RefCell -; -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -{ -nfa -: -: -thompson -: -: -{ -self -BuildError -State -NFA -} -util -: -: -{ -captures -: -: -Captures -empty -iter -prefilter -: -: -Prefilter -primitives -: -: -{ -NonMaxUsize -PatternID -SmallIndex -StateID -} -search -: -: -{ -Anchored -HalfMatch -Input -Match -MatchKind -PatternSet -Span -} -sparse_set -: -: -SparseSet -} -} -; -macro_rules -! -instrument -{ -( -fun -: -expr -) -= -> -{ -# -[ -cfg -( -feature -= -" -internal -- -instrument -- -pikevm -" -) -] -{ -let -fun -: -& -mut -dyn -FnMut -( -& -mut -Counters -) -= -& -mut -fun -; -COUNTERS -. -with -( -| -c -: -& -RefCell -< -Counters -> -| -fun -( -& -mut -* -c -. -borrow_mut -( -) -) -) -; -} -} -; -} -# -[ -cfg -( -feature -= -" -internal -- -instrument -- -pikevm -" -) -] -std -: -: -thread_local -! -{ -/ -/ -/ -Effectively -global -state -used -to -keep -track -of -instrumentation -/ -/ -/ -counters -. -The -" -proper -" -way -to -do -this -is -to -thread -it -through -the -/ -/ -/ -PikeVM -but -it -makes -the -code -quite -icky -. -Since -this -is -just -a -/ -/ -/ -debugging -feature -we -' -re -content -to -relegate -it -to -thread -local -/ -/ -/ -state -. -When -instrumentation -is -enabled -the -counters -are -reset -at -the -/ -/ -/ -beginning -of -every -search -and -printed -( -with -the -' -trace -' -log -level -) -at -/ -/ -/ -the -end -of -every -search -. -static -COUNTERS -: -RefCell -< -Counters -> -= -RefCell -: -: -new -( -Counters -: -: -empty -( -) -) -; -} -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -Config -{ -match_kind -: -Option -< -MatchKind -> -pre -: -Option -< -Option -< -Prefilter -> -> -} -impl -Config -{ -pub -fn -new -( -) -- -> -Config -{ -Config -: -: -default -( -) -} -pub -fn -match_kind -( -mut -self -kind -: -MatchKind -) -- -> -Config -{ -self -. -match_kind -= -Some -( -kind -) -; -self -} -pub -fn -prefilter -( -mut -self -pre -: -Option -< -Prefilter -> -) -- -> -Config -{ -self -. -pre -= -Some -( -pre -) -; -self -} -pub -fn -get_match_kind -( -& -self -) -- -> -MatchKind -{ -self -. -match_kind -. -unwrap_or -( -MatchKind -: -: -LeftmostFirst -) -} -pub -fn -get_prefilter -( -& -self -) -- -> -Option -< -& -Prefilter -> -{ -self -. -pre -. -as_ref -( -) -. -unwrap_or -( -& -None -) -. -as_ref -( -) -} -pub -( -crate -) -fn -overwrite -( -& -self -o -: -Config -) -- -> -Config -{ -Config -{ -match_kind -: -o -. -match_kind -. -or -( -self -. -match_kind -) -pre -: -o -. -pre -. -or_else -( -| -| -self -. -pre -. -clone -( -) -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Builder -{ -config -: -Config -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -} -impl -Builder -{ -pub -fn -new -( -) -- -> -Builder -{ -Builder -{ -config -: -Config -: -: -default -( -) -# -[ -cfg -( -feature -= -" -syntax -" -) -] -thompson -: -thompson -: -: -Compiler -: -: -new -( -) -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build -( -& -self -pattern -: -& -str -) -- -> -Result -< -PikeVM -BuildError -> -{ -self -. -build_many -( -& -[ -pattern -] -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -build_many -< -P -: -AsRef -< -str -> -> -( -& -self -patterns -: -& -[ -P -] -) -- -> -Result -< -PikeVM -BuildError -> -{ -let -nfa -= -self -. -thompson -. -build_many -( -patterns -) -? -; -self -. -build_from_nfa -( -nfa -) -} -pub -fn -build_from_nfa -( -& -self -nfa -: -NFA -) -- -> -Result -< -PikeVM -BuildError -> -{ -nfa -. -look_set_any -( -) -. -available -( -) -. -map_err -( -BuildError -: -: -word -) -? -; -Ok -( -PikeVM -{ -config -: -self -. -config -. -clone -( -) -nfa -} -) -} -pub -fn -configure -( -& -mut -self -config -: -Config -) -- -> -& -mut -Builder -{ -self -. -config -= -self -. -config -. -overwrite -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -syntax -( -& -mut -self -config -: -crate -: -: -util -: -: -syntax -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -syntax -( -config -) -; -self -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -thompson -( -& -mut -self -config -: -thompson -: -: -Config -) -- -> -& -mut -Builder -{ -self -. -thompson -. -configure -( -config -) -; -self -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -PikeVM -{ -config -: -Config -nfa -: -NFA -} -impl -PikeVM -{ -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new -( -pattern -: -& -str -) -- -> -Result -< -PikeVM -BuildError -> -{ -PikeVM -: -: -builder -( -) -. -build -( -pattern -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -new_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -PikeVM -BuildError -> -{ -PikeVM -: -: -builder -( -) -. -build_many -( -patterns -) -} -pub -fn -new_from_nfa -( -nfa -: -NFA -) -- -> -Result -< -PikeVM -BuildError -> -{ -PikeVM -: -: -builder -( -) -. -build_from_nfa -( -nfa -) -} -pub -fn -always_match -( -) -- -> -Result -< -PikeVM -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -always_match -( -) -; -PikeVM -: -: -new_from_nfa -( -nfa -) -} -pub -fn -never_match -( -) -- -> -Result -< -PikeVM -BuildError -> -{ -let -nfa -= -thompson -: -: -NFA -: -: -never_match -( -) -; -PikeVM -: -: -new_from_nfa -( -nfa -) -} -pub -fn -config -( -) -- -> -Config -{ -Config -: -: -new -( -) -} -pub -fn -builder -( -) -- -> -Builder -{ -Builder -: -: -new -( -) -} -pub -fn -create_captures -( -& -self -) -- -> -Captures -{ -Captures -: -: -all -( -self -. -get_nfa -( -) -. -group_info -( -) -. -clone -( -) -) -} -pub -fn -create_cache -( -& -self -) -- -> -Cache -{ -Cache -: -: -new -( -self -) -} -pub -fn -reset_cache -( -& -self -cache -: -& -mut -Cache -) -{ -cache -. -reset -( -self -) -; -} -pub -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -nfa -. -pattern_len -( -) -} -# -[ -inline -] -pub -fn -get_config -( -& -self -) -- -> -& -Config -{ -& -self -. -config -} -# -[ -inline -] -pub -fn -get_nfa -( -& -self -) -- -> -& -NFA -{ -& -self -. -nfa -} -} -impl -PikeVM -{ -# -[ -inline -] -pub -fn -is_match -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -) -- -> -bool -{ -let -input -= -input -. -into -( -) -. -earliest -( -true -) -; -self -. -search_slots -( -cache -& -input -& -mut -[ -] -) -. -is_some -( -) -} -# -[ -inline -] -pub -fn -find -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -) -- -> -Option -< -Match -> -{ -let -input -= -input -. -into -( -) -; -if -self -. -get_nfa -( -) -. -pattern_len -( -) -= -= -1 -{ -let -mut -slots -= -[ -None -None -] -; -let -pid -= -self -. -search_slots -( -cache -& -input -& -mut -slots -) -? -; -let -start -= -slots -[ -0 -] -? -. -get -( -) -; -let -end -= -slots -[ -1 -] -? -. -get -( -) -; -return -Some -( -Match -: -: -new -( -pid -Span -{ -start -end -} -) -) -; -} -let -ginfo -= -self -. -get_nfa -( -) -. -group_info -( -) -; -let -slots_len -= -ginfo -. -implicit_slot_len -( -) -; -let -mut -slots -= -vec -! -[ -None -; -slots_len -] -; -let -pid -= -self -. -search_slots -( -cache -& -input -& -mut -slots -) -? -; -let -start -= -slots -[ -pid -. -as_usize -( -) -* -2 -] -? -. -get -( -) -; -let -end -= -slots -[ -pid -. -as_usize -( -) -* -2 -+ -1 -] -? -. -get -( -) -; -Some -( -Match -: -: -new -( -pid -Span -{ -start -end -} -) -) -} -# -[ -inline -] -pub -fn -captures -< -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -self -cache -: -& -mut -Cache -input -: -I -caps -: -& -mut -Captures -) -{ -self -. -search -( -cache -& -input -. -into -( -) -caps -) -} -# -[ -inline -] -pub -fn -find_iter -< -' -r -' -c -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -cache -: -& -' -c -mut -Cache -input -: -I -) -- -> -FindMatches -< -' -r -' -c -' -h -> -{ -let -caps -= -Captures -: -: -matches -( -self -. -get_nfa -( -) -. -group_info -( -) -. -clone -( -) -) -; -let -it -= -iter -: -: -Searcher -: -: -new -( -input -. -into -( -) -) -; -FindMatches -{ -re -: -self -cache -caps -it -} -} -# -[ -inline -] -pub -fn -captures_iter -< -' -r -' -c -' -h -I -: -Into -< -Input -< -' -h -> -> -> -( -& -' -r -self -cache -: -& -' -c -mut -Cache -input -: -I -) -- -> -CapturesMatches -< -' -r -' -c -' -h -> -{ -let -caps -= -self -. -create_captures -( -) -; -let -it -= -iter -: -: -Searcher -: -: -new -( -input -. -into -( -) -) -; -CapturesMatches -{ -re -: -self -cache -caps -it -} -} -} -impl -PikeVM -{ -# -[ -inline -] -pub -fn -search -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -caps -: -& -mut -Captures -) -{ -caps -. -set_pattern -( -None -) -; -let -pid -= -self -. -search_slots -( -cache -input -caps -. -slots_mut -( -) -) -; -caps -. -set_pattern -( -pid -) -; -} -# -[ -inline -] -pub -fn -search_slots -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -if -! -utf8empty -{ -let -hm -= -self -. -search_slots_imp -( -cache -input -slots -) -? -; -return -Some -( -hm -. -pattern -( -) -) -; -} -let -min -= -self -. -get_nfa -( -) -. -group_info -( -) -. -implicit_slot_len -( -) -; -if -slots -. -len -( -) -> -= -min -{ -let -hm -= -self -. -search_slots_imp -( -cache -input -slots -) -? -; -return -Some -( -hm -. -pattern -( -) -) -; -} -if -self -. -get_nfa -( -) -. -pattern_len -( -) -= -= -1 -{ -let -mut -enough -= -[ -None -None -] -; -let -got -= -self -. -search_slots_imp -( -cache -input -& -mut -enough -) -; -slots -. -copy_from_slice -( -& -enough -[ -. -. -slots -. -len -( -) -] -) -; -return -got -. -map -( -| -hm -| -hm -. -pattern -( -) -) -; -} -let -mut -enough -= -vec -! -[ -None -; -min -] -; -let -got -= -self -. -search_slots_imp -( -cache -input -& -mut -enough -) -; -slots -. -copy_from_slice -( -& -enough -[ -. -. -slots -. -len -( -) -] -) -; -got -. -map -( -| -hm -| -hm -. -pattern -( -) -) -} -# -[ -inline -( -never -) -] -fn -search_slots_imp -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -HalfMatch -> -{ -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -let -hm -= -match -self -. -search_imp -( -cache -input -slots -) -{ -None -= -> -return -None -Some -( -hm -) -if -! -utf8empty -= -> -return -Some -( -hm -) -Some -( -hm -) -= -> -hm -} -; -empty -: -: -skip_splits_fwd -( -input -hm -hm -. -offset -( -) -| -input -| -{ -Ok -( -self -. -search_imp -( -cache -input -slots -) -. -map -( -| -hm -| -( -hm -hm -. -offset -( -) -) -) -) -} -) -. -unwrap -( -) -} -# -[ -inline -] -pub -fn -which_overlapping_matches -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -self -. -which_overlapping_imp -( -cache -input -patset -) -} -} -impl -PikeVM -{ -fn -search_imp -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -HalfMatch -> -{ -cache -. -setup_search -( -slots -. -len -( -) -) -; -if -input -. -is_done -( -) -{ -return -None -; -} -assert -! -( -input -. -haystack -( -) -. -len -( -) -< -core -: -: -usize -: -: -MAX -" -byte -slice -lengths -must -be -less -than -usize -MAX -" -) -; -instrument -! -( -| -c -| -c -. -reset -( -& -self -. -nfa -) -) -; -let -allmatches -= -self -. -config -. -get_match_kind -( -) -. -continue_past_first_match -( -) -; -let -( -anchored -start_id -) -= -match -self -. -start_config -( -input -) -{ -None -= -> -return -None -Some -( -config -) -= -> -config -} -; -let -pre -= -if -anchored -{ -None -} -else -{ -self -. -get_config -( -) -. -get_prefilter -( -) -} -; -let -Cache -{ -ref -mut -stack -ref -mut -curr -ref -mut -next -} -= -cache -; -let -mut -hm -= -None -; -let -mut -at -= -input -. -start -( -) -; -while -at -< -= -input -. -end -( -) -{ -if -curr -. -set -. -is_empty -( -) -{ -if -hm -. -is_some -( -) -& -& -! -allmatches -{ -break -; -} -if -anchored -& -& -at -> -input -. -start -( -) -{ -break -; -} -if -let -Some -( -ref -pre -) -= -pre -{ -let -span -= -Span -: -: -from -( -at -. -. -input -. -end -( -) -) -; -match -pre -. -find -( -input -. -haystack -( -) -span -) -{ -None -= -> -break -Some -( -ref -span -) -= -> -at -= -span -. -start -} -} -} -if -( -! -hm -. -is_some -( -) -| -| -allmatches -) -& -& -( -! -anchored -| -| -at -= -= -input -. -start -( -) -) -{ -let -slots -= -next -. -slot_table -. -all_absent -( -) -; -self -. -epsilon_closure -( -stack -slots -curr -input -at -start_id -) -; -} -if -let -Some -( -pid -) -= -self -. -nexts -( -stack -curr -next -input -at -slots -) -{ -hm -= -Some -( -HalfMatch -: -: -new -( -pid -at -) -) -; -} -if -input -. -get_earliest -( -) -& -& -hm -. -is_some -( -) -{ -break -; -} -core -: -: -mem -: -: -swap -( -curr -next -) -; -next -. -set -. -clear -( -) -; -at -+ -= -1 -; -} -instrument -! -( -| -c -| -c -. -eprint -( -& -self -. -nfa -) -) -; -hm -} -fn -which_overlapping_imp -( -& -self -cache -: -& -mut -Cache -input -: -& -Input -< -' -_ -> -patset -: -& -mut -PatternSet -) -{ -cache -. -setup_search -( -0 -) -; -if -input -. -is_done -( -) -{ -return -; -} -assert -! -( -input -. -haystack -( -) -. -len -( -) -< -core -: -: -usize -: -: -MAX -" -byte -slice -lengths -must -be -less -than -usize -MAX -" -) -; -instrument -! -( -| -c -| -c -. -reset -( -& -self -. -nfa -) -) -; -let -allmatches -= -self -. -config -. -get_match_kind -( -) -. -continue_past_first_match -( -) -; -let -( -anchored -start_id -) -= -match -self -. -start_config -( -input -) -{ -None -= -> -return -Some -( -config -) -= -> -config -} -; -let -Cache -{ -ref -mut -stack -ref -mut -curr -ref -mut -next -} -= -cache -; -for -at -in -input -. -start -( -) -. -. -= -input -. -end -( -) -{ -let -any_matches -= -! -patset -. -is_empty -( -) -; -if -curr -. -set -. -is_empty -( -) -{ -if -any_matches -& -& -! -allmatches -{ -break -; -} -if -anchored -& -& -at -> -input -. -start -( -) -{ -break -; -} -} -if -! -any_matches -| -| -allmatches -{ -let -slots -= -& -mut -[ -] -; -self -. -epsilon_closure -( -stack -slots -curr -input -at -start_id -) -; -} -self -. -nexts_overlapping -( -stack -curr -next -input -at -patset -) -; -if -patset -. -is_full -( -) -| -| -input -. -get_earliest -( -) -{ -break -; -} -core -: -: -mem -: -: -swap -( -curr -next -) -; -next -. -set -. -clear -( -) -; -} -instrument -! -( -| -c -| -c -. -eprint -( -& -self -. -nfa -) -) -; -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -nexts -( -& -self -stack -: -& -mut -Vec -< -FollowEpsilon -> -curr -: -& -mut -ActiveStates -next -: -& -mut -ActiveStates -input -: -& -Input -< -' -_ -> -at -: -usize -slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -) -- -> -Option -< -PatternID -> -{ -instrument -! -( -| -c -| -c -. -record_state_set -( -& -curr -. -set -) -) -; -let -mut -pid -= -None -; -let -ActiveStates -{ -ref -set -ref -mut -slot_table -} -= -* -curr -; -for -sid -in -set -. -iter -( -) -{ -pid -= -match -self -. -next -( -stack -slot_table -next -input -at -sid -) -{ -None -= -> -continue -Some -( -pid -) -= -> -Some -( -pid -) -} -; -slots -. -copy_from_slice -( -slot_table -. -for_state -( -sid -) -) -; -if -! -self -. -config -. -get_match_kind -( -) -. -continue_past_first_match -( -) -{ -break -; -} -} -pid -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -nexts_overlapping -( -& -self -stack -: -& -mut -Vec -< -FollowEpsilon -> -curr -: -& -mut -ActiveStates -next -: -& -mut -ActiveStates -input -: -& -Input -< -' -_ -> -at -: -usize -patset -: -& -mut -PatternSet -) -{ -instrument -! -( -| -c -| -c -. -record_state_set -( -& -curr -. -set -) -) -; -let -utf8empty -= -self -. -get_nfa -( -) -. -has_empty -( -) -& -& -self -. -get_nfa -( -) -. -is_utf8 -( -) -; -let -ActiveStates -{ -ref -set -ref -mut -slot_table -} -= -* -curr -; -for -sid -in -set -. -iter -( -) -{ -let -pid -= -match -self -. -next -( -stack -slot_table -next -input -at -sid -) -{ -None -= -> -continue -Some -( -pid -) -= -> -pid -} -; -if -utf8empty -& -& -! -input -. -is_char_boundary -( -at -) -{ -continue -; -} -let -_ -= -patset -. -try_insert -( -pid -) -; -if -! -self -. -config -. -get_match_kind -( -) -. -continue_past_first_match -( -) -{ -break -; -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -next -( -& -self -stack -: -& -mut -Vec -< -FollowEpsilon -> -curr_slot_table -: -& -mut -SlotTable -next -: -& -mut -ActiveStates -input -: -& -Input -< -' -_ -> -at -: -usize -sid -: -StateID -) -- -> -Option -< -PatternID -> -{ -instrument -! -( -| -c -| -c -. -record_step -( -sid -) -) -; -match -* -self -. -nfa -. -state -( -sid -) -{ -State -: -: -Fail -| -State -: -: -Look -{ -. -. -} -| -State -: -: -Union -{ -. -. -} -| -State -: -: -BinaryUnion -{ -. -. -} -| -State -: -: -Capture -{ -. -. -} -= -> -None -State -: -: -ByteRange -{ -ref -trans -} -= -> -{ -if -trans -. -matches -( -input -. -haystack -( -) -at -) -{ -let -slots -= -curr_slot_table -. -for_state -( -sid -) -; -let -at -= -at -. -wrapping_add -( -1 -) -; -self -. -epsilon_closure -( -stack -slots -next -input -at -trans -. -next -) -; -} -None -} -State -: -: -Sparse -( -ref -sparse -) -= -> -{ -if -let -Some -( -next_sid -) -= -sparse -. -matches -( -input -. -haystack -( -) -at -) -{ -let -slots -= -curr_slot_table -. -for_state -( -sid -) -; -let -at -= -at -. -wrapping_add -( -1 -) -; -self -. -epsilon_closure -( -stack -slots -next -input -at -next_sid -) -; -} -None -} -State -: -: -Dense -( -ref -dense -) -= -> -{ -if -let -Some -( -next_sid -) -= -dense -. -matches -( -input -. -haystack -( -) -at -) -{ -let -slots -= -curr_slot_table -. -for_state -( -sid -) -; -let -at -= -at -. -wrapping_add -( -1 -) -; -self -. -epsilon_closure -( -stack -slots -next -input -at -next_sid -) -; -} -None -} -State -: -: -Match -{ -pattern_id -} -= -> -Some -( -pattern_id -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -epsilon_closure -( -& -self -stack -: -& -mut -Vec -< -FollowEpsilon -> -curr_slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -next -: -& -mut -ActiveStates -input -: -& -Input -< -' -_ -> -at -: -usize -sid -: -StateID -) -{ -instrument -! -( -| -c -| -{ -c -. -record_closure -( -sid -) -; -c -. -record_stack_push -( -sid -) -; -} -) -; -stack -. -push -( -FollowEpsilon -: -: -Explore -( -sid -) -) -; -while -let -Some -( -frame -) -= -stack -. -pop -( -) -{ -match -frame -{ -FollowEpsilon -: -: -RestoreCapture -{ -slot -offset -: -pos -} -= -> -{ -curr_slots -[ -slot -] -= -pos -; -} -FollowEpsilon -: -: -Explore -( -sid -) -= -> -{ -self -. -epsilon_closure_explore -( -stack -curr_slots -next -input -at -sid -) -; -} -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -epsilon_closure_explore -( -& -self -stack -: -& -mut -Vec -< -FollowEpsilon -> -curr_slots -: -& -mut -[ -Option -< -NonMaxUsize -> -] -next -: -& -mut -ActiveStates -input -: -& -Input -< -' -_ -> -at -: -usize -mut -sid -: -StateID -) -{ -loop -{ -instrument -! -( -| -c -| -c -. -record_set_insert -( -sid -) -) -; -if -! -next -. -set -. -insert -( -sid -) -{ -return -; -} -match -* -self -. -nfa -. -state -( -sid -) -{ -State -: -: -Fail -| -State -: -: -Match -{ -. -. -} -| -State -: -: -ByteRange -{ -. -. -} -| -State -: -: -Sparse -{ -. -. -} -| -State -: -: -Dense -{ -. -. -} -= -> -{ -next -. -slot_table -. -for_state -( -sid -) -. -copy_from_slice -( -curr_slots -) -; -return -; -} -State -: -: -Look -{ -look -next -} -= -> -{ -if -! -self -. -nfa -. -look_matcher -( -) -. -matches_inline -( -look -input -. -haystack -( -) -at -) -{ -return -; -} -sid -= -next -; -} -State -: -: -Union -{ -ref -alternates -} -= -> -{ -sid -= -match -alternates -. -get -( -0 -) -{ -None -= -> -return -Some -( -& -sid -) -= -> -sid -} -; -instrument -! -( -| -c -| -{ -for -& -alt -in -& -alternates -[ -1 -. -. -] -{ -c -. -record_stack_push -( -alt -) -; -} -} -) -; -stack -. -extend -( -alternates -[ -1 -. -. -] -. -iter -( -) -. -copied -( -) -. -rev -( -) -. -map -( -FollowEpsilon -: -: -Explore -) -) -; -} -State -: -: -BinaryUnion -{ -alt1 -alt2 -} -= -> -{ -sid -= -alt1 -; -instrument -! -( -| -c -| -c -. -record_stack_push -( -sid -) -) -; -stack -. -push -( -FollowEpsilon -: -: -Explore -( -alt2 -) -) -; -} -State -: -: -Capture -{ -next -slot -. -. -} -= -> -{ -if -slot -. -as_usize -( -) -< -curr_slots -. -len -( -) -{ -instrument -! -( -| -c -| -c -. -record_stack_push -( -sid -) -) -; -stack -. -push -( -FollowEpsilon -: -: -RestoreCapture -{ -slot -offset -: -curr_slots -[ -slot -] -} -) -; -curr_slots -[ -slot -] -= -Some -( -NonMaxUsize -: -: -new -( -at -) -. -unwrap -( -) -) -; -} -sid -= -next -; -} -} -} -} -fn -start_config -( -& -self -input -: -& -Input -< -' -_ -> -) -- -> -Option -< -( -bool -StateID -) -> -{ -match -input -. -get_anchored -( -) -{ -Anchored -: -: -No -= -> -Some -( -( -self -. -nfa -. -is_always_start_anchored -( -) -self -. -nfa -. -start_anchored -( -) -) -) -Anchored -: -: -Yes -= -> -Some -( -( -true -self -. -nfa -. -start_anchored -( -) -) -) -Anchored -: -: -Pattern -( -pid -) -= -> -{ -Some -( -( -true -self -. -nfa -. -start_pattern -( -pid -) -? -) -) -} -} -} -} -# -[ -derive -( -Debug -) -] -pub -struct -FindMatches -< -' -r -' -c -' -h -> -{ -re -: -& -' -r -PikeVM -cache -: -& -' -c -mut -Cache -caps -: -Captures -it -: -iter -: -: -Searcher -< -' -h -> -} -impl -< -' -r -' -c -' -h -> -Iterator -for -FindMatches -< -' -r -' -c -' -h -> -{ -type -Item -= -Match -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Match -> -{ -let -FindMatches -{ -re -ref -mut -cache -ref -mut -caps -ref -mut -it -} -= -* -self -; -it -. -advance -( -| -input -| -{ -re -. -search -( -cache -input -caps -) -; -Ok -( -caps -. -get_match -( -) -) -} -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -CapturesMatches -< -' -r -' -c -' -h -> -{ -re -: -& -' -r -PikeVM -cache -: -& -' -c -mut -Cache -caps -: -Captures -it -: -iter -: -: -Searcher -< -' -h -> -} -impl -< -' -r -' -c -' -h -> -Iterator -for -CapturesMatches -< -' -r -' -c -' -h -> -{ -type -Item -= -Captures -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Captures -> -{ -let -CapturesMatches -{ -re -ref -mut -cache -ref -mut -caps -ref -mut -it -} -= -* -self -; -it -. -advance -( -| -input -| -{ -re -. -search -( -cache -input -caps -) -; -Ok -( -caps -. -get_match -( -) -) -} -) -; -if -caps -. -is_match -( -) -{ -Some -( -caps -. -clone -( -) -) -} -else -{ -None -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Cache -{ -stack -: -Vec -< -FollowEpsilon -> -curr -: -ActiveStates -next -: -ActiveStates -} -impl -Cache -{ -pub -fn -new -( -re -: -& -PikeVM -) -- -> -Cache -{ -Cache -{ -stack -: -vec -! -[ -] -curr -: -ActiveStates -: -: -new -( -re -) -next -: -ActiveStates -: -: -new -( -re -) -} -} -pub -fn -reset -( -& -mut -self -re -: -& -PikeVM -) -{ -self -. -curr -. -reset -( -re -) -; -self -. -next -. -reset -( -re -) -; -} -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -use -core -: -: -mem -: -: -size_of -; -( -self -. -stack -. -len -( -) -* -size_of -: -: -< -FollowEpsilon -> -( -) -) -+ -self -. -curr -. -memory_usage -( -) -+ -self -. -next -. -memory_usage -( -) -} -fn -setup_search -( -& -mut -self -captures_slot_len -: -usize -) -{ -self -. -stack -. -clear -( -) -; -self -. -curr -. -setup_search -( -captures_slot_len -) -; -self -. -next -. -setup_search -( -captures_slot_len -) -; -} -} -# -[ -derive -( -Clone -Debug -) -] -struct -ActiveStates -{ -set -: -SparseSet -slot_table -: -SlotTable -} -impl -ActiveStates -{ -fn -new -( -re -: -& -PikeVM -) -- -> -ActiveStates -{ -let -mut -active -= -ActiveStates -{ -set -: -SparseSet -: -: -new -( -0 -) -slot_table -: -SlotTable -: -: -new -( -) -} -; -active -. -reset -( -re -) -; -active -} -fn -reset -( -& -mut -self -re -: -& -PikeVM -) -{ -self -. -set -. -resize -( -re -. -get_nfa -( -) -. -states -( -) -. -len -( -) -) -; -self -. -slot_table -. -reset -( -re -) -; -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -set -. -memory_usage -( -) -+ -self -. -slot_table -. -memory_usage -( -) -} -fn -setup_search -( -& -mut -self -captures_slot_len -: -usize -) -{ -self -. -set -. -clear -( -) -; -self -. -slot_table -. -setup_search -( -captures_slot_len -) -; -} -} -# -[ -derive -( -Clone -Debug -) -] -struct -SlotTable -{ -table -: -Vec -< -Option -< -NonMaxUsize -> -> -slots_per_state -: -usize -slots_for_captures -: -usize -} -impl -SlotTable -{ -fn -new -( -) -- -> -SlotTable -{ -SlotTable -{ -table -: -vec -! -[ -] -slots_for_captures -: -0 -slots_per_state -: -0 -} -} -fn -reset -( -& -mut -self -re -: -& -PikeVM -) -{ -let -nfa -= -re -. -get_nfa -( -) -; -self -. -slots_per_state -= -nfa -. -group_info -( -) -. -slot_len -( -) -; -self -. -slots_for_captures -= -core -: -: -cmp -: -: -max -( -self -. -slots_per_state -nfa -. -pattern_len -( -) -. -checked_mul -( -2 -) -. -unwrap -( -) -) -; -let -len -= -nfa -. -states -( -) -. -len -( -) -. -checked_mul -( -self -. -slots_per_state -) -. -and_then -( -| -x -| -x -. -checked_add -( -self -. -slots_for_captures -) -) -. -expect -( -" -slot -table -length -doesn -' -t -overflow -" -) -; -trace -! -( -" -resizing -PikeVM -active -states -table -to -{ -} -entries -\ -( -slots_per_state -= -{ -} -) -" -len -self -. -slots_per_state -) -; -self -. -table -. -resize -( -len -None -) -; -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -table -. -len -( -) -* -core -: -: -mem -: -: -size_of -: -: -< -Option -< -NonMaxUsize -> -> -( -) -} -fn -setup_search -( -& -mut -self -captures_slot_len -: -usize -) -{ -self -. -slots_for_captures -= -captures_slot_len -; -} -fn -for_state -( -& -mut -self -sid -: -StateID -) -- -> -& -mut -[ -Option -< -NonMaxUsize -> -] -{ -let -i -= -sid -. -as_usize -( -) -* -self -. -slots_per_state -; -& -mut -self -. -table -[ -i -. -. -i -+ -self -. -slots_for_captures -] -} -fn -all_absent -( -& -mut -self -) -- -> -& -mut -[ -Option -< -NonMaxUsize -> -] -{ -let -i -= -self -. -table -. -len -( -) -- -self -. -slots_for_captures -; -& -mut -self -. -table -[ -i -. -. -i -+ -self -. -slots_for_captures -] -} -} -# -[ -derive -( -Clone -Debug -) -] -enum -FollowEpsilon -{ -Explore -( -StateID -) -RestoreCapture -{ -slot -: -SmallIndex -offset -: -Option -< -NonMaxUsize -> -} -} -# -[ -cfg -( -feature -= -" -internal -- -instrument -- -pikevm -" -) -] -# -[ -derive -( -Clone -Debug -) -] -struct -Counters -{ -state_sets -: -alloc -: -: -collections -: -: -BTreeMap -< -Vec -< -StateID -> -u64 -> -steps -: -Vec -< -u64 -> -closures -: -Vec -< -u64 -> -stack_pushes -: -Vec -< -u64 -> -set_inserts -: -Vec -< -u64 -> -} -# -[ -cfg -( -feature -= -" -internal -- -instrument -- -pikevm -" -) -] -impl -Counters -{ -fn -empty -( -) -- -> -Counters -{ -Counters -{ -state_sets -: -alloc -: -: -collections -: -: -BTreeMap -: -: -new -( -) -steps -: -vec -! -[ -] -closures -: -vec -! -[ -] -stack_pushes -: -vec -! -[ -] -set_inserts -: -vec -! -[ -] -} -} -fn -reset -( -& -mut -self -nfa -: -& -NFA -) -{ -let -len -= -nfa -. -states -( -) -. -len -( -) -; -self -. -state_sets -. -clear -( -) -; -self -. -steps -. -clear -( -) -; -self -. -steps -. -resize -( -len -0 -) -; -self -. -closures -. -clear -( -) -; -self -. -closures -. -resize -( -len -0 -) -; -self -. -stack_pushes -. -clear -( -) -; -self -. -stack_pushes -. -resize -( -len -0 -) -; -self -. -set_inserts -. -clear -( -) -; -self -. -set_inserts -. -resize -( -len -0 -) -; -} -fn -eprint -( -& -self -nfa -: -& -NFA -) -{ -trace -! -( -" -= -= -= -= -= -START -PikeVM -Instrumentation -Output -= -= -= -= -= -" -) -; -const -LIMIT -: -usize -= -20 -; -let -mut -set_counts -= -self -. -state_sets -. -iter -( -) -. -collect -: -: -< -Vec -< -( -& -Vec -< -StateID -> -& -u64 -) -> -> -( -) -; -set_counts -. -sort_by_key -( -| -( -_ -& -count -) -| -core -: -: -cmp -: -: -Reverse -( -count -) -) -; -trace -! -( -" -# -# -PikeVM -frequency -of -state -sets -( -top -{ -} -) -" -LIMIT -) -; -for -( -set -count -) -in -set_counts -. -iter -( -) -. -take -( -LIMIT -) -{ -trace -! -( -" -{ -: -? -} -: -{ -} -" -set -count -) -; -} -if -set_counts -. -len -( -) -> -LIMIT -{ -trace -! -( -" -. -. -. -{ -} -sets -omitted -( -out -of -{ -} -total -) -" -set_counts -. -len -( -) -- -LIMIT -set_counts -. -len -( -) -) -; -} -trace -! -( -" -" -) -; -trace -! -( -" -# -# -PikeVM -total -frequency -of -events -" -) -; -trace -! -( -" -steps -: -{ -} -closures -: -{ -} -stack -- -pushes -: -{ -} -set -- -inserts -: -{ -} -" -self -. -steps -. -iter -( -) -. -copied -( -) -. -sum -: -: -< -u64 -> -( -) -self -. -closures -. -iter -( -) -. -copied -( -) -. -sum -: -: -< -u64 -> -( -) -self -. -stack_pushes -. -iter -( -) -. -copied -( -) -. -sum -: -: -< -u64 -> -( -) -self -. -set_inserts -. -iter -( -) -. -copied -( -) -. -sum -: -: -< -u64 -> -( -) -) -; -trace -! -( -" -" -) -; -trace -! -( -" -# -# -PikeVM -frequency -of -events -broken -down -by -state -" -) -; -for -sid -in -0 -. -. -self -. -steps -. -len -( -) -{ -trace -! -( -" -{ -: -06 -} -: -steps -: -{ -} -closures -: -{ -} -\ -stack -- -pushes -: -{ -} -set -- -inserts -: -{ -} -" -sid -self -. -steps -[ -sid -] -self -. -closures -[ -sid -] -self -. -stack_pushes -[ -sid -] -self -. -set_inserts -[ -sid -] -) -; -} -trace -! -( -" -" -) -; -trace -! -( -" -# -# -NFA -debug -display -" -) -; -trace -! -( -" -{ -: -? -} -" -nfa -) -; -trace -! -( -" -= -= -= -= -= -END -PikeVM -Instrumentation -Output -= -= -= -= -= -" -) -; -} -fn -record_state_set -( -& -mut -self -set -: -& -SparseSet -) -{ -let -set -= -set -. -iter -( -) -. -collect -: -: -< -Vec -< -StateID -> -> -( -) -; -* -self -. -state_sets -. -entry -( -set -) -. -or_insert -( -0 -) -+ -= -1 -; -} -fn -record_step -( -& -mut -self -sid -: -StateID -) -{ -self -. -steps -[ -sid -] -+ -= -1 -; -} -fn -record_closure -( -& -mut -self -sid -: -StateID -) -{ -self -. -closures -[ -sid -] -+ -= -1 -; -} -fn -record_stack_push -( -& -mut -self -sid -: -StateID -) -{ -self -. -stack_pushes -[ -sid -] -+ -= -1 -; -} -fn -record_set_insert -( -& -mut -self -sid -: -StateID -) -{ -self -. -set_inserts -[ -sid -] -+ -= -1 -; -} -} diff --git a/third_party/rust/regex-automata/src/nfa/thompson/range_trie.rs b/third_party/rust/regex-automata/src/nfa/thompson/range_trie.rs deleted file mode 100644 index a12b40d6c7de2..0000000000000 --- a/third_party/rust/regex-automata/src/nfa/thompson/range_trie.rs +++ /dev/null @@ -1,4637 +0,0 @@ -use -core -: -: -{ -cell -: -: -RefCell -convert -: -: -TryFrom -fmt -mem -ops -: -: -RangeInclusive -} -; -use -alloc -: -: -{ -format -string -: -: -String -vec -vec -: -: -Vec -} -; -use -regex_syntax -: -: -utf8 -: -: -Utf8Range -; -use -crate -: -: -util -: -: -primitives -: -: -StateID -; -const -FINAL -: -StateID -= -StateID -: -: -ZERO -; -const -ROOT -: -StateID -= -StateID -: -: -new_unchecked -( -1 -) -; -# -[ -derive -( -Clone -) -] -pub -struct -RangeTrie -{ -states -: -Vec -< -State -> -free -: -Vec -< -State -> -iter_stack -: -RefCell -< -Vec -< -NextIter -> -> -iter_ranges -: -RefCell -< -Vec -< -Utf8Range -> -> -dupe_stack -: -Vec -< -NextDupe -> -insert_stack -: -Vec -< -NextInsert -> -} -# -[ -derive -( -Clone -) -] -struct -State -{ -transitions -: -Vec -< -Transition -> -} -# -[ -derive -( -Clone -) -] -struct -Transition -{ -range -: -Utf8Range -next_id -: -StateID -} -impl -RangeTrie -{ -pub -fn -new -( -) -- -> -RangeTrie -{ -let -mut -trie -= -RangeTrie -{ -states -: -vec -! -[ -] -free -: -vec -! -[ -] -iter_stack -: -RefCell -: -: -new -( -vec -! -[ -] -) -iter_ranges -: -RefCell -: -: -new -( -vec -! -[ -] -) -dupe_stack -: -vec -! -[ -] -insert_stack -: -vec -! -[ -] -} -; -trie -. -clear -( -) -; -trie -} -pub -fn -clear -( -& -mut -self -) -{ -self -. -free -. -extend -( -self -. -states -. -drain -( -. -. -) -) -; -self -. -add_empty -( -) -; -self -. -add_empty -( -) -; -} -pub -fn -iter -< -E -F -: -FnMut -( -& -[ -Utf8Range -] -) -- -> -Result -< -( -) -E -> -> -( -& -self -mut -f -: -F -) -- -> -Result -< -( -) -E -> -{ -let -mut -stack -= -self -. -iter_stack -. -borrow_mut -( -) -; -stack -. -clear -( -) -; -let -mut -ranges -= -self -. -iter_ranges -. -borrow_mut -( -) -; -ranges -. -clear -( -) -; -stack -. -push -( -NextIter -{ -state_id -: -ROOT -tidx -: -0 -} -) -; -while -let -Some -( -NextIter -{ -mut -state_id -mut -tidx -} -) -= -stack -. -pop -( -) -{ -loop -{ -let -state -= -self -. -state -( -state_id -) -; -if -tidx -> -= -state -. -transitions -. -len -( -) -{ -ranges -. -pop -( -) -; -break -; -} -let -t -= -& -state -. -transitions -[ -tidx -] -; -ranges -. -push -( -t -. -range -) -; -if -t -. -next_id -= -= -FINAL -{ -f -( -& -ranges -) -? -; -ranges -. -pop -( -) -; -tidx -+ -= -1 -; -} -else -{ -stack -. -push -( -NextIter -{ -state_id -tidx -: -tidx -+ -1 -} -) -; -state_id -= -t -. -next_id -; -tidx -= -0 -; -} -} -} -Ok -( -( -) -) -} -pub -fn -insert -( -& -mut -self -ranges -: -& -[ -Utf8Range -] -) -{ -assert -! -( -! -ranges -. -is_empty -( -) -) -; -assert -! -( -ranges -. -len -( -) -< -= -4 -) -; -let -mut -stack -= -mem -: -: -replace -( -& -mut -self -. -insert_stack -vec -! -[ -] -) -; -stack -. -clear -( -) -; -stack -. -push -( -NextInsert -: -: -new -( -ROOT -ranges -) -) -; -while -let -Some -( -next -) -= -stack -. -pop -( -) -{ -let -( -state_id -ranges -) -= -( -next -. -state_id -( -) -next -. -ranges -( -) -) -; -assert -! -( -! -ranges -. -is_empty -( -) -) -; -let -( -mut -new -rest -) -= -( -ranges -[ -0 -] -& -ranges -[ -1 -. -. -] -) -; -let -mut -i -= -self -. -state -( -state_id -) -. -find -( -new -) -; -if -i -= -= -self -. -state -( -state_id -) -. -transitions -. -len -( -) -{ -let -next_id -= -NextInsert -: -: -push -( -self -& -mut -stack -rest -) -; -self -. -add_transition -( -state_id -new -next_id -) -; -continue -; -} -' -OUTER -: -loop -{ -let -old -= -self -. -state -( -state_id -) -. -transitions -[ -i -] -. -clone -( -) -; -let -split -= -match -Split -: -: -new -( -old -. -range -new -) -{ -Some -( -split -) -= -> -split -None -= -> -{ -let -next_id -= -NextInsert -: -: -push -( -self -& -mut -stack -rest -) -; -self -. -add_transition_at -( -i -state_id -new -next_id -) -; -continue -; -} -} -; -let -splits -= -split -. -as_slice -( -) -; -if -splits -. -len -( -) -= -= -1 -{ -if -! -rest -. -is_empty -( -) -{ -stack -. -push -( -NextInsert -: -: -new -( -old -. -next_id -rest -) -) -; -} -break -; -} -let -mut -first -= -true -; -let -mut -add_trans -= -| -trie -: -& -mut -RangeTrie -pos -from -range -to -| -{ -if -first -{ -trie -. -set_transition_at -( -pos -from -range -to -) -; -first -= -false -; -} -else -{ -trie -. -add_transition_at -( -pos -from -range -to -) -; -} -} -; -for -( -j -& -srange -) -in -splits -. -iter -( -) -. -enumerate -( -) -{ -match -srange -{ -SplitRange -: -: -Old -( -r -) -= -> -{ -let -dup_id -= -self -. -duplicate -( -old -. -next_id -) -; -add_trans -( -self -i -state_id -r -dup_id -) -; -} -SplitRange -: -: -New -( -r -) -= -> -{ -{ -let -trans -= -& -self -. -state -( -state_id -) -. -transitions -; -if -j -+ -1 -= -= -splits -. -len -( -) -& -& -i -< -trans -. -len -( -) -& -& -intersects -( -r -trans -[ -i -] -. -range -) -{ -new -= -r -; -continue -' -OUTER -; -} -} -let -next_id -= -NextInsert -: -: -push -( -self -& -mut -stack -rest -) -; -add_trans -( -self -i -state_id -r -next_id -) -; -} -SplitRange -: -: -Both -( -r -) -= -> -{ -if -! -rest -. -is_empty -( -) -{ -stack -. -push -( -NextInsert -: -: -new -( -old -. -next_id -rest -) -) -; -} -add_trans -( -self -i -state_id -r -old -. -next_id -) -; -} -} -i -+ -= -1 -; -} -break -; -} -} -self -. -insert_stack -= -stack -; -} -pub -fn -add_empty -( -& -mut -self -) -- -> -StateID -{ -let -id -= -match -StateID -: -: -try_from -( -self -. -states -. -len -( -) -) -{ -Ok -( -id -) -= -> -id -Err -( -_ -) -= -> -{ -panic -! -( -" -too -many -sequences -added -to -range -trie -" -) -; -} -} -; -if -let -Some -( -mut -state -) -= -self -. -free -. -pop -( -) -{ -state -. -clear -( -) -; -self -. -states -. -push -( -state -) -; -} -else -{ -self -. -states -. -push -( -State -{ -transitions -: -vec -! -[ -] -} -) -; -} -id -} -fn -duplicate -( -& -mut -self -old_id -: -StateID -) -- -> -StateID -{ -if -old_id -= -= -FINAL -{ -return -FINAL -; -} -let -mut -stack -= -mem -: -: -replace -( -& -mut -self -. -dupe_stack -vec -! -[ -] -) -; -stack -. -clear -( -) -; -let -new_id -= -self -. -add_empty -( -) -; -stack -. -push -( -NextDupe -{ -old_id -new_id -} -) -; -while -let -Some -( -NextDupe -{ -old_id -new_id -} -) -= -stack -. -pop -( -) -{ -for -i -in -0 -. -. -self -. -state -( -old_id -) -. -transitions -. -len -( -) -{ -let -t -= -self -. -state -( -old_id -) -. -transitions -[ -i -] -. -clone -( -) -; -if -t -. -next_id -= -= -FINAL -{ -self -. -add_transition -( -new_id -t -. -range -FINAL -) -; -continue -; -} -let -new_child_id -= -self -. -add_empty -( -) -; -self -. -add_transition -( -new_id -t -. -range -new_child_id -) -; -stack -. -push -( -NextDupe -{ -old_id -: -t -. -next_id -new_id -: -new_child_id -} -) -; -} -} -self -. -dupe_stack -= -stack -; -new_id -} -fn -add_transition -( -& -mut -self -from_id -: -StateID -range -: -Utf8Range -next_id -: -StateID -) -{ -self -. -state_mut -( -from_id -) -. -transitions -. -push -( -Transition -{ -range -next_id -} -) -; -} -fn -add_transition_at -( -& -mut -self -i -: -usize -from_id -: -StateID -range -: -Utf8Range -next_id -: -StateID -) -{ -self -. -state_mut -( -from_id -) -. -transitions -. -insert -( -i -Transition -{ -range -next_id -} -) -; -} -fn -set_transition_at -( -& -mut -self -i -: -usize -from_id -: -StateID -range -: -Utf8Range -next_id -: -StateID -) -{ -self -. -state_mut -( -from_id -) -. -transitions -[ -i -] -= -Transition -{ -range -next_id -} -; -} -fn -state -( -& -self -id -: -StateID -) -- -> -& -State -{ -& -self -. -states -[ -id -] -} -fn -state_mut -( -& -mut -self -id -: -StateID -) -- -> -& -mut -State -{ -& -mut -self -. -states -[ -id -] -} -} -impl -State -{ -fn -find -( -& -self -range -: -Utf8Range -) -- -> -usize -{ -fn -binary_search -< -T -F -> -( -xs -: -& -[ -T -] -mut -pred -: -F -) -- -> -usize -where -F -: -FnMut -( -& -T -) -- -> -bool -{ -let -( -mut -left -mut -right -) -= -( -0 -xs -. -len -( -) -) -; -while -left -< -right -{ -let -mid -= -( -left -+ -right -) -/ -2 -; -if -pred -( -& -xs -[ -mid -] -) -{ -right -= -mid -; -} -else -{ -left -= -mid -+ -1 -; -} -} -left -} -binary_search -( -& -self -. -transitions -| -t -| -range -. -start -< -= -t -. -range -. -end -) -} -fn -clear -( -& -mut -self -) -{ -self -. -transitions -. -clear -( -) -; -} -} -# -[ -derive -( -Clone -Debug -) -] -struct -NextDupe -{ -old_id -: -StateID -new_id -: -StateID -} -# -[ -derive -( -Clone -Debug -) -] -struct -NextIter -{ -state_id -: -StateID -tidx -: -usize -} -# -[ -derive -( -Clone -Debug -) -] -struct -NextInsert -{ -state_id -: -StateID -ranges -: -[ -Utf8Range -; -4 -] -len -: -u8 -} -impl -NextInsert -{ -fn -new -( -state_id -: -StateID -ranges -: -& -[ -Utf8Range -] -) -- -> -NextInsert -{ -let -len -= -ranges -. -len -( -) -; -assert -! -( -len -> -0 -) -; -assert -! -( -len -< -= -4 -) -; -let -mut -tmp -= -[ -Utf8Range -{ -start -: -0 -end -: -0 -} -; -4 -] -; -tmp -[ -. -. -len -] -. -copy_from_slice -( -ranges -) -; -NextInsert -{ -state_id -ranges -: -tmp -len -: -u8 -: -: -try_from -( -len -) -. -unwrap -( -) -} -} -fn -push -( -trie -: -& -mut -RangeTrie -stack -: -& -mut -Vec -< -NextInsert -> -ranges -: -& -[ -Utf8Range -] -) -- -> -StateID -{ -if -ranges -. -is_empty -( -) -{ -FINAL -} -else -{ -let -next_id -= -trie -. -add_empty -( -) -; -stack -. -push -( -NextInsert -: -: -new -( -next_id -ranges -) -) -; -next_id -} -} -fn -state_id -( -& -self -) -- -> -StateID -{ -self -. -state_id -} -fn -ranges -( -& -self -) -- -> -& -[ -Utf8Range -] -{ -& -self -. -ranges -[ -. -. -usize -: -: -try_from -( -self -. -len -) -. -unwrap -( -) -] -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -struct -Split -{ -partitions -: -[ -SplitRange -; -3 -] -len -: -usize -} -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -enum -SplitRange -{ -Old -( -Utf8Range -) -New -( -Utf8Range -) -Both -( -Utf8Range -) -} -impl -Split -{ -fn -new -( -o -: -Utf8Range -n -: -Utf8Range -) -- -> -Option -< -Split -> -{ -let -range -= -| -r -: -RangeInclusive -< -u8 -> -| -Utf8Range -{ -start -: -* -r -. -start -( -) -end -: -* -r -. -end -( -) -} -; -let -old -= -| -r -| -SplitRange -: -: -Old -( -range -( -r -) -) -; -let -new -= -| -r -| -SplitRange -: -: -New -( -range -( -r -) -) -; -let -both -= -| -r -| -SplitRange -: -: -Both -( -range -( -r -) -) -; -let -( -a -b -x -y -) -= -( -o -. -start -o -. -end -n -. -start -n -. -end -) -; -if -b -< -x -| -| -y -< -a -{ -None -} -else -if -a -= -= -x -& -& -b -= -= -y -{ -Some -( -Split -: -: -parts1 -( -both -( -a -. -. -= -b -) -) -) -} -else -if -a -= -= -x -& -& -b -< -y -{ -Some -( -Split -: -: -parts2 -( -both -( -a -. -. -= -b -) -new -( -b -+ -1 -. -. -= -y -) -) -) -} -else -if -b -= -= -y -& -& -a -> -x -{ -Some -( -Split -: -: -parts2 -( -new -( -x -. -. -= -a -- -1 -) -both -( -a -. -. -= -b -) -) -) -} -else -if -x -= -= -a -& -& -y -< -b -{ -Some -( -Split -: -: -parts2 -( -both -( -x -. -. -= -y -) -old -( -y -+ -1 -. -. -= -b -) -) -) -} -else -if -y -= -= -b -& -& -x -> -a -{ -Some -( -Split -: -: -parts2 -( -old -( -a -. -. -= -x -- -1 -) -both -( -x -. -. -= -y -) -) -) -} -else -if -a -> -x -& -& -b -< -y -{ -Some -( -Split -: -: -parts3 -( -new -( -x -. -. -= -a -- -1 -) -both -( -a -. -. -= -b -) -new -( -b -+ -1 -. -. -= -y -) -) -) -} -else -if -x -> -a -& -& -y -< -b -{ -Some -( -Split -: -: -parts3 -( -old -( -a -. -. -= -x -- -1 -) -both -( -x -. -. -= -y -) -old -( -y -+ -1 -. -. -= -b -) -) -) -} -else -if -b -= -= -x -& -& -a -< -y -{ -Some -( -Split -: -: -parts3 -( -old -( -a -. -. -= -b -- -1 -) -both -( -b -. -. -= -b -) -new -( -b -+ -1 -. -. -= -y -) -) -) -} -else -if -y -= -= -a -& -& -x -< -b -{ -Some -( -Split -: -: -parts3 -( -new -( -x -. -. -= -y -- -1 -) -both -( -y -. -. -= -y -) -old -( -y -+ -1 -. -. -= -b -) -) -) -} -else -if -b -> -x -& -& -b -< -y -{ -Some -( -Split -: -: -parts3 -( -old -( -a -. -. -= -x -- -1 -) -both -( -x -. -. -= -b -) -new -( -b -+ -1 -. -. -= -y -) -) -) -} -else -if -y -> -a -& -& -y -< -b -{ -Some -( -Split -: -: -parts3 -( -new -( -x -. -. -= -a -- -1 -) -both -( -a -. -. -= -y -) -old -( -y -+ -1 -. -. -= -b -) -) -) -} -else -{ -unreachable -! -( -) -} -} -fn -parts1 -( -r1 -: -SplitRange -) -- -> -Split -{ -let -nada -= -SplitRange -: -: -Old -( -Utf8Range -{ -start -: -0 -end -: -0 -} -) -; -Split -{ -partitions -: -[ -r1 -nada -nada -] -len -: -1 -} -} -fn -parts2 -( -r1 -: -SplitRange -r2 -: -SplitRange -) -- -> -Split -{ -let -nada -= -SplitRange -: -: -Old -( -Utf8Range -{ -start -: -0 -end -: -0 -} -) -; -Split -{ -partitions -: -[ -r1 -r2 -nada -] -len -: -2 -} -} -fn -parts3 -( -r1 -: -SplitRange -r2 -: -SplitRange -r3 -: -SplitRange -) -- -> -Split -{ -Split -{ -partitions -: -[ -r1 -r2 -r3 -] -len -: -3 -} -} -fn -as_slice -( -& -self -) -- -> -& -[ -SplitRange -] -{ -& -self -. -partitions -[ -. -. -self -. -len -] -} -} -impl -fmt -: -: -Debug -for -RangeTrie -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -writeln -! -( -f -" -" -) -? -; -for -( -i -state -) -in -self -. -states -. -iter -( -) -. -enumerate -( -) -{ -let -status -= -if -i -= -= -FINAL -. -as_usize -( -) -{ -' -* -' -} -else -{ -' -' -} -; -writeln -! -( -f -" -{ -} -{ -: -06 -} -: -{ -: -? -} -" -status -i -state -) -? -; -} -Ok -( -( -) -) -} -} -impl -fmt -: -: -Debug -for -State -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -let -rs -= -self -. -transitions -. -iter -( -) -. -map -( -| -t -| -format -! -( -" -{ -: -? -} -" -t -) -) -. -collect -: -: -< -Vec -< -String -> -> -( -) -. -join -( -" -" -) -; -write -! -( -f -" -{ -} -" -rs -) -} -} -impl -fmt -: -: -Debug -for -Transition -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -< -' -_ -> -) -- -> -fmt -: -: -Result -{ -if -self -. -range -. -start -= -= -self -. -range -. -end -{ -write -! -( -f -" -{ -: -02X -} -= -> -{ -: -02X -} -" -self -. -range -. -start -self -. -next_id -. -as_usize -( -) -) -} -else -{ -write -! -( -f -" -{ -: -02X -} -- -{ -: -02X -} -= -> -{ -: -02X -} -" -self -. -range -. -start -self -. -range -. -end -self -. -next_id -. -as_usize -( -) -) -} -} -} -fn -intersects -( -r1 -: -Utf8Range -r2 -: -Utf8Range -) -- -> -bool -{ -! -( -r1 -. -end -< -r2 -. -start -| -| -r2 -. -end -< -r1 -. -start -) -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -core -: -: -ops -: -: -RangeInclusive -; -use -regex_syntax -: -: -utf8 -: -: -Utf8Range -; -use -super -: -: -* -; -fn -r -( -range -: -RangeInclusive -< -u8 -> -) -- -> -Utf8Range -{ -Utf8Range -{ -start -: -* -range -. -start -( -) -end -: -* -range -. -end -( -) -} -} -fn -split_maybe -( -old -: -RangeInclusive -< -u8 -> -new -: -RangeInclusive -< -u8 -> -) -- -> -Option -< -Split -> -{ -Split -: -: -new -( -r -( -old -) -r -( -new -) -) -} -fn -split -( -old -: -RangeInclusive -< -u8 -> -new -: -RangeInclusive -< -u8 -> -) -- -> -Vec -< -SplitRange -> -{ -split_maybe -( -old -new -) -. -unwrap -( -) -. -as_slice -( -) -. -to_vec -( -) -} -# -[ -test -] -fn -no_splits -( -) -{ -assert_eq -! -( -None -split_maybe -( -0 -. -. -= -1 -2 -. -. -= -3 -) -) -; -assert_eq -! -( -None -split_maybe -( -2 -. -. -= -3 -0 -. -. -= -1 -) -) -; -} -# -[ -test -] -fn -splits -( -) -{ -let -range -= -| -r -: -RangeInclusive -< -u8 -> -| -Utf8Range -{ -start -: -* -r -. -start -( -) -end -: -* -r -. -end -( -) -} -; -let -old -= -| -r -| -SplitRange -: -: -Old -( -range -( -r -) -) -; -let -new -= -| -r -| -SplitRange -: -: -New -( -range -( -r -) -) -; -let -both -= -| -r -| -SplitRange -: -: -Both -( -range -( -r -) -) -; -assert_eq -! -( -split -( -0 -. -. -= -0 -0 -. -. -= -0 -) -vec -! -[ -both -( -0 -. -. -= -0 -) -] -) -; -assert_eq -! -( -split -( -9 -. -. -= -9 -9 -. -. -= -9 -) -vec -! -[ -both -( -9 -. -. -= -9 -) -] -) -; -assert_eq -! -( -split -( -0 -. -. -= -5 -0 -. -. -= -6 -) -vec -! -[ -both -( -0 -. -. -= -5 -) -new -( -6 -. -. -= -6 -) -] -) -; -assert_eq -! -( -split -( -0 -. -. -= -5 -0 -. -. -= -8 -) -vec -! -[ -both -( -0 -. -. -= -5 -) -new -( -6 -. -. -= -8 -) -] -) -; -assert_eq -! -( -split -( -5 -. -. -= -5 -5 -. -. -= -8 -) -vec -! -[ -both -( -5 -. -. -= -5 -) -new -( -6 -. -. -= -8 -) -] -) -; -assert_eq -! -( -split -( -1 -. -. -= -5 -0 -. -. -= -5 -) -vec -! -[ -new -( -0 -. -. -= -0 -) -both -( -1 -. -. -= -5 -) -] -) -; -assert_eq -! -( -split -( -3 -. -. -= -5 -0 -. -. -= -5 -) -vec -! -[ -new -( -0 -. -. -= -2 -) -both -( -3 -. -. -= -5 -) -] -) -; -assert_eq -! -( -split -( -5 -. -. -= -5 -0 -. -. -= -5 -) -vec -! -[ -new -( -0 -. -. -= -4 -) -both -( -5 -. -. -= -5 -) -] -) -; -assert_eq -! -( -split -( -0 -. -. -= -6 -0 -. -. -= -5 -) -vec -! -[ -both -( -0 -. -. -= -5 -) -old -( -6 -. -. -= -6 -) -] -) -; -assert_eq -! -( -split -( -0 -. -. -= -8 -0 -. -. -= -5 -) -vec -! -[ -both -( -0 -. -. -= -5 -) -old -( -6 -. -. -= -8 -) -] -) -; -assert_eq -! -( -split -( -5 -. -. -= -8 -5 -. -. -= -5 -) -vec -! -[ -both -( -5 -. -. -= -5 -) -old -( -6 -. -. -= -8 -) -] -) -; -assert_eq -! -( -split -( -0 -. -. -= -5 -1 -. -. -= -5 -) -vec -! -[ -old -( -0 -. -. -= -0 -) -both -( -1 -. -. -= -5 -) -] -) -; -assert_eq -! -( -split -( -0 -. -. -= -5 -3 -. -. -= -5 -) -vec -! -[ -old -( -0 -. -. -= -2 -) -both -( -3 -. -. -= -5 -) -] -) -; -assert_eq -! -( -split -( -0 -. -. -= -5 -5 -. -. -= -5 -) -vec -! -[ -old -( -0 -. -. -= -4 -) -both -( -5 -. -. -= -5 -) -] -) -; -assert_eq -! -( -split -( -3 -. -. -= -6 -2 -. -. -= -7 -) -vec -! -[ -new -( -2 -. -. -= -2 -) -both -( -3 -. -. -= -6 -) -new -( -7 -. -. -= -7 -) -] -) -; -assert_eq -! -( -split -( -3 -. -. -= -6 -1 -. -. -= -8 -) -vec -! -[ -new -( -1 -. -. -= -2 -) -both -( -3 -. -. -= -6 -) -new -( -7 -. -. -= -8 -) -] -) -; -assert_eq -! -( -split -( -2 -. -. -= -7 -3 -. -. -= -6 -) -vec -! -[ -old -( -2 -. -. -= -2 -) -both -( -3 -. -. -= -6 -) -old -( -7 -. -. -= -7 -) -] -) -; -assert_eq -! -( -split -( -1 -. -. -= -8 -3 -. -. -= -6 -) -vec -! -[ -old -( -1 -. -. -= -2 -) -both -( -3 -. -. -= -6 -) -old -( -7 -. -. -= -8 -) -] -) -; -assert_eq -! -( -split -( -3 -. -. -= -6 -6 -. -. -= -7 -) -vec -! -[ -old -( -3 -. -. -= -5 -) -both -( -6 -. -. -= -6 -) -new -( -7 -. -. -= -7 -) -] -) -; -assert_eq -! -( -split -( -3 -. -. -= -6 -6 -. -. -= -8 -) -vec -! -[ -old -( -3 -. -. -= -5 -) -both -( -6 -. -. -= -6 -) -new -( -7 -. -. -= -8 -) -] -) -; -assert_eq -! -( -split -( -5 -. -. -= -6 -6 -. -. -= -7 -) -vec -! -[ -old -( -5 -. -. -= -5 -) -both -( -6 -. -. -= -6 -) -new -( -7 -. -. -= -7 -) -] -) -; -assert_eq -! -( -split -( -6 -. -. -= -7 -3 -. -. -= -6 -) -vec -! -[ -new -( -3 -. -. -= -5 -) -both -( -6 -. -. -= -6 -) -old -( -7 -. -. -= -7 -) -] -) -; -assert_eq -! -( -split -( -6 -. -. -= -8 -3 -. -. -= -6 -) -vec -! -[ -new -( -3 -. -. -= -5 -) -both -( -6 -. -. -= -6 -) -old -( -7 -. -. -= -8 -) -] -) -; -assert_eq -! -( -split -( -6 -. -. -= -7 -5 -. -. -= -6 -) -vec -! -[ -new -( -5 -. -. -= -5 -) -both -( -6 -. -. -= -6 -) -old -( -7 -. -. -= -7 -) -] -) -; -assert_eq -! -( -split -( -3 -. -. -= -7 -5 -. -. -= -9 -) -vec -! -[ -old -( -3 -. -. -= -4 -) -both -( -5 -. -. -= -7 -) -new -( -8 -. -. -= -9 -) -] -) -; -assert_eq -! -( -split -( -3 -. -. -= -5 -4 -. -. -= -6 -) -vec -! -[ -old -( -3 -. -. -= -3 -) -both -( -4 -. -. -= -5 -) -new -( -6 -. -. -= -6 -) -] -) -; -assert_eq -! -( -split -( -5 -. -. -= -9 -3 -. -. -= -7 -) -vec -! -[ -new -( -3 -. -. -= -4 -) -both -( -5 -. -. -= -7 -) -old -( -8 -. -. -= -9 -) -] -) -; -assert_eq -! -( -split -( -4 -. -. -= -6 -3 -. -. -= -5 -) -vec -! -[ -new -( -3 -. -. -= -3 -) -both -( -4 -. -. -= -5 -) -old -( -6 -. -. -= -6 -) -] -) -; -} -} diff --git a/third_party/rust/regex-automata/src/util/alphabet.rs b/third_party/rust/regex-automata/src/util/alphabet.rs deleted file mode 100644 index 5a5f08f60731b..0000000000000 --- a/third_party/rust/regex-automata/src/util/alphabet.rs +++ /dev/null @@ -1,5976 +0,0 @@ -use -crate -: -: -util -: -: -{ -escape -: -: -DebugByte -wire -: -: -{ -self -DeserializeError -SerializeError -} -} -; -# -[ -derive -( -Clone -Copy -Eq -PartialEq -PartialOrd -Ord -) -] -pub -struct -Unit -( -UnitKind -) -; -# -[ -derive -( -Clone -Copy -Eq -PartialEq -PartialOrd -Ord -) -] -enum -UnitKind -{ -U8 -( -u8 -) -EOI -( -u16 -) -} -impl -Unit -{ -pub -fn -u8 -( -byte -: -u8 -) -- -> -Unit -{ -Unit -( -UnitKind -: -: -U8 -( -byte -) -) -} -pub -fn -eoi -( -num_byte_equiv_classes -: -usize -) -- -> -Unit -{ -assert -! -( -num_byte_equiv_classes -< -= -256 -" -max -number -of -byte -- -based -equivalent -classes -is -256 -but -got -{ -} -" -num_byte_equiv_classes -) -; -Unit -( -UnitKind -: -: -EOI -( -u16 -: -: -try_from -( -num_byte_equiv_classes -) -. -unwrap -( -) -) -) -} -pub -fn -as_u8 -( -self -) -- -> -Option -< -u8 -> -{ -match -self -. -0 -{ -UnitKind -: -: -U8 -( -b -) -= -> -Some -( -b -) -UnitKind -: -: -EOI -( -_ -) -= -> -None -} -} -pub -fn -as_eoi -( -self -) -- -> -Option -< -u16 -> -{ -match -self -. -0 -{ -UnitKind -: -: -U8 -( -_ -) -= -> -None -UnitKind -: -: -EOI -( -sentinel -) -= -> -Some -( -sentinel -) -} -} -pub -fn -as_usize -( -self -) -- -> -usize -{ -match -self -. -0 -{ -UnitKind -: -: -U8 -( -b -) -= -> -usize -: -: -from -( -b -) -UnitKind -: -: -EOI -( -eoi -) -= -> -usize -: -: -from -( -eoi -) -} -} -pub -fn -is_byte -( -self -byte -: -u8 -) -- -> -bool -{ -self -. -as_u8 -( -) -. -map_or -( -false -| -b -| -b -= -= -byte -) -} -pub -fn -is_eoi -( -self -) -- -> -bool -{ -self -. -as_eoi -( -) -. -is_some -( -) -} -pub -fn -is_word_byte -( -self -) -- -> -bool -{ -self -. -as_u8 -( -) -. -map_or -( -false -crate -: -: -util -: -: -utf8 -: -: -is_word_byte -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -Unit -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -match -self -. -0 -{ -UnitKind -: -: -U8 -( -b -) -= -> -write -! -( -f -" -{ -: -? -} -" -DebugByte -( -b -) -) -UnitKind -: -: -EOI -( -_ -) -= -> -write -! -( -f -" -EOI -" -) -} -} -} -# -[ -derive -( -Clone -Copy -) -] -pub -struct -ByteClasses -( -[ -u8 -; -256 -] -) -; -impl -ByteClasses -{ -# -[ -inline -] -pub -fn -empty -( -) -- -> -ByteClasses -{ -ByteClasses -( -[ -0 -; -256 -] -) -} -# -[ -inline -] -pub -fn -singletons -( -) -- -> -ByteClasses -{ -let -mut -classes -= -ByteClasses -: -: -empty -( -) -; -for -b -in -0 -. -. -= -255 -{ -classes -. -set -( -b -b -) -; -} -classes -} -pub -( -crate -) -fn -from_bytes -( -slice -: -& -[ -u8 -] -) -- -> -Result -< -( -ByteClasses -usize -) -DeserializeError -> -{ -wire -: -: -check_slice_len -( -slice -256 -" -byte -class -map -" -) -? -; -let -mut -classes -= -ByteClasses -: -: -empty -( -) -; -for -( -b -& -class -) -in -slice -[ -. -. -256 -] -. -iter -( -) -. -enumerate -( -) -{ -classes -. -set -( -u8 -: -: -try_from -( -b -) -. -unwrap -( -) -class -) -; -} -for -& -b -in -classes -. -0 -. -iter -( -) -{ -if -usize -: -: -from -( -b -) -> -= -classes -. -alphabet_len -( -) -{ -return -Err -( -DeserializeError -: -: -generic -( -" -found -equivalence -class -greater -than -alphabet -len -" -) -) -; -} -} -Ok -( -( -classes -256 -) -) -} -pub -( -crate -) -fn -write_to -( -& -self -mut -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -byte -class -map -" -) -) -; -} -for -b -in -0 -. -. -= -255 -{ -dst -[ -0 -] -= -self -. -get -( -b -) -; -dst -= -& -mut -dst -[ -1 -. -. -] -; -} -Ok -( -nwrite -) -} -pub -( -crate -) -fn -write_to_len -( -& -self -) -- -> -usize -{ -256 -} -# -[ -inline -] -pub -fn -set -( -& -mut -self -byte -: -u8 -class -: -u8 -) -{ -self -. -0 -[ -usize -: -: -from -( -byte -) -] -= -class -; -} -# -[ -inline -] -pub -fn -get -( -& -self -byte -: -u8 -) -- -> -u8 -{ -self -. -0 -[ -usize -: -: -from -( -byte -) -] -} -# -[ -inline -] -pub -fn -get_by_unit -( -& -self -unit -: -Unit -) -- -> -usize -{ -match -unit -. -0 -{ -UnitKind -: -: -U8 -( -b -) -= -> -usize -: -: -from -( -self -. -get -( -b -) -) -UnitKind -: -: -EOI -( -b -) -= -> -usize -: -: -from -( -b -) -} -} -# -[ -inline -] -pub -fn -eoi -( -& -self -) -- -> -Unit -{ -Unit -: -: -eoi -( -self -. -alphabet_len -( -) -. -checked_sub -( -1 -) -. -unwrap -( -) -) -} -# -[ -inline -] -pub -fn -alphabet_len -( -& -self -) -- -> -usize -{ -usize -: -: -from -( -self -. -0 -[ -255 -] -) -+ -1 -+ -1 -} -# -[ -inline -] -pub -fn -stride2 -( -& -self -) -- -> -usize -{ -let -zeros -= -self -. -alphabet_len -( -) -. -next_power_of_two -( -) -. -trailing_zeros -( -) -; -usize -: -: -try_from -( -zeros -) -. -unwrap -( -) -} -# -[ -inline -] -pub -fn -is_singleton -( -& -self -) -- -> -bool -{ -self -. -alphabet_len -( -) -= -= -257 -} -# -[ -inline -] -pub -fn -iter -( -& -self -) -- -> -ByteClassIter -< -' -_ -> -{ -ByteClassIter -{ -classes -: -self -i -: -0 -} -} -pub -fn -representatives -< -R -: -core -: -: -ops -: -: -RangeBounds -< -u8 -> -> -( -& -self -range -: -R -) -- -> -ByteClassRepresentatives -< -' -_ -> -{ -use -core -: -: -ops -: -: -Bound -; -let -cur_byte -= -match -range -. -start_bound -( -) -{ -Bound -: -: -Included -( -& -i -) -= -> -usize -: -: -from -( -i -) -Bound -: -: -Excluded -( -& -i -) -= -> -usize -: -: -from -( -i -) -. -checked_add -( -1 -) -. -unwrap -( -) -Bound -: -: -Unbounded -= -> -0 -} -; -let -end_byte -= -match -range -. -end_bound -( -) -{ -Bound -: -: -Included -( -& -i -) -= -> -{ -Some -( -usize -: -: -from -( -i -) -. -checked_add -( -1 -) -. -unwrap -( -) -) -} -Bound -: -: -Excluded -( -& -i -) -= -> -Some -( -usize -: -: -from -( -i -) -) -Bound -: -: -Unbounded -= -> -None -} -; -assert_ne -! -( -cur_byte -usize -: -: -MAX -" -start -range -must -be -less -than -usize -: -: -MAX -" -) -; -ByteClassRepresentatives -{ -classes -: -self -cur_byte -end_byte -last_class -: -None -} -} -# -[ -inline -] -pub -fn -elements -( -& -self -class -: -Unit -) -- -> -ByteClassElements -{ -ByteClassElements -{ -classes -: -self -class -byte -: -0 -} -} -fn -element_ranges -( -& -self -class -: -Unit -) -- -> -ByteClassElementRanges -{ -ByteClassElementRanges -{ -elements -: -self -. -elements -( -class -) -range -: -None -} -} -} -impl -Default -for -ByteClasses -{ -fn -default -( -) -- -> -ByteClasses -{ -ByteClasses -: -: -singletons -( -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -ByteClasses -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -if -self -. -is_singleton -( -) -{ -write -! -( -f -" -ByteClasses -( -{ -{ -singletons -} -} -) -" -) -} -else -{ -write -! -( -f -" -ByteClasses -( -" -) -? -; -for -( -i -class -) -in -self -. -iter -( -) -. -enumerate -( -) -{ -if -i -> -0 -{ -write -! -( -f -" -" -) -? -; -} -write -! -( -f -" -{ -: -? -} -= -> -[ -" -class -. -as_usize -( -) -) -? -; -for -( -start -end -) -in -self -. -element_ranges -( -class -) -{ -if -start -= -= -end -{ -write -! -( -f -" -{ -: -? -} -" -start -) -? -; -} -else -{ -write -! -( -f -" -{ -: -? -} -- -{ -: -? -} -" -start -end -) -? -; -} -} -write -! -( -f -" -] -" -) -? -; -} -write -! -( -f -" -) -" -) -} -} -} -# -[ -derive -( -Debug -) -] -pub -struct -ByteClassIter -< -' -a -> -{ -classes -: -& -' -a -ByteClasses -i -: -usize -} -impl -< -' -a -> -Iterator -for -ByteClassIter -< -' -a -> -{ -type -Item -= -Unit -; -fn -next -( -& -mut -self -) -- -> -Option -< -Unit -> -{ -if -self -. -i -+ -1 -= -= -self -. -classes -. -alphabet_len -( -) -{ -self -. -i -+ -= -1 -; -Some -( -self -. -classes -. -eoi -( -) -) -} -else -if -self -. -i -< -self -. -classes -. -alphabet_len -( -) -{ -let -class -= -u8 -: -: -try_from -( -self -. -i -) -. -unwrap -( -) -; -self -. -i -+ -= -1 -; -Some -( -Unit -: -: -u8 -( -class -) -) -} -else -{ -None -} -} -} -# -[ -derive -( -Debug -) -] -pub -struct -ByteClassRepresentatives -< -' -a -> -{ -classes -: -& -' -a -ByteClasses -cur_byte -: -usize -end_byte -: -Option -< -usize -> -last_class -: -Option -< -u8 -> -} -impl -< -' -a -> -Iterator -for -ByteClassRepresentatives -< -' -a -> -{ -type -Item -= -Unit -; -fn -next -( -& -mut -self -) -- -> -Option -< -Unit -> -{ -while -self -. -cur_byte -< -self -. -end_byte -. -unwrap_or -( -256 -) -{ -let -byte -= -u8 -: -: -try_from -( -self -. -cur_byte -) -. -unwrap -( -) -; -let -class -= -self -. -classes -. -get -( -byte -) -; -self -. -cur_byte -+ -= -1 -; -if -self -. -last_class -! -= -Some -( -class -) -{ -self -. -last_class -= -Some -( -class -) -; -return -Some -( -Unit -: -: -u8 -( -byte -) -) -; -} -} -if -self -. -cur_byte -! -= -usize -: -: -MAX -& -& -self -. -end_byte -. -is_none -( -) -{ -self -. -cur_byte -= -usize -: -: -MAX -; -return -Some -( -self -. -classes -. -eoi -( -) -) -; -} -None -} -} -# -[ -derive -( -Debug -) -] -pub -struct -ByteClassElements -< -' -a -> -{ -classes -: -& -' -a -ByteClasses -class -: -Unit -byte -: -usize -} -impl -< -' -a -> -Iterator -for -ByteClassElements -< -' -a -> -{ -type -Item -= -Unit -; -fn -next -( -& -mut -self -) -- -> -Option -< -Unit -> -{ -while -self -. -byte -< -256 -{ -let -byte -= -u8 -: -: -try_from -( -self -. -byte -) -. -unwrap -( -) -; -self -. -byte -+ -= -1 -; -if -self -. -class -. -is_byte -( -self -. -classes -. -get -( -byte -) -) -{ -return -Some -( -Unit -: -: -u8 -( -byte -) -) -; -} -} -if -self -. -byte -< -257 -{ -self -. -byte -+ -= -1 -; -if -self -. -class -. -is_eoi -( -) -{ -return -Some -( -Unit -: -: -eoi -( -256 -) -) -; -} -} -None -} -} -# -[ -derive -( -Debug -) -] -struct -ByteClassElementRanges -< -' -a -> -{ -elements -: -ByteClassElements -< -' -a -> -range -: -Option -< -( -Unit -Unit -) -> -} -impl -< -' -a -> -Iterator -for -ByteClassElementRanges -< -' -a -> -{ -type -Item -= -( -Unit -Unit -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -Unit -Unit -) -> -{ -loop -{ -let -element -= -match -self -. -elements -. -next -( -) -{ -None -= -> -return -self -. -range -. -take -( -) -Some -( -element -) -= -> -element -} -; -match -self -. -range -. -take -( -) -{ -None -= -> -{ -self -. -range -= -Some -( -( -element -element -) -) -; -} -Some -( -( -start -end -) -) -= -> -{ -if -end -. -as_usize -( -) -+ -1 -! -= -element -. -as_usize -( -) -| -| -element -. -is_eoi -( -) -{ -self -. -range -= -Some -( -( -element -element -) -) -; -return -Some -( -( -start -end -) -) -; -} -self -. -range -= -Some -( -( -start -element -) -) -; -} -} -} -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -ByteClassSet -( -ByteSet -) -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -Default -for -ByteClassSet -{ -fn -default -( -) -- -> -ByteClassSet -{ -ByteClassSet -: -: -empty -( -) -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -ByteClassSet -{ -pub -( -crate -) -fn -empty -( -) -- -> -Self -{ -ByteClassSet -( -ByteSet -: -: -empty -( -) -) -} -pub -( -crate -) -fn -set_range -( -& -mut -self -start -: -u8 -end -: -u8 -) -{ -debug_assert -! -( -start -< -= -end -) -; -if -start -> -0 -{ -self -. -0 -. -add -( -start -- -1 -) -; -} -self -. -0 -. -add -( -end -) -; -} -pub -( -crate -) -fn -add_set -( -& -mut -self -set -: -& -ByteSet -) -{ -for -( -start -end -) -in -set -. -iter_ranges -( -) -{ -self -. -set_range -( -start -end -) -; -} -} -pub -( -crate -) -fn -byte_classes -( -& -self -) -- -> -ByteClasses -{ -let -mut -classes -= -ByteClasses -: -: -empty -( -) -; -let -mut -class -= -0u8 -; -let -mut -b -= -0u8 -; -loop -{ -classes -. -set -( -b -class -) -; -if -b -= -= -255 -{ -break -; -} -if -self -. -0 -. -contains -( -b -) -{ -class -= -class -. -checked_add -( -1 -) -. -unwrap -( -) -; -} -b -= -b -. -checked_add -( -1 -) -. -unwrap -( -) -; -} -classes -} -} -# -[ -derive -( -Clone -Copy -Debug -Default -Eq -PartialEq -) -] -pub -( -crate -) -struct -ByteSet -{ -bits -: -BitSet -} -# -[ -derive -( -Clone -Copy -Default -Eq -PartialEq -) -] -struct -BitSet -( -[ -u128 -; -2 -] -) -; -impl -ByteSet -{ -pub -( -crate -) -fn -empty -( -) -- -> -ByteSet -{ -ByteSet -{ -bits -: -BitSet -( -[ -0 -; -2 -] -) -} -} -pub -( -crate -) -fn -add -( -& -mut -self -byte -: -u8 -) -{ -let -bucket -= -byte -/ -128 -; -let -bit -= -byte -% -128 -; -self -. -bits -. -0 -[ -usize -: -: -from -( -bucket -) -] -| -= -1 -< -< -bit -; -} -pub -( -crate -) -fn -remove -( -& -mut -self -byte -: -u8 -) -{ -let -bucket -= -byte -/ -128 -; -let -bit -= -byte -% -128 -; -self -. -bits -. -0 -[ -usize -: -: -from -( -bucket -) -] -& -= -! -( -1 -< -< -bit -) -; -} -pub -( -crate -) -fn -contains -( -& -self -byte -: -u8 -) -- -> -bool -{ -let -bucket -= -byte -/ -128 -; -let -bit -= -byte -% -128 -; -self -. -bits -. -0 -[ -usize -: -: -from -( -bucket -) -] -& -( -1 -< -< -bit -) -> -0 -} -pub -( -crate -) -fn -contains_range -( -& -self -start -: -u8 -end -: -u8 -) -- -> -bool -{ -( -start -. -. -= -end -) -. -all -( -| -b -| -self -. -contains -( -b -) -) -} -pub -( -crate -) -fn -iter -( -& -self -) -- -> -ByteSetIter -{ -ByteSetIter -{ -set -: -self -b -: -0 -} -} -pub -( -crate -) -fn -iter_ranges -( -& -self -) -- -> -ByteSetRangeIter -{ -ByteSetRangeIter -{ -set -: -self -b -: -0 -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -bits -. -0 -= -= -[ -0 -0 -] -} -pub -( -crate -) -fn -from_bytes -( -slice -: -& -[ -u8 -] -) -- -> -Result -< -( -ByteSet -usize -) -DeserializeError -> -{ -use -core -: -: -mem -: -: -size_of -; -wire -: -: -check_slice_len -( -slice -2 -* -size_of -: -: -< -u128 -> -( -) -" -byte -set -" -) -? -; -let -mut -nread -= -0 -; -let -( -low -nr -) -= -wire -: -: -try_read_u128 -( -slice -" -byte -set -low -bucket -" -) -? -; -nread -+ -= -nr -; -let -( -high -nr -) -= -wire -: -: -try_read_u128 -( -slice -" -byte -set -high -bucket -" -) -? -; -nread -+ -= -nr -; -Ok -( -( -ByteSet -{ -bits -: -BitSet -( -[ -low -high -] -) -} -nread -) -) -} -pub -( -crate -) -fn -write_to -< -E -: -crate -: -: -util -: -: -wire -: -: -Endian -> -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -use -core -: -: -mem -: -: -size_of -; -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -byte -set -" -) -) -; -} -let -mut -nw -= -0 -; -E -: -: -write_u128 -( -self -. -bits -. -0 -[ -0 -] -& -mut -dst -[ -nw -. -. -] -) -; -nw -+ -= -size_of -: -: -< -u128 -> -( -) -; -E -: -: -write_u128 -( -self -. -bits -. -0 -[ -1 -] -& -mut -dst -[ -nw -. -. -] -) -; -nw -+ -= -size_of -: -: -< -u128 -> -( -) -; -assert_eq -! -( -nwrite -nw -" -expected -to -write -certain -number -of -bytes -" -) -; -assert_eq -! -( -nw -% -8 -0 -" -expected -to -write -multiple -of -8 -bytes -for -byte -set -" -) -; -Ok -( -nw -) -} -pub -( -crate -) -fn -write_to_len -( -& -self -) -- -> -usize -{ -2 -* -core -: -: -mem -: -: -size_of -: -: -< -u128 -> -( -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -BitSet -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -let -mut -fmtd -= -f -. -debug_set -( -) -; -for -b -in -0u8 -. -. -= -255 -{ -if -( -ByteSet -{ -bits -: -* -self -} -) -. -contains -( -b -) -{ -fmtd -. -entry -( -& -b -) -; -} -} -fmtd -. -finish -( -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -ByteSetIter -< -' -a -> -{ -set -: -& -' -a -ByteSet -b -: -usize -} -impl -< -' -a -> -Iterator -for -ByteSetIter -< -' -a -> -{ -type -Item -= -u8 -; -fn -next -( -& -mut -self -) -- -> -Option -< -u8 -> -{ -while -self -. -b -< -= -255 -{ -let -b -= -u8 -: -: -try_from -( -self -. -b -) -. -unwrap -( -) -; -self -. -b -+ -= -1 -; -if -self -. -set -. -contains -( -b -) -{ -return -Some -( -b -) -; -} -} -None -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -ByteSetRangeIter -< -' -a -> -{ -set -: -& -' -a -ByteSet -b -: -usize -} -impl -< -' -a -> -Iterator -for -ByteSetRangeIter -< -' -a -> -{ -type -Item -= -( -u8 -u8 -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -u8 -u8 -) -> -{ -let -asu8 -= -| -n -: -usize -| -u8 -: -: -try_from -( -n -) -. -unwrap -( -) -; -while -self -. -b -< -= -255 -{ -let -start -= -asu8 -( -self -. -b -) -; -self -. -b -+ -= -1 -; -if -! -self -. -set -. -contains -( -start -) -{ -continue -; -} -let -mut -end -= -start -; -while -self -. -b -< -= -255 -& -& -self -. -set -. -contains -( -asu8 -( -self -. -b -) -) -{ -end -= -asu8 -( -self -. -b -) -; -self -. -b -+ -= -1 -; -} -return -Some -( -( -start -end -) -) -; -} -None -} -} -# -[ -cfg -( -all -( -test -feature -= -" -alloc -" -) -) -] -mod -tests -{ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -super -: -: -* -; -# -[ -test -] -fn -byte_classes -( -) -{ -let -mut -set -= -ByteClassSet -: -: -empty -( -) -; -set -. -set_range -( -b -' -a -' -b -' -z -' -) -; -let -classes -= -set -. -byte_classes -( -) -; -assert_eq -! -( -classes -. -get -( -0 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -1 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -2 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -b -' -a -' -- -1 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -b -' -a -' -) -1 -) -; -assert_eq -! -( -classes -. -get -( -b -' -m -' -) -1 -) -; -assert_eq -! -( -classes -. -get -( -b -' -z -' -) -1 -) -; -assert_eq -! -( -classes -. -get -( -b -' -z -' -+ -1 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -254 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -255 -) -2 -) -; -let -mut -set -= -ByteClassSet -: -: -empty -( -) -; -set -. -set_range -( -0 -2 -) -; -set -. -set_range -( -4 -6 -) -; -let -classes -= -set -. -byte_classes -( -) -; -assert_eq -! -( -classes -. -get -( -0 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -1 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -2 -) -0 -) -; -assert_eq -! -( -classes -. -get -( -3 -) -1 -) -; -assert_eq -! -( -classes -. -get -( -4 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -5 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -6 -) -2 -) -; -assert_eq -! -( -classes -. -get -( -7 -) -3 -) -; -assert_eq -! -( -classes -. -get -( -255 -) -3 -) -; -} -# -[ -test -] -fn -full_byte_classes -( -) -{ -let -mut -set -= -ByteClassSet -: -: -empty -( -) -; -for -b -in -0u8 -. -. -= -255 -{ -set -. -set_range -( -b -b -) -; -} -assert_eq -! -( -set -. -byte_classes -( -) -. -alphabet_len -( -) -257 -) -; -} -# -[ -test -] -fn -elements_typical -( -) -{ -let -mut -set -= -ByteClassSet -: -: -empty -( -) -; -set -. -set_range -( -b -' -b -' -b -' -d -' -) -; -set -. -set_range -( -b -' -g -' -b -' -m -' -) -; -set -. -set_range -( -b -' -z -' -b -' -z -' -) -; -let -classes -= -set -. -byte_classes -( -) -; -assert_eq -! -( -classes -. -alphabet_len -( -) -8 -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -u8 -( -0 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -. -len -( -) -98 -) -; -assert_eq -! -( -elements -[ -0 -] -Unit -: -: -u8 -( -b -' -\ -x00 -' -) -) -; -assert_eq -! -( -elements -[ -97 -] -Unit -: -: -u8 -( -b -' -a -' -) -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -u8 -( -1 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -Unit -: -: -u8 -( -b -' -b -' -) -Unit -: -: -u8 -( -b -' -c -' -) -Unit -: -: -u8 -( -b -' -d -' -) -] -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -u8 -( -2 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -Unit -: -: -u8 -( -b -' -e -' -) -Unit -: -: -u8 -( -b -' -f -' -) -] -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -u8 -( -3 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -Unit -: -: -u8 -( -b -' -g -' -) -Unit -: -: -u8 -( -b -' -h -' -) -Unit -: -: -u8 -( -b -' -i -' -) -Unit -: -: -u8 -( -b -' -j -' -) -Unit -: -: -u8 -( -b -' -k -' -) -Unit -: -: -u8 -( -b -' -l -' -) -Unit -: -: -u8 -( -b -' -m -' -) -] -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -u8 -( -4 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -. -len -( -) -12 -) -; -assert_eq -! -( -elements -[ -0 -] -Unit -: -: -u8 -( -b -' -n -' -) -) -; -assert_eq -! -( -elements -[ -11 -] -Unit -: -: -u8 -( -b -' -y -' -) -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -u8 -( -5 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -Unit -: -: -u8 -( -b -' -z -' -) -] -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -u8 -( -6 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -. -len -( -) -133 -) -; -assert_eq -! -( -elements -[ -0 -] -Unit -: -: -u8 -( -b -' -\ -x7B -' -) -) -; -assert_eq -! -( -elements -[ -132 -] -Unit -: -: -u8 -( -b -' -\ -xFF -' -) -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -eoi -( -7 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -Unit -: -: -eoi -( -256 -) -] -) -; -} -# -[ -test -] -fn -elements_singletons -( -) -{ -let -classes -= -ByteClasses -: -: -singletons -( -) -; -assert_eq -! -( -classes -. -alphabet_len -( -) -257 -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -u8 -( -b -' -a -' -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -Unit -: -: -u8 -( -b -' -a -' -) -] -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -eoi -( -5 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -Unit -: -: -eoi -( -256 -) -] -) -; -} -# -[ -test -] -fn -elements_empty -( -) -{ -let -classes -= -ByteClasses -: -: -empty -( -) -; -assert_eq -! -( -classes -. -alphabet_len -( -) -2 -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -u8 -( -0 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -. -len -( -) -256 -) -; -assert_eq -! -( -elements -[ -0 -] -Unit -: -: -u8 -( -b -' -\ -x00 -' -) -) -; -assert_eq -! -( -elements -[ -255 -] -Unit -: -: -u8 -( -b -' -\ -xFF -' -) -) -; -let -elements -= -classes -. -elements -( -Unit -: -: -eoi -( -1 -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) -; -assert_eq -! -( -elements -vec -! -[ -Unit -: -: -eoi -( -256 -) -] -) -; -} -# -[ -test -] -fn -representatives -( -) -{ -let -mut -set -= -ByteClassSet -: -: -empty -( -) -; -set -. -set_range -( -b -' -b -' -b -' -d -' -) -; -set -. -set_range -( -b -' -g -' -b -' -m -' -) -; -set -. -set_range -( -b -' -z -' -b -' -z -' -) -; -let -classes -= -set -. -byte_classes -( -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -. -. -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -u8 -( -b -' -\ -x00 -' -) -Unit -: -: -u8 -( -b -' -b -' -) -Unit -: -: -u8 -( -b -' -e -' -) -Unit -: -: -u8 -( -b -' -g -' -) -Unit -: -: -u8 -( -b -' -n -' -) -Unit -: -: -u8 -( -b -' -z -' -) -Unit -: -: -u8 -( -b -' -\ -x7B -' -) -Unit -: -: -eoi -( -7 -) -] -; -assert_eq -! -( -expected -got -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -. -. -0 -) -. -collect -( -) -; -assert -! -( -got -. -is_empty -( -) -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -1 -. -. -1 -) -. -collect -( -) -; -assert -! -( -got -. -is_empty -( -) -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -255 -. -. -255 -) -. -collect -( -) -; -assert -! -( -got -. -is_empty -( -) -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -( -core -: -: -ops -: -: -Bound -: -: -Excluded -( -255 -) -core -: -: -ops -: -: -Bound -: -: -Unbounded -) -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -eoi -( -7 -) -] -; -assert_eq -! -( -expected -got -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -. -. -= -255 -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -u8 -( -b -' -\ -x00 -' -) -Unit -: -: -u8 -( -b -' -b -' -) -Unit -: -: -u8 -( -b -' -e -' -) -Unit -: -: -u8 -( -b -' -g -' -) -Unit -: -: -u8 -( -b -' -n -' -) -Unit -: -: -u8 -( -b -' -z -' -) -Unit -: -: -u8 -( -b -' -\ -x7B -' -) -] -; -assert_eq -! -( -expected -got -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -b -' -b -' -. -. -= -b -' -d -' -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -u8 -( -b -' -b -' -) -] -; -assert_eq -! -( -expected -got -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -b -' -a -' -. -. -= -b -' -d -' -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -u8 -( -b -' -a -' -) -Unit -: -: -u8 -( -b -' -b -' -) -] -; -assert_eq -! -( -expected -got -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -b -' -b -' -. -. -= -b -' -e -' -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -u8 -( -b -' -b -' -) -Unit -: -: -u8 -( -b -' -e -' -) -] -; -assert_eq -! -( -expected -got -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -b -' -A -' -. -. -= -b -' -Z -' -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -u8 -( -b -' -A -' -) -] -; -assert_eq -! -( -expected -got -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -b -' -A -' -. -. -= -b -' -z -' -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -u8 -( -b -' -A -' -) -Unit -: -: -u8 -( -b -' -b -' -) -Unit -: -: -u8 -( -b -' -e -' -) -Unit -: -: -u8 -( -b -' -g -' -) -Unit -: -: -u8 -( -b -' -n -' -) -Unit -: -: -u8 -( -b -' -z -' -) -] -; -assert_eq -! -( -expected -got -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -b -' -z -' -. -. -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -u8 -( -b -' -z -' -) -Unit -: -: -u8 -( -b -' -\ -x7B -' -) -Unit -: -: -eoi -( -7 -) -] -; -assert_eq -! -( -expected -got -) -; -let -got -: -Vec -< -Unit -> -= -classes -. -representatives -( -b -' -z -' -. -. -= -0xFF -) -. -collect -( -) -; -let -expected -= -vec -! -[ -Unit -: -: -u8 -( -b -' -z -' -) -Unit -: -: -u8 -( -b -' -\ -x7B -' -) -] -; -assert_eq -! -( -expected -got -) -; -} -} diff --git a/third_party/rust/regex-automata/src/util/captures.rs b/third_party/rust/regex-automata/src/util/captures.rs deleted file mode 100644 index 318936b74cf34..0000000000000 --- a/third_party/rust/regex-automata/src/util/captures.rs +++ /dev/null @@ -1,4680 +0,0 @@ -use -alloc -: -: -{ -string -: -: -String -sync -: -: -Arc -vec -vec -: -: -Vec -} -; -use -crate -: -: -util -: -: -{ -interpolate -primitives -: -: -{ -NonMaxUsize -PatternID -PatternIDError -PatternIDIter -SmallIndex -} -search -: -: -{ -Match -Span -} -} -; -# -[ -derive -( -Clone -) -] -pub -struct -Captures -{ -group_info -: -GroupInfo -pid -: -Option -< -PatternID -> -slots -: -Vec -< -Option -< -NonMaxUsize -> -> -} -impl -Captures -{ -pub -fn -all -( -group_info -: -GroupInfo -) -- -> -Captures -{ -let -slots -= -group_info -. -slot_len -( -) -; -Captures -{ -group_info -pid -: -None -slots -: -vec -! -[ -None -; -slots -] -} -} -pub -fn -matches -( -group_info -: -GroupInfo -) -- -> -Captures -{ -let -slots -= -group_info -. -pattern_len -( -) -. -checked_mul -( -2 -) -. -unwrap -( -) -; -Captures -{ -group_info -pid -: -None -slots -: -vec -! -[ -None -; -slots -] -} -} -pub -fn -empty -( -group_info -: -GroupInfo -) -- -> -Captures -{ -Captures -{ -group_info -pid -: -None -slots -: -vec -! -[ -] -} -} -# -[ -inline -] -pub -fn -is_match -( -& -self -) -- -> -bool -{ -self -. -pid -. -is_some -( -) -} -# -[ -inline -] -pub -fn -pattern -( -& -self -) -- -> -Option -< -PatternID -> -{ -self -. -pid -} -# -[ -inline -] -pub -fn -get_match -( -& -self -) -- -> -Option -< -Match -> -{ -Some -( -Match -: -: -new -( -self -. -pattern -( -) -? -self -. -get_group -( -0 -) -? -) -) -} -# -[ -inline -] -pub -fn -get_group -( -& -self -index -: -usize -) -- -> -Option -< -Span -> -{ -let -pid -= -self -. -pattern -( -) -? -; -let -( -slot_start -slot_end -) -= -if -self -. -group_info -( -) -. -pattern_len -( -) -= -= -1 -{ -( -index -. -checked_mul -( -2 -) -? -index -. -checked_mul -( -2 -) -? -. -checked_add -( -1 -) -? -) -} -else -{ -self -. -group_info -( -) -. -slots -( -pid -index -) -? -} -; -let -start -= -self -. -slots -. -get -( -slot_start -) -. -copied -( -) -? -? -; -let -end -= -self -. -slots -. -get -( -slot_end -) -. -copied -( -) -? -? -; -Some -( -Span -{ -start -: -start -. -get -( -) -end -: -end -. -get -( -) -} -) -} -pub -fn -get_group_by_name -( -& -self -name -: -& -str -) -- -> -Option -< -Span -> -{ -let -index -= -self -. -group_info -( -) -. -to_index -( -self -. -pattern -( -) -? -name -) -? -; -self -. -get_group -( -index -) -} -pub -fn -iter -( -& -self -) -- -> -CapturesPatternIter -< -' -_ -> -{ -let -names -= -self -. -pattern -( -) -. -map_or -( -GroupInfoPatternNames -: -: -empty -( -) -. -enumerate -( -) -| -pid -| -{ -self -. -group_info -( -) -. -pattern_names -( -pid -) -. -enumerate -( -) -} -) -; -CapturesPatternIter -{ -caps -: -self -names -} -} -pub -fn -group_len -( -& -self -) -- -> -usize -{ -let -pid -= -match -self -. -pattern -( -) -{ -None -= -> -return -0 -Some -( -pid -) -= -> -pid -} -; -self -. -group_info -( -) -. -group_len -( -pid -) -} -pub -fn -group_info -( -& -self -) -- -> -& -GroupInfo -{ -& -self -. -group_info -} -pub -fn -interpolate_string -( -& -self -haystack -: -& -str -replacement -: -& -str -) -- -> -String -{ -let -mut -dst -= -String -: -: -new -( -) -; -self -. -interpolate_string_into -( -haystack -replacement -& -mut -dst -) -; -dst -} -pub -fn -interpolate_string_into -( -& -self -haystack -: -& -str -replacement -: -& -str -dst -: -& -mut -String -) -{ -interpolate -: -: -string -( -replacement -| -index -dst -| -{ -let -span -= -match -self -. -get_group -( -index -) -{ -None -= -> -return -Some -( -span -) -= -> -span -} -; -dst -. -push_str -( -& -haystack -[ -span -] -) -; -} -| -name -| -self -. -group_info -( -) -. -to_index -( -self -. -pattern -( -) -? -name -) -dst -) -; -} -pub -fn -interpolate_bytes -( -& -self -haystack -: -& -[ -u8 -] -replacement -: -& -[ -u8 -] -) -- -> -Vec -< -u8 -> -{ -let -mut -dst -= -vec -! -[ -] -; -self -. -interpolate_bytes_into -( -haystack -replacement -& -mut -dst -) -; -dst -} -pub -fn -interpolate_bytes_into -( -& -self -haystack -: -& -[ -u8 -] -replacement -: -& -[ -u8 -] -dst -: -& -mut -Vec -< -u8 -> -) -{ -interpolate -: -: -bytes -( -replacement -| -index -dst -| -{ -let -span -= -match -self -. -get_group -( -index -) -{ -None -= -> -return -Some -( -span -) -= -> -span -} -; -dst -. -extend_from_slice -( -& -haystack -[ -span -] -) -; -} -| -name -| -self -. -group_info -( -) -. -to_index -( -self -. -pattern -( -) -? -name -) -dst -) -; -} -pub -fn -extract -< -' -h -const -N -: -usize -> -( -& -self -haystack -: -& -' -h -str -) -- -> -( -& -' -h -str -[ -& -' -h -str -; -N -] -) -{ -let -mut -matched -= -self -. -iter -( -) -. -flatten -( -) -; -let -whole_match -= -& -haystack -[ -matched -. -next -( -) -. -expect -( -" -a -match -" -) -] -; -let -group_matches -= -[ -0 -; -N -] -. -map -( -| -_ -| -{ -let -sp -= -matched -. -next -( -) -. -expect -( -" -too -few -matching -groups -" -) -; -& -haystack -[ -sp -] -} -) -; -( -whole_match -group_matches -) -} -pub -fn -extract_bytes -< -' -h -const -N -: -usize -> -( -& -self -haystack -: -& -' -h -[ -u8 -] -) -- -> -( -& -' -h -[ -u8 -] -[ -& -' -h -[ -u8 -] -; -N -] -) -{ -let -mut -matched -= -self -. -iter -( -) -. -flatten -( -) -; -let -whole_match -= -& -haystack -[ -matched -. -next -( -) -. -expect -( -" -a -match -" -) -] -; -let -group_matches -= -[ -0 -; -N -] -. -map -( -| -_ -| -{ -let -sp -= -matched -. -next -( -) -. -expect -( -" -too -few -matching -groups -" -) -; -& -haystack -[ -sp -] -} -) -; -( -whole_match -group_matches -) -} -} -impl -Captures -{ -# -[ -inline -] -pub -fn -clear -( -& -mut -self -) -{ -self -. -pid -= -None -; -for -slot -in -self -. -slots -. -iter_mut -( -) -{ -* -slot -= -None -; -} -} -# -[ -inline -] -pub -fn -set_pattern -( -& -mut -self -pid -: -Option -< -PatternID -> -) -{ -self -. -pid -= -pid -; -} -# -[ -inline -] -pub -fn -slots -( -& -self -) -- -> -& -[ -Option -< -NonMaxUsize -> -] -{ -& -self -. -slots -} -# -[ -inline -] -pub -fn -slots_mut -( -& -mut -self -) -- -> -& -mut -[ -Option -< -NonMaxUsize -> -] -{ -& -mut -self -. -slots -} -} -impl -core -: -: -fmt -: -: -Debug -for -Captures -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -let -mut -dstruct -= -f -. -debug_struct -( -" -Captures -" -) -; -dstruct -. -field -( -" -pid -" -& -self -. -pid -) -; -if -let -Some -( -pid -) -= -self -. -pid -{ -dstruct -. -field -( -" -spans -" -& -CapturesDebugMap -{ -pid -caps -: -self -} -) -; -} -dstruct -. -finish -( -) -} -} -struct -CapturesDebugMap -< -' -a -> -{ -pid -: -PatternID -caps -: -& -' -a -Captures -} -impl -< -' -a -> -core -: -: -fmt -: -: -Debug -for -CapturesDebugMap -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -struct -Key -< -' -a -> -( -usize -Option -< -& -' -a -str -> -) -; -impl -< -' -a -> -core -: -: -fmt -: -: -Debug -for -Key -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -{ -} -" -self -. -0 -) -? -; -if -let -Some -( -name -) -= -self -. -1 -{ -write -! -( -f -" -/ -{ -: -? -} -" -name -) -? -; -} -Ok -( -( -) -) -} -} -let -mut -map -= -f -. -debug_map -( -) -; -let -names -= -self -. -caps -. -group_info -( -) -. -pattern_names -( -self -. -pid -) -; -for -( -group_index -maybe_name -) -in -names -. -enumerate -( -) -{ -let -key -= -Key -( -group_index -maybe_name -) -; -match -self -. -caps -. -get_group -( -group_index -) -{ -None -= -> -map -. -entry -( -& -key -& -None -: -: -< -( -) -> -) -Some -( -span -) -= -> -map -. -entry -( -& -key -& -span -) -} -; -} -map -. -finish -( -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -CapturesPatternIter -< -' -a -> -{ -caps -: -& -' -a -Captures -names -: -core -: -: -iter -: -: -Enumerate -< -GroupInfoPatternNames -< -' -a -> -> -} -impl -< -' -a -> -Iterator -for -CapturesPatternIter -< -' -a -> -{ -type -Item -= -Option -< -Span -> -; -fn -next -( -& -mut -self -) -- -> -Option -< -Option -< -Span -> -> -{ -let -( -group_index -_ -) -= -self -. -names -. -next -( -) -? -; -Some -( -self -. -caps -. -get_group -( -group_index -) -) -} -fn -size_hint -( -& -self -) -- -> -( -usize -Option -< -usize -> -) -{ -self -. -names -. -size_hint -( -) -} -fn -count -( -self -) -- -> -usize -{ -self -. -names -. -count -( -) -} -} -impl -< -' -a -> -ExactSizeIterator -for -CapturesPatternIter -< -' -a -> -{ -} -impl -< -' -a -> -core -: -: -iter -: -: -FusedIterator -for -CapturesPatternIter -< -' -a -> -{ -} -# -[ -derive -( -Clone -Debug -Default -) -] -pub -struct -GroupInfo -( -Arc -< -GroupInfoInner -> -) -; -impl -GroupInfo -{ -pub -fn -new -< -P -G -N -> -( -pattern_groups -: -P -) -- -> -Result -< -GroupInfo -GroupInfoError -> -where -P -: -IntoIterator -< -Item -= -G -> -G -: -IntoIterator -< -Item -= -Option -< -N -> -> -N -: -AsRef -< -str -> -{ -let -mut -group_info -= -GroupInfoInner -{ -slot_ranges -: -vec -! -[ -] -name_to_index -: -vec -! -[ -] -index_to_name -: -vec -! -[ -] -memory_extra -: -0 -} -; -for -( -pattern_index -groups -) -in -pattern_groups -. -into_iter -( -) -. -enumerate -( -) -{ -let -pid -= -PatternID -: -: -new -( -pattern_index -) -. -map_err -( -GroupInfoError -: -: -too_many_patterns -) -? -; -let -mut -groups_iter -= -groups -. -into_iter -( -) -. -enumerate -( -) -; -match -groups_iter -. -next -( -) -{ -None -= -> -return -Err -( -GroupInfoError -: -: -missing_groups -( -pid -) -) -Some -( -( -_ -Some -( -_ -) -) -) -= -> -{ -return -Err -( -GroupInfoError -: -: -first_must_be_unnamed -( -pid -) -) -} -Some -( -( -_ -None -) -) -= -> -{ -} -} -group_info -. -add_first_group -( -pid -) -; -for -( -group_index -maybe_name -) -in -groups_iter -{ -let -group -= -SmallIndex -: -: -new -( -group_index -) -. -map_err -( -| -_ -| -{ -GroupInfoError -: -: -too_many_groups -( -pid -group_index -) -} -) -? -; -group_info -. -add_explicit_group -( -pid -group -maybe_name -) -? -; -} -} -group_info -. -fixup_slot_ranges -( -) -? -; -Ok -( -GroupInfo -( -Arc -: -: -new -( -group_info -) -) -) -} -pub -fn -empty -( -) -- -> -GroupInfo -{ -GroupInfo -: -: -new -( -core -: -: -iter -: -: -empty -: -: -< -[ -Option -< -& -str -> -; -0 -] -> -( -) -) -. -expect -( -" -empty -group -info -is -always -valid -" -) -} -# -[ -inline -] -pub -fn -to_index -( -& -self -pid -: -PatternID -name -: -& -str -) -- -> -Option -< -usize -> -{ -let -indices -= -self -. -0 -. -name_to_index -. -get -( -pid -. -as_usize -( -) -) -? -; -indices -. -get -( -name -) -. -cloned -( -) -. -map -( -| -i -| -i -. -as_usize -( -) -) -} -# -[ -inline -] -pub -fn -to_name -( -& -self -pid -: -PatternID -group_index -: -usize -) -- -> -Option -< -& -str -> -{ -let -pattern_names -= -self -. -0 -. -index_to_name -. -get -( -pid -. -as_usize -( -) -) -? -; -pattern_names -. -get -( -group_index -) -? -. -as_deref -( -) -} -# -[ -inline -] -pub -fn -pattern_names -( -& -self -pid -: -PatternID -) -- -> -GroupInfoPatternNames -< -' -_ -> -{ -GroupInfoPatternNames -{ -it -: -self -. -0 -. -index_to_name -. -get -( -pid -. -as_usize -( -) -) -. -map -( -| -indices -| -indices -. -iter -( -) -) -. -unwrap_or -( -[ -] -. -iter -( -) -) -} -} -# -[ -inline -] -pub -fn -all_names -( -& -self -) -- -> -GroupInfoAllNames -< -' -_ -> -{ -GroupInfoAllNames -{ -group_info -: -self -pids -: -PatternID -: -: -iter -( -self -. -pattern_len -( -) -) -current_pid -: -None -names -: -None -} -} -# -[ -inline -] -pub -fn -slots -( -& -self -pid -: -PatternID -group_index -: -usize -) -- -> -Option -< -( -usize -usize -) -> -{ -self -. -slot -( -pid -group_index -) -. -map -( -| -start -| -( -start -start -+ -1 -) -) -} -# -[ -inline -] -pub -fn -slot -( -& -self -pid -: -PatternID -group_index -: -usize -) -- -> -Option -< -usize -> -{ -if -group_index -> -= -self -. -group_len -( -pid -) -{ -return -None -; -} -if -group_index -= -= -0 -{ -Some -( -pid -. -as_usize -( -) -* -2 -) -} -else -{ -let -( -start -_ -) -= -self -. -0 -. -slot_ranges -[ -pid -] -; -Some -( -start -. -as_usize -( -) -+ -( -( -group_index -- -1 -) -* -2 -) -) -} -} -# -[ -inline -] -pub -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -0 -. -pattern_len -( -) -} -# -[ -inline -] -pub -fn -group_len -( -& -self -pid -: -PatternID -) -- -> -usize -{ -self -. -0 -. -group_len -( -pid -) -} -# -[ -inline -] -pub -fn -all_group_len -( -& -self -) -- -> -usize -{ -self -. -slot_len -( -) -/ -2 -} -# -[ -inline -] -pub -fn -slot_len -( -& -self -) -- -> -usize -{ -self -. -0 -. -small_slot_len -( -) -. -as_usize -( -) -} -# -[ -inline -] -pub -fn -implicit_slot_len -( -& -self -) -- -> -usize -{ -self -. -pattern_len -( -) -* -2 -} -# -[ -inline -] -pub -fn -explicit_slot_len -( -& -self -) -- -> -usize -{ -self -. -slot_len -( -) -. -saturating_sub -( -self -. -implicit_slot_len -( -) -) -} -# -[ -inline -] -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -use -core -: -: -mem -: -: -size_of -as -s -; -s -: -: -< -GroupInfoInner -> -( -) -+ -self -. -0 -. -slot_ranges -. -len -( -) -* -s -: -: -< -( -SmallIndex -SmallIndex -) -> -( -) -+ -self -. -0 -. -name_to_index -. -len -( -) -* -s -: -: -< -CaptureNameMap -> -( -) -+ -self -. -0 -. -index_to_name -. -len -( -) -* -s -: -: -< -Vec -< -Option -< -Arc -< -str -> -> -> -> -( -) -+ -self -. -0 -. -memory_extra -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -type -CaptureNameMap -= -std -: -: -collections -: -: -HashMap -< -Arc -< -str -> -SmallIndex -> -; -# -[ -cfg -( -not -( -feature -= -" -std -" -) -) -] -type -CaptureNameMap -= -alloc -: -: -collections -: -: -BTreeMap -< -Arc -< -str -> -SmallIndex -> -; -# -[ -derive -( -Debug -Default -) -] -struct -GroupInfoInner -{ -slot_ranges -: -Vec -< -( -SmallIndex -SmallIndex -) -> -name_to_index -: -Vec -< -CaptureNameMap -> -index_to_name -: -Vec -< -Vec -< -Option -< -Arc -< -str -> -> -> -> -memory_extra -: -usize -} -impl -GroupInfoInner -{ -fn -add_first_group -( -& -mut -self -pid -: -PatternID -) -{ -assert_eq -! -( -pid -. -as_usize -( -) -self -. -slot_ranges -. -len -( -) -) -; -assert_eq -! -( -pid -. -as_usize -( -) -self -. -name_to_index -. -len -( -) -) -; -assert_eq -! -( -pid -. -as_usize -( -) -self -. -index_to_name -. -len -( -) -) -; -let -slot_start -= -self -. -small_slot_len -( -) -; -self -. -slot_ranges -. -push -( -( -slot_start -slot_start -) -) -; -self -. -name_to_index -. -push -( -CaptureNameMap -: -: -new -( -) -) -; -self -. -index_to_name -. -push -( -vec -! -[ -None -] -) -; -self -. -memory_extra -+ -= -core -: -: -mem -: -: -size_of -: -: -< -Option -< -Arc -< -str -> -> -> -( -) -; -} -fn -add_explicit_group -< -N -: -AsRef -< -str -> -> -( -& -mut -self -pid -: -PatternID -group -: -SmallIndex -maybe_name -: -Option -< -N -> -) -- -> -Result -< -( -) -GroupInfoError -> -{ -let -end -= -& -mut -self -. -slot_ranges -[ -pid -] -. -1 -; -* -end -= -SmallIndex -: -: -new -( -end -. -as_usize -( -) -+ -2 -) -. -map_err -( -| -_ -| -{ -GroupInfoError -: -: -too_many_groups -( -pid -group -. -as_usize -( -) -) -} -) -? -; -if -let -Some -( -name -) -= -maybe_name -{ -let -name -= -Arc -: -: -< -str -> -: -: -from -( -name -. -as_ref -( -) -) -; -if -self -. -name_to_index -[ -pid -] -. -contains_key -( -& -* -name -) -{ -return -Err -( -GroupInfoError -: -: -duplicate -( -pid -& -name -) -) -; -} -let -len -= -name -. -len -( -) -; -self -. -name_to_index -[ -pid -] -. -insert -( -Arc -: -: -clone -( -& -name -) -group -) -; -self -. -index_to_name -[ -pid -] -. -push -( -Some -( -name -) -) -; -self -. -memory_extra -+ -= -2 -* -( -len -+ -core -: -: -mem -: -: -size_of -: -: -< -Option -< -Arc -< -str -> -> -> -( -) -) -; -self -. -memory_extra -+ -= -core -: -: -mem -: -: -size_of -: -: -< -SmallIndex -> -( -) -; -} -else -{ -self -. -index_to_name -[ -pid -] -. -push -( -None -) -; -self -. -memory_extra -+ -= -core -: -: -mem -: -: -size_of -: -: -< -Option -< -Arc -< -str -> -> -> -( -) -; -} -assert_eq -! -( -group -. -one_more -( -) -self -. -group_len -( -pid -) -) -; -assert_eq -! -( -group -. -one_more -( -) -self -. -index_to_name -[ -pid -] -. -len -( -) -) -; -Ok -( -( -) -) -} -fn -fixup_slot_ranges -( -& -mut -self -) -- -> -Result -< -( -) -GroupInfoError -> -{ -use -crate -: -: -util -: -: -primitives -: -: -IteratorIndexExt -; -let -offset -= -self -. -pattern_len -( -) -. -checked_mul -( -2 -) -. -unwrap -( -) -; -for -( -pid -& -mut -( -ref -mut -start -ref -mut -end -) -) -in -self -. -slot_ranges -. -iter_mut -( -) -. -with_pattern_ids -( -) -{ -let -group_len -= -1 -+ -( -( -end -. -as_usize -( -) -- -start -. -as_usize -( -) -) -/ -2 -) -; -let -new_end -= -match -end -. -as_usize -( -) -. -checked_add -( -offset -) -{ -Some -( -new_end -) -= -> -new_end -None -= -> -{ -return -Err -( -GroupInfoError -: -: -too_many_groups -( -pid -group_len -) -) -} -} -; -* -end -= -SmallIndex -: -: -new -( -new_end -) -. -map_err -( -| -_ -| -{ -GroupInfoError -: -: -too_many_groups -( -pid -group_len -) -} -) -? -; -* -start -= -SmallIndex -: -: -new -( -start -. -as_usize -( -) -+ -offset -) -. -unwrap -( -) -; -} -Ok -( -( -) -) -} -fn -pattern_len -( -& -self -) -- -> -usize -{ -self -. -slot_ranges -. -len -( -) -} -fn -group_len -( -& -self -pid -: -PatternID -) -- -> -usize -{ -let -( -start -end -) -= -match -self -. -slot_ranges -. -get -( -pid -. -as_usize -( -) -) -{ -None -= -> -return -0 -Some -( -range -) -= -> -range -} -; -1 -+ -( -( -end -. -as_usize -( -) -- -start -. -as_usize -( -) -) -/ -2 -) -} -fn -small_slot_len -( -& -self -) -- -> -SmallIndex -{ -self -. -slot_ranges -. -last -( -) -. -map_or -( -SmallIndex -: -: -ZERO -| -& -( -_ -end -) -| -end -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -GroupInfoError -{ -kind -: -GroupInfoErrorKind -} -# -[ -derive -( -Clone -Debug -) -] -enum -GroupInfoErrorKind -{ -TooManyPatterns -{ -err -: -PatternIDError -} -TooManyGroups -{ -pattern -: -PatternID -minimum -: -usize -} -MissingGroups -{ -pattern -: -PatternID -} -FirstMustBeUnnamed -{ -pattern -: -PatternID -} -Duplicate -{ -pattern -: -PatternID -name -: -String -} -} -impl -GroupInfoError -{ -fn -too_many_patterns -( -err -: -PatternIDError -) -- -> -GroupInfoError -{ -GroupInfoError -{ -kind -: -GroupInfoErrorKind -: -: -TooManyPatterns -{ -err -} -} -} -fn -too_many_groups -( -pattern -: -PatternID -minimum -: -usize -) -- -> -GroupInfoError -{ -GroupInfoError -{ -kind -: -GroupInfoErrorKind -: -: -TooManyGroups -{ -pattern -minimum -} -} -} -fn -missing_groups -( -pattern -: -PatternID -) -- -> -GroupInfoError -{ -GroupInfoError -{ -kind -: -GroupInfoErrorKind -: -: -MissingGroups -{ -pattern -} -} -} -fn -first_must_be_unnamed -( -pattern -: -PatternID -) -- -> -GroupInfoError -{ -GroupInfoError -{ -kind -: -GroupInfoErrorKind -: -: -FirstMustBeUnnamed -{ -pattern -} -} -} -fn -duplicate -( -pattern -: -PatternID -name -: -& -str -) -- -> -GroupInfoError -{ -GroupInfoError -{ -kind -: -GroupInfoErrorKind -: -: -Duplicate -{ -pattern -name -: -String -: -: -from -( -name -) -} -} -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -GroupInfoError -{ -fn -source -( -& -self -) -- -> -Option -< -& -( -dyn -std -: -: -error -: -: -Error -+ -' -static -) -> -{ -match -self -. -kind -{ -GroupInfoErrorKind -: -: -TooManyPatterns -{ -. -. -} -| -GroupInfoErrorKind -: -: -TooManyGroups -{ -. -. -} -| -GroupInfoErrorKind -: -: -MissingGroups -{ -. -. -} -| -GroupInfoErrorKind -: -: -FirstMustBeUnnamed -{ -. -. -} -| -GroupInfoErrorKind -: -: -Duplicate -{ -. -. -} -= -> -None -} -} -} -impl -core -: -: -fmt -: -: -Display -for -GroupInfoError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -use -self -: -: -GroupInfoErrorKind -: -: -* -; -match -self -. -kind -{ -TooManyPatterns -{ -ref -err -} -= -> -{ -write -! -( -f -" -too -many -patterns -to -build -capture -info -: -{ -} -" -err -) -} -TooManyGroups -{ -pattern -minimum -} -= -> -{ -write -! -( -f -" -too -many -capture -groups -( -at -least -{ -} -) -were -\ -found -for -pattern -{ -} -" -minimum -pattern -. -as_usize -( -) -) -} -MissingGroups -{ -pattern -} -= -> -write -! -( -f -" -no -capturing -groups -found -for -pattern -{ -} -\ -( -either -all -patterns -have -zero -groups -or -all -patterns -have -\ -at -least -one -group -) -" -pattern -. -as_usize -( -) -) -FirstMustBeUnnamed -{ -pattern -} -= -> -write -! -( -f -" -first -capture -group -( -at -index -0 -) -for -pattern -{ -} -has -a -name -\ -( -it -must -be -unnamed -) -" -pattern -. -as_usize -( -) -) -Duplicate -{ -pattern -ref -name -} -= -> -write -! -( -f -" -duplicate -capture -group -name -' -{ -} -' -found -for -pattern -{ -} -" -name -pattern -. -as_usize -( -) -) -} -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -GroupInfoPatternNames -< -' -a -> -{ -it -: -core -: -: -slice -: -: -Iter -< -' -a -Option -< -Arc -< -str -> -> -> -} -impl -GroupInfoPatternNames -< -' -static -> -{ -fn -empty -( -) -- -> -GroupInfoPatternNames -< -' -static -> -{ -GroupInfoPatternNames -{ -it -: -[ -] -. -iter -( -) -} -} -} -impl -< -' -a -> -Iterator -for -GroupInfoPatternNames -< -' -a -> -{ -type -Item -= -Option -< -& -' -a -str -> -; -fn -next -( -& -mut -self -) -- -> -Option -< -Option -< -& -' -a -str -> -> -{ -self -. -it -. -next -( -) -. -map -( -| -x -| -x -. -as_deref -( -) -) -} -fn -size_hint -( -& -self -) -- -> -( -usize -Option -< -usize -> -) -{ -self -. -it -. -size_hint -( -) -} -fn -count -( -self -) -- -> -usize -{ -self -. -it -. -count -( -) -} -} -impl -< -' -a -> -ExactSizeIterator -for -GroupInfoPatternNames -< -' -a -> -{ -} -impl -< -' -a -> -core -: -: -iter -: -: -FusedIterator -for -GroupInfoPatternNames -< -' -a -> -{ -} -# -[ -derive -( -Debug -) -] -pub -struct -GroupInfoAllNames -< -' -a -> -{ -group_info -: -& -' -a -GroupInfo -pids -: -PatternIDIter -current_pid -: -Option -< -PatternID -> -names -: -Option -< -core -: -: -iter -: -: -Enumerate -< -GroupInfoPatternNames -< -' -a -> -> -> -} -impl -< -' -a -> -Iterator -for -GroupInfoAllNames -< -' -a -> -{ -type -Item -= -( -PatternID -usize -Option -< -& -' -a -str -> -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -PatternID -usize -Option -< -& -' -a -str -> -) -> -{ -if -self -. -group_info -. -0 -. -index_to_name -. -is_empty -( -) -{ -return -None -; -} -if -self -. -current_pid -. -is_none -( -) -{ -self -. -current_pid -= -Some -( -self -. -pids -. -next -( -) -? -) -; -} -let -pid -= -self -. -current_pid -. -unwrap -( -) -; -if -self -. -names -. -is_none -( -) -{ -self -. -names -= -Some -( -self -. -group_info -. -pattern_names -( -pid -) -. -enumerate -( -) -) -; -} -let -( -group_index -name -) -= -match -self -. -names -. -as_mut -( -) -. -unwrap -( -) -. -next -( -) -{ -Some -( -( -group_index -name -) -) -= -> -( -group_index -name -) -None -= -> -{ -self -. -current_pid -= -None -; -self -. -names -= -None -; -return -self -. -next -( -) -; -} -} -; -Some -( -( -pid -group_index -name -) -) -} -} diff --git a/third_party/rust/regex-automata/src/util/determinize/mod.rs b/third_party/rust/regex-automata/src/util/determinize/mod.rs deleted file mode 100644 index d12719753a2b4..0000000000000 --- a/third_party/rust/regex-automata/src/util/determinize/mod.rs +++ /dev/null @@ -1,1914 +0,0 @@ -use -alloc -: -: -vec -: -: -Vec -; -pub -( -crate -) -use -self -: -: -state -: -: -{ -State -StateBuilderEmpty -StateBuilderMatches -StateBuilderNFA -} -; -use -crate -: -: -{ -nfa -: -: -thompson -util -: -: -{ -alphabet -look -: -: -{ -Look -LookSet -} -primitives -: -: -StateID -search -: -: -MatchKind -sparse_set -: -: -{ -SparseSet -SparseSets -} -start -: -: -Start -utf8 -} -} -; -mod -state -; -pub -( -crate -) -fn -next -( -nfa -: -& -thompson -: -: -NFA -match_kind -: -MatchKind -sparses -: -& -mut -SparseSets -stack -: -& -mut -Vec -< -StateID -> -state -: -& -State -unit -: -alphabet -: -: -Unit -empty_builder -: -StateBuilderEmpty -) -- -> -StateBuilderNFA -{ -sparses -. -clear -( -) -; -let -rev -= -nfa -. -is_reverse -( -) -; -let -lookm -= -nfa -. -look_matcher -( -) -; -state -. -iter_nfa_state_ids -( -| -nfa_id -| -{ -sparses -. -set1 -. -insert -( -nfa_id -) -; -} -) -; -if -! -state -. -look_need -( -) -. -is_empty -( -) -{ -let -mut -look_have -= -state -. -look_have -( -) -. -clone -( -) -; -match -unit -. -as_u8 -( -) -{ -Some -( -b -' -\ -r -' -) -= -> -{ -if -! -rev -| -| -! -state -. -is_half_crlf -( -) -{ -look_have -= -look_have -. -insert -( -Look -: -: -EndCRLF -) -; -} -} -Some -( -b -' -\ -n -' -) -= -> -{ -if -rev -| -| -! -state -. -is_half_crlf -( -) -{ -look_have -= -look_have -. -insert -( -Look -: -: -EndCRLF -) -; -} -} -Some -( -_ -) -= -> -{ -} -None -= -> -{ -look_have -= -look_have -. -insert -( -Look -: -: -End -) -; -look_have -= -look_have -. -insert -( -Look -: -: -EndLF -) -; -look_have -= -look_have -. -insert -( -Look -: -: -EndCRLF -) -; -} -} -if -unit -. -is_byte -( -lookm -. -get_line_terminator -( -) -) -{ -look_have -= -look_have -. -insert -( -Look -: -: -EndLF -) -; -} -if -state -. -is_half_crlf -( -) -& -& -( -( -rev -& -& -! -unit -. -is_byte -( -b -' -\ -r -' -) -) -| -| -( -! -rev -& -& -! -unit -. -is_byte -( -b -' -\ -n -' -) -) -) -{ -look_have -= -look_have -. -insert -( -Look -: -: -StartCRLF -) -; -} -if -state -. -is_from_word -( -) -= -= -unit -. -is_word_byte -( -) -{ -look_have -= -look_have -. -insert -( -Look -: -: -WordUnicodeNegate -) -; -look_have -= -look_have -. -insert -( -Look -: -: -WordAsciiNegate -) -; -} -else -{ -look_have -= -look_have -. -insert -( -Look -: -: -WordUnicode -) -; -look_have -= -look_have -. -insert -( -Look -: -: -WordAscii -) -; -} -if -! -look_have -. -subtract -( -state -. -look_have -( -) -) -. -intersect -( -state -. -look_need -( -) -) -. -is_empty -( -) -{ -for -nfa_id -in -sparses -. -set1 -. -iter -( -) -{ -epsilon_closure -( -nfa -nfa_id -look_have -stack -& -mut -sparses -. -set2 -) -; -} -sparses -. -swap -( -) -; -sparses -. -set2 -. -clear -( -) -; -} -} -let -mut -builder -= -empty_builder -. -into_matches -( -) -; -if -nfa -. -look_set_any -( -) -. -contains_anchor_line -( -) -& -& -unit -. -is_byte -( -lookm -. -get_line_terminator -( -) -) -{ -builder -. -set_look_have -( -| -have -| -have -. -insert -( -Look -: -: -StartLF -) -) -; -} -if -nfa -. -look_set_any -( -) -. -contains_anchor_crlf -( -) -& -& -( -( -rev -& -& -unit -. -is_byte -( -b -' -\ -r -' -) -) -| -| -( -! -rev -& -& -unit -. -is_byte -( -b -' -\ -n -' -) -) -) -{ -builder -. -set_look_have -( -| -have -| -have -. -insert -( -Look -: -: -StartCRLF -) -) -; -} -for -nfa_id -in -sparses -. -set1 -. -iter -( -) -{ -match -* -nfa -. -state -( -nfa_id -) -{ -thompson -: -: -State -: -: -Union -{ -. -. -} -| -thompson -: -: -State -: -: -BinaryUnion -{ -. -. -} -| -thompson -: -: -State -: -: -Fail -| -thompson -: -: -State -: -: -Look -{ -. -. -} -| -thompson -: -: -State -: -: -Capture -{ -. -. -} -= -> -{ -} -thompson -: -: -State -: -: -Match -{ -pattern_id -} -= -> -{ -builder -. -add_match_pattern_id -( -pattern_id -) -; -if -! -match_kind -. -continue_past_first_match -( -) -{ -break -; -} -} -thompson -: -: -State -: -: -ByteRange -{ -ref -trans -} -= -> -{ -if -trans -. -matches_unit -( -unit -) -{ -epsilon_closure -( -nfa -trans -. -next -builder -. -look_have -( -) -stack -& -mut -sparses -. -set2 -) -; -} -} -thompson -: -: -State -: -: -Sparse -( -ref -sparse -) -= -> -{ -if -let -Some -( -next -) -= -sparse -. -matches_unit -( -unit -) -{ -epsilon_closure -( -nfa -next -builder -. -look_have -( -) -stack -& -mut -sparses -. -set2 -) -; -} -} -thompson -: -: -State -: -: -Dense -( -ref -dense -) -= -> -{ -if -let -Some -( -next -) -= -dense -. -matches_unit -( -unit -) -{ -epsilon_closure -( -nfa -next -builder -. -look_have -( -) -stack -& -mut -sparses -. -set2 -) -; -} -} -} -} -if -! -sparses -. -set2 -. -is_empty -( -) -{ -if -nfa -. -look_set_any -( -) -. -contains_word -( -) -& -& -unit -. -is_word_byte -( -) -{ -builder -. -set_is_from_word -( -) -; -} -if -nfa -. -look_set_any -( -) -. -contains_anchor_crlf -( -) -& -& -( -( -rev -& -& -unit -. -is_byte -( -b -' -\ -n -' -) -) -| -| -( -! -rev -& -& -unit -. -is_byte -( -b -' -\ -r -' -) -) -) -{ -builder -. -set_is_half_crlf -( -) -; -} -} -let -mut -builder_nfa -= -builder -. -into_nfa -( -) -; -add_nfa_states -( -nfa -& -sparses -. -set2 -& -mut -builder_nfa -) -; -builder_nfa -} -pub -( -crate -) -fn -epsilon_closure -( -nfa -: -& -thompson -: -: -NFA -start_nfa_id -: -StateID -look_have -: -LookSet -stack -: -& -mut -Vec -< -StateID -> -set -: -& -mut -SparseSet -) -{ -assert -! -( -stack -. -is_empty -( -) -) -; -if -! -nfa -. -state -( -start_nfa_id -) -. -is_epsilon -( -) -{ -set -. -insert -( -start_nfa_id -) -; -return -; -} -stack -. -push -( -start_nfa_id -) -; -while -let -Some -( -mut -id -) -= -stack -. -pop -( -) -{ -loop -{ -if -! -set -. -insert -( -id -) -{ -break -; -} -match -* -nfa -. -state -( -id -) -{ -thompson -: -: -State -: -: -ByteRange -{ -. -. -} -| -thompson -: -: -State -: -: -Sparse -{ -. -. -} -| -thompson -: -: -State -: -: -Dense -{ -. -. -} -| -thompson -: -: -State -: -: -Fail -| -thompson -: -: -State -: -: -Match -{ -. -. -} -= -> -break -thompson -: -: -State -: -: -Look -{ -look -next -} -= -> -{ -if -! -look_have -. -contains -( -look -) -{ -break -; -} -id -= -next -; -} -thompson -: -: -State -: -: -Union -{ -ref -alternates -} -= -> -{ -id -= -match -alternates -. -get -( -0 -) -{ -None -= -> -break -Some -( -& -id -) -= -> -id -} -; -stack -. -extend -( -alternates -[ -1 -. -. -] -. -iter -( -) -. -rev -( -) -) -; -} -thompson -: -: -State -: -: -BinaryUnion -{ -alt1 -alt2 -} -= -> -{ -id -= -alt1 -; -stack -. -push -( -alt2 -) -; -} -thompson -: -: -State -: -: -Capture -{ -next -. -. -} -= -> -{ -id -= -next -; -} -} -} -} -} -pub -( -crate -) -fn -add_nfa_states -( -nfa -: -& -thompson -: -: -NFA -set -: -& -SparseSet -builder -: -& -mut -StateBuilderNFA -) -{ -for -nfa_id -in -set -. -iter -( -) -{ -match -* -nfa -. -state -( -nfa_id -) -{ -thompson -: -: -State -: -: -ByteRange -{ -. -. -} -= -> -{ -builder -. -add_nfa_state_id -( -nfa_id -) -; -} -thompson -: -: -State -: -: -Sparse -{ -. -. -} -= -> -{ -builder -. -add_nfa_state_id -( -nfa_id -) -; -} -thompson -: -: -State -: -: -Dense -{ -. -. -} -= -> -{ -builder -. -add_nfa_state_id -( -nfa_id -) -; -} -thompson -: -: -State -: -: -Look -{ -look -. -. -} -= -> -{ -builder -. -add_nfa_state_id -( -nfa_id -) -; -builder -. -set_look_need -( -| -need -| -need -. -insert -( -look -) -) -; -} -thompson -: -: -State -: -: -Union -{ -. -. -} -| -thompson -: -: -State -: -: -BinaryUnion -{ -. -. -} -= -> -{ -builder -. -add_nfa_state_id -( -nfa_id -) -; -} -thompson -: -: -State -: -: -Capture -{ -. -. -} -= -> -{ -} -thompson -: -: -State -: -: -Fail -= -> -{ -builder -. -add_nfa_state_id -( -nfa_id -) -; -} -thompson -: -: -State -: -: -Match -{ -. -. -} -= -> -{ -builder -. -add_nfa_state_id -( -nfa_id -) -; -} -} -} -if -builder -. -look_need -( -) -. -is_empty -( -) -{ -builder -. -set_look_have -( -| -_ -| -LookSet -: -: -empty -( -) -) -; -} -} -pub -( -crate -) -fn -set_lookbehind_from_start -( -nfa -: -& -thompson -: -: -NFA -start -: -& -Start -builder -: -& -mut -StateBuilderMatches -) -{ -let -rev -= -nfa -. -is_reverse -( -) -; -let -lineterm -= -nfa -. -look_matcher -( -) -. -get_line_terminator -( -) -; -match -* -start -{ -Start -: -: -NonWordByte -= -> -{ -} -Start -: -: -WordByte -= -> -{ -builder -. -set_is_from_word -( -) -; -} -Start -: -: -Text -= -> -{ -builder -. -set_look_have -( -| -have -| -{ -have -. -insert -( -Look -: -: -Start -) -. -insert -( -Look -: -: -StartLF -) -. -insert -( -Look -: -: -StartCRLF -) -} -) -; -} -Start -: -: -LineLF -= -> -{ -if -rev -{ -builder -. -set_is_half_crlf -( -) -; -builder -. -set_look_have -( -| -have -| -have -. -insert -( -Look -: -: -StartLF -) -) -; -} -else -{ -builder -. -set_look_have -( -| -have -| -have -. -insert -( -Look -: -: -StartCRLF -) -) -; -} -if -lineterm -= -= -b -' -\ -n -' -{ -builder -. -set_look_have -( -| -have -| -have -. -insert -( -Look -: -: -StartLF -) -) -; -} -} -Start -: -: -LineCR -= -> -{ -if -rev -{ -builder -. -set_look_have -( -| -have -| -have -. -insert -( -Look -: -: -StartCRLF -) -) -; -} -else -{ -builder -. -set_is_half_crlf -( -) -; -} -if -lineterm -= -= -b -' -\ -r -' -{ -builder -. -set_look_have -( -| -have -| -have -. -insert -( -Look -: -: -StartLF -) -) -; -} -} -Start -: -: -CustomLineTerminator -= -> -{ -builder -. -set_look_have -( -| -have -| -have -. -insert -( -Look -: -: -StartLF -) -) -; -if -utf8 -: -: -is_word_byte -( -lineterm -) -{ -builder -. -set_is_from_word -( -) -; -} -} -} -} diff --git a/third_party/rust/regex-automata/src/util/determinize/state.rs b/third_party/rust/regex-automata/src/util/determinize/state.rs deleted file mode 100644 index 982fd5f331141..0000000000000 --- a/third_party/rust/regex-automata/src/util/determinize/state.rs +++ /dev/null @@ -1,3741 +0,0 @@ -use -core -: -: -{ -convert -: -: -TryFrom -mem -} -; -use -alloc -: -: -{ -sync -: -: -Arc -vec -: -: -Vec -} -; -use -crate -: -: -util -: -: -{ -int -: -: -{ -I32 -U32 -} -look -: -: -LookSet -primitives -: -: -{ -PatternID -StateID -} -wire -: -: -{ -self -Endian -} -} -; -# -[ -derive -( -Clone -Eq -Hash -PartialEq -PartialOrd -Ord -) -] -pub -( -crate -) -struct -State -( -Arc -< -[ -u8 -] -> -) -; -impl -core -: -: -borrow -: -: -Borrow -< -[ -u8 -] -> -for -State -{ -fn -borrow -( -& -self -) -- -> -& -[ -u8 -] -{ -& -* -self -. -0 -} -} -impl -core -: -: -fmt -: -: -Debug -for -State -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_tuple -( -" -State -" -) -. -field -( -& -self -. -repr -( -) -) -. -finish -( -) -} -} -impl -State -{ -pub -( -crate -) -fn -dead -( -) -- -> -State -{ -StateBuilderEmpty -: -: -new -( -) -. -into_matches -( -) -. -into_nfa -( -) -. -to_state -( -) -} -pub -( -crate -) -fn -is_match -( -& -self -) -- -> -bool -{ -self -. -repr -( -) -. -is_match -( -) -} -pub -( -crate -) -fn -is_from_word -( -& -self -) -- -> -bool -{ -self -. -repr -( -) -. -is_from_word -( -) -} -pub -( -crate -) -fn -is_half_crlf -( -& -self -) -- -> -bool -{ -self -. -repr -( -) -. -is_half_crlf -( -) -} -pub -( -crate -) -fn -look_have -( -& -self -) -- -> -LookSet -{ -self -. -repr -( -) -. -look_have -( -) -} -pub -( -crate -) -fn -look_need -( -& -self -) -- -> -LookSet -{ -self -. -repr -( -) -. -look_need -( -) -} -pub -( -crate -) -fn -match_len -( -& -self -) -- -> -usize -{ -self -. -repr -( -) -. -match_len -( -) -} -pub -( -crate -) -fn -match_pattern -( -& -self -index -: -usize -) -- -> -PatternID -{ -self -. -repr -( -) -. -match_pattern -( -index -) -} -pub -( -crate -) -fn -match_pattern_ids -( -& -self -) -- -> -Option -< -Vec -< -PatternID -> -> -{ -self -. -repr -( -) -. -match_pattern_ids -( -) -} -# -[ -cfg -( -all -( -test -not -( -miri -) -) -) -] -pub -( -crate -) -fn -iter_match_pattern_ids -< -F -: -FnMut -( -PatternID -) -> -( -& -self -f -: -F -) -{ -self -. -repr -( -) -. -iter_match_pattern_ids -( -f -) -} -pub -( -crate -) -fn -iter_nfa_state_ids -< -F -: -FnMut -( -StateID -) -> -( -& -self -f -: -F -) -{ -self -. -repr -( -) -. -iter_nfa_state_ids -( -f -) -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -0 -. -len -( -) -} -fn -repr -( -& -self -) -- -> -Repr -< -' -_ -> -{ -Repr -( -& -* -self -. -0 -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -StateBuilderEmpty -( -Vec -< -u8 -> -) -; -impl -StateBuilderEmpty -{ -pub -( -crate -) -fn -new -( -) -- -> -StateBuilderEmpty -{ -StateBuilderEmpty -( -alloc -: -: -vec -! -[ -] -) -} -pub -( -crate -) -fn -into_matches -( -mut -self -) -- -> -StateBuilderMatches -{ -self -. -0 -. -extend_from_slice -( -& -[ -0 -0 -0 -0 -0 -] -) -; -StateBuilderMatches -( -self -. -0 -) -} -fn -clear -( -& -mut -self -) -{ -self -. -0 -. -clear -( -) -; -} -pub -( -crate -) -fn -capacity -( -& -self -) -- -> -usize -{ -self -. -0 -. -capacity -( -) -} -} -# -[ -derive -( -Clone -) -] -pub -( -crate -) -struct -StateBuilderMatches -( -Vec -< -u8 -> -) -; -impl -core -: -: -fmt -: -: -Debug -for -StateBuilderMatches -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_tuple -( -" -StateBuilderMatches -" -) -. -field -( -& -self -. -repr -( -) -) -. -finish -( -) -} -} -impl -StateBuilderMatches -{ -pub -( -crate -) -fn -into_nfa -( -mut -self -) -- -> -StateBuilderNFA -{ -self -. -repr_vec -( -) -. -close_match_pattern_ids -( -) -; -StateBuilderNFA -{ -repr -: -self -. -0 -prev_nfa_state_id -: -StateID -: -: -ZERO -} -} -pub -( -crate -) -fn -set_is_from_word -( -& -mut -self -) -{ -self -. -repr_vec -( -) -. -set_is_from_word -( -) -} -pub -( -crate -) -fn -set_is_half_crlf -( -& -mut -self -) -{ -self -. -repr_vec -( -) -. -set_is_half_crlf -( -) -} -pub -( -crate -) -fn -look_have -( -& -self -) -- -> -LookSet -{ -LookSet -: -: -read_repr -( -& -self -. -0 -[ -1 -. -. -] -) -} -pub -( -crate -) -fn -set_look_have -( -& -mut -self -set -: -impl -FnMut -( -LookSet -) -- -> -LookSet -) -{ -self -. -repr_vec -( -) -. -set_look_have -( -set -) -} -pub -( -crate -) -fn -add_match_pattern_id -( -& -mut -self -pid -: -PatternID -) -{ -self -. -repr_vec -( -) -. -add_match_pattern_id -( -pid -) -} -fn -repr -( -& -self -) -- -> -Repr -< -' -_ -> -{ -Repr -( -& -self -. -0 -) -} -fn -repr_vec -( -& -mut -self -) -- -> -ReprVec -< -' -_ -> -{ -ReprVec -( -& -mut -self -. -0 -) -} -} -# -[ -derive -( -Clone -) -] -pub -( -crate -) -struct -StateBuilderNFA -{ -repr -: -Vec -< -u8 -> -prev_nfa_state_id -: -StateID -} -impl -core -: -: -fmt -: -: -Debug -for -StateBuilderNFA -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_tuple -( -" -StateBuilderNFA -" -) -. -field -( -& -self -. -repr -( -) -) -. -finish -( -) -} -} -impl -StateBuilderNFA -{ -pub -( -crate -) -fn -to_state -( -& -self -) -- -> -State -{ -State -( -Arc -: -: -from -( -& -* -self -. -repr -) -) -} -pub -( -crate -) -fn -clear -( -self -) -- -> -StateBuilderEmpty -{ -let -mut -builder -= -StateBuilderEmpty -( -self -. -repr -) -; -builder -. -clear -( -) -; -builder -} -pub -( -crate -) -fn -look_need -( -& -self -) -- -> -LookSet -{ -self -. -repr -( -) -. -look_need -( -) -} -pub -( -crate -) -fn -set_look_have -( -& -mut -self -set -: -impl -FnMut -( -LookSet -) -- -> -LookSet -) -{ -self -. -repr_vec -( -) -. -set_look_have -( -set -) -} -pub -( -crate -) -fn -set_look_need -( -& -mut -self -set -: -impl -FnMut -( -LookSet -) -- -> -LookSet -) -{ -self -. -repr_vec -( -) -. -set_look_need -( -set -) -} -pub -( -crate -) -fn -add_nfa_state_id -( -& -mut -self -sid -: -StateID -) -{ -ReprVec -( -& -mut -self -. -repr -) -. -add_nfa_state_id -( -& -mut -self -. -prev_nfa_state_id -sid -) -} -pub -( -crate -) -fn -as_bytes -( -& -self -) -- -> -& -[ -u8 -] -{ -& -self -. -repr -} -fn -repr -( -& -self -) -- -> -Repr -< -' -_ -> -{ -Repr -( -& -self -. -repr -) -} -fn -repr_vec -( -& -mut -self -) -- -> -ReprVec -< -' -_ -> -{ -ReprVec -( -& -mut -self -. -repr -) -} -} -struct -Repr -< -' -a -> -( -& -' -a -[ -u8 -] -) -; -impl -< -' -a -> -Repr -< -' -a -> -{ -fn -is_match -( -& -self -) -- -> -bool -{ -self -. -0 -[ -0 -] -& -( -1 -< -< -0 -) -> -0 -} -fn -has_pattern_ids -( -& -self -) -- -> -bool -{ -self -. -0 -[ -0 -] -& -( -1 -< -< -1 -) -> -0 -} -fn -is_from_word -( -& -self -) -- -> -bool -{ -self -. -0 -[ -0 -] -& -( -1 -< -< -2 -) -> -0 -} -fn -is_half_crlf -( -& -self -) -- -> -bool -{ -self -. -0 -[ -0 -] -& -( -1 -< -< -3 -) -> -0 -} -fn -look_have -( -& -self -) -- -> -LookSet -{ -LookSet -: -: -read_repr -( -& -self -. -0 -[ -1 -. -. -] -) -} -fn -look_need -( -& -self -) -- -> -LookSet -{ -LookSet -: -: -read_repr -( -& -self -. -0 -[ -3 -. -. -] -) -} -fn -match_len -( -& -self -) -- -> -usize -{ -if -! -self -. -is_match -( -) -{ -return -0 -; -} -else -if -! -self -. -has_pattern_ids -( -) -{ -1 -} -else -{ -self -. -encoded_pattern_len -( -) -} -} -fn -match_pattern -( -& -self -index -: -usize -) -- -> -PatternID -{ -if -! -self -. -has_pattern_ids -( -) -{ -PatternID -: -: -ZERO -} -else -{ -let -offset -= -9 -+ -index -* -PatternID -: -: -SIZE -; -wire -: -: -read_pattern_id_unchecked -( -& -self -. -0 -[ -offset -. -. -] -) -. -0 -} -} -fn -match_pattern_ids -( -& -self -) -- -> -Option -< -Vec -< -PatternID -> -> -{ -if -! -self -. -is_match -( -) -{ -return -None -; -} -let -mut -pids -= -alloc -: -: -vec -! -[ -] -; -self -. -iter_match_pattern_ids -( -| -pid -| -pids -. -push -( -pid -) -) -; -Some -( -pids -) -} -fn -iter_match_pattern_ids -< -F -: -FnMut -( -PatternID -) -> -( -& -self -mut -f -: -F -) -{ -if -! -self -. -is_match -( -) -{ -return -; -} -if -! -self -. -has_pattern_ids -( -) -{ -f -( -PatternID -: -: -ZERO -) -; -return -; -} -let -mut -pids -= -& -self -. -0 -[ -9 -. -. -self -. -pattern_offset_end -( -) -] -; -while -! -pids -. -is_empty -( -) -{ -let -pid -= -wire -: -: -read_u32 -( -pids -) -; -pids -= -& -pids -[ -PatternID -: -: -SIZE -. -. -] -; -f -( -PatternID -: -: -new_unchecked -( -usize -: -: -try_from -( -pid -) -. -unwrap -( -) -) -) -; -} -} -fn -iter_nfa_state_ids -< -F -: -FnMut -( -StateID -) -> -( -& -self -mut -f -: -F -) -{ -let -mut -sids -= -& -self -. -0 -[ -self -. -pattern_offset_end -( -) -. -. -] -; -let -mut -prev -= -0i32 -; -while -! -sids -. -is_empty -( -) -{ -let -( -delta -nr -) -= -read_vari32 -( -sids -) -; -sids -= -& -sids -[ -nr -. -. -] -; -let -sid -= -prev -+ -delta -; -prev -= -sid -; -f -( -StateID -: -: -new_unchecked -( -sid -. -as_usize -( -) -) -) -} -} -fn -pattern_offset_end -( -& -self -) -- -> -usize -{ -let -encoded -= -self -. -encoded_pattern_len -( -) -; -if -encoded -= -= -0 -{ -return -5 -; -} -encoded -. -checked_mul -( -4 -) -. -unwrap -( -) -. -checked_add -( -9 -) -. -unwrap -( -) -} -fn -encoded_pattern_len -( -& -self -) -- -> -usize -{ -if -! -self -. -has_pattern_ids -( -) -{ -return -0 -; -} -usize -: -: -try_from -( -wire -: -: -read_u32 -( -& -self -. -0 -[ -5 -. -. -9 -] -) -) -. -unwrap -( -) -} -} -impl -< -' -a -> -core -: -: -fmt -: -: -Debug -for -Repr -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -let -mut -nfa_ids -= -alloc -: -: -vec -! -[ -] -; -self -. -iter_nfa_state_ids -( -| -sid -| -nfa_ids -. -push -( -sid -) -) -; -f -. -debug_struct -( -" -Repr -" -) -. -field -( -" -is_match -" -& -self -. -is_match -( -) -) -. -field -( -" -is_from_word -" -& -self -. -is_from_word -( -) -) -. -field -( -" -is_half_crlf -" -& -self -. -is_half_crlf -( -) -) -. -field -( -" -look_have -" -& -self -. -look_have -( -) -) -. -field -( -" -look_need -" -& -self -. -look_need -( -) -) -. -field -( -" -match_pattern_ids -" -& -self -. -match_pattern_ids -( -) -) -. -field -( -" -nfa_state_ids -" -& -nfa_ids -) -. -finish -( -) -} -} -struct -ReprVec -< -' -a -> -( -& -' -a -mut -Vec -< -u8 -> -) -; -impl -< -' -a -> -ReprVec -< -' -a -> -{ -fn -set_is_match -( -& -mut -self -) -{ -self -. -0 -[ -0 -] -| -= -1 -< -< -0 -; -} -fn -set_has_pattern_ids -( -& -mut -self -) -{ -self -. -0 -[ -0 -] -| -= -1 -< -< -1 -; -} -fn -set_is_from_word -( -& -mut -self -) -{ -self -. -0 -[ -0 -] -| -= -1 -< -< -2 -; -} -fn -set_is_half_crlf -( -& -mut -self -) -{ -self -. -0 -[ -0 -] -| -= -1 -< -< -3 -; -} -fn -look_have -( -& -self -) -- -> -LookSet -{ -self -. -repr -( -) -. -look_have -( -) -} -fn -look_need -( -& -self -) -- -> -LookSet -{ -self -. -repr -( -) -. -look_need -( -) -} -fn -set_look_have -( -& -mut -self -mut -set -: -impl -FnMut -( -LookSet -) -- -> -LookSet -) -{ -set -( -self -. -look_have -( -) -) -. -write_repr -( -& -mut -self -. -0 -[ -1 -. -. -] -) -; -} -fn -set_look_need -( -& -mut -self -mut -set -: -impl -FnMut -( -LookSet -) -- -> -LookSet -) -{ -set -( -self -. -look_need -( -) -) -. -write_repr -( -& -mut -self -. -0 -[ -3 -. -. -] -) -; -} -fn -add_match_pattern_id -( -& -mut -self -pid -: -PatternID -) -{ -if -! -self -. -repr -( -) -. -has_pattern_ids -( -) -{ -if -pid -= -= -PatternID -: -: -ZERO -{ -self -. -set_is_match -( -) -; -return -; -} -self -. -0 -. -extend -( -core -: -: -iter -: -: -repeat -( -0 -) -. -take -( -PatternID -: -: -SIZE -) -) -; -self -. -set_has_pattern_ids -( -) -; -if -self -. -repr -( -) -. -is_match -( -) -{ -write_u32 -( -self -. -0 -0 -) -} -else -{ -self -. -set_is_match -( -) -; -} -} -write_u32 -( -self -. -0 -pid -. -as_u32 -( -) -) -; -} -fn -close_match_pattern_ids -( -& -mut -self -) -{ -if -! -self -. -repr -( -) -. -has_pattern_ids -( -) -{ -return -; -} -let -patsize -= -PatternID -: -: -SIZE -; -let -pattern_bytes -= -self -. -0 -. -len -( -) -- -9 -; -assert_eq -! -( -pattern_bytes -% -patsize -0 -) -; -let -count32 -= -u32 -: -: -try_from -( -pattern_bytes -/ -patsize -) -. -unwrap -( -) -; -wire -: -: -NE -: -: -write_u32 -( -count32 -& -mut -self -. -0 -[ -5 -. -. -9 -] -) -; -} -fn -add_nfa_state_id -( -& -mut -self -prev -: -& -mut -StateID -sid -: -StateID -) -{ -let -delta -= -sid -. -as_i32 -( -) -- -prev -. -as_i32 -( -) -; -write_vari32 -( -self -. -0 -delta -) -; -* -prev -= -sid -; -} -fn -repr -( -& -self -) -- -> -Repr -< -' -_ -> -{ -Repr -( -self -. -0 -. -as_slice -( -) -) -} -} -fn -write_vari32 -( -data -: -& -mut -Vec -< -u8 -> -n -: -i32 -) -{ -let -mut -un -= -n -. -to_bits -( -) -< -< -1 -; -if -n -< -0 -{ -un -= -! -un -; -} -write_varu32 -( -data -un -) -} -fn -read_vari32 -( -data -: -& -[ -u8 -] -) -- -> -( -i32 -usize -) -{ -let -( -un -i -) -= -read_varu32 -( -data -) -; -let -mut -n -= -i32 -: -: -from_bits -( -un -> -> -1 -) -; -if -un -& -1 -! -= -0 -{ -n -= -! -n -; -} -( -n -i -) -} -fn -write_varu32 -( -data -: -& -mut -Vec -< -u8 -> -mut -n -: -u32 -) -{ -while -n -> -= -0b1000_0000 -{ -data -. -push -( -n -. -low_u8 -( -) -| -0b1000_0000 -) -; -n -> -> -= -7 -; -} -data -. -push -( -n -. -low_u8 -( -) -) -; -} -fn -read_varu32 -( -data -: -& -[ -u8 -] -) -- -> -( -u32 -usize -) -{ -let -mut -n -: -u32 -= -0 -; -let -mut -shift -: -u32 -= -0 -; -for -( -i -& -b -) -in -data -. -iter -( -) -. -enumerate -( -) -{ -if -b -< -0b1000_0000 -{ -return -( -n -| -( -u32 -: -: -from -( -b -) -< -< -shift -) -i -+ -1 -) -; -} -n -| -= -( -u32 -: -: -from -( -b -) -& -0b0111_1111 -) -< -< -shift -; -shift -+ -= -7 -; -} -( -0 -0 -) -} -fn -write_u32 -( -dst -: -& -mut -Vec -< -u8 -> -n -: -u32 -) -{ -use -crate -: -: -util -: -: -wire -: -: -NE -; -let -start -= -dst -. -len -( -) -; -dst -. -extend -( -core -: -: -iter -: -: -repeat -( -0 -) -. -take -( -mem -: -: -size_of -: -: -< -u32 -> -( -) -) -) -; -NE -: -: -write_u32 -( -n -& -mut -dst -[ -start -. -. -] -) -; -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -alloc -: -: -vec -; -use -quickcheck -: -: -quickcheck -; -use -super -: -: -* -; -# -[ -cfg -( -not -( -miri -) -) -] -quickcheck -! -{ -fn -prop_state_read_write_nfa_state_ids -( -sids -: -Vec -< -StateID -> -) -- -> -bool -{ -/ -/ -Builders -states -do -not -permit -duplicate -IDs -. -let -sids -= -dedup_state_ids -( -sids -) -; -let -mut -b -= -StateBuilderEmpty -: -: -new -( -) -. -into_matches -( -) -. -into_nfa -( -) -; -for -& -sid -in -& -sids -{ -b -. -add_nfa_state_id -( -sid -) -; -} -let -s -= -b -. -to_state -( -) -; -let -mut -got -= -vec -! -[ -] -; -s -. -iter_nfa_state_ids -( -| -sid -| -got -. -push -( -sid -) -) -; -got -= -= -sids -} -fn -prop_state_read_write_pattern_ids -( -pids -: -Vec -< -PatternID -> -) -- -> -bool -{ -/ -/ -Builders -states -do -not -permit -duplicate -IDs -. -let -pids -= -dedup_pattern_ids -( -pids -) -; -let -mut -b -= -StateBuilderEmpty -: -: -new -( -) -. -into_matches -( -) -; -for -& -pid -in -& -pids -{ -b -. -add_match_pattern_id -( -pid -) -; -} -let -s -= -b -. -into_nfa -( -) -. -to_state -( -) -; -let -mut -got -= -vec -! -[ -] -; -s -. -iter_match_pattern_ids -( -| -pid -| -got -. -push -( -pid -) -) -; -got -= -= -pids -} -fn -prop_state_read_write_nfa_state_and_pattern_ids -( -sids -: -Vec -< -StateID -> -pids -: -Vec -< -PatternID -> -) -- -> -bool -{ -/ -/ -Builders -states -do -not -permit -duplicate -IDs -. -let -sids -= -dedup_state_ids -( -sids -) -; -let -pids -= -dedup_pattern_ids -( -pids -) -; -let -mut -b -= -StateBuilderEmpty -: -: -new -( -) -. -into_matches -( -) -; -for -& -pid -in -& -pids -{ -b -. -add_match_pattern_id -( -pid -) -; -} -let -mut -b -= -b -. -into_nfa -( -) -; -for -& -sid -in -& -sids -{ -b -. -add_nfa_state_id -( -sid -) -; -} -let -s -= -b -. -to_state -( -) -; -let -mut -got_pids -= -vec -! -[ -] -; -s -. -iter_match_pattern_ids -( -| -pid -| -got_pids -. -push -( -pid -) -) -; -let -mut -got_sids -= -vec -! -[ -] -; -s -. -iter_nfa_state_ids -( -| -sid -| -got_sids -. -push -( -sid -) -) -; -got_pids -= -= -pids -& -& -got_sids -= -= -sids -} -} -quickcheck -! -{ -fn -prop_read_write_varu32 -( -n -: -u32 -) -- -> -bool -{ -let -mut -buf -= -vec -! -[ -] -; -write_varu32 -( -& -mut -buf -n -) -; -let -( -got -nread -) -= -read_varu32 -( -& -buf -) -; -nread -= -= -buf -. -len -( -) -& -& -got -= -= -n -} -fn -prop_read_write_vari32 -( -n -: -i32 -) -- -> -bool -{ -let -mut -buf -= -vec -! -[ -] -; -write_vari32 -( -& -mut -buf -n -) -; -let -( -got -nread -) -= -read_vari32 -( -& -buf -) -; -nread -= -= -buf -. -len -( -) -& -& -got -= -= -n -} -} -# -[ -cfg -( -not -( -miri -) -) -] -fn -dedup_state_ids -( -sids -: -Vec -< -StateID -> -) -- -> -Vec -< -StateID -> -{ -let -mut -set -= -alloc -: -: -collections -: -: -BTreeSet -: -: -new -( -) -; -let -mut -deduped -= -vec -! -[ -] -; -for -sid -in -sids -{ -if -set -. -contains -( -& -sid -) -{ -continue -; -} -set -. -insert -( -sid -) -; -deduped -. -push -( -sid -) -; -} -deduped -} -# -[ -cfg -( -not -( -miri -) -) -] -fn -dedup_pattern_ids -( -pids -: -Vec -< -PatternID -> -) -- -> -Vec -< -PatternID -> -{ -let -mut -set -= -alloc -: -: -collections -: -: -BTreeSet -: -: -new -( -) -; -let -mut -deduped -= -vec -! -[ -] -; -for -pid -in -pids -{ -if -set -. -contains -( -& -pid -) -{ -continue -; -} -set -. -insert -( -pid -) -; -deduped -. -push -( -pid -) -; -} -deduped -} -} diff --git a/third_party/rust/regex-automata/src/util/empty.rs b/third_party/rust/regex-automata/src/util/empty.rs deleted file mode 100644 index c36699fc8bdb1..0000000000000 --- a/third_party/rust/regex-automata/src/util/empty.rs +++ /dev/null @@ -1,416 +0,0 @@ -use -crate -: -: -util -: -: -search -: -: -{ -Input -MatchError -} -; -# -[ -cold -] -# -[ -inline -( -never -) -] -pub -( -crate -) -fn -skip_splits_fwd -< -T -F -> -( -input -: -& -Input -< -' -_ -> -init_value -: -T -match_offset -: -usize -find -: -F -) -- -> -Result -< -Option -< -T -> -MatchError -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -( -T -usize -) -> -MatchError -> -{ -skip_splits -( -true -input -init_value -match_offset -find -) -} -# -[ -cold -] -# -[ -inline -( -never -) -] -pub -( -crate -) -fn -skip_splits_rev -< -T -F -> -( -input -: -& -Input -< -' -_ -> -init_value -: -T -match_offset -: -usize -find -: -F -) -- -> -Result -< -Option -< -T -> -MatchError -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -( -T -usize -) -> -MatchError -> -{ -skip_splits -( -false -input -init_value -match_offset -find -) -} -fn -skip_splits -< -T -F -> -( -forward -: -bool -input -: -& -Input -< -' -_ -> -init_value -: -T -mut -match_offset -: -usize -mut -find -: -F -) -- -> -Result -< -Option -< -T -> -MatchError -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -( -T -usize -) -> -MatchError -> -{ -if -input -. -get_anchored -( -) -. -is_anchored -( -) -{ -return -Ok -( -if -input -. -is_char_boundary -( -match_offset -) -{ -Some -( -init_value -) -} -else -{ -None -} -) -; -} -let -mut -value -= -init_value -; -let -mut -input -= -input -. -clone -( -) -; -while -! -input -. -is_char_boundary -( -match_offset -) -{ -if -forward -{ -input -. -set_start -( -input -. -start -( -) -. -checked_add -( -1 -) -. -unwrap -( -) -) -; -} -else -{ -input -. -set_end -( -match -input -. -end -( -) -. -checked_sub -( -1 -) -{ -None -= -> -return -Ok -( -None -) -Some -( -end -) -= -> -end -} -) -; -} -match -find -( -& -input -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -( -new_value -new_match_end -) -) -= -> -{ -value -= -new_value -; -match_offset -= -new_match_end -; -} -} -} -Ok -( -Some -( -value -) -) -} diff --git a/third_party/rust/regex-automata/src/util/escape.rs b/third_party/rust/regex-automata/src/util/escape.rs deleted file mode 100644 index 6a4a58472d102..0000000000000 --- a/third_party/rust/regex-automata/src/util/escape.rs +++ /dev/null @@ -1,503 +0,0 @@ -use -crate -: -: -util -: -: -utf8 -; -# -[ -derive -( -Clone -Copy -) -] -pub -struct -DebugByte -( -pub -u8 -) -; -impl -core -: -: -fmt -: -: -Debug -for -DebugByte -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -if -self -. -0 -= -= -b -' -' -{ -return -write -! -( -f -" -' -' -" -) -; -} -let -mut -bytes -= -[ -0u8 -; -10 -] -; -let -mut -len -= -0 -; -for -( -i -mut -b -) -in -core -: -: -ascii -: -: -escape_default -( -self -. -0 -) -. -enumerate -( -) -{ -if -i -> -= -2 -& -& -b -' -a -' -< -= -b -& -& -b -< -= -b -' -f -' -{ -b -- -= -32 -; -} -bytes -[ -len -] -= -b -; -len -+ -= -1 -; -} -write -! -( -f -" -{ -} -" -core -: -: -str -: -: -from_utf8 -( -& -bytes -[ -. -. -len -] -) -. -unwrap -( -) -) -} -} -pub -struct -DebugHaystack -< -' -a -> -( -pub -& -' -a -[ -u8 -] -) -; -impl -< -' -a -> -core -: -: -fmt -: -: -Debug -for -DebugHaystack -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -\ -" -" -) -? -; -let -mut -bytes -= -self -. -0 -; -while -let -Some -( -result -) -= -utf8 -: -: -decode -( -bytes -) -{ -let -ch -= -match -result -{ -Ok -( -ch -) -= -> -ch -Err -( -byte -) -= -> -{ -write -! -( -f -r -" -\ -x -{ -: -02x -} -" -byte -) -? -; -bytes -= -& -bytes -[ -1 -. -. -] -; -continue -; -} -} -; -bytes -= -& -bytes -[ -ch -. -len_utf8 -( -) -. -. -] -; -match -ch -{ -' -\ -0 -' -= -> -write -! -( -f -" -\ -\ -0 -" -) -? -' -\ -x01 -' -. -. -= -' -\ -x08 -' -| -' -\ -x0b -' -| -' -\ -x0c -' -| -' -\ -x0e -' -. -. -= -' -\ -x19 -' -| -' -\ -x7f -' -= -> -{ -write -! -( -f -" -\ -\ -x -{ -: -02x -} -" -u32 -: -: -from -( -ch -) -) -? -; -} -' -\ -n -' -| -' -\ -r -' -| -' -\ -t -' -| -_ -= -> -{ -write -! -( -f -" -{ -} -" -ch -. -escape_debug -( -) -) -? -; -} -} -} -write -! -( -f -" -\ -" -" -) -? -; -Ok -( -( -) -) -} -} diff --git a/third_party/rust/regex-automata/src/util/int.rs b/third_party/rust/regex-automata/src/util/int.rs deleted file mode 100644 index 178e6eafaefd1..0000000000000 --- a/third_party/rust/regex-automata/src/util/int.rs +++ /dev/null @@ -1,892 +0,0 @@ -pub -( -crate -) -trait -U8 -{ -fn -as_usize -( -self -) -- -> -usize -; -} -impl -U8 -for -u8 -{ -fn -as_usize -( -self -) -- -> -usize -{ -usize -: -: -from -( -self -) -} -} -pub -( -crate -) -trait -U16 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -low_u8 -( -self -) -- -> -u8 -; -fn -high_u8 -( -self -) -- -> -u8 -; -} -impl -U16 -for -u16 -{ -fn -as_usize -( -self -) -- -> -usize -{ -usize -: -: -from -( -self -) -} -fn -low_u8 -( -self -) -- -> -u8 -{ -self -as -u8 -} -fn -high_u8 -( -self -) -- -> -u8 -{ -( -self -> -> -8 -) -as -u8 -} -} -pub -( -crate -) -trait -U32 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -low_u8 -( -self -) -- -> -u8 -; -fn -low_u16 -( -self -) -- -> -u16 -; -fn -high_u16 -( -self -) -- -> -u16 -; -} -impl -U32 -for -u32 -{ -fn -as_usize -( -self -) -- -> -usize -{ -# -[ -cfg -( -debug_assertions -) -] -{ -usize -: -: -try_from -( -self -) -. -expect -( -" -u32 -overflowed -usize -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -usize -} -} -fn -low_u8 -( -self -) -- -> -u8 -{ -self -as -u8 -} -fn -low_u16 -( -self -) -- -> -u16 -{ -self -as -u16 -} -fn -high_u16 -( -self -) -- -> -u16 -{ -( -self -> -> -16 -) -as -u16 -} -} -pub -( -crate -) -trait -U64 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -low_u8 -( -self -) -- -> -u8 -; -fn -low_u16 -( -self -) -- -> -u16 -; -fn -low_u32 -( -self -) -- -> -u32 -; -fn -high_u32 -( -self -) -- -> -u32 -; -} -impl -U64 -for -u64 -{ -fn -as_usize -( -self -) -- -> -usize -{ -# -[ -cfg -( -debug_assertions -) -] -{ -usize -: -: -try_from -( -self -) -. -expect -( -" -u64 -overflowed -usize -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -usize -} -} -fn -low_u8 -( -self -) -- -> -u8 -{ -self -as -u8 -} -fn -low_u16 -( -self -) -- -> -u16 -{ -self -as -u16 -} -fn -low_u32 -( -self -) -- -> -u32 -{ -self -as -u32 -} -fn -high_u32 -( -self -) -- -> -u32 -{ -( -self -> -> -32 -) -as -u32 -} -} -pub -( -crate -) -trait -I32 -{ -fn -as_usize -( -self -) -- -> -usize -; -fn -to_bits -( -self -) -- -> -u32 -; -fn -from_bits -( -n -: -u32 -) -- -> -i32 -; -} -impl -I32 -for -i32 -{ -fn -as_usize -( -self -) -- -> -usize -{ -# -[ -cfg -( -debug_assertions -) -] -{ -usize -: -: -try_from -( -self -) -. -expect -( -" -i32 -overflowed -usize -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -usize -} -} -fn -to_bits -( -self -) -- -> -u32 -{ -self -as -u32 -} -fn -from_bits -( -n -: -u32 -) -- -> -i32 -{ -n -as -i32 -} -} -pub -( -crate -) -trait -Usize -{ -fn -as_u8 -( -self -) -- -> -u8 -; -fn -as_u16 -( -self -) -- -> -u16 -; -fn -as_u32 -( -self -) -- -> -u32 -; -fn -as_u64 -( -self -) -- -> -u64 -; -} -impl -Usize -for -usize -{ -fn -as_u8 -( -self -) -- -> -u8 -{ -# -[ -cfg -( -debug_assertions -) -] -{ -u8 -: -: -try_from -( -self -) -. -expect -( -" -usize -overflowed -u8 -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -u8 -} -} -fn -as_u16 -( -self -) -- -> -u16 -{ -# -[ -cfg -( -debug_assertions -) -] -{ -u16 -: -: -try_from -( -self -) -. -expect -( -" -usize -overflowed -u16 -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -u16 -} -} -fn -as_u32 -( -self -) -- -> -u32 -{ -# -[ -cfg -( -debug_assertions -) -] -{ -u32 -: -: -try_from -( -self -) -. -expect -( -" -usize -overflowed -u32 -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -u32 -} -} -fn -as_u64 -( -self -) -- -> -u64 -{ -# -[ -cfg -( -debug_assertions -) -] -{ -u64 -: -: -try_from -( -self -) -. -expect -( -" -usize -overflowed -u64 -" -) -} -# -[ -cfg -( -not -( -debug_assertions -) -) -] -{ -self -as -u64 -} -} -} -pub -( -crate -) -trait -Pointer -{ -fn -as_usize -( -self -) -- -> -usize -; -} -impl -< -T -> -Pointer -for -* -const -T -{ -fn -as_usize -( -self -) -- -> -usize -{ -self -as -usize -} -} -pub -( -crate -) -trait -PointerMut -{ -fn -as_usize -( -self -) -- -> -usize -; -} -impl -< -T -> -PointerMut -for -* -mut -T -{ -fn -as_usize -( -self -) -- -> -usize -{ -self -as -usize -} -} diff --git a/third_party/rust/regex-automata/src/util/iter.rs b/third_party/rust/regex-automata/src/util/iter.rs deleted file mode 100644 index 944d71544f7ae..0000000000000 --- a/third_party/rust/regex-automata/src/util/iter.rs +++ /dev/null @@ -1,2481 +0,0 @@ -# -[ -cfg -( -feature -= -" -alloc -" -) -] -use -crate -: -: -util -: -: -captures -: -: -Captures -; -use -crate -: -: -util -: -: -search -: -: -{ -HalfMatch -Input -Match -MatchError -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Searcher -< -' -h -> -{ -input -: -Input -< -' -h -> -last_match_end -: -Option -< -usize -> -} -impl -< -' -h -> -Searcher -< -' -h -> -{ -pub -fn -new -( -input -: -Input -< -' -h -> -) -- -> -Searcher -< -' -h -> -{ -Searcher -{ -input -last_match_end -: -None -} -} -pub -fn -input -< -' -s -> -( -& -' -s -self -) -- -> -& -' -s -Input -< -' -h -> -{ -& -self -. -input -} -# -[ -inline -] -pub -fn -advance_half -< -F -> -( -& -mut -self -finder -: -F -) -- -> -Option -< -HalfMatch -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -match -self -. -try_advance_half -( -finder -) -{ -Ok -( -m -) -= -> -m -Err -( -err -) -= -> -panic -! -( -" -unexpected -regex -half -find -error -: -{ -} -\ -n -\ -to -handle -find -errors -use -' -try -' -or -' -search -' -methods -" -err -) -} -} -# -[ -inline -] -pub -fn -advance -< -F -> -( -& -mut -self -finder -: -F -) -- -> -Option -< -Match -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -match -self -. -try_advance -( -finder -) -{ -Ok -( -m -) -= -> -m -Err -( -err -) -= -> -panic -! -( -" -unexpected -regex -find -error -: -{ -} -\ -n -\ -to -handle -find -errors -use -' -try -' -or -' -search -' -methods -" -err -) -} -} -# -[ -inline -] -pub -fn -try_advance_half -< -F -> -( -& -mut -self -mut -finder -: -F -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -let -mut -m -= -match -finder -( -& -self -. -input -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -m -) -= -> -m -} -; -if -Some -( -m -. -offset -( -) -) -= -= -self -. -last_match_end -{ -m -= -match -self -. -handle_overlapping_empty_half_match -( -m -finder -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -m -) -= -> -m -} -; -} -self -. -input -. -set_start -( -m -. -offset -( -) -) -; -self -. -last_match_end -= -Some -( -m -. -offset -( -) -) -; -Ok -( -Some -( -m -) -) -} -# -[ -inline -] -pub -fn -try_advance -< -F -> -( -& -mut -self -mut -finder -: -F -) -- -> -Result -< -Option -< -Match -> -MatchError -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -let -mut -m -= -match -finder -( -& -self -. -input -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -m -) -= -> -m -} -; -if -m -. -is_empty -( -) -& -& -Some -( -m -. -end -( -) -) -= -= -self -. -last_match_end -{ -m -= -match -self -. -handle_overlapping_empty_match -( -m -finder -) -? -{ -None -= -> -return -Ok -( -None -) -Some -( -m -) -= -> -m -} -; -} -self -. -input -. -set_start -( -m -. -end -( -) -) -; -self -. -last_match_end -= -Some -( -m -. -end -( -) -) -; -Ok -( -Some -( -m -) -) -} -# -[ -inline -] -pub -fn -into_half_matches_iter -< -F -> -( -self -finder -: -F -) -- -> -TryHalfMatchesIter -< -' -h -F -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -TryHalfMatchesIter -{ -it -: -self -finder -} -} -# -[ -inline -] -pub -fn -into_matches_iter -< -F -> -( -self -finder -: -F -) -- -> -TryMatchesIter -< -' -h -F -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -TryMatchesIter -{ -it -: -self -finder -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -# -[ -inline -] -pub -fn -into_captures_iter -< -F -> -( -self -caps -: -Captures -finder -: -F -) -- -> -TryCapturesIter -< -' -h -F -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -& -mut -Captures -) -- -> -Result -< -( -) -MatchError -> -{ -TryCapturesIter -{ -it -: -self -caps -finder -} -} -# -[ -cold -] -# -[ -inline -( -never -) -] -fn -handle_overlapping_empty_half_match -< -F -> -( -& -mut -self -_ -: -HalfMatch -mut -finder -: -F -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -self -. -input -. -set_start -( -self -. -input -. -start -( -) -. -checked_add -( -1 -) -. -unwrap -( -) -) -; -finder -( -& -self -. -input -) -} -# -[ -cold -] -# -[ -inline -( -never -) -] -fn -handle_overlapping_empty_match -< -F -> -( -& -mut -self -m -: -Match -mut -finder -: -F -) -- -> -Result -< -Option -< -Match -> -MatchError -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -assert -! -( -m -. -is_empty -( -) -) -; -self -. -input -. -set_start -( -self -. -input -. -start -( -) -. -checked_add -( -1 -) -. -unwrap -( -) -) -; -finder -( -& -self -. -input -) -} -} -pub -struct -TryHalfMatchesIter -< -' -h -F -> -{ -it -: -Searcher -< -' -h -> -finder -: -F -} -impl -< -' -h -F -> -TryHalfMatchesIter -< -' -h -F -> -{ -pub -fn -infallible -( -self -) -- -> -HalfMatchesIter -< -' -h -F -> -{ -HalfMatchesIter -( -self -) -} -pub -fn -input -< -' -i -> -( -& -' -i -self -) -- -> -& -' -i -Input -< -' -h -> -{ -self -. -it -. -input -( -) -} -} -impl -< -' -h -F -> -Iterator -for -TryHalfMatchesIter -< -' -h -F -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -type -Item -= -Result -< -HalfMatch -MatchError -> -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Result -< -HalfMatch -MatchError -> -> -{ -self -. -it -. -try_advance_half -( -& -mut -self -. -finder -) -. -transpose -( -) -} -} -impl -< -' -h -F -> -core -: -: -fmt -: -: -Debug -for -TryHalfMatchesIter -< -' -h -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_struct -( -" -TryHalfMatchesIter -" -) -. -field -( -" -it -" -& -self -. -it -) -. -field -( -" -finder -" -& -" -< -closure -> -" -) -. -finish -( -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -HalfMatchesIter -< -' -h -F -> -( -TryHalfMatchesIter -< -' -h -F -> -) -; -impl -< -' -h -F -> -HalfMatchesIter -< -' -h -F -> -{ -pub -fn -input -< -' -i -> -( -& -' -i -self -) -- -> -& -' -i -Input -< -' -h -> -{ -self -. -0 -. -it -. -input -( -) -} -} -impl -< -' -h -F -> -Iterator -for -HalfMatchesIter -< -' -h -F -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -HalfMatch -> -MatchError -> -{ -type -Item -= -HalfMatch -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -HalfMatch -> -{ -match -self -. -0 -. -next -( -) -? -{ -Ok -( -m -) -= -> -Some -( -m -) -Err -( -err -) -= -> -panic -! -( -" -unexpected -regex -half -find -error -: -{ -} -\ -n -\ -to -handle -find -errors -use -' -try -' -or -' -search -' -methods -" -err -) -} -} -} -pub -struct -TryMatchesIter -< -' -h -F -> -{ -it -: -Searcher -< -' -h -> -finder -: -F -} -impl -< -' -h -F -> -TryMatchesIter -< -' -h -F -> -{ -pub -fn -infallible -( -self -) -- -> -MatchesIter -< -' -h -F -> -{ -MatchesIter -( -self -) -} -pub -fn -input -< -' -i -> -( -& -' -i -self -) -- -> -& -' -i -Input -< -' -h -> -{ -self -. -it -. -input -( -) -} -} -impl -< -' -h -F -> -Iterator -for -TryMatchesIter -< -' -h -F -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -type -Item -= -Result -< -Match -MatchError -> -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Result -< -Match -MatchError -> -> -{ -self -. -it -. -try_advance -( -& -mut -self -. -finder -) -. -transpose -( -) -} -} -impl -< -' -h -F -> -core -: -: -fmt -: -: -Debug -for -TryMatchesIter -< -' -h -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_struct -( -" -TryMatchesIter -" -) -. -field -( -" -it -" -& -self -. -it -) -. -field -( -" -finder -" -& -" -< -closure -> -" -) -. -finish -( -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -MatchesIter -< -' -h -F -> -( -TryMatchesIter -< -' -h -F -> -) -; -impl -< -' -h -F -> -MatchesIter -< -' -h -F -> -{ -pub -fn -input -< -' -i -> -( -& -' -i -self -) -- -> -& -' -i -Input -< -' -h -> -{ -self -. -0 -. -it -. -input -( -) -} -} -impl -< -' -h -F -> -Iterator -for -MatchesIter -< -' -h -F -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -) -- -> -Result -< -Option -< -Match -> -MatchError -> -{ -type -Item -= -Match -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Match -> -{ -match -self -. -0 -. -next -( -) -? -{ -Ok -( -m -) -= -> -Some -( -m -) -Err -( -err -) -= -> -panic -! -( -" -unexpected -regex -find -error -: -{ -} -\ -n -\ -to -handle -find -errors -use -' -try -' -or -' -search -' -methods -" -err -) -} -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -struct -TryCapturesIter -< -' -h -F -> -{ -it -: -Searcher -< -' -h -> -caps -: -Captures -finder -: -F -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -' -h -F -> -TryCapturesIter -< -' -h -F -> -{ -pub -fn -infallible -( -self -) -- -> -CapturesIter -< -' -h -F -> -{ -CapturesIter -( -self -) -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -' -h -F -> -Iterator -for -TryCapturesIter -< -' -h -F -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -& -mut -Captures -) -- -> -Result -< -( -) -MatchError -> -{ -type -Item -= -Result -< -Captures -MatchError -> -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Result -< -Captures -MatchError -> -> -{ -let -TryCapturesIter -{ -ref -mut -it -ref -mut -caps -ref -mut -finder -} -= -* -self -; -let -result -= -it -. -try_advance -( -| -input -| -{ -( -finder -) -( -input -caps -) -? -; -Ok -( -caps -. -get_match -( -) -) -} -) -. -transpose -( -) -? -; -match -result -{ -Ok -( -_ -) -= -> -Some -( -Ok -( -caps -. -clone -( -) -) -) -Err -( -err -) -= -> -Some -( -Err -( -err -) -) -} -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -' -h -F -> -core -: -: -fmt -: -: -Debug -for -TryCapturesIter -< -' -h -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_struct -( -" -TryCapturesIter -" -) -. -field -( -" -it -" -& -self -. -it -) -. -field -( -" -caps -" -& -self -. -caps -) -. -field -( -" -finder -" -& -" -< -closure -> -" -) -. -finish -( -) -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -# -[ -derive -( -Debug -) -] -pub -struct -CapturesIter -< -' -h -F -> -( -TryCapturesIter -< -' -h -F -> -) -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -' -h -F -> -Iterator -for -CapturesIter -< -' -h -F -> -where -F -: -FnMut -( -& -Input -< -' -_ -> -& -mut -Captures -) -- -> -Result -< -( -) -MatchError -> -{ -type -Item -= -Captures -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Captures -> -{ -match -self -. -0 -. -next -( -) -? -{ -Ok -( -m -) -= -> -Some -( -m -) -Err -( -err -) -= -> -panic -! -( -" -unexpected -regex -captures -error -: -{ -} -\ -n -\ -to -handle -find -errors -use -' -try -' -or -' -search -' -methods -" -err -) -} -} -} diff --git a/third_party/rust/regex-automata/src/util/lazy.rs b/third_party/rust/regex-automata/src/util/lazy.rs deleted file mode 100644 index 3757279b9070b..0000000000000 --- a/third_party/rust/regex-automata/src/util/lazy.rs +++ /dev/null @@ -1,1547 +0,0 @@ -use -core -: -: -fmt -; -pub -struct -Lazy -< -T -F -= -fn -( -) -- -> -T -> -( -lazy -: -: -Lazy -< -T -F -> -) -; -impl -< -T -F -> -Lazy -< -T -F -> -{ -pub -const -fn -new -( -create -: -F -) -- -> -Lazy -< -T -F -> -{ -Lazy -( -lazy -: -: -Lazy -: -: -new -( -create -) -) -} -} -impl -< -T -F -: -Fn -( -) -- -> -T -> -Lazy -< -T -F -> -{ -pub -fn -get -( -this -: -& -Lazy -< -T -F -> -) -- -> -& -T -{ -this -. -0 -. -get -( -) -} -} -impl -< -T -F -: -Fn -( -) -- -> -T -> -core -: -: -ops -: -: -Deref -for -Lazy -< -T -F -> -{ -type -Target -= -T -; -fn -deref -( -& -self -) -- -> -& -T -{ -Lazy -: -: -get -( -self -) -} -} -impl -< -T -: -fmt -: -: -Debug -F -: -Fn -( -) -- -> -T -> -fmt -: -: -Debug -for -Lazy -< -T -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -) -- -> -fmt -: -: -Result -{ -self -. -0 -. -fmt -( -f -) -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -mod -lazy -{ -use -core -: -: -{ -fmt -marker -: -: -PhantomData -sync -: -: -atomic -: -: -{ -AtomicPtr -Ordering -} -} -; -use -alloc -: -: -boxed -: -: -Box -; -pub -( -super -) -struct -Lazy -< -T -F -> -{ -data -: -AtomicPtr -< -T -> -create -: -F -owned -: -PhantomData -< -Box -< -T -> -> -} -unsafe -impl -< -T -: -Send -+ -Sync -F -: -Send -+ -Sync -> -Sync -for -Lazy -< -T -F -> -{ -} -impl -< -T -F -> -Lazy -< -T -F -> -{ -pub -( -super -) -const -fn -new -( -create -: -F -) -- -> -Lazy -< -T -F -> -{ -Lazy -{ -data -: -AtomicPtr -: -: -new -( -core -: -: -ptr -: -: -null_mut -( -) -) -create -owned -: -PhantomData -} -} -} -impl -< -T -F -: -Fn -( -) -- -> -T -> -Lazy -< -T -F -> -{ -pub -( -super -) -fn -get -( -& -self -) -- -> -& -T -{ -if -let -Some -( -data -) -= -self -. -poll -( -) -{ -return -data -; -} -let -data -= -( -self -. -create -) -( -) -; -let -mut -ptr -= -Box -: -: -into_raw -( -Box -: -: -new -( -data -) -) -; -let -result -= -self -. -data -. -compare_exchange -( -core -: -: -ptr -: -: -null_mut -( -) -ptr -Ordering -: -: -AcqRel -Ordering -: -: -Acquire -) -; -if -let -Err -( -old -) -= -result -{ -drop -( -unsafe -{ -Box -: -: -from_raw -( -ptr -) -} -) -; -ptr -= -old -; -} -unsafe -{ -& -* -ptr -} -} -fn -poll -( -& -self -) -- -> -Option -< -& -T -> -{ -let -ptr -= -self -. -data -. -load -( -Ordering -: -: -Acquire -) -; -if -ptr -. -is_null -( -) -{ -return -None -; -} -Some -( -unsafe -{ -& -* -ptr -} -) -} -} -impl -< -T -: -fmt -: -: -Debug -F -: -Fn -( -) -- -> -T -> -fmt -: -: -Debug -for -Lazy -< -T -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -) -- -> -fmt -: -: -Result -{ -f -. -debug_struct -( -" -Lazy -" -) -. -field -( -" -data -" -& -self -. -poll -( -) -) -. -finish -( -) -} -} -impl -< -T -F -> -Drop -for -Lazy -< -T -F -> -{ -fn -drop -( -& -mut -self -) -{ -let -ptr -= -* -self -. -data -. -get_mut -( -) -; -if -! -ptr -. -is_null -( -) -{ -drop -( -unsafe -{ -Box -: -: -from_raw -( -ptr -) -} -) -; -} -} -} -} -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -mod -lazy -{ -use -core -: -: -{ -cell -: -: -Cell -fmt -mem -: -: -MaybeUninit -panic -: -: -{ -RefUnwindSafe -UnwindSafe -} -sync -: -: -atomic -: -: -{ -AtomicU8 -Ordering -} -} -; -const -LAZY_STATE_INIT -: -u8 -= -0 -; -const -LAZY_STATE_BUSY -: -u8 -= -1 -; -const -LAZY_STATE_DONE -: -u8 -= -2 -; -pub -( -super -) -struct -Lazy -< -T -F -> -{ -state -: -AtomicU8 -create -: -Cell -< -Option -< -F -> -> -data -: -Cell -< -MaybeUninit -< -T -> -> -} -unsafe -impl -< -T -: -Send -+ -Sync -F -: -Send -+ -Sync -> -Sync -for -Lazy -< -T -F -> -{ -} -impl -< -T -: -UnwindSafe -F -: -UnwindSafe -+ -RefUnwindSafe -> -RefUnwindSafe -for -Lazy -< -T -F -> -{ -} -impl -< -T -F -> -Lazy -< -T -F -> -{ -pub -( -super -) -const -fn -new -( -create -: -F -) -- -> -Lazy -< -T -F -> -{ -Lazy -{ -state -: -AtomicU8 -: -: -new -( -LAZY_STATE_INIT -) -create -: -Cell -: -: -new -( -Some -( -create -) -) -data -: -Cell -: -: -new -( -MaybeUninit -: -: -uninit -( -) -) -} -} -} -impl -< -T -F -: -FnOnce -( -) -- -> -T -> -Lazy -< -T -F -> -{ -pub -( -super -) -fn -get -( -& -self -) -- -> -& -T -{ -while -self -. -state -. -load -( -Ordering -: -: -Acquire -) -! -= -LAZY_STATE_DONE -{ -let -result -= -self -. -state -. -compare_exchange -( -LAZY_STATE_INIT -LAZY_STATE_BUSY -Ordering -: -: -AcqRel -Ordering -: -: -Acquire -) -; -if -let -Ok -( -_ -) -= -result -{ -let -create -= -unsafe -{ -( -* -self -. -create -. -as_ptr -( -) -) -. -take -( -) -. -expect -( -" -Lazy -' -s -create -function -panicked -\ -preventing -initialization -poisoning -current -thread -" -) -} -; -let -guard -= -Guard -{ -state -: -& -self -. -state -} -; -unsafe -{ -( -* -self -. -data -. -as_ptr -( -) -) -. -as_mut_ptr -( -) -. -write -( -create -( -) -) -; -} -core -: -: -mem -: -: -forget -( -guard -) -; -self -. -state -. -store -( -LAZY_STATE_DONE -Ordering -: -: -Release -) -; -break -; -} -core -: -: -hint -: -: -spin_loop -( -) -; -} -self -. -poll -( -) -. -unwrap -( -) -} -fn -poll -( -& -self -) -- -> -Option -< -& -T -> -{ -if -self -. -state -. -load -( -Ordering -: -: -Acquire -) -= -= -LAZY_STATE_DONE -{ -Some -( -unsafe -{ -& -* -( -* -self -. -data -. -as_ptr -( -) -) -. -as_ptr -( -) -} -) -} -else -{ -None -} -} -} -impl -< -T -: -fmt -: -: -Debug -F -: -FnMut -( -) -- -> -T -> -fmt -: -: -Debug -for -Lazy -< -T -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -fmt -: -: -Formatter -) -- -> -fmt -: -: -Result -{ -f -. -debug_struct -( -" -Lazy -" -) -. -field -( -" -state -" -& -self -. -state -. -load -( -Ordering -: -: -Acquire -) -) -. -field -( -" -create -" -& -" -< -closure -> -" -) -. -field -( -" -data -" -& -self -. -poll -( -) -) -. -finish -( -) -} -} -impl -< -T -F -> -Drop -for -Lazy -< -T -F -> -{ -fn -drop -( -& -mut -self -) -{ -if -* -self -. -state -. -get_mut -( -) -= -= -LAZY_STATE_DONE -{ -unsafe -{ -core -: -: -ptr -: -: -drop_in_place -( -( -* -self -. -data -. -as_ptr -( -) -) -. -as_mut_ptr -( -) -) -} -} -} -} -struct -Guard -< -' -a -> -{ -state -: -& -' -a -AtomicU8 -} -impl -< -' -a -> -Drop -for -Guard -< -' -a -> -{ -fn -drop -( -& -mut -self -) -{ -self -. -state -. -store -( -LAZY_STATE_INIT -Ordering -: -: -Release -) -; -} -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -super -: -: -* -; -fn -assert_send -< -T -: -Send -> -( -) -{ -} -fn -assert_sync -< -T -: -Sync -> -( -) -{ -} -fn -assert_unwind -< -T -: -core -: -: -panic -: -: -UnwindSafe -> -( -) -{ -} -fn -assert_refunwind -< -T -: -core -: -: -panic -: -: -RefUnwindSafe -> -( -) -{ -} -# -[ -test -] -fn -oibits -( -) -{ -assert_send -: -: -< -Lazy -< -u64 -> -> -( -) -; -assert_sync -: -: -< -Lazy -< -u64 -> -> -( -) -; -assert_unwind -: -: -< -Lazy -< -u64 -> -> -( -) -; -assert_refunwind -: -: -< -Lazy -< -u64 -> -> -( -) -; -} -} diff --git a/third_party/rust/regex-automata/src/util/look.rs b/third_party/rust/regex-automata/src/util/look.rs deleted file mode 100644 index cfd15fc274e0f..0000000000000 --- a/third_party/rust/regex-automata/src/util/look.rs +++ /dev/null @@ -1,7631 +0,0 @@ -use -crate -: -: -util -: -: -{ -escape -: -: -DebugByte -utf8 -} -; -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -Look -{ -Start -= -1 -< -< -0 -End -= -1 -< -< -1 -StartLF -= -1 -< -< -2 -EndLF -= -1 -< -< -3 -StartCRLF -= -1 -< -< -4 -EndCRLF -= -1 -< -< -5 -WordAscii -= -1 -< -< -6 -WordAsciiNegate -= -1 -< -< -7 -WordUnicode -= -1 -< -< -8 -WordUnicodeNegate -= -1 -< -< -9 -} -impl -Look -{ -# -[ -inline -] -pub -const -fn -reversed -( -self -) -- -> -Look -{ -match -self -{ -Look -: -: -Start -= -> -Look -: -: -End -Look -: -: -End -= -> -Look -: -: -Start -Look -: -: -StartLF -= -> -Look -: -: -EndLF -Look -: -: -EndLF -= -> -Look -: -: -StartLF -Look -: -: -StartCRLF -= -> -Look -: -: -EndCRLF -Look -: -: -EndCRLF -= -> -Look -: -: -StartCRLF -Look -: -: -WordAscii -= -> -Look -: -: -WordAscii -Look -: -: -WordAsciiNegate -= -> -Look -: -: -WordAsciiNegate -Look -: -: -WordUnicode -= -> -Look -: -: -WordUnicode -Look -: -: -WordUnicodeNegate -= -> -Look -: -: -WordUnicodeNegate -} -} -# -[ -inline -] -pub -const -fn -as_repr -( -self -) -- -> -u16 -{ -self -as -u16 -} -# -[ -inline -] -pub -const -fn -from_repr -( -repr -: -u16 -) -- -> -Option -< -Look -> -{ -match -repr -{ -0b00_0000_0001 -= -> -Some -( -Look -: -: -Start -) -0b00_0000_0010 -= -> -Some -( -Look -: -: -End -) -0b00_0000_0100 -= -> -Some -( -Look -: -: -StartLF -) -0b00_0000_1000 -= -> -Some -( -Look -: -: -EndLF -) -0b00_0001_0000 -= -> -Some -( -Look -: -: -StartCRLF -) -0b00_0010_0000 -= -> -Some -( -Look -: -: -EndCRLF -) -0b00_0100_0000 -= -> -Some -( -Look -: -: -WordAscii -) -0b00_1000_0000 -= -> -Some -( -Look -: -: -WordAsciiNegate -) -0b01_0000_0000 -= -> -Some -( -Look -: -: -WordUnicode -) -0b10_0000_0000 -= -> -Some -( -Look -: -: -WordUnicodeNegate -) -_ -= -> -None -} -} -# -[ -inline -] -pub -const -fn -as_char -( -self -) -- -> -char -{ -match -self -{ -Look -: -: -Start -= -> -' -A -' -Look -: -: -End -= -> -' -z -' -Look -: -: -StartLF -= -> -' -^ -' -Look -: -: -EndLF -= -> -' -' -Look -: -: -StartCRLF -= -> -' -r -' -Look -: -: -EndCRLF -= -> -' -R -' -Look -: -: -WordAscii -= -> -' -b -' -Look -: -: -WordAsciiNegate -= -> -' -B -' -Look -: -: -WordUnicode -= -> -' -' -Look -: -: -WordUnicodeNegate -= -> -' -' -} -} -} -# -[ -derive -( -Clone -Copy -Default -Eq -PartialEq -) -] -pub -struct -LookSet -{ -pub -bits -: -u16 -} -impl -LookSet -{ -# -[ -inline -] -pub -fn -empty -( -) -- -> -LookSet -{ -LookSet -{ -bits -: -0 -} -} -# -[ -inline -] -pub -fn -full -( -) -- -> -LookSet -{ -LookSet -{ -bits -: -! -0 -} -} -# -[ -inline -] -pub -fn -singleton -( -look -: -Look -) -- -> -LookSet -{ -LookSet -: -: -empty -( -) -. -insert -( -look -) -} -# -[ -inline -] -pub -fn -len -( -self -) -- -> -usize -{ -usize -: -: -try_from -( -self -. -bits -. -count_ones -( -) -) -. -unwrap -( -) -} -# -[ -inline -] -pub -fn -is_empty -( -self -) -- -> -bool -{ -self -. -len -( -) -= -= -0 -} -# -[ -inline -] -pub -fn -contains -( -self -look -: -Look -) -- -> -bool -{ -self -. -bits -& -look -. -as_repr -( -) -! -= -0 -} -# -[ -inline -] -pub -fn -contains_anchor -( -& -self -) -- -> -bool -{ -self -. -contains_anchor_haystack -( -) -| -| -self -. -contains_anchor_line -( -) -} -# -[ -inline -] -pub -fn -contains_anchor_haystack -( -& -self -) -- -> -bool -{ -self -. -contains -( -Look -: -: -Start -) -| -| -self -. -contains -( -Look -: -: -End -) -} -# -[ -inline -] -pub -fn -contains_anchor_line -( -& -self -) -- -> -bool -{ -self -. -contains -( -Look -: -: -StartLF -) -| -| -self -. -contains -( -Look -: -: -EndLF -) -| -| -self -. -contains -( -Look -: -: -StartCRLF -) -| -| -self -. -contains -( -Look -: -: -EndCRLF -) -} -# -[ -inline -] -pub -fn -contains_anchor_lf -( -& -self -) -- -> -bool -{ -self -. -contains -( -Look -: -: -StartLF -) -| -| -self -. -contains -( -Look -: -: -EndLF -) -} -# -[ -inline -] -pub -fn -contains_anchor_crlf -( -& -self -) -- -> -bool -{ -self -. -contains -( -Look -: -: -StartCRLF -) -| -| -self -. -contains -( -Look -: -: -EndCRLF -) -} -# -[ -inline -] -pub -fn -contains_word -( -self -) -- -> -bool -{ -self -. -contains_word_unicode -( -) -| -| -self -. -contains_word_ascii -( -) -} -# -[ -inline -] -pub -fn -contains_word_unicode -( -self -) -- -> -bool -{ -self -. -contains -( -Look -: -: -WordUnicode -) -| -| -self -. -contains -( -Look -: -: -WordUnicodeNegate -) -} -# -[ -inline -] -pub -fn -contains_word_ascii -( -self -) -- -> -bool -{ -self -. -contains -( -Look -: -: -WordAscii -) -| -| -self -. -contains -( -Look -: -: -WordAsciiNegate -) -} -# -[ -inline -] -pub -fn -iter -( -self -) -- -> -LookSetIter -{ -LookSetIter -{ -set -: -self -} -} -# -[ -inline -] -pub -fn -insert -( -self -look -: -Look -) -- -> -LookSet -{ -LookSet -{ -bits -: -self -. -bits -| -look -. -as_repr -( -) -} -} -# -[ -inline -] -pub -fn -set_insert -( -& -mut -self -look -: -Look -) -{ -* -self -= -self -. -insert -( -look -) -; -} -# -[ -inline -] -pub -fn -remove -( -self -look -: -Look -) -- -> -LookSet -{ -LookSet -{ -bits -: -self -. -bits -& -! -look -. -as_repr -( -) -} -} -# -[ -inline -] -pub -fn -set_remove -( -& -mut -self -look -: -Look -) -{ -* -self -= -self -. -remove -( -look -) -; -} -# -[ -inline -] -pub -fn -subtract -( -self -other -: -LookSet -) -- -> -LookSet -{ -LookSet -{ -bits -: -self -. -bits -& -! -other -. -bits -} -} -# -[ -inline -] -pub -fn -set_subtract -( -& -mut -self -other -: -LookSet -) -{ -* -self -= -self -. -subtract -( -other -) -; -} -# -[ -inline -] -pub -fn -union -( -self -other -: -LookSet -) -- -> -LookSet -{ -LookSet -{ -bits -: -self -. -bits -| -other -. -bits -} -} -# -[ -inline -] -pub -fn -set_union -( -& -mut -self -other -: -LookSet -) -{ -* -self -= -self -. -union -( -other -) -; -} -# -[ -inline -] -pub -fn -intersect -( -self -other -: -LookSet -) -- -> -LookSet -{ -LookSet -{ -bits -: -self -. -bits -& -other -. -bits -} -} -# -[ -inline -] -pub -fn -set_intersect -( -& -mut -self -other -: -LookSet -) -{ -* -self -= -self -. -intersect -( -other -) -; -} -# -[ -inline -] -pub -fn -read_repr -( -slice -: -& -[ -u8 -] -) -- -> -LookSet -{ -let -bits -= -u16 -: -: -from_ne_bytes -( -slice -[ -. -. -2 -] -. -try_into -( -) -. -unwrap -( -) -) -; -LookSet -{ -bits -} -} -# -[ -inline -] -pub -fn -write_repr -( -self -slice -: -& -mut -[ -u8 -] -) -{ -let -raw -= -self -. -bits -. -to_ne_bytes -( -) -; -slice -[ -0 -] -= -raw -[ -0 -] -; -slice -[ -1 -] -= -raw -[ -1 -] -; -} -pub -fn -available -( -self -) -- -> -Result -< -( -) -UnicodeWordBoundaryError -> -{ -if -self -. -contains_word_unicode -( -) -{ -UnicodeWordBoundaryError -: -: -check -( -) -? -; -} -Ok -( -( -) -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -LookSet -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -if -self -. -is_empty -( -) -{ -return -write -! -( -f -" -" -) -; -} -for -look -in -self -. -iter -( -) -{ -write -! -( -f -" -{ -} -" -look -. -as_char -( -) -) -? -; -} -Ok -( -( -) -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -LookSetIter -{ -set -: -LookSet -} -impl -Iterator -for -LookSetIter -{ -type -Item -= -Look -; -# -[ -inline -] -fn -next -( -& -mut -self -) -- -> -Option -< -Look -> -{ -if -self -. -set -. -is_empty -( -) -{ -return -None -; -} -let -repr -= -u16 -: -: -try_from -( -self -. -set -. -bits -. -trailing_zeros -( -) -) -. -unwrap -( -) -; -let -look -= -Look -: -: -from_repr -( -1 -< -< -repr -) -? -; -self -. -set -= -self -. -set -. -remove -( -look -) -; -Some -( -look -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -LookMatcher -{ -lineterm -: -DebugByte -} -impl -LookMatcher -{ -pub -fn -new -( -) -- -> -LookMatcher -{ -LookMatcher -{ -lineterm -: -DebugByte -( -b -' -\ -n -' -) -} -} -pub -fn -set_line_terminator -( -& -mut -self -byte -: -u8 -) -- -> -& -mut -LookMatcher -{ -self -. -lineterm -. -0 -= -byte -; -self -} -pub -fn -get_line_terminator -( -& -self -) -- -> -u8 -{ -self -. -lineterm -. -0 -} -# -[ -inline -] -pub -fn -matches -( -& -self -look -: -Look -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -self -. -matches_inline -( -look -haystack -at -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -matches_inline -( -& -self -look -: -Look -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -match -look -{ -Look -: -: -Start -= -> -self -. -is_start -( -haystack -at -) -Look -: -: -End -= -> -self -. -is_end -( -haystack -at -) -Look -: -: -StartLF -= -> -self -. -is_start_lf -( -haystack -at -) -Look -: -: -EndLF -= -> -self -. -is_end_lf -( -haystack -at -) -Look -: -: -StartCRLF -= -> -self -. -is_start_crlf -( -haystack -at -) -Look -: -: -EndCRLF -= -> -self -. -is_end_crlf -( -haystack -at -) -Look -: -: -WordAscii -= -> -self -. -is_word_ascii -( -haystack -at -) -Look -: -: -WordAsciiNegate -= -> -self -. -is_word_ascii_negate -( -haystack -at -) -Look -: -: -WordUnicode -= -> -self -. -is_word_unicode -( -haystack -at -) -. -unwrap -( -) -Look -: -: -WordUnicodeNegate -= -> -{ -self -. -is_word_unicode_negate -( -haystack -at -) -. -unwrap -( -) -} -} -} -# -[ -inline -] -pub -fn -matches_set -( -& -self -set -: -LookSet -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -self -. -matches_set_inline -( -set -haystack -at -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -matches_set_inline -( -& -self -set -: -LookSet -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -if -set -. -contains -( -Look -: -: -Start -) -{ -if -! -self -. -is_start -( -haystack -at -) -{ -return -false -; -} -} -if -set -. -contains -( -Look -: -: -End -) -{ -if -! -self -. -is_end -( -haystack -at -) -{ -return -false -; -} -} -if -set -. -contains -( -Look -: -: -StartLF -) -{ -if -! -self -. -is_start_lf -( -haystack -at -) -{ -return -false -; -} -} -if -set -. -contains -( -Look -: -: -EndLF -) -{ -if -! -self -. -is_end_lf -( -haystack -at -) -{ -return -false -; -} -} -if -set -. -contains -( -Look -: -: -StartCRLF -) -{ -if -! -self -. -is_start_crlf -( -haystack -at -) -{ -return -false -; -} -} -if -set -. -contains -( -Look -: -: -EndCRLF -) -{ -if -! -self -. -is_end_crlf -( -haystack -at -) -{ -return -false -; -} -} -if -set -. -contains -( -Look -: -: -WordAscii -) -{ -if -! -self -. -is_word_ascii -( -haystack -at -) -{ -return -false -; -} -} -if -set -. -contains -( -Look -: -: -WordAsciiNegate -) -{ -if -! -self -. -is_word_ascii_negate -( -haystack -at -) -{ -return -false -; -} -} -if -set -. -contains -( -Look -: -: -WordUnicode -) -{ -if -! -self -. -is_word_unicode -( -haystack -at -) -. -unwrap -( -) -{ -return -false -; -} -} -if -set -. -contains -( -Look -: -: -WordUnicodeNegate -) -{ -if -! -self -. -is_word_unicode_negate -( -haystack -at -) -. -unwrap -( -) -{ -return -false -; -} -} -true -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -( -crate -) -fn -add_to_byteset -( -& -self -look -: -Look -set -: -& -mut -crate -: -: -util -: -: -alphabet -: -: -ByteClassSet -) -{ -match -look -{ -Look -: -: -Start -| -Look -: -: -End -= -> -{ -} -Look -: -: -StartLF -| -Look -: -: -EndLF -= -> -{ -set -. -set_range -( -self -. -lineterm -. -0 -self -. -lineterm -. -0 -) -; -} -Look -: -: -StartCRLF -| -Look -: -: -EndCRLF -= -> -{ -set -. -set_range -( -b -' -\ -r -' -b -' -\ -r -' -) -; -set -. -set_range -( -b -' -\ -n -' -b -' -\ -n -' -) -; -} -Look -: -: -WordAscii -| -Look -: -: -WordAsciiNegate -| -Look -: -: -WordUnicode -| -Look -: -: -WordUnicodeNegate -= -> -{ -let -iswb -= -utf8 -: -: -is_word_byte -; -let -asu8 -= -| -b -: -u16 -| -u8 -: -: -try_from -( -b -) -. -unwrap -( -) -; -let -mut -b1 -: -u16 -= -0 -; -let -mut -b2 -: -u16 -; -while -b1 -< -= -255 -{ -b2 -= -b1 -+ -1 -; -while -b2 -< -= -255 -& -& -iswb -( -asu8 -( -b1 -) -) -= -= -iswb -( -asu8 -( -b2 -) -) -{ -b2 -+ -= -1 -; -} -assert -! -( -b2 -< -= -256 -) -; -set -. -set_range -( -asu8 -( -b1 -) -asu8 -( -b2 -. -checked_sub -( -1 -) -. -unwrap -( -) -) -) -; -b1 -= -b2 -; -} -} -} -} -# -[ -inline -] -pub -fn -is_start -( -& -self -_haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -at -= -= -0 -} -# -[ -inline -] -pub -fn -is_end -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -at -= -= -haystack -. -len -( -) -} -# -[ -inline -] -pub -fn -is_start_lf -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -self -. -is_start -( -haystack -at -) -| -| -haystack -[ -at -- -1 -] -= -= -self -. -lineterm -. -0 -} -# -[ -inline -] -pub -fn -is_end_lf -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -self -. -is_end -( -haystack -at -) -| -| -haystack -[ -at -] -= -= -self -. -lineterm -. -0 -} -# -[ -inline -] -pub -fn -is_start_crlf -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -self -. -is_start -( -haystack -at -) -| -| -haystack -[ -at -- -1 -] -= -= -b -' -\ -n -' -| -| -( -haystack -[ -at -- -1 -] -= -= -b -' -\ -r -' -& -& -( -at -> -= -haystack -. -len -( -) -| -| -haystack -[ -at -] -! -= -b -' -\ -n -' -) -) -} -# -[ -inline -] -pub -fn -is_end_crlf -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -self -. -is_end -( -haystack -at -) -| -| -haystack -[ -at -] -= -= -b -' -\ -r -' -| -| -( -haystack -[ -at -] -= -= -b -' -\ -n -' -& -& -( -at -= -= -0 -| -| -haystack -[ -at -- -1 -] -! -= -b -' -\ -r -' -) -) -} -# -[ -inline -] -pub -fn -is_word_ascii -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -let -word_before -= -at -> -0 -& -& -utf8 -: -: -is_word_byte -( -haystack -[ -at -- -1 -] -) -; -let -word_after -= -at -< -haystack -. -len -( -) -& -& -utf8 -: -: -is_word_byte -( -haystack -[ -at -] -) -; -word_before -! -= -word_after -} -# -[ -inline -] -pub -fn -is_word_ascii_negate -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -bool -{ -! -self -. -is_word_ascii -( -haystack -at -) -} -# -[ -inline -] -pub -fn -is_word_unicode -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -Result -< -bool -UnicodeWordBoundaryError -> -{ -let -word_before -= -is_word_char -: -: -rev -( -haystack -at -) -? -; -let -word_after -= -is_word_char -: -: -fwd -( -haystack -at -) -? -; -Ok -( -word_before -! -= -word_after -) -} -# -[ -inline -] -pub -fn -is_word_unicode_negate -( -& -self -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -Result -< -bool -UnicodeWordBoundaryError -> -{ -let -word_before -= -at -> -0 -& -& -match -utf8 -: -: -decode_last -( -& -haystack -[ -. -. -at -] -) -{ -None -| -Some -( -Err -( -_ -) -) -= -> -return -Ok -( -false -) -Some -( -Ok -( -_ -) -) -= -> -is_word_char -: -: -rev -( -haystack -at -) -? -} -; -let -word_after -= -at -< -haystack -. -len -( -) -& -& -match -utf8 -: -: -decode -( -& -haystack -[ -at -. -. -] -) -{ -None -| -Some -( -Err -( -_ -) -) -= -> -return -Ok -( -false -) -Some -( -Ok -( -_ -) -) -= -> -is_word_char -: -: -fwd -( -haystack -at -) -? -} -; -Ok -( -word_before -= -= -word_after -) -} -} -impl -Default -for -LookMatcher -{ -fn -default -( -) -- -> -LookMatcher -{ -LookMatcher -: -: -new -( -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -UnicodeWordBoundaryError -( -( -) -) -; -impl -UnicodeWordBoundaryError -{ -# -[ -cfg -( -not -( -feature -= -" -unicode -- -word -- -boundary -" -) -) -] -pub -( -crate -) -fn -new -( -) -- -> -UnicodeWordBoundaryError -{ -UnicodeWordBoundaryError -( -( -) -) -} -pub -fn -check -( -) -- -> -Result -< -( -) -UnicodeWordBoundaryError -> -{ -is_word_char -: -: -check -( -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -UnicodeWordBoundaryError -{ -} -impl -core -: -: -fmt -: -: -Display -for -UnicodeWordBoundaryError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -Unicode -- -aware -\ -\ -b -and -\ -\ -B -are -unavailable -because -the -\ -requisite -data -tables -are -missing -please -enable -the -\ -unicode -- -word -- -boundary -feature -" -) -} -} -# -[ -cfg -( -all -( -feature -= -" -unicode -- -word -- -boundary -" -feature -= -" -syntax -" -feature -= -" -unicode -- -perl -" -) -) -] -mod -is_word_char -{ -use -regex_syntax -: -: -try_is_word_character -; -use -crate -: -: -util -: -: -utf8 -; -pub -( -super -) -fn -check -( -) -- -> -Result -< -( -) -super -: -: -UnicodeWordBoundaryError -> -{ -Ok -( -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -super -) -fn -fwd -( -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -Result -< -bool -super -: -: -UnicodeWordBoundaryError -> -{ -Ok -( -match -utf8 -: -: -decode -( -& -haystack -[ -at -. -. -] -) -{ -None -| -Some -( -Err -( -_ -) -) -= -> -false -Some -( -Ok -( -ch -) -) -= -> -try_is_word_character -( -ch -) -. -expect -( -" -since -unicode -- -word -- -boundary -syntax -and -unicode -- -perl -\ -are -all -enabled -it -is -expected -that -\ -try_is_word_character -succeeds -" -) -} -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -super -) -fn -rev -( -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -Result -< -bool -super -: -: -UnicodeWordBoundaryError -> -{ -Ok -( -match -utf8 -: -: -decode_last -( -& -haystack -[ -. -. -at -] -) -{ -None -| -Some -( -Err -( -_ -) -) -= -> -false -Some -( -Ok -( -ch -) -) -= -> -try_is_word_character -( -ch -) -. -expect -( -" -since -unicode -- -word -- -boundary -syntax -and -unicode -- -perl -\ -are -all -enabled -it -is -expected -that -\ -try_is_word_character -succeeds -" -) -} -) -} -} -# -[ -cfg -( -all -( -feature -= -" -unicode -- -word -- -boundary -" -not -( -all -( -feature -= -" -syntax -" -feature -= -" -unicode -- -perl -" -) -) -) -) -] -mod -is_word_char -{ -use -crate -: -: -util -: -: -utf8 -; -pub -( -super -) -fn -check -( -) -- -> -Result -< -( -) -super -: -: -UnicodeWordBoundaryError -> -{ -Ok -( -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -super -) -fn -fwd -( -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -Result -< -bool -super -: -: -UnicodeWordBoundaryError -> -{ -Ok -( -match -utf8 -: -: -decode -( -& -haystack -[ -at -. -. -] -) -{ -None -| -Some -( -Err -( -_ -) -) -= -> -false -Some -( -Ok -( -ch -) -) -= -> -is_word_character -( -ch -) -} -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -super -) -fn -rev -( -haystack -: -& -[ -u8 -] -at -: -usize -) -- -> -Result -< -bool -super -: -: -UnicodeWordBoundaryError -> -{ -Ok -( -match -utf8 -: -: -decode_last -( -& -haystack -[ -. -. -at -] -) -{ -None -| -Some -( -Err -( -_ -) -) -= -> -false -Some -( -Ok -( -ch -) -) -= -> -is_word_character -( -ch -) -} -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_word_character -( -c -: -char -) -- -> -bool -{ -use -crate -: -: -util -: -: -{ -unicode_data -: -: -perl_word -: -: -PERL_WORD -utf8 -} -; -if -u8 -: -: -try_from -( -u32 -: -: -from -( -c -) -) -. -map_or -( -false -utf8 -: -: -is_word_byte -) -{ -return -true -; -} -PERL_WORD -. -binary_search_by -( -| -& -( -start -end -) -| -{ -use -core -: -: -cmp -: -: -Ordering -; -if -start -< -= -c -& -& -c -< -= -end -{ -Ordering -: -: -Equal -} -else -if -start -> -c -{ -Ordering -: -: -Greater -} -else -{ -Ordering -: -: -Less -} -} -) -. -is_ok -( -) -} -} -# -[ -cfg -( -not -( -feature -= -" -unicode -- -word -- -boundary -" -) -) -] -mod -is_word_char -{ -pub -( -super -) -fn -check -( -) -- -> -Result -< -( -) -super -: -: -UnicodeWordBoundaryError -> -{ -Err -( -super -: -: -UnicodeWordBoundaryError -: -: -new -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -super -) -fn -fwd -( -_bytes -: -& -[ -u8 -] -_at -: -usize -) -- -> -Result -< -bool -super -: -: -UnicodeWordBoundaryError -> -{ -Err -( -super -: -: -UnicodeWordBoundaryError -: -: -new -( -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -super -) -fn -rev -( -_bytes -: -& -[ -u8 -] -_at -: -usize -) -- -> -Result -< -bool -super -: -: -UnicodeWordBoundaryError -> -{ -Err -( -super -: -: -UnicodeWordBoundaryError -: -: -new -( -) -) -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -super -: -: -* -; -macro_rules -! -testlook -{ -( -look -: -expr -haystack -: -expr -at -: -expr -) -= -> -{ -LookMatcher -: -: -default -( -) -. -matches -( -look -haystack -. -as_bytes -( -) -at -) -} -; -} -# -[ -test -] -fn -look_matches_start_line -( -) -{ -let -look -= -Look -: -: -StartLF -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -\ -n -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -\ -n -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -\ -na -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -\ -na -" -1 -) -) -; -} -# -[ -test -] -fn -look_matches_end_line -( -) -{ -let -look -= -Look -: -: -EndLF -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -\ -n -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -\ -na -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -\ -na -" -2 -) -) -; -assert -! -( -testlook -! -( -look -" -a -\ -na -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -\ -na -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -\ -na -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -\ -na -" -2 -) -) -; -} -# -[ -test -] -fn -look_matches_start_text -( -) -{ -let -look -= -Look -: -: -Start -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -\ -n -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -\ -n -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -\ -na -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -\ -na -" -1 -) -) -; -} -# -[ -test -] -fn -look_matches_end_text -( -) -{ -let -look -= -Look -: -: -End -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -\ -n -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -\ -na -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -\ -na -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -\ -na -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -\ -na -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -\ -na -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -\ -na -" -2 -) -) -; -} -# -[ -test -] -# -[ -cfg -( -all -( -not -( -miri -) -feature -= -" -unicode -- -word -- -boundary -" -) -) -] -fn -look_matches_word_unicode -( -) -{ -let -look -= -Look -: -: -WordUnicode -; -assert -! -( -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -2 -) -) -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -ab -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -3 -) -) -; -assert -! -( -! -testlook -! -( -look -" -b -" -4 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -6 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -3 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -3 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -6 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -7 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -8 -) -) -; -} -# -[ -test -] -fn -look_matches_word_ascii -( -) -{ -let -look -= -Look -: -: -WordAscii -; -assert -! -( -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -ab -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -3 -) -) -; -assert -! -( -testlook -! -( -look -" -b -" -4 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -6 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -3 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -3 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -6 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -7 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -8 -) -) -; -} -# -[ -test -] -# -[ -cfg -( -all -( -not -( -miri -) -feature -= -" -unicode -- -word -- -boundary -" -) -) -] -fn -look_matches_word_unicode_negate -( -) -{ -let -look -= -Look -: -: -WordUnicodeNegate -; -assert -! -( -! -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -ab -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -2 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -3 -) -) -; -assert -! -( -testlook -! -( -look -" -b -" -4 -) -) -; -assert -! -( -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -" -6 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -3 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -2 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -3 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -6 -) -) -; -assert -! -( -! -testlook -! -( -look -" -" -7 -) -) -; -assert -! -( -testlook -! -( -look -" -" -8 -) -) -; -} -# -[ -test -] -fn -look_matches_word_ascii_negate -( -) -{ -let -look -= -Look -: -: -WordAsciiNegate -; -assert -! -( -! -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -1 -) -) -; -assert -! -( -! -testlook -! -( -look -" -a -" -2 -) -) -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -" -4 -) -) -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -ab -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -2 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -a -" -3 -) -) -; -assert -! -( -! -testlook -! -( -look -" -b -" -4 -) -) -; -assert -! -( -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -testlook -! -( -look -" -" -0 -) -) -; -assert -! -( -testlook -! -( -look -" -" -6 -) -) -; -assert -! -( -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -" -2 -) -) -; -assert -! -( -testlook -! -( -look -" -" -3 -) -) -; -assert -! -( -testlook -! -( -look -" -" -1 -) -) -; -assert -! -( -testlook -! -( -look -" -" -2 -) -) -; -assert -! -( -testlook -! -( -look -" -" -3 -) -) -; -assert -! -( -testlook -! -( -look -" -" -5 -) -) -; -assert -! -( -testlook -! -( -look -" -" -6 -) -) -; -assert -! -( -testlook -! -( -look -" -" -7 -) -) -; -assert -! -( -testlook -! -( -look -" -" -8 -) -) -; -} -# -[ -test -] -fn -look_set -( -) -{ -let -mut -f -= -LookSet -: -: -default -( -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -Start -) -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -End -) -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -StartLF -) -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -EndLF -) -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -WordUnicode -) -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -WordUnicodeNegate -) -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -WordAscii -) -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -WordAsciiNegate -) -) -; -f -= -f -. -insert -( -Look -: -: -Start -) -; -assert -! -( -f -. -contains -( -Look -: -: -Start -) -) -; -f -= -f -. -remove -( -Look -: -: -Start -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -Start -) -) -; -f -= -f -. -insert -( -Look -: -: -End -) -; -assert -! -( -f -. -contains -( -Look -: -: -End -) -) -; -f -= -f -. -remove -( -Look -: -: -End -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -End -) -) -; -f -= -f -. -insert -( -Look -: -: -StartLF -) -; -assert -! -( -f -. -contains -( -Look -: -: -StartLF -) -) -; -f -= -f -. -remove -( -Look -: -: -StartLF -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -StartLF -) -) -; -f -= -f -. -insert -( -Look -: -: -EndLF -) -; -assert -! -( -f -. -contains -( -Look -: -: -EndLF -) -) -; -f -= -f -. -remove -( -Look -: -: -EndLF -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -EndLF -) -) -; -f -= -f -. -insert -( -Look -: -: -StartCRLF -) -; -assert -! -( -f -. -contains -( -Look -: -: -StartCRLF -) -) -; -f -= -f -. -remove -( -Look -: -: -StartCRLF -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -StartCRLF -) -) -; -f -= -f -. -insert -( -Look -: -: -EndCRLF -) -; -assert -! -( -f -. -contains -( -Look -: -: -EndCRLF -) -) -; -f -= -f -. -remove -( -Look -: -: -EndCRLF -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -EndCRLF -) -) -; -f -= -f -. -insert -( -Look -: -: -WordUnicode -) -; -assert -! -( -f -. -contains -( -Look -: -: -WordUnicode -) -) -; -f -= -f -. -remove -( -Look -: -: -WordUnicode -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -WordUnicode -) -) -; -f -= -f -. -insert -( -Look -: -: -WordUnicodeNegate -) -; -assert -! -( -f -. -contains -( -Look -: -: -WordUnicodeNegate -) -) -; -f -= -f -. -remove -( -Look -: -: -WordUnicodeNegate -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -WordUnicodeNegate -) -) -; -f -= -f -. -insert -( -Look -: -: -WordAscii -) -; -assert -! -( -f -. -contains -( -Look -: -: -WordAscii -) -) -; -f -= -f -. -remove -( -Look -: -: -WordAscii -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -WordAscii -) -) -; -f -= -f -. -insert -( -Look -: -: -WordAsciiNegate -) -; -assert -! -( -f -. -contains -( -Look -: -: -WordAsciiNegate -) -) -; -f -= -f -. -remove -( -Look -: -: -WordAsciiNegate -) -; -assert -! -( -! -f -. -contains -( -Look -: -: -WordAsciiNegate -) -) -; -} -# -[ -test -] -fn -look_set_iter -( -) -{ -let -set -= -LookSet -: -: -empty -( -) -; -assert_eq -! -( -0 -set -. -iter -( -) -. -count -( -) -) -; -let -set -= -LookSet -: -: -full -( -) -; -assert_eq -! -( -10 -set -. -iter -( -) -. -count -( -) -) -; -let -set -= -LookSet -: -: -empty -( -) -. -insert -( -Look -: -: -StartLF -) -. -insert -( -Look -: -: -WordUnicode -) -; -assert_eq -! -( -2 -set -. -iter -( -) -. -count -( -) -) -; -let -set -= -LookSet -: -: -empty -( -) -. -insert -( -Look -: -: -StartLF -) -; -assert_eq -! -( -1 -set -. -iter -( -) -. -count -( -) -) -; -let -set -= -LookSet -: -: -empty -( -) -. -insert -( -Look -: -: -WordAsciiNegate -) -; -assert_eq -! -( -1 -set -. -iter -( -) -. -count -( -) -) -; -} -# -[ -test -] -# -[ -cfg -( -feature -= -" -alloc -" -) -] -fn -look_set_debug -( -) -{ -let -res -= -alloc -: -: -format -! -( -" -{ -: -? -} -" -LookSet -: -: -empty -( -) -) -; -assert_eq -! -( -" -" -res -) -; -let -res -= -alloc -: -: -format -! -( -" -{ -: -? -} -" -LookSet -: -: -full -( -) -) -; -assert_eq -! -( -" -Az -^ -rRbB -" -res -) -; -} -} diff --git a/third_party/rust/regex-automata/src/util/memchr.rs b/third_party/rust/regex-automata/src/util/memchr.rs deleted file mode 100644 index 8b5b8043637c7..0000000000000 --- a/third_party/rust/regex-automata/src/util/memchr.rs +++ /dev/null @@ -1,794 +0,0 @@ -pub -( -crate -) -use -self -: -: -inner -: -: -* -; -# -[ -cfg -( -feature -= -" -perf -- -literal -- -substring -" -) -] -pub -( -super -) -mod -inner -{ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memchr -( -n1 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -memchr -: -: -memchr -( -n1 -haystack -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memchr2 -( -n1 -: -u8 -n2 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -memchr -: -: -memchr2 -( -n1 -n2 -haystack -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memchr3 -( -n1 -: -u8 -n2 -: -u8 -n3 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -memchr -: -: -memchr3 -( -n1 -n2 -n3 -haystack -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memrchr -( -n1 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -memchr -: -: -memrchr -( -n1 -haystack -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memrchr2 -( -n1 -: -u8 -n2 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -memchr -: -: -memrchr2 -( -n1 -n2 -haystack -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memrchr3 -( -n1 -: -u8 -n2 -: -u8 -n3 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -memchr -: -: -memrchr3 -( -n1 -n2 -n3 -haystack -) -} -} -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -substring -" -) -) -] -pub -( -super -) -mod -inner -{ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memchr -( -n1 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -haystack -. -iter -( -) -. -position -( -| -& -b -| -b -= -= -n1 -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memchr2 -( -n1 -: -u8 -n2 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -haystack -. -iter -( -) -. -position -( -| -& -b -| -b -= -= -n1 -| -| -b -= -= -n2 -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memchr3 -( -n1 -: -u8 -n2 -: -u8 -n3 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -haystack -. -iter -( -) -. -position -( -| -& -b -| -b -= -= -n1 -| -| -b -= -= -n2 -| -| -b -= -= -n3 -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memrchr -( -n1 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -haystack -. -iter -( -) -. -rposition -( -| -& -b -| -b -= -= -n1 -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memrchr2 -( -n1 -: -u8 -n2 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -haystack -. -iter -( -) -. -rposition -( -| -& -b -| -b -= -= -n1 -| -| -b -= -= -n2 -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -memrchr3 -( -n1 -: -u8 -n2 -: -u8 -n3 -: -u8 -haystack -: -& -[ -u8 -] -) -- -> -Option -< -usize -> -{ -haystack -. -iter -( -) -. -rposition -( -| -& -b -| -b -= -= -n1 -| -| -b -= -= -n2 -| -| -b -= -= -n3 -) -} -} diff --git a/third_party/rust/regex-automata/src/util/mod.rs b/third_party/rust/regex-automata/src/util/mod.rs deleted file mode 100644 index 4531c1d8d6ec2..0000000000000 --- a/third_party/rust/regex-automata/src/util/mod.rs +++ /dev/null @@ -1,187 +0,0 @@ -pub -mod -alphabet -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -mod -captures -; -pub -mod -escape -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -mod -interpolate -; -pub -mod -iter -; -pub -mod -lazy -; -pub -mod -look -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -mod -pool -; -pub -mod -prefilter -; -pub -mod -primitives -; -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -mod -syntax -; -pub -mod -wire -; -# -[ -cfg -( -any -( -feature -= -" -dfa -- -build -" -feature -= -" -hybrid -" -) -) -] -pub -( -crate -) -mod -determinize -; -pub -( -crate -) -mod -empty -; -pub -( -crate -) -mod -int -; -pub -( -crate -) -mod -memchr -; -pub -( -crate -) -mod -search -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -( -crate -) -mod -sparse_set -; -pub -( -crate -) -mod -start -; -pub -( -crate -) -mod -unicode_data -; -pub -( -crate -) -mod -utf8 -; diff --git a/third_party/rust/regex-automata/src/util/pool.rs b/third_party/rust/regex-automata/src/util/pool.rs deleted file mode 100644 index 4e2915fbd7577..0000000000000 --- a/third_party/rust/regex-automata/src/util/pool.rs +++ /dev/null @@ -1,3880 +0,0 @@ -pub -struct -Pool -< -T -F -= -fn -( -) -- -> -T -> -( -alloc -: -: -boxed -: -: -Box -< -inner -: -: -Pool -< -T -F -> -> -) -; -impl -< -T -F -> -Pool -< -T -F -> -{ -pub -fn -new -( -create -: -F -) -- -> -Pool -< -T -F -> -{ -Pool -( -alloc -: -: -boxed -: -: -Box -: -: -new -( -inner -: -: -Pool -: -: -new -( -create -) -) -) -} -} -impl -< -T -: -Send -F -: -Fn -( -) -- -> -T -> -Pool -< -T -F -> -{ -pub -fn -get -( -& -self -) -- -> -PoolGuard -< -' -_ -T -F -> -{ -PoolGuard -( -self -. -0 -. -get -( -) -) -} -} -impl -< -T -: -core -: -: -fmt -: -: -Debug -F -> -core -: -: -fmt -: -: -Debug -for -Pool -< -T -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_tuple -( -" -Pool -" -) -. -field -( -& -self -. -0 -) -. -finish -( -) -} -} -pub -struct -PoolGuard -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -( -inner -: -: -PoolGuard -< -' -a -T -F -> -) -; -impl -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -PoolGuard -< -' -a -T -F -> -{ -pub -fn -put -( -this -: -PoolGuard -< -' -_ -T -F -> -) -{ -inner -: -: -PoolGuard -: -: -put -( -this -. -0 -) -; -} -} -impl -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -core -: -: -ops -: -: -Deref -for -PoolGuard -< -' -a -T -F -> -{ -type -Target -= -T -; -fn -deref -( -& -self -) -- -> -& -T -{ -self -. -0 -. -value -( -) -} -} -impl -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -core -: -: -ops -: -: -DerefMut -for -PoolGuard -< -' -a -T -F -> -{ -fn -deref_mut -( -& -mut -self -) -- -> -& -mut -T -{ -self -. -0 -. -value_mut -( -) -} -} -impl -< -' -a -T -: -Send -+ -core -: -: -fmt -: -: -Debug -F -: -Fn -( -) -- -> -T -> -core -: -: -fmt -: -: -Debug -for -PoolGuard -< -' -a -T -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_tuple -( -" -PoolGuard -" -) -. -field -( -& -self -. -0 -) -. -finish -( -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -mod -inner -{ -use -core -: -: -{ -cell -: -: -UnsafeCell -panic -: -: -{ -RefUnwindSafe -UnwindSafe -} -sync -: -: -atomic -: -: -{ -AtomicUsize -Ordering -} -} -; -use -alloc -: -: -{ -boxed -: -: -Box -vec -vec -: -: -Vec -} -; -use -std -: -: -{ -sync -: -: -Mutex -thread_local -} -; -static -COUNTER -: -AtomicUsize -= -AtomicUsize -: -: -new -( -3 -) -; -static -THREAD_ID_UNOWNED -: -usize -= -0 -; -static -THREAD_ID_INUSE -: -usize -= -1 -; -static -THREAD_ID_DROPPED -: -usize -= -2 -; -thread_local -! -( -/ -/ -/ -A -thread -local -used -to -assign -an -ID -to -a -thread -. -static -THREAD_ID -: -usize -= -{ -let -next -= -COUNTER -. -fetch_add -( -1 -Ordering -: -: -Relaxed -) -; -/ -/ -SAFETY -: -We -cannot -permit -the -reuse -of -thread -IDs -since -reusing -a -/ -/ -thread -ID -might -result -in -more -than -one -thread -" -owning -" -a -pool -/ -/ -and -thus -permit -accessing -a -mutable -value -from -multiple -threads -/ -/ -simultaneously -without -synchronization -. -The -intent -of -this -panic -/ -/ -is -to -be -a -sanity -check -. -It -is -not -expected -that -the -thread -ID -/ -/ -space -will -actually -be -exhausted -in -practice -. -Even -on -a -32 -- -bit -/ -/ -system -it -would -require -spawning -2 -^ -32 -threads -( -although -they -/ -/ -wouldn -' -t -all -need -to -run -simultaneously -so -it -is -in -theory -/ -/ -possible -) -. -/ -/ -/ -/ -This -checks -that -the -counter -never -wraps -around -since -atomic -/ -/ -addition -wraps -around -on -overflow -. -if -next -= -= -0 -{ -panic -! -( -" -regex -: -thread -ID -allocation -space -exhausted -" -) -; -} -next -} -; -) -; -pub -( -super -) -struct -Pool -< -T -F -> -{ -stack -: -Mutex -< -Vec -< -Box -< -T -> -> -> -create -: -F -owner -: -AtomicUsize -owner_val -: -UnsafeCell -< -Option -< -T -> -> -} -unsafe -impl -< -T -: -Send -F -: -Send -+ -Sync -> -Sync -for -Pool -< -T -F -> -{ -} -impl -< -T -: -UnwindSafe -F -: -UnwindSafe -+ -RefUnwindSafe -> -RefUnwindSafe -for -Pool -< -T -F -> -{ -} -impl -< -T -F -> -Pool -< -T -F -> -{ -pub -( -super -) -fn -new -( -create -: -F -) -- -> -Pool -< -T -F -> -{ -let -owner -= -AtomicUsize -: -: -new -( -THREAD_ID_UNOWNED -) -; -let -owner_val -= -UnsafeCell -: -: -new -( -None -) -; -Pool -{ -stack -: -Mutex -: -: -new -( -vec -! -[ -] -) -create -owner -owner_val -} -} -} -impl -< -T -: -Send -F -: -Fn -( -) -- -> -T -> -Pool -< -T -F -> -{ -pub -( -super -) -fn -get -( -& -self -) -- -> -PoolGuard -< -' -_ -T -F -> -{ -let -caller -= -THREAD_ID -. -with -( -| -id -| -* -id -) -; -let -owner -= -self -. -owner -. -load -( -Ordering -: -: -Acquire -) -; -if -caller -= -= -owner -{ -self -. -owner -. -store -( -THREAD_ID_INUSE -Ordering -: -: -Release -) -; -return -self -. -guard_owned -( -caller -) -; -} -self -. -get_slow -( -caller -owner -) -} -# -[ -cold -] -fn -get_slow -( -& -self -caller -: -usize -owner -: -usize -) -- -> -PoolGuard -< -' -_ -T -F -> -{ -if -owner -= -= -THREAD_ID_UNOWNED -{ -let -res -= -self -. -owner -. -compare_exchange -( -THREAD_ID_UNOWNED -THREAD_ID_INUSE -Ordering -: -: -AcqRel -Ordering -: -: -Acquire -) -; -if -res -. -is_ok -( -) -{ -unsafe -{ -* -self -. -owner_val -. -get -( -) -= -Some -( -( -self -. -create -) -( -) -) -; -} -return -self -. -guard_owned -( -caller -) -; -} -} -let -mut -stack -= -self -. -stack -. -lock -( -) -. -unwrap -( -) -; -let -value -= -match -stack -. -pop -( -) -{ -None -= -> -Box -: -: -new -( -( -self -. -create -) -( -) -) -Some -( -value -) -= -> -value -} -; -self -. -guard_stack -( -value -) -} -fn -put_value -( -& -self -value -: -Box -< -T -> -) -{ -let -mut -stack -= -self -. -stack -. -lock -( -) -. -unwrap -( -) -; -stack -. -push -( -value -) -; -} -fn -guard_owned -( -& -self -caller -: -usize -) -- -> -PoolGuard -< -' -_ -T -F -> -{ -PoolGuard -{ -pool -: -self -value -: -Err -( -caller -) -} -} -fn -guard_stack -( -& -self -value -: -Box -< -T -> -) -- -> -PoolGuard -< -' -_ -T -F -> -{ -PoolGuard -{ -pool -: -self -value -: -Ok -( -value -) -} -} -} -impl -< -T -: -core -: -: -fmt -: -: -Debug -F -> -core -: -: -fmt -: -: -Debug -for -Pool -< -T -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_struct -( -" -Pool -" -) -. -field -( -" -stack -" -& -self -. -stack -) -. -field -( -" -owner -" -& -self -. -owner -) -. -field -( -" -owner_val -" -& -self -. -owner_val -) -. -finish -( -) -} -} -pub -( -super -) -struct -PoolGuard -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -{ -pool -: -& -' -a -Pool -< -T -F -> -value -: -Result -< -Box -< -T -> -usize -> -} -impl -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -PoolGuard -< -' -a -T -F -> -{ -pub -( -super -) -fn -value -( -& -self -) -- -> -& -T -{ -match -self -. -value -{ -Ok -( -ref -v -) -= -> -& -* -* -v -Err -( -id -) -= -> -unsafe -{ -debug_assert_ne -! -( -THREAD_ID_DROPPED -id -) -; -( -* -self -. -pool -. -owner_val -. -get -( -) -) -. -as_ref -( -) -. -unwrap_unchecked -( -) -} -} -} -pub -( -super -) -fn -value_mut -( -& -mut -self -) -- -> -& -mut -T -{ -match -self -. -value -{ -Ok -( -ref -mut -v -) -= -> -& -mut -* -* -v -Err -( -id -) -= -> -unsafe -{ -debug_assert_ne -! -( -THREAD_ID_DROPPED -id -) -; -( -* -self -. -pool -. -owner_val -. -get -( -) -) -. -as_mut -( -) -. -unwrap_unchecked -( -) -} -} -} -pub -( -super -) -fn -put -( -this -: -PoolGuard -< -' -_ -T -F -> -) -{ -let -mut -this -= -core -: -: -mem -: -: -ManuallyDrop -: -: -new -( -this -) -; -this -. -put_imp -( -) -; -} -# -[ -inline -( -always -) -] -fn -put_imp -( -& -mut -self -) -{ -match -core -: -: -mem -: -: -replace -( -& -mut -self -. -value -Err -( -THREAD_ID_DROPPED -) -) -{ -Ok -( -value -) -= -> -self -. -pool -. -put_value -( -value -) -Err -( -owner -) -= -> -{ -assert_ne -! -( -THREAD_ID_DROPPED -owner -) -; -self -. -pool -. -owner -. -store -( -owner -Ordering -: -: -Release -) -; -} -} -} -} -impl -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -Drop -for -PoolGuard -< -' -a -T -F -> -{ -fn -drop -( -& -mut -self -) -{ -self -. -put_imp -( -) -; -} -} -impl -< -' -a -T -: -Send -+ -core -: -: -fmt -: -: -Debug -F -: -Fn -( -) -- -> -T -> -core -: -: -fmt -: -: -Debug -for -PoolGuard -< -' -a -T -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_struct -( -" -PoolGuard -" -) -. -field -( -" -pool -" -& -self -. -pool -) -. -field -( -" -value -" -& -self -. -value -) -. -finish -( -) -} -} -} -# -[ -cfg -( -not -( -feature -= -" -std -" -) -) -] -mod -inner -{ -use -core -: -: -{ -cell -: -: -UnsafeCell -panic -: -: -{ -RefUnwindSafe -UnwindSafe -} -sync -: -: -atomic -: -: -{ -AtomicBool -Ordering -} -} -; -use -alloc -: -: -{ -boxed -: -: -Box -vec -vec -: -: -Vec -} -; -pub -( -super -) -struct -Pool -< -T -F -> -{ -stack -: -Mutex -< -Vec -< -Box -< -T -> -> -> -create -: -F -} -impl -< -T -: -UnwindSafe -F -: -UnwindSafe -> -RefUnwindSafe -for -Pool -< -T -F -> -{ -} -impl -< -T -F -> -Pool -< -T -F -> -{ -pub -( -super -) -const -fn -new -( -create -: -F -) -- -> -Pool -< -T -F -> -{ -Pool -{ -stack -: -Mutex -: -: -new -( -vec -! -[ -] -) -create -} -} -} -impl -< -T -: -Send -F -: -Fn -( -) -- -> -T -> -Pool -< -T -F -> -{ -pub -( -super -) -fn -get -( -& -self -) -- -> -PoolGuard -< -' -_ -T -F -> -{ -let -mut -stack -= -self -. -stack -. -lock -( -) -; -let -value -= -match -stack -. -pop -( -) -{ -None -= -> -Box -: -: -new -( -( -self -. -create -) -( -) -) -Some -( -value -) -= -> -value -} -; -PoolGuard -{ -pool -: -self -value -: -Some -( -value -) -} -} -fn -put -( -& -self -guard -: -PoolGuard -< -' -_ -T -F -> -) -{ -let -mut -guard -= -core -: -: -mem -: -: -ManuallyDrop -: -: -new -( -guard -) -; -if -let -Some -( -value -) -= -guard -. -value -. -take -( -) -{ -self -. -put_value -( -value -) -; -} -} -fn -put_value -( -& -self -value -: -Box -< -T -> -) -{ -let -mut -stack -= -self -. -stack -. -lock -( -) -; -stack -. -push -( -value -) -; -} -} -impl -< -T -: -core -: -: -fmt -: -: -Debug -F -> -core -: -: -fmt -: -: -Debug -for -Pool -< -T -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_struct -( -" -Pool -" -) -. -field -( -" -stack -" -& -self -. -stack -) -. -finish -( -) -} -} -pub -( -super -) -struct -PoolGuard -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -{ -pool -: -& -' -a -Pool -< -T -F -> -value -: -Option -< -Box -< -T -> -> -} -impl -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -PoolGuard -< -' -a -T -F -> -{ -pub -( -super -) -fn -value -( -& -self -) -- -> -& -T -{ -self -. -value -. -as_deref -( -) -. -unwrap -( -) -} -pub -( -super -) -fn -value_mut -( -& -mut -self -) -- -> -& -mut -T -{ -self -. -value -. -as_deref_mut -( -) -. -unwrap -( -) -} -pub -( -super -) -fn -put -( -this -: -PoolGuard -< -' -_ -T -F -> -) -{ -let -mut -this -= -core -: -: -mem -: -: -ManuallyDrop -: -: -new -( -this -) -; -this -. -put_imp -( -) -; -} -# -[ -inline -( -always -) -] -fn -put_imp -( -& -mut -self -) -{ -if -let -Some -( -value -) -= -self -. -value -. -take -( -) -{ -self -. -pool -. -put_value -( -value -) -; -} -} -} -impl -< -' -a -T -: -Send -F -: -Fn -( -) -- -> -T -> -Drop -for -PoolGuard -< -' -a -T -F -> -{ -fn -drop -( -& -mut -self -) -{ -self -. -put_imp -( -) -; -} -} -impl -< -' -a -T -: -Send -+ -core -: -: -fmt -: -: -Debug -F -: -Fn -( -) -- -> -T -> -core -: -: -fmt -: -: -Debug -for -PoolGuard -< -' -a -T -F -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_struct -( -" -PoolGuard -" -) -. -field -( -" -pool -" -& -self -. -pool -) -. -field -( -" -value -" -& -self -. -value -) -. -finish -( -) -} -} -# -[ -derive -( -Debug -) -] -struct -Mutex -< -T -> -{ -locked -: -AtomicBool -data -: -UnsafeCell -< -T -> -} -unsafe -impl -< -T -: -Send -> -Sync -for -Mutex -< -T -> -{ -} -impl -< -T -> -Mutex -< -T -> -{ -const -fn -new -( -value -: -T -) -- -> -Mutex -< -T -> -{ -Mutex -{ -locked -: -AtomicBool -: -: -new -( -false -) -data -: -UnsafeCell -: -: -new -( -value -) -} -} -fn -lock -( -& -self -) -- -> -MutexGuard -< -' -_ -T -> -{ -while -self -. -locked -. -compare_exchange -( -false -true -Ordering -: -: -AcqRel -Ordering -: -: -Acquire -) -. -is_err -( -) -{ -core -: -: -hint -: -: -spin_loop -( -) -; -} -let -data -= -unsafe -{ -& -mut -* -self -. -data -. -get -( -) -} -; -MutexGuard -{ -locked -: -& -self -. -locked -data -} -} -} -# -[ -derive -( -Debug -) -] -struct -MutexGuard -< -' -a -T -> -{ -locked -: -& -' -a -AtomicBool -data -: -& -' -a -mut -T -} -impl -< -' -a -T -> -core -: -: -ops -: -: -Deref -for -MutexGuard -< -' -a -T -> -{ -type -Target -= -T -; -fn -deref -( -& -self -) -- -> -& -T -{ -self -. -data -} -} -impl -< -' -a -T -> -core -: -: -ops -: -: -DerefMut -for -MutexGuard -< -' -a -T -> -{ -fn -deref_mut -( -& -mut -self -) -- -> -& -mut -T -{ -self -. -data -} -} -impl -< -' -a -T -> -Drop -for -MutexGuard -< -' -a -T -> -{ -fn -drop -( -& -mut -self -) -{ -self -. -locked -. -store -( -false -Ordering -: -: -Release -) -; -} -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -core -: -: -panic -: -: -{ -RefUnwindSafe -UnwindSafe -} -; -use -alloc -: -: -{ -boxed -: -: -Box -vec -vec -: -: -Vec -} -; -use -super -: -: -* -; -# -[ -test -] -fn -oibits -( -) -{ -fn -assert_oitbits -< -T -: -Send -+ -Sync -+ -UnwindSafe -+ -RefUnwindSafe -> -( -) -{ -} -assert_oitbits -: -: -< -Pool -< -Vec -< -u32 -> -> -> -( -) -; -assert_oitbits -: -: -< -Pool -< -core -: -: -cell -: -: -RefCell -< -Vec -< -u32 -> -> -> -> -( -) -; -assert_oitbits -: -: -< -Pool -< -Vec -< -u32 -> -Box -< -dyn -Fn -( -) -- -> -Vec -< -u32 -> -+ -Send -+ -Sync -+ -UnwindSafe -+ -RefUnwindSafe -> -> -> -( -) -; -} -# -[ -cfg -( -feature -= -" -std -" -) -] -# -[ -test -] -fn -thread_owner_optimization -( -) -{ -use -std -: -: -{ -cell -: -: -RefCell -sync -: -: -Arc -vec -} -; -let -pool -: -Arc -< -Pool -< -RefCell -< -Vec -< -char -> -> -> -> -= -Arc -: -: -new -( -Pool -: -: -new -( -| -| -RefCell -: -: -new -( -vec -! -[ -' -a -' -] -) -) -) -; -pool -. -get -( -) -. -borrow_mut -( -) -. -push -( -' -x -' -) -; -let -pool1 -= -pool -. -clone -( -) -; -let -t1 -= -std -: -: -thread -: -: -spawn -( -move -| -| -{ -let -guard -= -pool1 -. -get -( -) -; -guard -. -borrow_mut -( -) -. -push -( -' -y -' -) -; -} -) -; -let -pool2 -= -pool -. -clone -( -) -; -let -t2 -= -std -: -: -thread -: -: -spawn -( -move -| -| -{ -let -guard -= -pool2 -. -get -( -) -; -guard -. -borrow_mut -( -) -. -push -( -' -z -' -) -; -} -) -; -t1 -. -join -( -) -. -unwrap -( -) -; -t2 -. -join -( -) -. -unwrap -( -) -; -assert_eq -! -( -vec -! -[ -' -a -' -' -x -' -] -* -pool -. -get -( -) -. -borrow -( -) -) -; -} -# -[ -test -] -fn -thread_owner_distinct -( -) -{ -let -pool -= -Pool -: -: -new -( -| -| -vec -! -[ -' -a -' -] -) -; -{ -let -mut -g1 -= -pool -. -get -( -) -; -let -v1 -= -& -mut -* -g1 -; -let -mut -g2 -= -pool -. -get -( -) -; -let -v2 -= -& -mut -* -g2 -; -v1 -. -push -( -' -b -' -) -; -v2 -. -push -( -' -c -' -) -; -assert_eq -! -( -& -mut -vec -! -[ -' -a -' -' -b -' -] -v1 -) -; -assert_eq -! -( -& -mut -vec -! -[ -' -a -' -' -c -' -] -v2 -) -; -} -assert_eq -! -( -& -mut -vec -! -[ -' -a -' -' -b -' -] -& -mut -* -pool -. -get -( -) -) -; -} -# -[ -cfg -( -feature -= -" -std -" -) -] -# -[ -test -] -fn -thread_owner_sync -( -) -{ -let -pool -= -Pool -: -: -new -( -| -| -vec -! -[ -' -a -' -] -) -; -{ -let -mut -g1 -= -pool -. -get -( -) -; -let -mut -g2 -= -pool -. -get -( -) -; -std -: -: -thread -: -: -scope -( -| -s -| -{ -s -. -spawn -( -| -| -{ -g1 -. -push -( -' -b -' -) -; -} -) -; -s -. -spawn -( -| -| -{ -g2 -. -push -( -' -c -' -) -; -} -) -; -} -) -; -let -v1 -= -& -mut -* -g1 -; -let -v2 -= -& -mut -* -g2 -; -assert_eq -! -( -& -mut -vec -! -[ -' -a -' -' -b -' -] -v1 -) -; -assert_eq -! -( -& -mut -vec -! -[ -' -a -' -' -c -' -] -v2 -) -; -} -assert_eq -! -( -& -mut -vec -! -[ -' -a -' -' -b -' -] -& -mut -* -pool -. -get -( -) -) -; -} -# -[ -cfg -( -feature -= -" -std -" -) -] -# -[ -test -] -fn -thread_owner_send_drop -( -) -{ -let -pool -= -Pool -: -: -new -( -| -| -vec -! -[ -' -a -' -] -) -; -{ -pool -. -get -( -) -. -push -( -' -b -' -) -; -} -std -: -: -thread -: -: -scope -( -| -s -| -{ -let -mut -g -= -pool -. -get -( -) -; -assert_eq -! -( -& -vec -! -[ -' -a -' -' -b -' -] -& -* -g -) -; -s -. -spawn -( -move -| -| -{ -g -. -push -( -' -c -' -) -; -} -) -. -join -( -) -. -unwrap -( -) -; -} -) -; -assert_eq -! -( -& -vec -! -[ -' -a -' -' -b -' -' -c -' -] -& -* -pool -. -get -( -) -) -; -} -} diff --git a/third_party/rust/regex-automata/src/util/prefilter/aho_corasick.rs b/third_party/rust/regex-automata/src/util/prefilter/aho_corasick.rs deleted file mode 100644 index 0ba4f04c62933..0000000000000 --- a/third_party/rust/regex-automata/src/util/prefilter/aho_corasick.rs +++ /dev/null @@ -1,688 +0,0 @@ -use -crate -: -: -util -: -: -{ -prefilter -: -: -PrefilterI -search -: -: -{ -MatchKind -Span -} -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -AhoCorasick -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -_unused -: -( -) -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -ac -: -aho_corasick -: -: -AhoCorasick -} -impl -AhoCorasick -{ -pub -( -crate -) -fn -new -< -B -: -AsRef -< -[ -u8 -] -> -> -( -kind -: -MatchKind -needles -: -& -[ -B -] -) -- -> -Option -< -AhoCorasick -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -None -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -let -ac_match_kind -= -match -kind -{ -MatchKind -: -: -LeftmostFirst -| -MatchKind -: -: -All -= -> -{ -aho_corasick -: -: -MatchKind -: -: -LeftmostFirst -} -} -; -let -ac_kind -= -if -needles -. -len -( -) -< -= -500 -{ -aho_corasick -: -: -AhoCorasickKind -: -: -DFA -} -else -{ -aho_corasick -: -: -AhoCorasickKind -: -: -ContiguousNFA -} -; -let -result -= -aho_corasick -: -: -AhoCorasick -: -: -builder -( -) -. -kind -( -Some -( -ac_kind -) -) -. -match_kind -( -ac_match_kind -) -. -start_kind -( -aho_corasick -: -: -StartKind -: -: -Both -) -. -prefilter -( -false -) -. -build -( -needles -) -; -let -ac -= -match -result -{ -Ok -( -ac -) -= -> -ac -Err -( -_err -) -= -> -{ -debug -! -( -" -aho -- -corasick -prefilter -failed -to -build -: -{ -} -" -_err -) -; -return -None -; -} -} -; -Some -( -AhoCorasick -{ -ac -} -) -} -} -} -impl -PrefilterI -for -AhoCorasick -{ -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -let -input -= -aho_corasick -: -: -Input -: -: -new -( -haystack -) -. -span -( -span -. -start -. -. -span -. -end -) -; -self -. -ac -. -find -( -input -) -. -map -( -| -m -| -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -) -} -} -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -let -input -= -aho_corasick -: -: -Input -: -: -new -( -haystack -) -. -anchored -( -aho_corasick -: -: -Anchored -: -: -Yes -) -. -span -( -span -. -start -. -. -span -. -end -) -; -self -. -ac -. -find -( -input -) -. -map -( -| -m -| -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -) -} -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -self -. -ac -. -memory_usage -( -) -} -} -fn -is_fast -( -& -self -) -- -> -bool -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -false -} -} -} diff --git a/third_party/rust/regex-automata/src/util/prefilter/byteset.rs b/third_party/rust/regex-automata/src/util/prefilter/byteset.rs deleted file mode 100644 index 6c8587f465431..0000000000000 --- a/third_party/rust/regex-automata/src/util/prefilter/byteset.rs +++ /dev/null @@ -1,371 +0,0 @@ -use -crate -: -: -util -: -: -{ -prefilter -: -: -PrefilterI -search -: -: -{ -MatchKind -Span -} -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -ByteSet -( -[ -bool -; -256 -] -) -; -impl -ByteSet -{ -pub -( -crate -) -fn -new -< -B -: -AsRef -< -[ -u8 -] -> -> -( -_kind -: -MatchKind -needles -: -& -[ -B -] -) -- -> -Option -< -ByteSet -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -None -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -let -mut -set -= -[ -false -; -256 -] -; -for -needle -in -needles -. -iter -( -) -{ -let -needle -= -needle -. -as_ref -( -) -; -if -needle -. -len -( -) -! -= -1 -{ -return -None -; -} -set -[ -usize -: -: -from -( -needle -[ -0 -] -) -] -= -true -; -} -Some -( -ByteSet -( -set -) -) -} -} -} -impl -PrefilterI -for -ByteSet -{ -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -haystack -[ -span -] -. -iter -( -) -. -position -( -| -& -b -| -self -. -0 -[ -usize -: -: -from -( -b -) -] -) -. -map -( -| -i -| -{ -let -start -= -span -. -start -+ -i -; -let -end -= -start -+ -1 -; -Span -{ -start -end -} -} -) -} -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -let -b -= -* -haystack -. -get -( -span -. -start -) -? -; -if -self -. -0 -[ -usize -: -: -from -( -b -) -] -{ -Some -( -Span -{ -start -: -span -. -start -end -: -span -. -start -+ -1 -} -) -} -else -{ -None -} -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -0 -} -fn -is_fast -( -& -self -) -- -> -bool -{ -false -} -} diff --git a/third_party/rust/regex-automata/src/util/prefilter/memchr.rs b/third_party/rust/regex-automata/src/util/prefilter/memchr.rs deleted file mode 100644 index 207062548a5db..0000000000000 --- a/third_party/rust/regex-automata/src/util/prefilter/memchr.rs +++ /dev/null @@ -1,1194 +0,0 @@ -use -crate -: -: -util -: -: -{ -prefilter -: -: -PrefilterI -search -: -: -{ -MatchKind -Span -} -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -Memchr -( -u8 -) -; -impl -Memchr -{ -pub -( -crate -) -fn -new -< -B -: -AsRef -< -[ -u8 -] -> -> -( -_kind -: -MatchKind -needles -: -& -[ -B -] -) -- -> -Option -< -Memchr -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -None -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -substring -" -) -] -{ -if -needles -. -len -( -) -! -= -1 -{ -return -None -; -} -if -needles -[ -0 -] -. -as_ref -( -) -. -len -( -) -! -= -1 -{ -return -None -; -} -Some -( -Memchr -( -needles -[ -0 -] -. -as_ref -( -) -[ -0 -] -) -) -} -} -} -impl -PrefilterI -for -Memchr -{ -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -substring -" -) -] -{ -memchr -: -: -memchr -( -self -. -0 -& -haystack -[ -span -] -) -. -map -( -| -i -| -{ -let -start -= -span -. -start -+ -i -; -let -end -= -start -+ -1 -; -Span -{ -start -end -} -} -) -} -} -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -let -b -= -* -haystack -. -get -( -span -. -start -) -? -; -if -self -. -0 -= -= -b -{ -Some -( -Span -{ -start -: -span -. -start -end -: -span -. -start -+ -1 -} -) -} -else -{ -None -} -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -0 -} -fn -is_fast -( -& -self -) -- -> -bool -{ -true -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -Memchr2 -( -u8 -u8 -) -; -impl -Memchr2 -{ -pub -( -crate -) -fn -new -< -B -: -AsRef -< -[ -u8 -] -> -> -( -_kind -: -MatchKind -needles -: -& -[ -B -] -) -- -> -Option -< -Memchr2 -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -None -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -substring -" -) -] -{ -if -needles -. -len -( -) -! -= -2 -{ -return -None -; -} -if -! -needles -. -iter -( -) -. -all -( -| -n -| -n -. -as_ref -( -) -. -len -( -) -= -= -1 -) -{ -return -None -; -} -let -b1 -= -needles -[ -0 -] -. -as_ref -( -) -[ -0 -] -; -let -b2 -= -needles -[ -1 -] -. -as_ref -( -) -[ -0 -] -; -Some -( -Memchr2 -( -b1 -b2 -) -) -} -} -} -impl -PrefilterI -for -Memchr2 -{ -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -substring -" -) -] -{ -memchr -: -: -memchr2 -( -self -. -0 -self -. -1 -& -haystack -[ -span -] -) -. -map -( -| -i -| -{ -let -start -= -span -. -start -+ -i -; -let -end -= -start -+ -1 -; -Span -{ -start -end -} -} -) -} -} -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -let -b -= -* -haystack -. -get -( -span -. -start -) -? -; -if -self -. -0 -= -= -b -| -| -self -. -1 -= -= -b -{ -Some -( -Span -{ -start -: -span -. -start -end -: -span -. -start -+ -1 -} -) -} -else -{ -None -} -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -0 -} -fn -is_fast -( -& -self -) -- -> -bool -{ -true -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -Memchr3 -( -u8 -u8 -u8 -) -; -impl -Memchr3 -{ -pub -( -crate -) -fn -new -< -B -: -AsRef -< -[ -u8 -] -> -> -( -_kind -: -MatchKind -needles -: -& -[ -B -] -) -- -> -Option -< -Memchr3 -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -None -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -substring -" -) -] -{ -if -needles -. -len -( -) -! -= -3 -{ -return -None -; -} -if -! -needles -. -iter -( -) -. -all -( -| -n -| -n -. -as_ref -( -) -. -len -( -) -= -= -1 -) -{ -return -None -; -} -let -b1 -= -needles -[ -0 -] -. -as_ref -( -) -[ -0 -] -; -let -b2 -= -needles -[ -1 -] -. -as_ref -( -) -[ -0 -] -; -let -b3 -= -needles -[ -2 -] -. -as_ref -( -) -[ -0 -] -; -Some -( -Memchr3 -( -b1 -b2 -b3 -) -) -} -} -} -impl -PrefilterI -for -Memchr3 -{ -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -substring -" -) -] -{ -memchr -: -: -memchr3 -( -self -. -0 -self -. -1 -self -. -2 -& -haystack -[ -span -] -) -. -map -( -| -i -| -{ -let -start -= -span -. -start -+ -i -; -let -end -= -start -+ -1 -; -Span -{ -start -end -} -} -) -} -} -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -let -b -= -* -haystack -. -get -( -span -. -start -) -? -; -if -self -. -0 -= -= -b -| -| -self -. -1 -= -= -b -| -| -self -. -2 -= -= -b -{ -Some -( -Span -{ -start -: -span -. -start -end -: -span -. -start -+ -1 -} -) -} -else -{ -None -} -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -0 -} -fn -is_fast -( -& -self -) -- -> -bool -{ -true -} -} diff --git a/third_party/rust/regex-automata/src/util/prefilter/memmem.rs b/third_party/rust/regex-automata/src/util/prefilter/memmem.rs deleted file mode 100644 index 4d2c2d44322bc..0000000000000 --- a/third_party/rust/regex-automata/src/util/prefilter/memmem.rs +++ /dev/null @@ -1,663 +0,0 @@ -use -crate -: -: -util -: -: -{ -prefilter -: -: -PrefilterI -search -: -: -{ -MatchKind -Span -} -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -Memmem -{ -# -[ -cfg -( -not -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -) -] -_unused -: -( -) -# -[ -cfg -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -] -finder -: -memchr -: -: -memmem -: -: -Finder -< -' -static -> -} -impl -Memmem -{ -pub -( -crate -) -fn -new -< -B -: -AsRef -< -[ -u8 -] -> -> -( -_kind -: -MatchKind -needles -: -& -[ -B -] -) -- -> -Option -< -Memmem -> -{ -# -[ -cfg -( -not -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -) -] -{ -None -} -# -[ -cfg -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -if -needles -. -len -( -) -! -= -1 -{ -return -None -; -} -let -needle -= -needles -[ -0 -] -. -as_ref -( -) -; -let -finder -= -memchr -: -: -memmem -: -: -Finder -: -: -new -( -needle -) -. -into_owned -( -) -; -Some -( -Memmem -{ -finder -} -) -} -} -} -impl -PrefilterI -for -Memmem -{ -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -self -. -finder -. -find -( -& -haystack -[ -span -] -) -. -map -( -| -i -| -{ -let -start -= -span -. -start -+ -i -; -let -end -= -start -+ -self -. -finder -. -needle -( -) -. -len -( -) -; -Span -{ -start -end -} -} -) -} -} -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -let -needle -= -self -. -finder -. -needle -( -) -; -if -haystack -[ -span -] -. -starts_with -( -needle -) -{ -Some -( -Span -{ -end -: -span -. -start -+ -needle -. -len -( -) -. -. -span -} -) -} -else -{ -None -} -} -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -not -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -self -. -finder -. -needle -( -) -. -len -( -) -} -} -fn -is_fast -( -& -self -) -- -> -bool -{ -# -[ -cfg -( -not -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -all -( -feature -= -" -std -" -feature -= -" -perf -- -literal -- -substring -" -) -) -] -{ -true -} -} -} diff --git a/third_party/rust/regex-automata/src/util/prefilter/mod.rs b/third_party/rust/regex-automata/src/util/prefilter/mod.rs deleted file mode 100644 index 6a3062947814c..0000000000000 --- a/third_party/rust/regex-automata/src/util/prefilter/mod.rs +++ /dev/null @@ -1,2020 +0,0 @@ -mod -aho_corasick -; -mod -byteset -; -mod -memchr -; -mod -memmem -; -mod -teddy -; -use -core -: -: -{ -borrow -: -: -Borrow -fmt -: -: -Debug -panic -: -: -{ -RefUnwindSafe -UnwindSafe -} -} -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -use -alloc -: -: -sync -: -: -Arc -; -# -[ -cfg -( -feature -= -" -syntax -" -) -] -use -regex_syntax -: -: -hir -: -: -{ -literal -Hir -} -; -use -crate -: -: -util -: -: -search -: -: -{ -MatchKind -Span -} -; -pub -( -crate -) -use -crate -: -: -util -: -: -prefilter -: -: -{ -aho_corasick -: -: -AhoCorasick -byteset -: -: -ByteSet -memchr -: -: -{ -Memchr -Memchr2 -Memchr3 -} -memmem -: -: -Memmem -teddy -: -: -Teddy -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -Prefilter -{ -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -_unused -: -( -) -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pre -: -Arc -< -dyn -PrefilterI -> -# -[ -cfg -( -feature -= -" -alloc -" -) -] -is_fast -: -bool -} -impl -Prefilter -{ -pub -fn -new -< -B -: -AsRef -< -[ -u8 -] -> -> -( -kind -: -MatchKind -needles -: -& -[ -B -] -) -- -> -Option -< -Prefilter -> -{ -Choice -: -: -new -( -kind -needles -) -. -and_then -( -Prefilter -: -: -from_choice -) -} -fn -from_choice -( -choice -: -Choice -) -- -> -Option -< -Prefilter -> -{ -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -{ -None -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -{ -let -pre -: -Arc -< -dyn -PrefilterI -> -= -match -choice -{ -Choice -: -: -Memchr -( -p -) -= -> -Arc -: -: -new -( -p -) -Choice -: -: -Memchr2 -( -p -) -= -> -Arc -: -: -new -( -p -) -Choice -: -: -Memchr3 -( -p -) -= -> -Arc -: -: -new -( -p -) -Choice -: -: -Memmem -( -p -) -= -> -Arc -: -: -new -( -p -) -Choice -: -: -Teddy -( -p -) -= -> -Arc -: -: -new -( -p -) -Choice -: -: -ByteSet -( -p -) -= -> -Arc -: -: -new -( -p -) -Choice -: -: -AhoCorasick -( -p -) -= -> -Arc -: -: -new -( -p -) -} -; -let -is_fast -= -pre -. -is_fast -( -) -; -Some -( -Prefilter -{ -pre -is_fast -} -) -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -from_hir_prefix -( -kind -: -MatchKind -hir -: -& -Hir -) -- -> -Option -< -Prefilter -> -{ -Prefilter -: -: -from_hirs_prefix -( -kind -& -[ -hir -] -) -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -fn -from_hirs_prefix -< -H -: -Borrow -< -Hir -> -> -( -kind -: -MatchKind -hirs -: -& -[ -H -] -) -- -> -Option -< -Prefilter -> -{ -prefixes -( -kind -hirs -) -. -literals -( -) -. -and_then -( -| -lits -| -Prefilter -: -: -new -( -kind -lits -) -) -} -# -[ -inline -] -pub -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -{ -self -. -pre -. -find -( -haystack -span -) -} -} -# -[ -inline -] -pub -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -{ -self -. -pre -. -prefix -( -haystack -span -) -} -} -# -[ -inline -] -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -{ -self -. -pre -. -memory_usage -( -) -} -} -# -[ -inline -] -pub -( -crate -) -fn -is_fast -( -& -self -) -- -> -bool -{ -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -{ -self -. -is_fast -} -} -} -pub -( -crate -) -trait -PrefilterI -: -Debug -+ -Send -+ -Sync -+ -RefUnwindSafe -+ -UnwindSafe -+ -' -static -{ -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -; -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -; -fn -memory_usage -( -& -self -) -- -> -usize -; -fn -is_fast -( -& -self -) -- -> -bool -; -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -P -: -PrefilterI -+ -? -Sized -> -PrefilterI -for -Arc -< -P -> -{ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -( -& -* -* -self -) -. -find -( -haystack -span -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -( -& -* -* -self -) -. -prefix -( -haystack -span -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -memory_usage -( -& -self -) -- -> -usize -{ -( -& -* -* -self -) -. -memory_usage -( -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_fast -( -& -self -) -- -> -bool -{ -( -& -* -* -self -) -. -is_fast -( -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -enum -Choice -{ -Memchr -( -Memchr -) -Memchr2 -( -Memchr2 -) -Memchr3 -( -Memchr3 -) -Memmem -( -Memmem -) -Teddy -( -Teddy -) -ByteSet -( -ByteSet -) -AhoCorasick -( -AhoCorasick -) -} -impl -Choice -{ -pub -( -crate -) -fn -new -< -B -: -AsRef -< -[ -u8 -] -> -> -( -kind -: -MatchKind -needles -: -& -[ -B -] -) -- -> -Option -< -Choice -> -{ -if -needles -. -len -( -) -= -= -0 -{ -debug -! -( -" -prefilter -building -failed -: -found -empty -set -of -literals -" -) -; -return -None -; -} -if -needles -. -iter -( -) -. -any -( -| -n -| -n -. -as_ref -( -) -. -is_empty -( -) -) -{ -debug -! -( -" -prefilter -building -failed -: -literals -match -empty -string -" -) -; -return -None -; -} -if -let -Some -( -pre -) -= -Memchr -: -: -new -( -kind -needles -) -{ -debug -! -( -" -prefilter -built -: -memchr -" -) -; -return -Some -( -Choice -: -: -Memchr -( -pre -) -) -; -} -if -let -Some -( -pre -) -= -Memchr2 -: -: -new -( -kind -needles -) -{ -debug -! -( -" -prefilter -built -: -memchr2 -" -) -; -return -Some -( -Choice -: -: -Memchr2 -( -pre -) -) -; -} -if -let -Some -( -pre -) -= -Memchr3 -: -: -new -( -kind -needles -) -{ -debug -! -( -" -prefilter -built -: -memchr3 -" -) -; -return -Some -( -Choice -: -: -Memchr3 -( -pre -) -) -; -} -if -let -Some -( -pre -) -= -Memmem -: -: -new -( -kind -needles -) -{ -debug -! -( -" -prefilter -built -: -memmem -" -) -; -return -Some -( -Choice -: -: -Memmem -( -pre -) -) -; -} -if -let -Some -( -pre -) -= -Teddy -: -: -new -( -kind -needles -) -{ -debug -! -( -" -prefilter -built -: -teddy -" -) -; -return -Some -( -Choice -: -: -Teddy -( -pre -) -) -; -} -if -let -Some -( -pre -) -= -ByteSet -: -: -new -( -kind -needles -) -{ -debug -! -( -" -prefilter -built -: -byteset -" -) -; -return -Some -( -Choice -: -: -ByteSet -( -pre -) -) -; -} -if -let -Some -( -pre -) -= -AhoCorasick -: -: -new -( -kind -needles -) -{ -debug -! -( -" -prefilter -built -: -aho -- -corasick -" -) -; -return -Some -( -Choice -: -: -AhoCorasick -( -pre -) -) -; -} -debug -! -( -" -prefilter -building -failed -: -no -strategy -could -be -found -" -) -; -None -} -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -( -crate -) -fn -prefixes -< -H -> -( -kind -: -MatchKind -hirs -: -& -[ -H -] -) -- -> -literal -: -: -Seq -where -H -: -core -: -: -borrow -: -: -Borrow -< -Hir -> -{ -let -mut -extractor -= -literal -: -: -Extractor -: -: -new -( -) -; -extractor -. -kind -( -literal -: -: -ExtractKind -: -: -Prefix -) -; -let -mut -prefixes -= -literal -: -: -Seq -: -: -empty -( -) -; -for -hir -in -hirs -{ -prefixes -. -union -( -& -mut -extractor -. -extract -( -hir -. -borrow -( -) -) -) -; -} -debug -! -( -" -prefixes -( -len -= -{ -: -? -} -exact -= -{ -: -? -} -) -extracted -before -optimization -: -{ -: -? -} -" -prefixes -. -len -( -) -prefixes -. -is_exact -( -) -prefixes -) -; -match -kind -{ -MatchKind -: -: -All -= -> -{ -prefixes -. -sort -( -) -; -prefixes -. -dedup -( -) -; -} -MatchKind -: -: -LeftmostFirst -= -> -{ -prefixes -. -optimize_for_prefix_by_preference -( -) -; -} -} -debug -! -( -" -prefixes -( -len -= -{ -: -? -} -exact -= -{ -: -? -} -) -extracted -after -optimization -: -{ -: -? -} -" -prefixes -. -len -( -) -prefixes -. -is_exact -( -) -prefixes -) -; -prefixes -} -# -[ -cfg -( -feature -= -" -syntax -" -) -] -pub -( -crate -) -fn -suffixes -< -H -> -( -kind -: -MatchKind -hirs -: -& -[ -H -] -) -- -> -literal -: -: -Seq -where -H -: -core -: -: -borrow -: -: -Borrow -< -Hir -> -{ -let -mut -extractor -= -literal -: -: -Extractor -: -: -new -( -) -; -extractor -. -kind -( -literal -: -: -ExtractKind -: -: -Suffix -) -; -let -mut -suffixes -= -literal -: -: -Seq -: -: -empty -( -) -; -for -hir -in -hirs -{ -suffixes -. -union -( -& -mut -extractor -. -extract -( -hir -. -borrow -( -) -) -) -; -} -debug -! -( -" -suffixes -( -len -= -{ -: -? -} -exact -= -{ -: -? -} -) -extracted -before -optimization -: -{ -: -? -} -" -suffixes -. -len -( -) -suffixes -. -is_exact -( -) -suffixes -) -; -match -kind -{ -MatchKind -: -: -All -= -> -{ -suffixes -. -sort -( -) -; -suffixes -. -dedup -( -) -; -} -MatchKind -: -: -LeftmostFirst -= -> -{ -suffixes -. -optimize_for_suffix_by_preference -( -) -; -} -} -debug -! -( -" -suffixes -( -len -= -{ -: -? -} -exact -= -{ -: -? -} -) -extracted -after -optimization -: -{ -: -? -} -" -suffixes -. -len -( -) -suffixes -. -is_exact -( -) -suffixes -) -; -suffixes -} diff --git a/third_party/rust/regex-automata/src/util/prefilter/teddy.rs b/third_party/rust/regex-automata/src/util/prefilter/teddy.rs deleted file mode 100644 index fd9280bacc421..0000000000000 --- a/third_party/rust/regex-automata/src/util/prefilter/teddy.rs +++ /dev/null @@ -1,783 +0,0 @@ -use -crate -: -: -util -: -: -{ -prefilter -: -: -PrefilterI -search -: -: -{ -MatchKind -Span -} -} -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -Teddy -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -_unused -: -( -) -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -searcher -: -aho_corasick -: -: -packed -: -: -Searcher -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -anchored_ac -: -aho_corasick -: -: -dfa -: -: -DFA -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -minimum_len -: -usize -} -impl -Teddy -{ -pub -( -crate -) -fn -new -< -B -: -AsRef -< -[ -u8 -] -> -> -( -kind -: -MatchKind -needles -: -& -[ -B -] -) -- -> -Option -< -Teddy -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -None -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -let -( -packed_match_kind -ac_match_kind -) -= -match -kind -{ -MatchKind -: -: -LeftmostFirst -| -MatchKind -: -: -All -= -> -( -aho_corasick -: -: -packed -: -: -MatchKind -: -: -LeftmostFirst -aho_corasick -: -: -MatchKind -: -: -LeftmostFirst -) -} -; -let -minimum_len -= -needles -. -iter -( -) -. -map -( -| -n -| -n -. -as_ref -( -) -. -len -( -) -) -. -min -( -) -. -unwrap_or -( -0 -) -; -let -packed -= -aho_corasick -: -: -packed -: -: -Config -: -: -new -( -) -. -match_kind -( -packed_match_kind -) -. -builder -( -) -. -extend -( -needles -) -. -build -( -) -? -; -let -anchored_ac -= -aho_corasick -: -: -dfa -: -: -DFA -: -: -builder -( -) -. -match_kind -( -ac_match_kind -) -. -start_kind -( -aho_corasick -: -: -StartKind -: -: -Anchored -) -. -prefilter -( -false -) -. -build -( -needles -) -. -ok -( -) -? -; -Some -( -Teddy -{ -searcher -: -packed -anchored_ac -minimum_len -} -) -} -} -} -impl -PrefilterI -for -Teddy -{ -fn -find -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -let -ac_span -= -aho_corasick -: -: -Span -{ -start -: -span -. -start -end -: -span -. -end -} -; -self -. -searcher -. -find_in -( -haystack -ac_span -) -. -map -( -| -m -| -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -) -} -} -fn -prefix -( -& -self -haystack -: -& -[ -u8 -] -span -: -Span -) -- -> -Option -< -Span -> -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -use -aho_corasick -: -: -automaton -: -: -Automaton -; -let -input -= -aho_corasick -: -: -Input -: -: -new -( -haystack -) -. -anchored -( -aho_corasick -: -: -Anchored -: -: -Yes -) -. -span -( -span -. -start -. -. -span -. -end -) -; -self -. -anchored_ac -. -try_find -( -& -input -) -. -expect -( -" -aho -- -corasick -DFA -should -never -fail -" -) -. -map -( -| -m -| -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -) -} -} -fn -memory_usage -( -& -self -) -- -> -usize -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -use -aho_corasick -: -: -automaton -: -: -Automaton -; -self -. -searcher -. -memory_usage -( -) -+ -self -. -anchored_ac -. -memory_usage -( -) -} -} -fn -is_fast -( -& -self -) -- -> -bool -{ -# -[ -cfg -( -not -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -] -{ -unreachable -! -( -) -} -# -[ -cfg -( -feature -= -" -perf -- -literal -- -multisubstring -" -) -] -{ -self -. -minimum_len -> -= -3 -} -} -} diff --git a/third_party/rust/regex-automata/src/util/primitives.rs b/third_party/rust/regex-automata/src/util/primitives.rs deleted file mode 100644 index 6360174826ba4..0000000000000 --- a/third_party/rust/regex-automata/src/util/primitives.rs +++ /dev/null @@ -1,3843 +0,0 @@ -use -core -: -: -num -: -: -NonZeroUsize -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -use -alloc -: -: -vec -: -: -Vec -; -use -crate -: -: -util -: -: -int -: -: -{ -Usize -U16 -U32 -U64 -} -; -# -[ -derive -( -Clone -Copy -Eq -Hash -PartialEq -PartialOrd -Ord -) -] -# -[ -repr -( -transparent -) -] -pub -struct -NonMaxUsize -( -NonZeroUsize -) -; -impl -NonMaxUsize -{ -# -[ -inline -] -pub -fn -new -( -value -: -usize -) -- -> -Option -< -NonMaxUsize -> -{ -NonZeroUsize -: -: -new -( -value -. -wrapping_add -( -1 -) -) -. -map -( -NonMaxUsize -) -} -# -[ -inline -] -pub -fn -get -( -self -) -- -> -usize -{ -self -. -0 -. -get -( -) -. -wrapping_sub -( -1 -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -NonMaxUsize -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -{ -: -? -} -" -self -. -get -( -) -) -} -} -# -[ -derive -( -Clone -Copy -Debug -Default -Eq -Hash -PartialEq -PartialOrd -Ord -) -] -# -[ -repr -( -transparent -) -] -pub -struct -SmallIndex -( -u32 -) -; -impl -SmallIndex -{ -# -[ -cfg -( -any -( -target_pointer_width -= -" -32 -" -target_pointer_width -= -" -64 -" -) -) -] -pub -const -MAX -: -SmallIndex -= -SmallIndex -: -: -new_unchecked -( -core -: -: -i32 -: -: -MAX -as -usize -- -1 -) -; -# -[ -cfg -( -target_pointer_width -= -" -16 -" -) -] -pub -const -MAX -: -SmallIndex -= -SmallIndex -: -: -new_unchecked -( -core -: -: -isize -: -: -MAX -- -1 -) -; -pub -const -LIMIT -: -usize -= -SmallIndex -: -: -MAX -. -as_usize -( -) -+ -1 -; -pub -const -ZERO -: -SmallIndex -= -SmallIndex -: -: -new_unchecked -( -0 -) -; -pub -const -SIZE -: -usize -= -core -: -: -mem -: -: -size_of -: -: -< -SmallIndex -> -( -) -; -# -[ -inline -] -pub -fn -new -( -index -: -usize -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -SmallIndex -: -: -try_from -( -index -) -} -# -[ -inline -] -pub -const -fn -new_unchecked -( -index -: -usize -) -- -> -SmallIndex -{ -SmallIndex -( -index -as -u32 -) -} -# -[ -inline -] -pub -fn -must -( -index -: -usize -) -- -> -SmallIndex -{ -SmallIndex -: -: -new -( -index -) -. -expect -( -" -invalid -small -index -" -) -} -# -[ -inline -] -pub -const -fn -as_usize -( -& -self -) -- -> -usize -{ -self -. -0 -as -usize -} -# -[ -inline -] -pub -const -fn -as_u64 -( -& -self -) -- -> -u64 -{ -self -. -0 -as -u64 -} -# -[ -inline -] -pub -const -fn -as_u32 -( -& -self -) -- -> -u32 -{ -self -. -0 -} -# -[ -inline -] -pub -const -fn -as_i32 -( -& -self -) -- -> -i32 -{ -self -. -0 -as -i32 -} -# -[ -inline -] -pub -fn -one_more -( -& -self -) -- -> -usize -{ -self -. -as_usize -( -) -+ -1 -} -# -[ -inline -] -pub -fn -from_ne_bytes -( -bytes -: -[ -u8 -; -4 -] -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -let -id -= -u32 -: -: -from_ne_bytes -( -bytes -) -; -if -id -> -SmallIndex -: -: -MAX -. -as_u32 -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -u64 -: -: -from -( -id -) -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -id -. -as_usize -( -) -) -) -} -# -[ -inline -] -pub -fn -from_ne_bytes_unchecked -( -bytes -: -[ -u8 -; -4 -] -) -- -> -SmallIndex -{ -SmallIndex -: -: -new_unchecked -( -u32 -: -: -from_ne_bytes -( -bytes -) -. -as_usize -( -) -) -} -# -[ -inline -] -pub -fn -to_ne_bytes -( -& -self -) -- -> -[ -u8 -; -4 -] -{ -self -. -0 -. -to_ne_bytes -( -) -} -} -impl -< -T -> -core -: -: -ops -: -: -Index -< -SmallIndex -> -for -[ -T -] -{ -type -Output -= -T -; -# -[ -inline -] -fn -index -( -& -self -index -: -SmallIndex -) -- -> -& -T -{ -& -self -[ -index -. -as_usize -( -) -] -} -} -impl -< -T -> -core -: -: -ops -: -: -IndexMut -< -SmallIndex -> -for -[ -T -] -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -SmallIndex -) -- -> -& -mut -T -{ -& -mut -self -[ -index -. -as_usize -( -) -] -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -T -> -core -: -: -ops -: -: -Index -< -SmallIndex -> -for -Vec -< -T -> -{ -type -Output -= -T -; -# -[ -inline -] -fn -index -( -& -self -index -: -SmallIndex -) -- -> -& -T -{ -& -self -[ -index -. -as_usize -( -) -] -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -T -> -core -: -: -ops -: -: -IndexMut -< -SmallIndex -> -for -Vec -< -T -> -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -SmallIndex -) -- -> -& -mut -T -{ -& -mut -self -[ -index -. -as_usize -( -) -] -} -} -impl -From -< -u8 -> -for -SmallIndex -{ -fn -from -( -index -: -u8 -) -- -> -SmallIndex -{ -SmallIndex -: -: -new_unchecked -( -usize -: -: -from -( -index -) -) -} -} -impl -TryFrom -< -u16 -> -for -SmallIndex -{ -type -Error -= -SmallIndexError -; -fn -try_from -( -index -: -u16 -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -if -u32 -: -: -from -( -index -) -> -SmallIndex -: -: -MAX -. -as_u32 -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -u64 -: -: -from -( -index -) -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -index -. -as_usize -( -) -) -) -} -} -impl -TryFrom -< -u32 -> -for -SmallIndex -{ -type -Error -= -SmallIndexError -; -fn -try_from -( -index -: -u32 -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -if -index -> -SmallIndex -: -: -MAX -. -as_u32 -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -u64 -: -: -from -( -index -) -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -index -. -as_usize -( -) -) -) -} -} -impl -TryFrom -< -u64 -> -for -SmallIndex -{ -type -Error -= -SmallIndexError -; -fn -try_from -( -index -: -u64 -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -if -index -> -SmallIndex -: -: -MAX -. -as_u64 -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -index -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -index -. -as_usize -( -) -) -) -} -} -impl -TryFrom -< -usize -> -for -SmallIndex -{ -type -Error -= -SmallIndexError -; -fn -try_from -( -index -: -usize -) -- -> -Result -< -SmallIndex -SmallIndexError -> -{ -if -index -> -SmallIndex -: -: -MAX -. -as_usize -( -) -{ -return -Err -( -SmallIndexError -{ -attempted -: -index -. -as_u64 -( -) -} -) -; -} -Ok -( -SmallIndex -: -: -new_unchecked -( -index -) -) -} -} -# -[ -cfg -( -test -) -] -impl -quickcheck -: -: -Arbitrary -for -SmallIndex -{ -fn -arbitrary -( -gen -: -& -mut -quickcheck -: -: -Gen -) -- -> -SmallIndex -{ -use -core -: -: -cmp -: -: -max -; -let -id -= -max -( -i32 -: -: -MIN -+ -1 -i32 -: -: -arbitrary -( -gen -) -) -. -abs -( -) -; -if -id -> -SmallIndex -: -: -MAX -. -as_i32 -( -) -{ -SmallIndex -: -: -MAX -} -else -{ -SmallIndex -: -: -new -( -usize -: -: -try_from -( -id -) -. -unwrap -( -) -) -. -unwrap -( -) -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -SmallIndexError -{ -attempted -: -u64 -} -impl -SmallIndexError -{ -pub -fn -attempted -( -& -self -) -- -> -u64 -{ -self -. -attempted -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -SmallIndexError -{ -} -impl -core -: -: -fmt -: -: -Display -for -SmallIndexError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -failed -to -create -small -index -from -{ -: -? -} -which -exceeds -{ -: -? -} -" -self -. -attempted -( -) -SmallIndex -: -: -MAX -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -SmallIndexIter -{ -rng -: -core -: -: -ops -: -: -Range -< -usize -> -} -impl -Iterator -for -SmallIndexIter -{ -type -Item -= -SmallIndex -; -fn -next -( -& -mut -self -) -- -> -Option -< -SmallIndex -> -{ -if -self -. -rng -. -start -> -= -self -. -rng -. -end -{ -return -None -; -} -let -next_id -= -self -. -rng -. -start -+ -1 -; -let -id -= -core -: -: -mem -: -: -replace -( -& -mut -self -. -rng -. -start -next_id -) -; -Some -( -SmallIndex -: -: -new_unchecked -( -id -) -) -} -} -macro_rules -! -index_type_impls -{ -( -name -: -ident -err -: -ident -iter -: -ident -withiter -: -ident -) -= -> -{ -impl -name -{ -/ -/ -/ -The -maximum -value -. -pub -const -MAX -: -name -= -name -( -SmallIndex -: -: -MAX -) -; -/ -/ -/ -The -total -number -of -values -that -can -be -represented -. -pub -const -LIMIT -: -usize -= -SmallIndex -: -: -LIMIT -; -/ -/ -/ -The -zero -value -. -pub -const -ZERO -: -name -= -name -( -SmallIndex -: -: -ZERO -) -; -/ -/ -/ -The -number -of -bytes -that -a -single -value -uses -in -memory -. -pub -const -SIZE -: -usize -= -SmallIndex -: -: -SIZE -; -/ -/ -/ -Create -a -new -value -that -is -represented -by -a -" -small -index -. -" -/ -/ -/ -/ -/ -/ -If -the -given -index -exceeds -the -maximum -allowed -value -then -this -/ -/ -/ -returns -an -error -. -# -[ -inline -] -pub -fn -new -( -value -: -usize -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -new -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -/ -/ -/ -Create -a -new -value -without -checking -whether -the -given -argument -/ -/ -/ -exceeds -the -maximum -. -/ -/ -/ -/ -/ -/ -Using -this -routine -with -an -invalid -value -will -result -in -/ -/ -/ -unspecified -behavior -but -* -not -* -undefined -behavior -. -In -/ -/ -/ -particular -an -invalid -ID -value -is -likely -to -cause -panics -or -/ -/ -/ -possibly -even -silent -logical -errors -. -/ -/ -/ -/ -/ -/ -Callers -must -never -rely -on -this -type -to -be -within -a -certain -/ -/ -/ -range -for -memory -safety -. -# -[ -inline -] -pub -const -fn -new_unchecked -( -value -: -usize -) -- -> -name -{ -name -( -SmallIndex -: -: -new_unchecked -( -value -) -) -} -/ -/ -/ -Like -new -but -panics -if -the -given -value -is -not -valid -. -# -[ -inline -] -pub -fn -must -( -value -: -usize -) -- -> -name -{ -name -: -: -new -( -value -) -. -expect -( -concat -! -( -" -invalid -" -stringify -! -( -name -) -" -value -" -) -) -} -/ -/ -/ -Return -the -internal -value -as -a -usize -. -This -is -guaranteed -to -/ -/ -/ -never -overflow -usize -. -# -[ -inline -] -pub -const -fn -as_usize -( -& -self -) -- -> -usize -{ -self -. -0 -. -as_usize -( -) -} -/ -/ -/ -Return -the -internal -value -as -a -u64 -. -This -is -guaranteed -to -/ -/ -/ -never -overflow -. -# -[ -inline -] -pub -const -fn -as_u64 -( -& -self -) -- -> -u64 -{ -self -. -0 -. -as_u64 -( -) -} -/ -/ -/ -Return -the -internal -value -as -a -u32 -. -This -is -guaranteed -to -/ -/ -/ -never -overflow -u32 -. -# -[ -inline -] -pub -const -fn -as_u32 -( -& -self -) -- -> -u32 -{ -self -. -0 -. -as_u32 -( -) -} -/ -/ -/ -Return -the -internal -value -as -a -i32 -. -This -is -guaranteed -to -/ -/ -/ -never -overflow -an -i32 -. -# -[ -inline -] -pub -const -fn -as_i32 -( -& -self -) -- -> -i32 -{ -self -. -0 -. -as_i32 -( -) -} -/ -/ -/ -Returns -one -more -than -this -value -as -a -usize -. -/ -/ -/ -/ -/ -/ -Since -values -represented -by -a -" -small -index -" -have -constraints -/ -/ -/ -on -their -maximum -value -adding -1 -to -it -will -always -fit -in -a -/ -/ -/ -usize -u32 -and -a -i32 -. -# -[ -inline -] -pub -fn -one_more -( -& -self -) -- -> -usize -{ -self -. -0 -. -one_more -( -) -} -/ -/ -/ -Decode -this -value -from -the -bytes -given -using -the -native -endian -/ -/ -/ -byte -order -for -the -current -target -. -/ -/ -/ -/ -/ -/ -If -the -decoded -integer -is -not -representable -as -a -small -index -/ -/ -/ -for -the -current -target -then -this -returns -an -error -. -# -[ -inline -] -pub -fn -from_ne_bytes -( -bytes -: -[ -u8 -; -4 -] -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -from_ne_bytes -( -bytes -) -. -map -( -name -) -. -map_err -( -err -) -} -/ -/ -/ -Decode -this -value -from -the -bytes -given -using -the -native -endian -/ -/ -/ -byte -order -for -the -current -target -. -/ -/ -/ -/ -/ -/ -This -is -analogous -to -new_unchecked -in -that -is -does -not -check -/ -/ -/ -whether -the -decoded -integer -is -representable -as -a -small -index -. -# -[ -inline -] -pub -fn -from_ne_bytes_unchecked -( -bytes -: -[ -u8 -; -4 -] -) -- -> -name -{ -name -( -SmallIndex -: -: -from_ne_bytes_unchecked -( -bytes -) -) -} -/ -/ -/ -Return -the -underlying -integer -as -raw -bytes -in -native -endian -/ -/ -/ -format -. -# -[ -inline -] -pub -fn -to_ne_bytes -( -& -self -) -- -> -[ -u8 -; -4 -] -{ -self -. -0 -. -to_ne_bytes -( -) -} -/ -/ -/ -Returns -an -iterator -over -all -values -from -0 -up -to -and -not -/ -/ -/ -including -the -given -length -. -/ -/ -/ -/ -/ -/ -If -the -given -length -exceeds -this -type -' -s -limit -then -this -/ -/ -/ -panics -. -pub -( -crate -) -fn -iter -( -len -: -usize -) -- -> -iter -{ -iter -: -: -new -( -len -) -} -} -/ -/ -We -write -our -own -Debug -impl -so -that -we -get -things -like -PatternID -( -5 -) -/ -/ -instead -of -PatternID -( -SmallIndex -( -5 -) -) -. -impl -core -: -: -fmt -: -: -Debug -for -name -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_tuple -( -stringify -! -( -name -) -) -. -field -( -& -self -. -as_u32 -( -) -) -. -finish -( -) -} -} -impl -< -T -> -core -: -: -ops -: -: -Index -< -name -> -for -[ -T -] -{ -type -Output -= -T -; -# -[ -inline -] -fn -index -( -& -self -index -: -name -) -- -> -& -T -{ -& -self -[ -index -. -as_usize -( -) -] -} -} -impl -< -T -> -core -: -: -ops -: -: -IndexMut -< -name -> -for -[ -T -] -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -name -) -- -> -& -mut -T -{ -& -mut -self -[ -index -. -as_usize -( -) -] -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -T -> -core -: -: -ops -: -: -Index -< -name -> -for -Vec -< -T -> -{ -type -Output -= -T -; -# -[ -inline -] -fn -index -( -& -self -index -: -name -) -- -> -& -T -{ -& -self -[ -index -. -as_usize -( -) -] -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -T -> -core -: -: -ops -: -: -IndexMut -< -name -> -for -Vec -< -T -> -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -name -) -- -> -& -mut -T -{ -& -mut -self -[ -index -. -as_usize -( -) -] -} -} -impl -From -< -u8 -> -for -name -{ -fn -from -( -value -: -u8 -) -- -> -name -{ -name -( -SmallIndex -: -: -from -( -value -) -) -} -} -impl -TryFrom -< -u16 -> -for -name -{ -type -Error -= -err -; -fn -try_from -( -value -: -u16 -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -try_from -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -} -impl -TryFrom -< -u32 -> -for -name -{ -type -Error -= -err -; -fn -try_from -( -value -: -u32 -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -try_from -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -} -impl -TryFrom -< -u64 -> -for -name -{ -type -Error -= -err -; -fn -try_from -( -value -: -u64 -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -try_from -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -} -impl -TryFrom -< -usize -> -for -name -{ -type -Error -= -err -; -fn -try_from -( -value -: -usize -) -- -> -Result -< -name -err -> -{ -SmallIndex -: -: -try_from -( -value -) -. -map -( -name -) -. -map_err -( -err -) -} -} -# -[ -cfg -( -test -) -] -impl -quickcheck -: -: -Arbitrary -for -name -{ -fn -arbitrary -( -gen -: -& -mut -quickcheck -: -: -Gen -) -- -> -name -{ -name -( -SmallIndex -: -: -arbitrary -( -gen -) -) -} -} -/ -/ -/ -This -error -occurs -when -a -value -could -not -be -constructed -. -/ -/ -/ -/ -/ -/ -This -occurs -when -given -an -integer -exceeding -the -maximum -allowed -/ -/ -/ -value -. -/ -/ -/ -/ -/ -/ -When -the -std -feature -is -enabled -this -implements -the -Error -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -err -( -SmallIndexError -) -; -impl -err -{ -/ -/ -/ -Returns -the -value -that -could -not -be -converted -to -an -ID -. -pub -fn -attempted -( -& -self -) -- -> -u64 -{ -self -. -0 -. -attempted -( -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -err -{ -} -impl -core -: -: -fmt -: -: -Display -for -err -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -failed -to -create -{ -} -from -{ -: -? -} -which -exceeds -{ -: -? -} -" -stringify -! -( -name -) -self -. -attempted -( -) -name -: -: -MAX -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -iter -( -SmallIndexIter -) -; -impl -iter -{ -fn -new -( -len -: -usize -) -- -> -iter -{ -assert -! -( -len -< -= -name -: -: -LIMIT -" -cannot -create -iterator -for -{ -} -when -number -of -\ -elements -exceed -{ -: -? -} -" -stringify -! -( -name -) -name -: -: -LIMIT -) -; -iter -( -SmallIndexIter -{ -rng -: -0 -. -. -len -} -) -} -} -impl -Iterator -for -iter -{ -type -Item -= -name -; -fn -next -( -& -mut -self -) -- -> -Option -< -name -> -{ -self -. -0 -. -next -( -) -. -map -( -name -) -} -} -/ -/ -/ -An -iterator -adapter -that -is -like -std -: -: -iter -: -: -Enumerate -but -attaches -/ -/ -/ -small -index -values -instead -. -It -requires -ExactSizeIterator -. -At -/ -/ -/ -construction -it -ensures -that -the -index -of -each -element -in -the -/ -/ -/ -iterator -is -representable -in -the -corresponding -small -index -type -. -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -withiter -< -I -> -{ -it -: -I -ids -: -iter -} -impl -< -I -: -Iterator -+ -ExactSizeIterator -> -withiter -< -I -> -{ -fn -new -( -it -: -I -) -- -> -withiter -< -I -> -{ -let -ids -= -name -: -: -iter -( -it -. -len -( -) -) -; -withiter -{ -it -ids -} -} -} -impl -< -I -: -Iterator -+ -ExactSizeIterator -> -Iterator -for -withiter -< -I -> -{ -type -Item -= -( -name -I -: -: -Item -) -; -fn -next -( -& -mut -self -) -- -> -Option -< -( -name -I -: -: -Item -) -> -{ -let -item -= -self -. -it -. -next -( -) -? -; -/ -/ -Number -of -elements -in -this -iterator -must -match -according -/ -/ -to -contract -of -ExactSizeIterator -. -let -id -= -self -. -ids -. -next -( -) -. -unwrap -( -) -; -Some -( -( -id -item -) -) -} -} -} -; -} -# -[ -derive -( -Clone -Copy -Default -Eq -Hash -PartialEq -PartialOrd -Ord -) -] -# -[ -repr -( -transparent -) -] -pub -struct -PatternID -( -SmallIndex -) -; -# -[ -derive -( -Clone -Copy -Default -Eq -Hash -PartialEq -PartialOrd -Ord -) -] -# -[ -repr -( -transparent -) -] -pub -struct -StateID -( -SmallIndex -) -; -index_type_impls -! -( -PatternID -PatternIDError -PatternIDIter -WithPatternIDIter -) -; -index_type_impls -! -( -StateID -StateIDError -StateIDIter -WithStateIDIter -) -; -pub -( -crate -) -trait -IteratorIndexExt -: -Iterator -{ -fn -with_pattern_ids -( -self -) -- -> -WithPatternIDIter -< -Self -> -where -Self -: -Sized -+ -ExactSizeIterator -{ -WithPatternIDIter -: -: -new -( -self -) -} -fn -with_state_ids -( -self -) -- -> -WithStateIDIter -< -Self -> -where -Self -: -Sized -+ -ExactSizeIterator -{ -WithStateIDIter -: -: -new -( -self -) -} -} -impl -< -I -: -Iterator -> -IteratorIndexExt -for -I -{ -} diff --git a/third_party/rust/regex-automata/src/util/search.rs b/third_party/rust/regex-automata/src/util/search.rs deleted file mode 100644 index 592911264d39c..0000000000000 --- a/third_party/rust/regex-automata/src/util/search.rs +++ /dev/null @@ -1,3797 +0,0 @@ -use -core -: -: -ops -: -: -{ -Range -RangeBounds -} -; -use -crate -: -: -util -: -: -{ -escape -: -: -DebugByte -primitives -: -: -PatternID -utf8 -} -; -# -[ -derive -( -Clone -) -] -pub -struct -Input -< -' -h -> -{ -haystack -: -& -' -h -[ -u8 -] -span -: -Span -anchored -: -Anchored -earliest -: -bool -} -impl -< -' -h -> -Input -< -' -h -> -{ -# -[ -inline -] -pub -fn -new -< -H -: -? -Sized -+ -AsRef -< -[ -u8 -] -> -> -( -haystack -: -& -' -h -H -) -- -> -Input -< -' -h -> -{ -Input -{ -haystack -: -haystack -. -as_ref -( -) -span -: -Span -{ -start -: -0 -end -: -haystack -. -as_ref -( -) -. -len -( -) -} -anchored -: -Anchored -: -: -No -earliest -: -false -} -} -# -[ -inline -] -pub -fn -span -< -S -: -Into -< -Span -> -> -( -mut -self -span -: -S -) -- -> -Input -< -' -h -> -{ -self -. -set_span -( -span -) -; -self -} -# -[ -inline -] -pub -fn -range -< -R -: -RangeBounds -< -usize -> -> -( -mut -self -range -: -R -) -- -> -Input -< -' -h -> -{ -self -. -set_range -( -range -) -; -self -} -# -[ -inline -] -pub -fn -anchored -( -mut -self -mode -: -Anchored -) -- -> -Input -< -' -h -> -{ -self -. -set_anchored -( -mode -) -; -self -} -# -[ -inline -] -pub -fn -earliest -( -mut -self -yes -: -bool -) -- -> -Input -< -' -h -> -{ -self -. -set_earliest -( -yes -) -; -self -} -# -[ -inline -] -pub -fn -set_span -< -S -: -Into -< -Span -> -> -( -& -mut -self -span -: -S -) -{ -let -span -= -span -. -into -( -) -; -assert -! -( -span -. -end -< -= -self -. -haystack -. -len -( -) -& -& -span -. -start -< -= -span -. -end -. -wrapping_add -( -1 -) -" -invalid -span -{ -: -? -} -for -haystack -of -length -{ -} -" -span -self -. -haystack -. -len -( -) -) -; -self -. -span -= -span -; -} -# -[ -inline -] -pub -fn -set_range -< -R -: -RangeBounds -< -usize -> -> -( -& -mut -self -range -: -R -) -{ -use -core -: -: -ops -: -: -Bound -; -let -start -= -match -range -. -start_bound -( -) -{ -Bound -: -: -Included -( -& -i -) -= -> -i -Bound -: -: -Excluded -( -& -i -) -= -> -i -. -checked_add -( -1 -) -. -unwrap -( -) -Bound -: -: -Unbounded -= -> -0 -} -; -let -end -= -match -range -. -end_bound -( -) -{ -Bound -: -: -Included -( -& -i -) -= -> -i -. -checked_add -( -1 -) -. -unwrap -( -) -Bound -: -: -Excluded -( -& -i -) -= -> -i -Bound -: -: -Unbounded -= -> -self -. -haystack -( -) -. -len -( -) -} -; -self -. -set_span -( -Span -{ -start -end -} -) -; -} -# -[ -inline -] -pub -fn -set_start -( -& -mut -self -start -: -usize -) -{ -self -. -set_span -( -Span -{ -start -. -. -self -. -get_span -( -) -} -) -; -} -# -[ -inline -] -pub -fn -set_end -( -& -mut -self -end -: -usize -) -{ -self -. -set_span -( -Span -{ -end -. -. -self -. -get_span -( -) -} -) -; -} -# -[ -inline -] -pub -fn -set_anchored -( -& -mut -self -mode -: -Anchored -) -{ -self -. -anchored -= -mode -; -} -# -[ -inline -] -pub -fn -set_earliest -( -& -mut -self -yes -: -bool -) -{ -self -. -earliest -= -yes -; -} -# -[ -inline -] -pub -fn -haystack -( -& -self -) -- -> -& -[ -u8 -] -{ -self -. -haystack -} -# -[ -inline -] -pub -fn -start -( -& -self -) -- -> -usize -{ -self -. -get_span -( -) -. -start -} -# -[ -inline -] -pub -fn -end -( -& -self -) -- -> -usize -{ -self -. -get_span -( -) -. -end -} -# -[ -inline -] -pub -fn -get_span -( -& -self -) -- -> -Span -{ -self -. -span -} -# -[ -inline -] -pub -fn -get_range -( -& -self -) -- -> -Range -< -usize -> -{ -self -. -get_span -( -) -. -range -( -) -} -# -[ -inline -] -pub -fn -get_anchored -( -& -self -) -- -> -Anchored -{ -self -. -anchored -} -# -[ -inline -] -pub -fn -get_earliest -( -& -self -) -- -> -bool -{ -self -. -earliest -} -# -[ -inline -] -pub -fn -is_done -( -& -self -) -- -> -bool -{ -self -. -get_span -( -) -. -start -> -self -. -get_span -( -) -. -end -} -# -[ -inline -] -pub -fn -is_char_boundary -( -& -self -offset -: -usize -) -- -> -bool -{ -utf8 -: -: -is_boundary -( -self -. -haystack -( -) -offset -) -} -} -impl -< -' -h -> -core -: -: -fmt -: -: -Debug -for -Input -< -' -h -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -use -crate -: -: -util -: -: -escape -: -: -DebugHaystack -; -f -. -debug_struct -( -" -Input -" -) -. -field -( -" -haystack -" -& -DebugHaystack -( -self -. -haystack -( -) -) -) -. -field -( -" -span -" -& -self -. -span -) -. -field -( -" -anchored -" -& -self -. -anchored -) -. -field -( -" -earliest -" -& -self -. -earliest -) -. -finish -( -) -} -} -impl -< -' -h -H -: -? -Sized -+ -AsRef -< -[ -u8 -] -> -> -From -< -& -' -h -H -> -for -Input -< -' -h -> -{ -fn -from -( -haystack -: -& -' -h -H -) -- -> -Input -< -' -h -> -{ -Input -: -: -new -( -haystack -) -} -} -# -[ -derive -( -Clone -Copy -Eq -Hash -PartialEq -) -] -pub -struct -Span -{ -pub -start -: -usize -pub -end -: -usize -} -impl -Span -{ -# -[ -inline -] -pub -fn -range -( -& -self -) -- -> -Range -< -usize -> -{ -Range -: -: -from -( -* -self -) -} -# -[ -inline -] -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -start -> -= -self -. -end -} -# -[ -inline -] -pub -fn -len -( -& -self -) -- -> -usize -{ -self -. -end -. -saturating_sub -( -self -. -start -) -} -# -[ -inline -] -pub -fn -contains -( -& -self -offset -: -usize -) -- -> -bool -{ -! -self -. -is_empty -( -) -& -& -self -. -start -< -= -offset -& -& -offset -< -= -self -. -end -} -# -[ -inline -] -pub -fn -offset -( -& -self -offset -: -usize -) -- -> -Span -{ -Span -{ -start -: -self -. -start -+ -offset -end -: -self -. -end -+ -offset -} -} -} -impl -core -: -: -fmt -: -: -Debug -for -Span -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -{ -} -. -. -{ -} -" -self -. -start -self -. -end -) -} -} -impl -core -: -: -ops -: -: -Index -< -Span -> -for -[ -u8 -] -{ -type -Output -= -[ -u8 -] -; -# -[ -inline -] -fn -index -( -& -self -index -: -Span -) -- -> -& -[ -u8 -] -{ -& -self -[ -index -. -range -( -) -] -} -} -impl -core -: -: -ops -: -: -IndexMut -< -Span -> -for -[ -u8 -] -{ -# -[ -inline -] -fn -index_mut -( -& -mut -self -index -: -Span -) -- -> -& -mut -[ -u8 -] -{ -& -mut -self -[ -index -. -range -( -) -] -} -} -impl -core -: -: -ops -: -: -Index -< -Span -> -for -str -{ -type -Output -= -str -; -# -[ -inline -] -fn -index -( -& -self -index -: -Span -) -- -> -& -str -{ -& -self -[ -index -. -range -( -) -] -} -} -impl -From -< -Range -< -usize -> -> -for -Span -{ -# -[ -inline -] -fn -from -( -range -: -Range -< -usize -> -) -- -> -Span -{ -Span -{ -start -: -range -. -start -end -: -range -. -end -} -} -} -impl -From -< -Span -> -for -Range -< -usize -> -{ -# -[ -inline -] -fn -from -( -span -: -Span -) -- -> -Range -< -usize -> -{ -Range -{ -start -: -span -. -start -end -: -span -. -end -} -} -} -impl -PartialEq -< -Range -< -usize -> -> -for -Span -{ -# -[ -inline -] -fn -eq -( -& -self -range -: -& -Range -< -usize -> -) -- -> -bool -{ -self -. -start -= -= -range -. -start -& -& -self -. -end -= -= -range -. -end -} -} -impl -PartialEq -< -Span -> -for -Range -< -usize -> -{ -# -[ -inline -] -fn -eq -( -& -self -span -: -& -Span -) -- -> -bool -{ -self -. -start -= -= -span -. -start -& -& -self -. -end -= -= -span -. -end -} -} -# -[ -derive -( -Clone -Copy -Debug -Eq -Hash -PartialEq -) -] -pub -struct -HalfMatch -{ -pattern -: -PatternID -offset -: -usize -} -impl -HalfMatch -{ -# -[ -inline -] -pub -fn -new -( -pattern -: -PatternID -offset -: -usize -) -- -> -HalfMatch -{ -HalfMatch -{ -pattern -offset -} -} -# -[ -inline -] -pub -fn -must -( -pattern -: -usize -offset -: -usize -) -- -> -HalfMatch -{ -HalfMatch -: -: -new -( -PatternID -: -: -new -( -pattern -) -. -unwrap -( -) -offset -) -} -# -[ -inline -] -pub -fn -pattern -( -& -self -) -- -> -PatternID -{ -self -. -pattern -} -# -[ -inline -] -pub -fn -offset -( -& -self -) -- -> -usize -{ -self -. -offset -} -} -# -[ -derive -( -Clone -Copy -Debug -Eq -Hash -PartialEq -) -] -pub -struct -Match -{ -pattern -: -PatternID -span -: -Span -} -impl -Match -{ -# -[ -inline -] -pub -fn -new -< -S -: -Into -< -Span -> -> -( -pattern -: -PatternID -span -: -S -) -- -> -Match -{ -let -span -: -Span -= -span -. -into -( -) -; -assert -! -( -span -. -start -< -= -span -. -end -" -invalid -match -span -" -) -; -Match -{ -pattern -span -} -} -# -[ -inline -] -pub -fn -must -< -S -: -Into -< -Span -> -> -( -pattern -: -usize -span -: -S -) -- -> -Match -{ -Match -: -: -new -( -PatternID -: -: -must -( -pattern -) -span -) -} -# -[ -inline -] -pub -fn -pattern -( -& -self -) -- -> -PatternID -{ -self -. -pattern -} -# -[ -inline -] -pub -fn -start -( -& -self -) -- -> -usize -{ -self -. -span -( -) -. -start -} -# -[ -inline -] -pub -fn -end -( -& -self -) -- -> -usize -{ -self -. -span -( -) -. -end -} -# -[ -inline -] -pub -fn -range -( -& -self -) -- -> -core -: -: -ops -: -: -Range -< -usize -> -{ -self -. -span -( -) -. -range -( -) -} -# -[ -inline -] -pub -fn -span -( -& -self -) -- -> -Span -{ -self -. -span -} -# -[ -inline -] -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -span -( -) -. -is_empty -( -) -} -# -[ -inline -] -pub -fn -len -( -& -self -) -- -> -usize -{ -self -. -span -( -) -. -len -( -) -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -PatternSet -{ -len -: -usize -which -: -alloc -: -: -boxed -: -: -Box -< -[ -bool -] -> -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -PatternSet -{ -pub -fn -new -( -capacity -: -usize -) -- -> -PatternSet -{ -assert -! -( -capacity -< -= -PatternID -: -: -LIMIT -" -pattern -set -capacity -exceeds -limit -of -{ -} -" -PatternID -: -: -LIMIT -) -; -PatternSet -{ -len -: -0 -which -: -alloc -: -: -vec -! -[ -false -; -capacity -] -. -into_boxed_slice -( -) -} -} -pub -fn -clear -( -& -mut -self -) -{ -self -. -len -= -0 -; -for -matched -in -self -. -which -. -iter_mut -( -) -{ -* -matched -= -false -; -} -} -pub -fn -contains -( -& -self -pid -: -PatternID -) -- -> -bool -{ -pid -. -as_usize -( -) -< -self -. -capacity -( -) -& -& -self -. -which -[ -pid -] -} -pub -fn -insert -( -& -mut -self -pid -: -PatternID -) -- -> -bool -{ -self -. -try_insert -( -pid -) -. -expect -( -" -PatternSet -should -have -sufficient -capacity -" -) -} -pub -fn -try_insert -( -& -mut -self -pid -: -PatternID -) -- -> -Result -< -bool -PatternSetInsertError -> -{ -if -pid -. -as_usize -( -) -> -= -self -. -capacity -( -) -{ -return -Err -( -PatternSetInsertError -{ -attempted -: -pid -capacity -: -self -. -capacity -( -) -} -) -; -} -if -self -. -which -[ -pid -] -{ -return -Ok -( -false -) -; -} -self -. -len -+ -= -1 -; -self -. -which -[ -pid -] -= -true -; -Ok -( -true -) -} -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -len -( -) -= -= -0 -} -pub -fn -is_full -( -& -self -) -- -> -bool -{ -self -. -len -( -) -= -= -self -. -capacity -( -) -} -pub -fn -len -( -& -self -) -- -> -usize -{ -self -. -len -} -pub -fn -capacity -( -& -self -) -- -> -usize -{ -self -. -which -. -len -( -) -} -pub -fn -iter -( -& -self -) -- -> -PatternSetIter -< -' -_ -> -{ -PatternSetIter -{ -it -: -self -. -which -. -iter -( -) -. -enumerate -( -) -} -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -# -[ -derive -( -Clone -Debug -) -] -pub -struct -PatternSetInsertError -{ -attempted -: -PatternID -capacity -: -usize -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -PatternSetInsertError -{ -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -core -: -: -fmt -: -: -Display -for -PatternSetInsertError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -failed -to -insert -pattern -ID -{ -} -into -pattern -set -\ -with -insufficiet -capacity -of -{ -} -" -self -. -attempted -. -as_usize -( -) -self -. -capacity -) -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -# -[ -derive -( -Clone -Debug -) -] -pub -struct -PatternSetIter -< -' -a -> -{ -it -: -core -: -: -iter -: -: -Enumerate -< -core -: -: -slice -: -: -Iter -< -' -a -bool -> -> -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -' -a -> -Iterator -for -PatternSetIter -< -' -a -> -{ -type -Item -= -PatternID -; -fn -next -( -& -mut -self -) -- -> -Option -< -PatternID -> -{ -while -let -Some -( -( -index -& -yes -) -) -= -self -. -it -. -next -( -) -{ -if -yes -{ -return -Some -( -PatternID -: -: -new_unchecked -( -index -) -) -; -} -} -None -} -fn -size_hint -( -& -self -) -- -> -( -usize -Option -< -usize -> -) -{ -self -. -it -. -size_hint -( -) -} -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -impl -< -' -a -> -DoubleEndedIterator -for -PatternSetIter -< -' -a -> -{ -fn -next_back -( -& -mut -self -) -- -> -Option -< -PatternID -> -{ -while -let -Some -( -( -index -& -yes -) -) -= -self -. -it -. -next_back -( -) -{ -if -yes -{ -return -Some -( -PatternID -: -: -new_unchecked -( -index -) -) -; -} -} -None -} -} -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -Anchored -{ -No -Yes -Pattern -( -PatternID -) -} -impl -Anchored -{ -# -[ -inline -] -pub -fn -is_anchored -( -& -self -) -- -> -bool -{ -matches -! -( -* -self -Anchored -: -: -Yes -| -Anchored -: -: -Pattern -( -_ -) -) -} -# -[ -inline -] -pub -fn -pattern -( -& -self -) -- -> -Option -< -PatternID -> -{ -match -* -self -{ -Anchored -: -: -Pattern -( -pid -) -= -> -Some -( -pid -) -_ -= -> -None -} -} -} -# -[ -non_exhaustive -] -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -MatchKind -{ -All -LeftmostFirst -} -impl -MatchKind -{ -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -( -crate -) -fn -continue_past_first_match -( -& -self -) -- -> -bool -{ -* -self -= -= -MatchKind -: -: -All -} -} -impl -Default -for -MatchKind -{ -fn -default -( -) -- -> -MatchKind -{ -MatchKind -: -: -LeftmostFirst -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -MatchError -( -# -[ -cfg -( -feature -= -" -alloc -" -) -] -alloc -: -: -boxed -: -: -Box -< -MatchErrorKind -> -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -MatchErrorKind -) -; -impl -MatchError -{ -pub -fn -new -( -kind -: -MatchErrorKind -) -- -> -MatchError -{ -# -[ -cfg -( -feature -= -" -alloc -" -) -] -{ -MatchError -( -alloc -: -: -boxed -: -: -Box -: -: -new -( -kind -) -) -} -# -[ -cfg -( -not -( -feature -= -" -alloc -" -) -) -] -{ -MatchError -( -kind -) -} -} -pub -fn -kind -( -& -self -) -- -> -& -MatchErrorKind -{ -& -self -. -0 -} -pub -fn -quit -( -byte -: -u8 -offset -: -usize -) -- -> -MatchError -{ -MatchError -: -: -new -( -MatchErrorKind -: -: -Quit -{ -byte -offset -} -) -} -pub -fn -gave_up -( -offset -: -usize -) -- -> -MatchError -{ -MatchError -: -: -new -( -MatchErrorKind -: -: -GaveUp -{ -offset -} -) -} -pub -fn -haystack_too_long -( -len -: -usize -) -- -> -MatchError -{ -MatchError -: -: -new -( -MatchErrorKind -: -: -HaystackTooLong -{ -len -} -) -} -pub -fn -unsupported_anchored -( -mode -: -Anchored -) -- -> -MatchError -{ -MatchError -: -: -new -( -MatchErrorKind -: -: -UnsupportedAnchored -{ -mode -} -) -} -} -# -[ -non_exhaustive -] -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -enum -MatchErrorKind -{ -Quit -{ -byte -: -u8 -offset -: -usize -} -GaveUp -{ -offset -: -usize -} -HaystackTooLong -{ -len -: -usize -} -UnsupportedAnchored -{ -mode -: -Anchored -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -MatchError -{ -} -impl -core -: -: -fmt -: -: -Display -for -MatchError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -match -* -self -. -kind -( -) -{ -MatchErrorKind -: -: -Quit -{ -byte -offset -} -= -> -write -! -( -f -" -quit -search -after -observing -byte -{ -: -? -} -at -offset -{ -} -" -DebugByte -( -byte -) -offset -) -MatchErrorKind -: -: -GaveUp -{ -offset -} -= -> -{ -write -! -( -f -" -gave -up -searching -at -offset -{ -} -" -offset -) -} -MatchErrorKind -: -: -HaystackTooLong -{ -len -} -= -> -{ -write -! -( -f -" -haystack -of -length -{ -} -is -too -long -" -len -) -} -MatchErrorKind -: -: -UnsupportedAnchored -{ -mode -: -Anchored -: -: -Yes -} -= -> -{ -write -! -( -f -" -anchored -searches -are -not -supported -or -enabled -" -) -} -MatchErrorKind -: -: -UnsupportedAnchored -{ -mode -: -Anchored -: -: -No -} -= -> -{ -write -! -( -f -" -unanchored -searches -are -not -supported -or -enabled -" -) -} -MatchErrorKind -: -: -UnsupportedAnchored -{ -mode -: -Anchored -: -: -Pattern -( -pid -) -} -= -> -{ -write -! -( -f -" -anchored -searches -for -a -specific -pattern -( -{ -} -) -are -\ -not -supported -or -enabled -" -pid -. -as_usize -( -) -) -} -} -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -super -: -: -* -; -# -[ -test -] -fn -match_error_size -( -) -{ -let -expected_size -= -if -cfg -! -( -feature -= -" -alloc -" -) -{ -core -: -: -mem -: -: -size_of -: -: -< -usize -> -( -) -} -else -{ -2 -* -core -: -: -mem -: -: -size_of -: -: -< -usize -> -( -) -} -; -assert_eq -! -( -expected_size -core -: -: -mem -: -: -size_of -: -: -< -MatchError -> -( -) -) -; -} -# -[ -cfg -( -target_pointer_width -= -" -64 -" -) -] -# -[ -test -] -fn -match_error_kind_size -( -) -{ -let -expected_size -= -2 -* -core -: -: -mem -: -: -size_of -: -: -< -usize -> -( -) -; -assert_eq -! -( -expected_size -core -: -: -mem -: -: -size_of -: -: -< -MatchErrorKind -> -( -) -) -; -} -# -[ -cfg -( -target_pointer_width -= -" -32 -" -) -] -# -[ -test -] -fn -match_error_kind_size -( -) -{ -let -expected_size -= -3 -* -core -: -: -mem -: -: -size_of -: -: -< -usize -> -( -) -; -assert_eq -! -( -expected_size -core -: -: -mem -: -: -size_of -: -: -< -MatchErrorKind -> -( -) -) -; -} -} diff --git a/third_party/rust/regex-automata/src/util/sparse_set.rs b/third_party/rust/regex-automata/src/util/sparse_set.rs deleted file mode 100644 index bf75bfe4514fb..0000000000000 --- a/third_party/rust/regex-automata/src/util/sparse_set.rs +++ /dev/null @@ -1,934 +0,0 @@ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -util -: -: -primitives -: -: -StateID -; -# -[ -derive -( -Clone -Debug -) -] -pub -( -crate -) -struct -SparseSets -{ -pub -( -crate -) -set1 -: -SparseSet -pub -( -crate -) -set2 -: -SparseSet -} -impl -SparseSets -{ -pub -( -crate -) -fn -new -( -capacity -: -usize -) -- -> -SparseSets -{ -SparseSets -{ -set1 -: -SparseSet -: -: -new -( -capacity -) -set2 -: -SparseSet -: -: -new -( -capacity -) -} -} -# -[ -inline -] -pub -( -crate -) -fn -resize -( -& -mut -self -new_capacity -: -usize -) -{ -self -. -set1 -. -resize -( -new_capacity -) -; -self -. -set2 -. -resize -( -new_capacity -) -; -} -pub -( -crate -) -fn -clear -( -& -mut -self -) -{ -self -. -set1 -. -clear -( -) -; -self -. -set2 -. -clear -( -) -; -} -pub -( -crate -) -fn -swap -( -& -mut -self -) -{ -core -: -: -mem -: -: -swap -( -& -mut -self -. -set1 -& -mut -self -. -set2 -) -; -} -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -set1 -. -memory_usage -( -) -+ -self -. -set2 -. -memory_usage -( -) -} -} -# -[ -derive -( -Clone -) -] -pub -( -crate -) -struct -SparseSet -{ -len -: -usize -dense -: -Vec -< -StateID -> -sparse -: -Vec -< -StateID -> -} -impl -SparseSet -{ -# -[ -inline -] -pub -( -crate -) -fn -new -( -capacity -: -usize -) -- -> -SparseSet -{ -let -mut -set -= -SparseSet -{ -len -: -0 -dense -: -vec -! -[ -] -sparse -: -vec -! -[ -] -} -; -set -. -resize -( -capacity -) -; -set -} -# -[ -inline -] -pub -( -crate -) -fn -resize -( -& -mut -self -new_capacity -: -usize -) -{ -assert -! -( -new_capacity -< -= -StateID -: -: -LIMIT -" -sparse -set -capacity -cannot -excced -{ -: -? -} -" -StateID -: -: -LIMIT -) -; -self -. -clear -( -) -; -self -. -dense -. -resize -( -new_capacity -StateID -: -: -ZERO -) -; -self -. -sparse -. -resize -( -new_capacity -StateID -: -: -ZERO -) -; -} -# -[ -inline -] -pub -( -crate -) -fn -capacity -( -& -self -) -- -> -usize -{ -self -. -dense -. -len -( -) -} -# -[ -inline -] -pub -( -crate -) -fn -len -( -& -self -) -- -> -usize -{ -self -. -len -} -# -[ -inline -] -pub -( -crate -) -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -len -( -) -= -= -0 -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -insert -( -& -mut -self -id -: -StateID -) -- -> -bool -{ -if -self -. -contains -( -id -) -{ -return -false -; -} -let -i -= -self -. -len -( -) -; -assert -! -( -i -< -self -. -capacity -( -) -" -{ -: -? -} -exceeds -capacity -of -{ -: -? -} -when -inserting -{ -: -? -} -" -i -self -. -capacity -( -) -id -) -; -let -index -= -StateID -: -: -new_unchecked -( -i -) -; -self -. -dense -[ -index -] -= -id -; -self -. -sparse -[ -id -] -= -index -; -self -. -len -+ -= -1 -; -true -} -# -[ -inline -] -pub -( -crate -) -fn -contains -( -& -self -id -: -StateID -) -- -> -bool -{ -let -index -= -self -. -sparse -[ -id -] -; -index -. -as_usize -( -) -< -self -. -len -( -) -& -& -self -. -dense -[ -index -] -= -= -id -} -# -[ -inline -] -pub -( -crate -) -fn -clear -( -& -mut -self -) -{ -self -. -len -= -0 -; -} -# -[ -inline -] -pub -( -crate -) -fn -iter -( -& -self -) -- -> -SparseSetIter -< -' -_ -> -{ -SparseSetIter -( -self -. -dense -[ -. -. -self -. -len -( -) -] -. -iter -( -) -) -} -# -[ -inline -] -pub -( -crate -) -fn -memory_usage -( -& -self -) -- -> -usize -{ -self -. -dense -. -len -( -) -* -StateID -: -: -SIZE -+ -self -. -sparse -. -len -( -) -* -StateID -: -: -SIZE -} -} -impl -core -: -: -fmt -: -: -Debug -for -SparseSet -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -let -elements -: -Vec -< -StateID -> -= -self -. -iter -( -) -. -collect -( -) -; -f -. -debug_tuple -( -" -SparseSet -" -) -. -field -( -& -elements -) -. -finish -( -) -} -} -# -[ -derive -( -Debug -) -] -pub -( -crate -) -struct -SparseSetIter -< -' -a -> -( -core -: -: -slice -: -: -Iter -< -' -a -StateID -> -) -; -impl -< -' -a -> -Iterator -for -SparseSetIter -< -' -a -> -{ -type -Item -= -StateID -; -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -next -( -& -mut -self -) -- -> -Option -< -StateID -> -{ -self -. -0 -. -next -( -) -. -map -( -| -& -id -| -id -) -} -} diff --git a/third_party/rust/regex-automata/src/util/start.rs b/third_party/rust/regex-automata/src/util/start.rs deleted file mode 100644 index d2548a7feb190..0000000000000 --- a/third_party/rust/regex-automata/src/util/start.rs +++ /dev/null @@ -1,1630 +0,0 @@ -use -crate -: -: -util -: -: -{ -look -: -: -LookMatcher -search -: -: -Input -wire -: -: -{ -self -DeserializeError -SerializeError -} -} -; -# -[ -derive -( -Clone -) -] -pub -( -crate -) -struct -StartByteMap -{ -map -: -[ -Start -; -256 -] -} -impl -StartByteMap -{ -pub -( -crate -) -fn -new -( -lookm -: -& -LookMatcher -) -- -> -StartByteMap -{ -let -mut -map -= -[ -Start -: -: -NonWordByte -; -256 -] -; -map -[ -usize -: -: -from -( -b -' -\ -n -' -) -] -= -Start -: -: -LineLF -; -map -[ -usize -: -: -from -( -b -' -\ -r -' -) -] -= -Start -: -: -LineCR -; -map -[ -usize -: -: -from -( -b -' -_ -' -) -] -= -Start -: -: -WordByte -; -let -mut -byte -= -b -' -0 -' -; -while -byte -< -= -b -' -9 -' -{ -map -[ -usize -: -: -from -( -byte -) -] -= -Start -: -: -WordByte -; -byte -+ -= -1 -; -} -byte -= -b -' -A -' -; -while -byte -< -= -b -' -Z -' -{ -map -[ -usize -: -: -from -( -byte -) -] -= -Start -: -: -WordByte -; -byte -+ -= -1 -; -} -byte -= -b -' -a -' -; -while -byte -< -= -b -' -z -' -{ -map -[ -usize -: -: -from -( -byte -) -] -= -Start -: -: -WordByte -; -byte -+ -= -1 -; -} -let -lineterm -= -lookm -. -get_line_terminator -( -) -; -if -lineterm -! -= -b -' -\ -r -' -& -& -lineterm -! -= -b -' -\ -n -' -{ -map -[ -usize -: -: -from -( -lineterm -) -] -= -Start -: -: -CustomLineTerminator -; -} -StartByteMap -{ -map -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -fwd -( -& -self -input -: -& -Input -) -- -> -Start -{ -match -input -. -start -( -) -. -checked_sub -( -1 -) -. -and_then -( -| -i -| -input -. -haystack -( -) -. -get -( -i -) -) -{ -None -= -> -Start -: -: -Text -Some -( -& -byte -) -= -> -self -. -get -( -byte -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -rev -( -& -self -input -: -& -Input -) -- -> -Start -{ -match -input -. -haystack -( -) -. -get -( -input -. -end -( -) -) -{ -None -= -> -Start -: -: -Text -Some -( -& -byte -) -= -> -self -. -get -( -byte -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -get -( -& -self -byte -: -u8 -) -- -> -Start -{ -self -. -map -[ -usize -: -: -from -( -byte -) -] -} -pub -( -crate -) -fn -from_bytes -( -slice -: -& -[ -u8 -] -) -- -> -Result -< -( -StartByteMap -usize -) -DeserializeError -> -{ -wire -: -: -check_slice_len -( -slice -256 -" -start -byte -map -" -) -? -; -let -mut -map -= -[ -Start -: -: -NonWordByte -; -256 -] -; -for -( -i -& -repr -) -in -slice -[ -. -. -256 -] -. -iter -( -) -. -enumerate -( -) -{ -map -[ -i -] -= -match -Start -: -: -from_usize -( -usize -: -: -from -( -repr -) -) -{ -Some -( -start -) -= -> -start -None -= -> -{ -return -Err -( -DeserializeError -: -: -generic -( -" -found -invalid -starting -configuration -" -) -) -} -} -; -} -Ok -( -( -StartByteMap -{ -map -} -256 -) -) -} -pub -( -crate -) -fn -write_to -( -& -self -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -self -. -write_to_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -start -byte -map -" -) -) -; -} -for -( -i -& -start -) -in -self -. -map -. -iter -( -) -. -enumerate -( -) -{ -dst -[ -i -] -= -start -. -as_u8 -( -) -; -} -Ok -( -nwrite -) -} -pub -( -crate -) -fn -write_to_len -( -& -self -) -- -> -usize -{ -256 -} -} -impl -core -: -: -fmt -: -: -Debug -for -StartByteMap -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -use -crate -: -: -util -: -: -escape -: -: -DebugByte -; -write -! -( -f -" -StartByteMap -{ -{ -" -) -? -; -for -byte -in -0 -. -. -= -255 -{ -if -byte -> -0 -{ -write -! -( -f -" -" -) -? -; -} -let -start -= -self -. -map -[ -usize -: -: -from -( -byte -) -] -; -write -! -( -f -" -{ -: -? -} -= -> -{ -: -? -} -" -DebugByte -( -byte -) -start -) -? -; -} -write -! -( -f -" -} -} -" -) -? -; -Ok -( -( -) -) -} -} -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -( -crate -) -enum -Start -{ -NonWordByte -= -0 -WordByte -= -1 -Text -= -2 -LineLF -= -3 -LineCR -= -4 -CustomLineTerminator -= -5 -} -impl -Start -{ -pub -( -crate -) -fn -from_usize -( -n -: -usize -) -- -> -Option -< -Start -> -{ -match -n -{ -0 -= -> -Some -( -Start -: -: -NonWordByte -) -1 -= -> -Some -( -Start -: -: -WordByte -) -2 -= -> -Some -( -Start -: -: -Text -) -3 -= -> -Some -( -Start -: -: -LineLF -) -4 -= -> -Some -( -Start -: -: -LineCR -) -5 -= -> -Some -( -Start -: -: -CustomLineTerminator -) -_ -= -> -None -} -} -pub -( -crate -) -fn -len -( -) -- -> -usize -{ -6 -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -as_u8 -( -& -self -) -- -> -u8 -{ -* -self -as -u8 -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -as_usize -( -& -self -) -- -> -usize -{ -usize -: -: -from -( -self -. -as_u8 -( -) -) -} -} -# -[ -cfg -( -test -) -] -mod -tests -{ -use -super -: -: -* -; -# -[ -test -] -fn -start_fwd_done_range -( -) -{ -let -smap -= -StartByteMap -: -: -new -( -& -LookMatcher -: -: -default -( -) -) -; -assert_eq -! -( -Start -: -: -Text -smap -. -fwd -( -& -Input -: -: -new -( -" -" -) -. -range -( -1 -. -. -0 -) -) -) -; -} -# -[ -test -] -fn -start_rev_done_range -( -) -{ -let -smap -= -StartByteMap -: -: -new -( -& -LookMatcher -: -: -default -( -) -) -; -assert_eq -! -( -Start -: -: -Text -smap -. -rev -( -& -Input -: -: -new -( -" -" -) -. -range -( -1 -. -. -0 -) -) -) -; -} -# -[ -test -] -fn -start_fwd -( -) -{ -let -f -= -| -haystack -start -end -| -{ -let -smap -= -StartByteMap -: -: -new -( -& -LookMatcher -: -: -default -( -) -) -; -let -input -= -& -Input -: -: -new -( -haystack -) -. -range -( -start -. -. -end -) -; -smap -. -fwd -( -input -) -} -; -assert_eq -! -( -Start -: -: -Text -f -( -" -" -0 -0 -) -) -; -assert_eq -! -( -Start -: -: -Text -f -( -" -abc -" -0 -3 -) -) -; -assert_eq -! -( -Start -: -: -Text -f -( -" -\ -nabc -" -0 -3 -) -) -; -assert_eq -! -( -Start -: -: -LineLF -f -( -" -\ -nabc -" -1 -3 -) -) -; -assert_eq -! -( -Start -: -: -LineCR -f -( -" -\ -rabc -" -1 -3 -) -) -; -assert_eq -! -( -Start -: -: -WordByte -f -( -" -abc -" -1 -3 -) -) -; -assert_eq -! -( -Start -: -: -NonWordByte -f -( -" -abc -" -1 -3 -) -) -; -} -# -[ -test -] -fn -start_rev -( -) -{ -let -f -= -| -haystack -start -end -| -{ -let -smap -= -StartByteMap -: -: -new -( -& -LookMatcher -: -: -default -( -) -) -; -let -input -= -& -Input -: -: -new -( -haystack -) -. -range -( -start -. -. -end -) -; -smap -. -rev -( -input -) -} -; -assert_eq -! -( -Start -: -: -Text -f -( -" -" -0 -0 -) -) -; -assert_eq -! -( -Start -: -: -Text -f -( -" -abc -" -0 -3 -) -) -; -assert_eq -! -( -Start -: -: -Text -f -( -" -abc -\ -n -" -0 -4 -) -) -; -assert_eq -! -( -Start -: -: -LineLF -f -( -" -abc -\ -nz -" -0 -3 -) -) -; -assert_eq -! -( -Start -: -: -LineCR -f -( -" -abc -\ -rz -" -0 -3 -) -) -; -assert_eq -! -( -Start -: -: -WordByte -f -( -" -abc -" -0 -2 -) -) -; -assert_eq -! -( -Start -: -: -NonWordByte -f -( -" -abc -" -0 -3 -) -) -; -} -} diff --git a/third_party/rust/regex-automata/src/util/syntax.rs b/third_party/rust/regex-automata/src/util/syntax.rs deleted file mode 100644 index d578b23d41dd3..0000000000000 --- a/third_party/rust/regex-automata/src/util/syntax.rs +++ /dev/null @@ -1,1003 +0,0 @@ -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -regex_syntax -: -: -{ -ast -hir -: -: -{ -self -Hir -} -Error -ParserBuilder -} -; -pub -fn -parse -( -pattern -: -& -str -) -- -> -Result -< -Hir -Error -> -{ -parse_with -( -pattern -& -Config -: -: -default -( -) -) -} -pub -fn -parse_many -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -) -- -> -Result -< -Vec -< -Hir -> -Error -> -{ -parse_many_with -( -patterns -& -Config -: -: -default -( -) -) -} -pub -fn -parse_with -( -pattern -: -& -str -config -: -& -Config -) -- -> -Result -< -Hir -Error -> -{ -let -mut -builder -= -ParserBuilder -: -: -new -( -) -; -config -. -apply -( -& -mut -builder -) -; -builder -. -build -( -) -. -parse -( -pattern -) -} -pub -fn -parse_many_with -< -P -: -AsRef -< -str -> -> -( -patterns -: -& -[ -P -] -config -: -& -Config -) -- -> -Result -< -Vec -< -Hir -> -Error -> -{ -let -mut -builder -= -ParserBuilder -: -: -new -( -) -; -config -. -apply -( -& -mut -builder -) -; -let -mut -hirs -= -vec -! -[ -] -; -for -p -in -patterns -. -iter -( -) -{ -hirs -. -push -( -builder -. -build -( -) -. -parse -( -p -. -as_ref -( -) -) -? -) -; -} -Ok -( -hirs -) -} -# -[ -derive -( -Clone -Copy -Debug -) -] -pub -struct -Config -{ -case_insensitive -: -bool -multi_line -: -bool -dot_matches_new_line -: -bool -crlf -: -bool -line_terminator -: -u8 -swap_greed -: -bool -ignore_whitespace -: -bool -unicode -: -bool -utf8 -: -bool -nest_limit -: -u32 -octal -: -bool -} -impl -Config -{ -pub -fn -new -( -) -- -> -Config -{ -Config -{ -case_insensitive -: -false -multi_line -: -false -dot_matches_new_line -: -false -crlf -: -false -line_terminator -: -b -' -\ -n -' -swap_greed -: -false -ignore_whitespace -: -false -unicode -: -true -utf8 -: -true -nest_limit -: -250 -octal -: -false -} -} -pub -fn -case_insensitive -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -case_insensitive -= -yes -; -self -} -pub -fn -multi_line -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -multi_line -= -yes -; -self -} -pub -fn -dot_matches_new_line -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -dot_matches_new_line -= -yes -; -self -} -pub -fn -crlf -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -crlf -= -yes -; -self -} -pub -fn -line_terminator -( -mut -self -byte -: -u8 -) -- -> -Config -{ -self -. -line_terminator -= -byte -; -self -} -pub -fn -swap_greed -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -swap_greed -= -yes -; -self -} -pub -fn -ignore_whitespace -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -ignore_whitespace -= -yes -; -self -} -pub -fn -unicode -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -unicode -= -yes -; -self -} -pub -fn -utf8 -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -utf8 -= -yes -; -self -} -pub -fn -nest_limit -( -mut -self -limit -: -u32 -) -- -> -Config -{ -self -. -nest_limit -= -limit -; -self -} -pub -fn -octal -( -mut -self -yes -: -bool -) -- -> -Config -{ -self -. -octal -= -yes -; -self -} -pub -fn -get_unicode -( -& -self -) -- -> -bool -{ -self -. -unicode -} -pub -fn -get_case_insensitive -( -& -self -) -- -> -bool -{ -self -. -case_insensitive -} -pub -fn -get_multi_line -( -& -self -) -- -> -bool -{ -self -. -multi_line -} -pub -fn -get_dot_matches_new_line -( -& -self -) -- -> -bool -{ -self -. -dot_matches_new_line -} -pub -fn -get_crlf -( -& -self -) -- -> -bool -{ -self -. -crlf -} -pub -fn -get_line_terminator -( -& -self -) -- -> -u8 -{ -self -. -line_terminator -} -pub -fn -get_swap_greed -( -& -self -) -- -> -bool -{ -self -. -swap_greed -} -pub -fn -get_ignore_whitespace -( -& -self -) -- -> -bool -{ -self -. -ignore_whitespace -} -pub -fn -get_utf8 -( -& -self -) -- -> -bool -{ -self -. -utf8 -} -pub -fn -get_nest_limit -( -& -self -) -- -> -u32 -{ -self -. -nest_limit -} -pub -fn -get_octal -( -& -self -) -- -> -bool -{ -self -. -octal -} -pub -( -crate -) -fn -apply -( -& -self -builder -: -& -mut -ParserBuilder -) -{ -builder -. -unicode -( -self -. -unicode -) -. -case_insensitive -( -self -. -case_insensitive -) -. -multi_line -( -self -. -multi_line -) -. -dot_matches_new_line -( -self -. -dot_matches_new_line -) -. -crlf -( -self -. -crlf -) -. -line_terminator -( -self -. -line_terminator -) -. -swap_greed -( -self -. -swap_greed -) -. -ignore_whitespace -( -self -. -ignore_whitespace -) -. -utf8 -( -self -. -utf8 -) -. -nest_limit -( -self -. -nest_limit -) -. -octal -( -self -. -octal -) -; -} -pub -( -crate -) -fn -apply_ast -( -& -self -builder -: -& -mut -ast -: -: -parse -: -: -ParserBuilder -) -{ -builder -. -ignore_whitespace -( -self -. -ignore_whitespace -) -. -nest_limit -( -self -. -nest_limit -) -. -octal -( -self -. -octal -) -; -} -pub -( -crate -) -fn -apply_hir -( -& -self -builder -: -& -mut -hir -: -: -translate -: -: -TranslatorBuilder -) -{ -builder -. -unicode -( -self -. -unicode -) -. -case_insensitive -( -self -. -case_insensitive -) -. -multi_line -( -self -. -multi_line -) -. -crlf -( -self -. -crlf -) -. -dot_matches_new_line -( -self -. -dot_matches_new_line -) -. -line_terminator -( -self -. -line_terminator -) -. -swap_greed -( -self -. -swap_greed -) -. -utf8 -( -self -. -utf8 -) -; -} -} -impl -Default -for -Config -{ -fn -default -( -) -- -> -Config -{ -Config -: -: -new -( -) -} -} diff --git a/third_party/rust/regex-automata/src/util/unicode_data/mod.rs b/third_party/rust/regex-automata/src/util/unicode_data/mod.rs deleted file mode 100644 index f15a898a19e23..0000000000000 --- a/third_party/rust/regex-automata/src/util/unicode_data/mod.rs +++ /dev/null @@ -1,43 +0,0 @@ -# -[ -cfg -( -all -( -feature -= -" -unicode -- -word -- -boundary -" -not -( -all -( -feature -= -" -syntax -" -feature -= -" -unicode -- -perl -" -) -) -) -) -] -pub -( -crate -) -mod -perl_word -; diff --git a/third_party/rust/regex-automata/src/util/unicode_data/perl_word.rs b/third_party/rust/regex-automata/src/util/unicode_data/perl_word.rs deleted file mode 100644 index 92297ce71dc42..0000000000000 --- a/third_party/rust/regex-automata/src/util/unicode_data/perl_word.rs +++ /dev/null @@ -1,6137 +0,0 @@ -pub -const -PERL_WORD -: -& -' -static -[ -( -char -char -) -] -= -& -[ -( -' -0 -' -' -9 -' -) -( -' -A -' -' -Z -' -) -( -' -_ -' -' -_ -' -) -( -' -a -' -' -z -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -300 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -483 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -591 -} -' -' -\ -u -{ -5bd -} -' -) -( -' -\ -u -{ -5bf -} -' -' -\ -u -{ -5bf -} -' -) -( -' -\ -u -{ -5c1 -} -' -' -\ -u -{ -5c2 -} -' -) -( -' -\ -u -{ -5c4 -} -' -' -\ -u -{ -5c5 -} -' -) -( -' -\ -u -{ -5c7 -} -' -' -\ -u -{ -5c7 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -610 -} -' -' -\ -u -{ -61a -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -6dc -} -' -) -( -' -\ -u -{ -6df -} -' -' -\ -u -{ -6e8 -} -' -) -( -' -\ -u -{ -6ea -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -74a -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -7fd -} -' -' -\ -u -{ -7fd -} -' -) -( -' -' -' -\ -u -{ -82d -} -' -) -( -' -' -' -\ -u -{ -85b -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -898 -} -' -' -\ -u -{ -8e1 -} -' -) -( -' -\ -u -{ -8e3 -} -' -' -\ -u -{ -963 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -9bc -} -' -' -\ -u -{ -9c4 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -9d7 -} -' -' -\ -u -{ -9d7 -} -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -9e3 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -9fe -} -' -' -\ -u -{ -9fe -} -' -) -( -' -\ -u -{ -a01 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -a3c -} -' -' -\ -u -{ -a3c -} -' -) -( -' -' -' -\ -u -{ -a42 -} -' -) -( -' -\ -u -{ -a47 -} -' -' -\ -u -{ -a48 -} -' -) -( -' -\ -u -{ -a4b -} -' -' -\ -u -{ -a4d -} -' -) -( -' -\ -u -{ -a51 -} -' -' -\ -u -{ -a51 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -a75 -} -' -) -( -' -\ -u -{ -a81 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -abc -} -' -' -\ -u -{ -ac5 -} -' -) -( -' -\ -u -{ -ac7 -} -' -' -' -) -( -' -' -' -\ -u -{ -acd -} -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -ae3 -} -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -aff -} -' -) -( -' -\ -u -{ -b01 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -b3c -} -' -' -\ -u -{ -b44 -} -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -b4d -} -' -) -( -' -\ -u -{ -b55 -} -' -' -\ -u -{ -b57 -} -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -b63 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -b82 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -bbe -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -bcd -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -bd7 -} -' -' -\ -u -{ -bd7 -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -c00 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -c3c -} -' -' -' -) -( -' -\ -u -{ -c46 -} -' -' -\ -u -{ -c48 -} -' -) -( -' -\ -u -{ -c4a -} -' -' -\ -u -{ -c4d -} -' -) -( -' -\ -u -{ -c55 -} -' -' -\ -u -{ -c56 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -c63 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -cbc -} -' -' -' -) -( -' -\ -u -{ -cc6 -} -' -' -' -) -( -' -' -' -\ -u -{ -ccd -} -' -) -( -' -\ -u -{ -cd5 -} -' -' -\ -u -{ -cd6 -} -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -ce3 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -d00 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -d44 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -d57 -} -' -) -( -' -' -' -\ -u -{ -d63 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -d81 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -dca -} -' -' -\ -u -{ -dca -} -' -) -( -' -\ -u -{ -dcf -} -' -' -\ -u -{ -dd4 -} -' -) -( -' -\ -u -{ -dd6 -} -' -' -\ -u -{ -dd6 -} -' -) -( -' -' -' -\ -u -{ -ddf -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -e3a -} -' -) -( -' -' -' -\ -u -{ -e4e -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -ec8 -} -' -' -\ -u -{ -ece -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -f18 -} -' -' -\ -u -{ -f19 -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -f35 -} -' -' -\ -u -{ -f35 -} -' -) -( -' -\ -u -{ -f37 -} -' -' -\ -u -{ -f37 -} -' -) -( -' -\ -u -{ -f39 -} -' -' -\ -u -{ -f39 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -f71 -} -' -' -\ -u -{ -f84 -} -' -) -( -' -\ -u -{ -f86 -} -' -' -\ -u -{ -f97 -} -' -) -( -' -\ -u -{ -f99 -} -' -' -\ -u -{ -fbc -} -' -) -( -' -\ -u -{ -fc6 -} -' -' -\ -u -{ -fc6 -} -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -109d -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -135d -} -' -' -\ -u -{ -135f -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -1753 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1772 -} -' -' -\ -u -{ -1773 -} -' -) -( -' -' -' -\ -u -{ -17d3 -} -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -17dd -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -180b -} -' -' -\ -u -{ -180d -} -' -) -( -' -\ -u -{ -180f -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1920 -} -' -' -' -) -( -' -' -' -\ -u -{ -193b -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -1a1b -} -' -) -( -' -' -' -\ -u -{ -1a5e -} -' -) -( -' -\ -u -{ -1a60 -} -' -' -\ -u -{ -1a7c -} -' -) -( -' -\ -u -{ -1a7f -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1ab0 -} -' -' -\ -u -{ -1ace -} -' -) -( -' -\ -u -{ -1b00 -} -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1b6b -} -' -' -\ -u -{ -1b73 -} -' -) -( -' -\ -u -{ -1b80 -} -' -' -' -) -( -' -' -' -\ -u -{ -1c37 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1cd0 -} -' -' -\ -u -{ -1cd2 -} -' -) -( -' -\ -u -{ -1cd4 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -200c -} -' -' -\ -u -{ -200d -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -20d0 -} -' -' -\ -u -{ -20f0 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -2d7f -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -2de0 -} -' -' -\ -u -{ -2dff -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -302f -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -3099 -} -' -' -\ -u -{ -309a -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -a672 -} -' -) -( -' -\ -u -{ -a674 -} -' -' -\ -u -{ -a67d -} -' -) -( -' -' -' -\ -u -{ -a6f1 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -a82c -} -' -' -\ -u -{ -a82c -} -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -a8c5 -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -a8e0 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -a92d -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -a980 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -aa36 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -aaf6 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -abed -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -fe00 -} -' -' -\ -u -{ -fe0f -} -' -) -( -' -\ -u -{ -fe20 -} -' -' -\ -u -{ -fe2f -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -101fd -} -' -' -\ -u -{ -101fd -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -102e0 -} -' -' -\ -u -{ -102e0 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -1037a -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -10a03 -} -' -) -( -' -\ -u -{ -10a05 -} -' -' -\ -u -{ -10a06 -} -' -) -( -' -\ -u -{ -10a0c -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -10a38 -} -' -' -\ -u -{ -10a3a -} -' -) -( -' -\ -u -{ -10a3f -} -' -' -\ -u -{ -10a3f -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -10ae6 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -10d27 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -10eab -} -' -' -\ -u -{ -10eac -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -10efd -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -10f50 -} -' -) -( -' -' -' -\ -u -{ -10f85 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -11046 -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1107f -} -' -' -\ -u -{ -110ba -} -' -) -( -' -\ -u -{ -110c2 -} -' -' -\ -u -{ -110c2 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -11100 -} -' -' -\ -u -{ -11134 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -11173 -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -11180 -} -' -' -' -) -( -' -\ -u -{ -111c9 -} -' -' -\ -u -{ -111cc -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -11237 -} -' -) -( -' -\ -u -{ -1123e -} -' -' -\ -u -{ -11241 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -112ea -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -11300 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1133b -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -11357 -} -' -' -\ -u -{ -11357 -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -11366 -} -' -' -\ -u -{ -1136c -} -' -) -( -' -\ -u -{ -11370 -} -' -' -\ -u -{ -11374 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1145e -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -115b5 -} -' -) -( -' -' -' -\ -u -{ -115c0 -} -' -) -( -' -' -' -\ -u -{ -115dd -} -' -) -( -' -' -' -\ -u -{ -11640 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1171d -} -' -' -\ -u -{ -1172b -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -1183a -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1193b -} -' -' -\ -u -{ -11943 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -119d7 -} -' -) -( -' -\ -u -{ -119da -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -11a3e -} -' -) -( -' -\ -u -{ -11a47 -} -' -' -\ -u -{ -11a47 -} -' -) -( -' -' -' -\ -u -{ -11a99 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -11c36 -} -' -) -( -' -\ -u -{ -11c38 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -11c92 -} -' -' -\ -u -{ -11ca7 -} -' -) -( -' -' -' -\ -u -{ -11cb6 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -11d36 -} -' -) -( -' -\ -u -{ -11d3a -} -' -' -\ -u -{ -11d3a -} -' -) -( -' -\ -u -{ -11d3c -} -' -' -\ -u -{ -11d3d -} -' -) -( -' -\ -u -{ -11d3f -} -' -' -\ -u -{ -11d47 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -11d90 -} -' -' -\ -u -{ -11d91 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -11f00 -} -' -' -' -) -( -' -' -' -\ -u -{ -11f3a -} -' -) -( -' -' -' -\ -u -{ -11f42 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -13440 -} -' -' -\ -u -{ -13455 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -16af0 -} -' -' -\ -u -{ -16af4 -} -' -) -( -' -' -' -\ -u -{ -16b36 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -16f4f -} -' -' -' -) -( -' -\ -u -{ -16f8f -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -16fe4 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1bc9d -} -' -' -\ -u -{ -1bc9e -} -' -) -( -' -\ -u -{ -1cf00 -} -' -' -\ -u -{ -1cf2d -} -' -) -( -' -\ -u -{ -1cf30 -} -' -' -\ -u -{ -1cf46 -} -' -) -( -' -\ -u -{ -1d165 -} -' -' -\ -u -{ -1d169 -} -' -) -( -' -' -' -\ -u -{ -1d172 -} -' -) -( -' -\ -u -{ -1d17b -} -' -' -\ -u -{ -1d182 -} -' -) -( -' -\ -u -{ -1d185 -} -' -' -\ -u -{ -1d18b -} -' -) -( -' -\ -u -{ -1d1aa -} -' -' -\ -u -{ -1d1ad -} -' -) -( -' -\ -u -{ -1d242 -} -' -' -\ -u -{ -1d244 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1da00 -} -' -' -\ -u -{ -1da36 -} -' -) -( -' -\ -u -{ -1da3b -} -' -' -\ -u -{ -1da6c -} -' -) -( -' -\ -u -{ -1da75 -} -' -' -\ -u -{ -1da75 -} -' -) -( -' -\ -u -{ -1da84 -} -' -' -\ -u -{ -1da84 -} -' -) -( -' -\ -u -{ -1da9b -} -' -' -\ -u -{ -1da9f -} -' -) -( -' -\ -u -{ -1daa1 -} -' -' -\ -u -{ -1daaf -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1e000 -} -' -' -\ -u -{ -1e006 -} -' -) -( -' -\ -u -{ -1e008 -} -' -' -\ -u -{ -1e018 -} -' -) -( -' -\ -u -{ -1e01b -} -' -' -\ -u -{ -1e021 -} -' -) -( -' -\ -u -{ -1e023 -} -' -' -\ -u -{ -1e024 -} -' -) -( -' -\ -u -{ -1e026 -} -' -' -\ -u -{ -1e02a -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1e08f -} -' -' -\ -u -{ -1e08f -} -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1e130 -} -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -\ -u -{ -1e2ae -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -1e8d0 -} -' -' -\ -u -{ -1e8d6 -} -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -' -' -' -) -( -' -\ -u -{ -e0100 -} -' -' -\ -u -{ -e01ef -} -' -) -] -; diff --git a/third_party/rust/regex-automata/src/util/utf8.rs b/third_party/rust/regex-automata/src/util/utf8.rs deleted file mode 100644 index f1e41b9eaf12a..0000000000000 --- a/third_party/rust/regex-automata/src/util/utf8.rs +++ /dev/null @@ -1,751 +0,0 @@ -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -is_word_byte -( -b -: -u8 -) -- -> -bool -{ -const -fn -mkwordset -( -) -- -> -[ -bool -; -256 -] -{ -let -mut -set -= -[ -false -; -256 -] -; -set -[ -b -' -_ -' -as -usize -] -= -true -; -let -mut -byte -= -b -' -0 -' -; -while -byte -< -= -b -' -9 -' -{ -set -[ -byte -as -usize -] -= -true -; -byte -+ -= -1 -; -} -byte -= -b -' -A -' -; -while -byte -< -= -b -' -Z -' -{ -set -[ -byte -as -usize -] -= -true -; -byte -+ -= -1 -; -} -byte -= -b -' -a -' -; -while -byte -< -= -b -' -z -' -{ -set -[ -byte -as -usize -] -= -true -; -byte -+ -= -1 -; -} -set -} -const -WORD -: -[ -bool -; -256 -] -= -mkwordset -( -) -; -WORD -[ -b -as -usize -] -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -decode -( -bytes -: -& -[ -u8 -] -) -- -> -Option -< -Result -< -char -u8 -> -> -{ -if -bytes -. -is_empty -( -) -{ -return -None -; -} -let -len -= -match -len -( -bytes -[ -0 -] -) -{ -None -= -> -return -Some -( -Err -( -bytes -[ -0 -] -) -) -Some -( -len -) -if -len -> -bytes -. -len -( -) -= -> -return -Some -( -Err -( -bytes -[ -0 -] -) -) -Some -( -1 -) -= -> -return -Some -( -Ok -( -char -: -: -from -( -bytes -[ -0 -] -) -) -) -Some -( -len -) -= -> -len -} -; -match -core -: -: -str -: -: -from_utf8 -( -& -bytes -[ -. -. -len -] -) -{ -Ok -( -s -) -= -> -Some -( -Ok -( -s -. -chars -( -) -. -next -( -) -. -unwrap -( -) -) -) -Err -( -_ -) -= -> -Some -( -Err -( -bytes -[ -0 -] -) -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -decode_last -( -bytes -: -& -[ -u8 -] -) -- -> -Option -< -Result -< -char -u8 -> -> -{ -if -bytes -. -is_empty -( -) -{ -return -None -; -} -let -mut -start -= -bytes -. -len -( -) -- -1 -; -let -limit -= -bytes -. -len -( -) -. -saturating_sub -( -4 -) -; -while -start -> -limit -& -& -! -is_leading_or_invalid_byte -( -bytes -[ -start -] -) -{ -start -- -= -1 -; -} -match -decode -( -& -bytes -[ -start -. -. -] -) -{ -None -= -> -None -Some -( -Ok -( -ch -) -) -= -> -Some -( -Ok -( -ch -) -) -Some -( -Err -( -_ -) -) -= -> -Some -( -Err -( -bytes -[ -bytes -. -len -( -) -- -1 -] -) -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -len -( -byte -: -u8 -) -- -> -Option -< -usize -> -{ -if -byte -< -= -0x7F -{ -return -Some -( -1 -) -; -} -else -if -byte -& -0b1100_0000 -= -= -0b1000_0000 -{ -return -None -; -} -else -if -byte -< -= -0b1101_1111 -{ -Some -( -2 -) -} -else -if -byte -< -= -0b1110_1111 -{ -Some -( -3 -) -} -else -if -byte -< -= -0b1111_0111 -{ -Some -( -4 -) -} -else -{ -None -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -is_boundary -( -bytes -: -& -[ -u8 -] -i -: -usize -) -- -> -bool -{ -match -bytes -. -get -( -i -) -{ -None -= -> -i -= -= -bytes -. -len -( -) -Some -( -& -b -) -= -> -b -< -= -0b0111_1111 -| -| -b -> -= -0b1100_0000 -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -fn -is_leading_or_invalid_byte -( -b -: -u8 -) -- -> -bool -{ -( -b -& -0b1100_0000 -) -! -= -0b1000_0000 -} diff --git a/third_party/rust/regex-automata/src/util/wire.rs b/third_party/rust/regex-automata/src/util/wire.rs deleted file mode 100644 index 5a3f1096faf43..0000000000000 --- a/third_party/rust/regex-automata/src/util/wire.rs +++ /dev/null @@ -1,4424 +0,0 @@ -use -core -: -: -{ -cmp -convert -: -: -{ -TryFrom -TryInto -} -mem -: -: -size_of -} -; -# -[ -cfg -( -feature -= -" -alloc -" -) -] -use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use -crate -: -: -util -: -: -{ -int -: -: -Pointer -primitives -: -: -{ -PatternID -PatternIDError -StateID -StateIDError -} -} -; -# -[ -repr -( -C -) -] -# -[ -derive -( -Debug -) -] -pub -struct -AlignAs -< -B -: -? -Sized -T -> -{ -pub -_align -: -[ -T -; -0 -] -pub -bytes -: -B -} -# -[ -derive -( -Debug -) -] -pub -struct -SerializeError -{ -what -: -& -' -static -str -} -impl -SerializeError -{ -pub -( -crate -) -fn -buffer_too_small -( -what -: -& -' -static -str -) -- -> -SerializeError -{ -SerializeError -{ -what -} -} -} -impl -core -: -: -fmt -: -: -Display -for -SerializeError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -destination -buffer -is -too -small -to -write -{ -} -" -self -. -what -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -SerializeError -{ -} -# -[ -derive -( -Debug -) -] -pub -struct -DeserializeError -( -DeserializeErrorKind -) -; -# -[ -derive -( -Debug -) -] -enum -DeserializeErrorKind -{ -Generic -{ -msg -: -& -' -static -str -} -BufferTooSmall -{ -what -: -& -' -static -str -} -InvalidUsize -{ -what -: -& -' -static -str -} -VersionMismatch -{ -expected -: -u32 -found -: -u32 -} -EndianMismatch -{ -expected -: -u32 -found -: -u32 -} -AlignmentMismatch -{ -alignment -: -usize -address -: -usize -} -LabelMismatch -{ -expected -: -& -' -static -str -} -ArithmeticOverflow -{ -what -: -& -' -static -str -} -PatternID -{ -err -: -PatternIDError -what -: -& -' -static -str -} -StateID -{ -err -: -StateIDError -what -: -& -' -static -str -} -} -impl -DeserializeError -{ -pub -( -crate -) -fn -generic -( -msg -: -& -' -static -str -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -Generic -{ -msg -} -) -} -pub -( -crate -) -fn -buffer_too_small -( -what -: -& -' -static -str -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -BufferTooSmall -{ -what -} -) -} -fn -invalid_usize -( -what -: -& -' -static -str -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -InvalidUsize -{ -what -} -) -} -fn -version_mismatch -( -expected -: -u32 -found -: -u32 -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -VersionMismatch -{ -expected -found -} -) -} -fn -endian_mismatch -( -expected -: -u32 -found -: -u32 -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -EndianMismatch -{ -expected -found -} -) -} -fn -alignment_mismatch -( -alignment -: -usize -address -: -usize -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -AlignmentMismatch -{ -alignment -address -} -) -} -fn -label_mismatch -( -expected -: -& -' -static -str -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -LabelMismatch -{ -expected -} -) -} -fn -arithmetic_overflow -( -what -: -& -' -static -str -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -ArithmeticOverflow -{ -what -} -) -} -fn -pattern_id_error -( -err -: -PatternIDError -what -: -& -' -static -str -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -PatternID -{ -err -what -} -) -} -pub -( -crate -) -fn -state_id_error -( -err -: -StateIDError -what -: -& -' -static -str -) -- -> -DeserializeError -{ -DeserializeError -( -DeserializeErrorKind -: -: -StateID -{ -err -what -} -) -} -} -# -[ -cfg -( -feature -= -" -std -" -) -] -impl -std -: -: -error -: -: -Error -for -DeserializeError -{ -} -impl -core -: -: -fmt -: -: -Display -for -DeserializeError -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -use -self -: -: -DeserializeErrorKind -: -: -* -; -match -self -. -0 -{ -Generic -{ -msg -} -= -> -write -! -( -f -" -{ -} -" -msg -) -BufferTooSmall -{ -what -} -= -> -{ -write -! -( -f -" -buffer -is -too -small -to -read -{ -} -" -what -) -} -InvalidUsize -{ -what -} -= -> -{ -write -! -( -f -" -{ -} -is -too -big -to -fit -in -a -usize -" -what -) -} -VersionMismatch -{ -expected -found -} -= -> -write -! -( -f -" -unsupported -version -: -\ -expected -version -{ -} -but -found -version -{ -} -" -expected -found -) -EndianMismatch -{ -expected -found -} -= -> -write -! -( -f -" -endianness -mismatch -: -expected -0x -{ -: -X -} -but -got -0x -{ -: -X -} -. -\ -( -Are -you -trying -to -load -an -object -serialized -with -a -\ -different -endianness -? -) -" -expected -found -) -AlignmentMismatch -{ -alignment -address -} -= -> -write -! -( -f -" -alignment -mismatch -: -slice -starts -at -address -\ -0x -{ -: -X -} -which -is -not -aligned -to -a -{ -} -byte -boundary -" -address -alignment -) -LabelMismatch -{ -expected -} -= -> -write -! -( -f -" -label -mismatch -: -start -of -serialized -object -should -\ -contain -a -NUL -terminated -{ -: -? -} -label -but -a -different -\ -label -was -found -" -expected -) -ArithmeticOverflow -{ -what -} -= -> -{ -write -! -( -f -" -arithmetic -overflow -for -{ -} -" -what -) -} -PatternID -{ -ref -err -what -} -= -> -{ -write -! -( -f -" -failed -to -read -pattern -ID -for -{ -} -: -{ -} -" -what -err -) -} -StateID -{ -ref -err -what -} -= -> -{ -write -! -( -f -" -failed -to -read -state -ID -for -{ -} -: -{ -} -" -what -err -) -} -} -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -u32s_to_state_ids -( -slice -: -& -[ -u32 -] -) -- -> -& -[ -StateID -] -{ -unsafe -{ -core -: -: -slice -: -: -from_raw_parts -( -slice -. -as_ptr -( -) -. -cast -: -: -< -StateID -> -( -) -slice -. -len -( -) -) -} -} -pub -( -crate -) -fn -u32s_to_state_ids_mut -( -slice -: -& -mut -[ -u32 -] -) -- -> -& -mut -[ -StateID -] -{ -unsafe -{ -core -: -: -slice -: -: -from_raw_parts_mut -( -slice -. -as_mut_ptr -( -) -. -cast -: -: -< -StateID -> -( -) -slice -. -len -( -) -) -} -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -u32s_to_pattern_ids -( -slice -: -& -[ -u32 -] -) -- -> -& -[ -PatternID -] -{ -unsafe -{ -core -: -: -slice -: -: -from_raw_parts -( -slice -. -as_ptr -( -) -. -cast -: -: -< -PatternID -> -( -) -slice -. -len -( -) -) -} -} -pub -( -crate -) -fn -check_alignment -< -T -> -( -slice -: -& -[ -u8 -] -) -- -> -Result -< -( -) -DeserializeError -> -{ -let -alignment -= -core -: -: -mem -: -: -align_of -: -: -< -T -> -( -) -; -let -address -= -slice -. -as_ptr -( -) -. -as_usize -( -) -; -if -address -% -alignment -= -= -0 -{ -return -Ok -( -( -) -) -; -} -Err -( -DeserializeError -: -: -alignment_mismatch -( -alignment -address -) -) -} -pub -( -crate -) -fn -skip_initial_padding -( -slice -: -& -[ -u8 -] -) -- -> -usize -{ -let -mut -nread -= -0 -; -while -nread -< -7 -& -& -nread -< -slice -. -len -( -) -& -& -slice -[ -nread -] -= -= -0 -{ -nread -+ -= -1 -; -} -nread -} -# -[ -cfg -( -feature -= -" -alloc -" -) -] -pub -( -crate -) -fn -alloc_aligned_buffer -< -T -> -( -size -: -usize -) -- -> -( -Vec -< -u8 -> -usize -) -{ -let -buf -= -vec -! -[ -0 -; -size -] -; -let -align -= -core -: -: -mem -: -: -align_of -: -: -< -T -> -( -) -; -let -address -= -buf -. -as_ptr -( -) -. -as_usize -( -) -; -if -address -% -align -= -= -0 -{ -return -( -buf -0 -) -; -} -let -extra -= -align -- -1 -; -let -mut -buf -= -vec -! -[ -0 -; -size -+ -extra -] -; -let -address -= -buf -. -as_ptr -( -) -. -as_usize -( -) -; -if -address -% -align -= -= -0 -{ -buf -. -truncate -( -size -) -; -return -( -buf -0 -) -; -} -let -padding -= -( -( -address -& -! -( -align -- -1 -) -) -. -checked_add -( -align -) -. -unwrap -( -) -) -. -checked_sub -( -address -) -. -unwrap -( -) -; -assert -! -( -padding -< -= -7 -" -padding -of -{ -} -is -bigger -than -7 -" -padding -) -; -assert -! -( -padding -< -= -extra -" -padding -of -{ -} -is -bigger -than -extra -{ -} -bytes -" -padding -extra -) -; -buf -. -truncate -( -size -+ -padding -) -; -assert_eq -! -( -size -+ -padding -buf -. -len -( -) -) -; -assert_eq -! -( -0 -buf -[ -padding -. -. -] -. -as_ptr -( -) -. -as_usize -( -) -% -align -" -expected -end -of -initial -padding -to -be -aligned -to -{ -} -" -align -) -; -( -buf -padding -) -} -pub -( -crate -) -fn -read_label -( -slice -: -& -[ -u8 -] -expected_label -: -& -' -static -str -) -- -> -Result -< -usize -DeserializeError -> -{ -let -first_nul -= -slice -[ -. -. -cmp -: -: -min -( -slice -. -len -( -) -256 -) -] -. -iter -( -) -. -position -( -| -& -b -| -b -= -= -0 -) -; -let -first_nul -= -match -first_nul -{ -Some -( -first_nul -) -= -> -first_nul -None -= -> -{ -return -Err -( -DeserializeError -: -: -generic -( -" -could -not -find -NUL -terminated -label -\ -at -start -of -serialized -object -" -) -) -; -} -} -; -let -len -= -first_nul -+ -padding_len -( -first_nul -) -; -if -slice -. -len -( -) -< -len -{ -return -Err -( -DeserializeError -: -: -generic -( -" -could -not -find -properly -sized -label -at -start -of -serialized -object -" -) -) -; -} -if -expected_label -. -as_bytes -( -) -! -= -& -slice -[ -. -. -first_nul -] -{ -return -Err -( -DeserializeError -: -: -label_mismatch -( -expected_label -) -) -; -} -Ok -( -len -) -} -pub -( -crate -) -fn -write_label -( -label -: -& -str -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -write_label_len -( -label -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -label -" -) -) -; -} -dst -[ -. -. -label -. -len -( -) -] -. -copy_from_slice -( -label -. -as_bytes -( -) -) -; -for -i -in -0 -. -. -( -nwrite -- -label -. -len -( -) -) -{ -dst -[ -label -. -len -( -) -+ -i -] -= -0 -; -} -assert_eq -! -( -nwrite -% -4 -0 -) -; -Ok -( -nwrite -) -} -pub -( -crate -) -fn -write_label_len -( -label -: -& -str -) -- -> -usize -{ -if -label -. -len -( -) -> -255 -{ -panic -! -( -" -label -must -not -be -longer -than -255 -bytes -" -) -; -} -if -label -. -as_bytes -( -) -. -iter -( -) -. -position -( -| -& -b -| -b -= -= -0 -) -. -is_some -( -) -{ -panic -! -( -" -label -must -not -contain -NUL -bytes -" -) -; -} -let -label_len -= -label -. -len -( -) -+ -1 -; -label_len -+ -padding_len -( -label_len -) -} -pub -( -crate -) -fn -read_endianness_check -( -slice -: -& -[ -u8 -] -) -- -> -Result -< -usize -DeserializeError -> -{ -let -( -n -nr -) -= -try_read_u32 -( -slice -" -endianness -check -" -) -? -; -assert_eq -! -( -nr -write_endianness_check_len -( -) -) -; -if -n -! -= -0xFEFF -{ -return -Err -( -DeserializeError -: -: -endian_mismatch -( -0xFEFF -n -) -) -; -} -Ok -( -nr -) -} -pub -( -crate -) -fn -write_endianness_check -< -E -: -Endian -> -( -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -write_endianness_check_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -endianness -check -" -) -) -; -} -E -: -: -write_u32 -( -0xFEFF -dst -) -; -Ok -( -nwrite -) -} -pub -( -crate -) -fn -write_endianness_check_len -( -) -- -> -usize -{ -size_of -: -: -< -u32 -> -( -) -} -pub -( -crate -) -fn -read_version -( -slice -: -& -[ -u8 -] -expected_version -: -u32 -) -- -> -Result -< -usize -DeserializeError -> -{ -let -( -n -nr -) -= -try_read_u32 -( -slice -" -version -" -) -? -; -assert_eq -! -( -nr -write_version_len -( -) -) -; -if -n -! -= -expected_version -{ -return -Err -( -DeserializeError -: -: -version_mismatch -( -expected_version -n -) -) -; -} -Ok -( -nr -) -} -pub -( -crate -) -fn -write_version -< -E -: -Endian -> -( -version -: -u32 -dst -: -& -mut -[ -u8 -] -) -- -> -Result -< -usize -SerializeError -> -{ -let -nwrite -= -write_version_len -( -) -; -if -dst -. -len -( -) -< -nwrite -{ -return -Err -( -SerializeError -: -: -buffer_too_small -( -" -version -number -" -) -) -; -} -E -: -: -write_u32 -( -version -dst -) -; -Ok -( -nwrite -) -} -pub -( -crate -) -fn -write_version_len -( -) -- -> -usize -{ -size_of -: -: -< -u32 -> -( -) -} -pub -( -crate -) -fn -read_pattern_id -( -slice -: -& -[ -u8 -] -what -: -& -' -static -str -) -- -> -Result -< -( -PatternID -usize -) -DeserializeError -> -{ -let -bytes -: -[ -u8 -; -PatternID -: -: -SIZE -] -= -slice -[ -. -. -PatternID -: -: -SIZE -] -. -try_into -( -) -. -unwrap -( -) -; -let -pid -= -PatternID -: -: -from_ne_bytes -( -bytes -) -. -map_err -( -| -err -| -DeserializeError -: -: -pattern_id_error -( -err -what -) -) -? -; -Ok -( -( -pid -PatternID -: -: -SIZE -) -) -} -pub -( -crate -) -fn -read_pattern_id_unchecked -( -slice -: -& -[ -u8 -] -) -- -> -( -PatternID -usize -) -{ -let -pid -= -PatternID -: -: -from_ne_bytes_unchecked -( -slice -[ -. -. -PatternID -: -: -SIZE -] -. -try_into -( -) -. -unwrap -( -) -) -; -( -pid -PatternID -: -: -SIZE -) -} -pub -( -crate -) -fn -write_pattern_id -< -E -: -Endian -> -( -pid -: -PatternID -dst -: -& -mut -[ -u8 -] -) -- -> -usize -{ -E -: -: -write_u32 -( -pid -. -as_u32 -( -) -dst -) -; -PatternID -: -: -SIZE -} -pub -( -crate -) -fn -try_read_state_id -( -slice -: -& -[ -u8 -] -what -: -& -' -static -str -) -- -> -Result -< -( -StateID -usize -) -DeserializeError -> -{ -if -slice -. -len -( -) -< -StateID -: -: -SIZE -{ -return -Err -( -DeserializeError -: -: -buffer_too_small -( -what -) -) -; -} -read_state_id -( -slice -what -) -} -pub -( -crate -) -fn -read_state_id -( -slice -: -& -[ -u8 -] -what -: -& -' -static -str -) -- -> -Result -< -( -StateID -usize -) -DeserializeError -> -{ -let -bytes -: -[ -u8 -; -StateID -: -: -SIZE -] -= -slice -[ -. -. -StateID -: -: -SIZE -] -. -try_into -( -) -. -unwrap -( -) -; -let -sid -= -StateID -: -: -from_ne_bytes -( -bytes -) -. -map_err -( -| -err -| -DeserializeError -: -: -state_id_error -( -err -what -) -) -? -; -Ok -( -( -sid -StateID -: -: -SIZE -) -) -} -pub -( -crate -) -fn -read_state_id_unchecked -( -slice -: -& -[ -u8 -] -) -- -> -( -StateID -usize -) -{ -let -sid -= -StateID -: -: -from_ne_bytes_unchecked -( -slice -[ -. -. -StateID -: -: -SIZE -] -. -try_into -( -) -. -unwrap -( -) -) -; -( -sid -StateID -: -: -SIZE -) -} -pub -( -crate -) -fn -write_state_id -< -E -: -Endian -> -( -sid -: -StateID -dst -: -& -mut -[ -u8 -] -) -- -> -usize -{ -E -: -: -write_u32 -( -sid -. -as_u32 -( -) -dst -) -; -StateID -: -: -SIZE -} -pub -( -crate -) -fn -try_read_u16_as_usize -( -slice -: -& -[ -u8 -] -what -: -& -' -static -str -) -- -> -Result -< -( -usize -usize -) -DeserializeError -> -{ -try_read_u16 -( -slice -what -) -. -and_then -( -| -( -n -nr -) -| -{ -usize -: -: -try_from -( -n -) -. -map -( -| -n -| -( -n -nr -) -) -. -map_err -( -| -_ -| -DeserializeError -: -: -invalid_usize -( -what -) -) -} -) -} -pub -( -crate -) -fn -try_read_u32_as_usize -( -slice -: -& -[ -u8 -] -what -: -& -' -static -str -) -- -> -Result -< -( -usize -usize -) -DeserializeError -> -{ -try_read_u32 -( -slice -what -) -. -and_then -( -| -( -n -nr -) -| -{ -usize -: -: -try_from -( -n -) -. -map -( -| -n -| -( -n -nr -) -) -. -map_err -( -| -_ -| -DeserializeError -: -: -invalid_usize -( -what -) -) -} -) -} -pub -( -crate -) -fn -try_read_u16 -( -slice -: -& -[ -u8 -] -what -: -& -' -static -str -) -- -> -Result -< -( -u16 -usize -) -DeserializeError -> -{ -check_slice_len -( -slice -size_of -: -: -< -u16 -> -( -) -what -) -? -; -Ok -( -( -read_u16 -( -slice -) -size_of -: -: -< -u16 -> -( -) -) -) -} -pub -( -crate -) -fn -try_read_u32 -( -slice -: -& -[ -u8 -] -what -: -& -' -static -str -) -- -> -Result -< -( -u32 -usize -) -DeserializeError -> -{ -check_slice_len -( -slice -size_of -: -: -< -u32 -> -( -) -what -) -? -; -Ok -( -( -read_u32 -( -slice -) -size_of -: -: -< -u32 -> -( -) -) -) -} -pub -( -crate -) -fn -try_read_u128 -( -slice -: -& -[ -u8 -] -what -: -& -' -static -str -) -- -> -Result -< -( -u128 -usize -) -DeserializeError -> -{ -check_slice_len -( -slice -size_of -: -: -< -u128 -> -( -) -what -) -? -; -Ok -( -( -read_u128 -( -slice -) -size_of -: -: -< -u128 -> -( -) -) -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -read_u16 -( -slice -: -& -[ -u8 -] -) -- -> -u16 -{ -let -bytes -: -[ -u8 -; -2 -] -= -slice -[ -. -. -size_of -: -: -< -u16 -> -( -) -] -. -try_into -( -) -. -unwrap -( -) -; -u16 -: -: -from_ne_bytes -( -bytes -) -} -# -[ -cfg_attr -( -feature -= -" -perf -- -inline -" -inline -( -always -) -) -] -pub -( -crate -) -fn -read_u32 -( -slice -: -& -[ -u8 -] -) -- -> -u32 -{ -let -bytes -: -[ -u8 -; -4 -] -= -slice -[ -. -. -size_of -: -: -< -u32 -> -( -) -] -. -try_into -( -) -. -unwrap -( -) -; -u32 -: -: -from_ne_bytes -( -bytes -) -} -pub -( -crate -) -fn -read_u128 -( -slice -: -& -[ -u8 -] -) -- -> -u128 -{ -let -bytes -: -[ -u8 -; -16 -] -= -slice -[ -. -. -size_of -: -: -< -u128 -> -( -) -] -. -try_into -( -) -. -unwrap -( -) -; -u128 -: -: -from_ne_bytes -( -bytes -) -} -pub -( -crate -) -fn -check_slice_len -< -T -> -( -slice -: -& -[ -T -] -at_least_len -: -usize -what -: -& -' -static -str -) -- -> -Result -< -( -) -DeserializeError -> -{ -if -slice -. -len -( -) -< -at_least_len -{ -return -Err -( -DeserializeError -: -: -buffer_too_small -( -what -) -) -; -} -Ok -( -( -) -) -} -pub -( -crate -) -fn -mul -( -a -: -usize -b -: -usize -what -: -& -' -static -str -) -- -> -Result -< -usize -DeserializeError -> -{ -match -a -. -checked_mul -( -b -) -{ -Some -( -c -) -= -> -Ok -( -c -) -None -= -> -Err -( -DeserializeError -: -: -arithmetic_overflow -( -what -) -) -} -} -pub -( -crate -) -fn -add -( -a -: -usize -b -: -usize -what -: -& -' -static -str -) -- -> -Result -< -usize -DeserializeError -> -{ -match -a -. -checked_add -( -b -) -{ -Some -( -c -) -= -> -Ok -( -c -) -None -= -> -Err -( -DeserializeError -: -: -arithmetic_overflow -( -what -) -) -} -} -pub -( -crate -) -fn -shl -( -a -: -usize -b -: -usize -what -: -& -' -static -str -) -- -> -Result -< -usize -DeserializeError -> -{ -let -amount -= -u32 -: -: -try_from -( -b -) -. -map_err -( -| -_ -| -DeserializeError -: -: -arithmetic_overflow -( -what -) -) -? -; -match -a -. -checked_shl -( -amount -) -{ -Some -( -c -) -= -> -Ok -( -c -) -None -= -> -Err -( -DeserializeError -: -: -arithmetic_overflow -( -what -) -) -} -} -pub -( -crate -) -fn -padding_len -( -non_padding_len -: -usize -) -- -> -usize -{ -( -4 -- -( -non_padding_len -& -0b11 -) -) -& -0b11 -} -pub -( -crate -) -trait -Endian -{ -fn -write_u16 -( -n -: -u16 -dst -: -& -mut -[ -u8 -] -) -; -fn -write_u32 -( -n -: -u32 -dst -: -& -mut -[ -u8 -] -) -; -fn -write_u64 -( -n -: -u64 -dst -: -& -mut -[ -u8 -] -) -; -fn -write_u128 -( -n -: -u128 -dst -: -& -mut -[ -u8 -] -) -; -} -pub -( -crate -) -enum -LE -{ -} -pub -( -crate -) -enum -BE -{ -} -# -[ -cfg -( -target_endian -= -" -little -" -) -] -pub -( -crate -) -type -NE -= -LE -; -# -[ -cfg -( -target_endian -= -" -big -" -) -] -pub -( -crate -) -type -NE -= -BE -; -impl -Endian -for -LE -{ -fn -write_u16 -( -n -: -u16 -dst -: -& -mut -[ -u8 -] -) -{ -dst -[ -. -. -2 -] -. -copy_from_slice -( -& -n -. -to_le_bytes -( -) -) -; -} -fn -write_u32 -( -n -: -u32 -dst -: -& -mut -[ -u8 -] -) -{ -dst -[ -. -. -4 -] -. -copy_from_slice -( -& -n -. -to_le_bytes -( -) -) -; -} -fn -write_u64 -( -n -: -u64 -dst -: -& -mut -[ -u8 -] -) -{ -dst -[ -. -. -8 -] -. -copy_from_slice -( -& -n -. -to_le_bytes -( -) -) -; -} -fn -write_u128 -( -n -: -u128 -dst -: -& -mut -[ -u8 -] -) -{ -dst -[ -. -. -16 -] -. -copy_from_slice -( -& -n -. -to_le_bytes -( -) -) -; -} -} -impl -Endian -for -BE -{ -fn -write_u16 -( -n -: -u16 -dst -: -& -mut -[ -u8 -] -) -{ -dst -[ -. -. -2 -] -. -copy_from_slice -( -& -n -. -to_be_bytes -( -) -) -; -} -fn -write_u32 -( -n -: -u32 -dst -: -& -mut -[ -u8 -] -) -{ -dst -[ -. -. -4 -] -. -copy_from_slice -( -& -n -. -to_be_bytes -( -) -) -; -} -fn -write_u64 -( -n -: -u64 -dst -: -& -mut -[ -u8 -] -) -{ -dst -[ -. -. -8 -] -. -copy_from_slice -( -& -n -. -to_be_bytes -( -) -) -; -} -fn -write_u128 -( -n -: -u128 -dst -: -& -mut -[ -u8 -] -) -{ -dst -[ -. -. -16 -] -. -copy_from_slice -( -& -n -. -to_be_bytes -( -) -) -; -} -} -# -[ -cfg -( -all -( -test -feature -= -" -alloc -" -) -) -] -mod -tests -{ -use -super -: -: -* -; -# -[ -test -] -fn -labels -( -) -{ -let -mut -buf -= -[ -0 -; -1024 -] -; -let -nwrite -= -write_label -( -" -fooba -" -& -mut -buf -) -. -unwrap -( -) -; -assert_eq -! -( -nwrite -8 -) -; -assert_eq -! -( -& -buf -[ -. -. -nwrite -] -b -" -fooba -\ -x00 -\ -x00 -\ -x00 -" -) -; -let -nread -= -read_label -( -& -buf -" -fooba -" -) -. -unwrap -( -) -; -assert_eq -! -( -nread -8 -) -; -} -# -[ -test -] -# -[ -should_panic -] -fn -bad_label_interior_nul -( -) -{ -write_label -( -" -foo -\ -x00bar -" -& -mut -[ -0 -; -1024 -] -) -. -unwrap -( -) -; -} -# -[ -test -] -fn -bad_label_almost_too_long -( -) -{ -write_label -( -& -" -z -" -. -repeat -( -255 -) -& -mut -[ -0 -; -1024 -] -) -. -unwrap -( -) -; -} -# -[ -test -] -# -[ -should_panic -] -fn -bad_label_too_long -( -) -{ -write_label -( -& -" -z -" -. -repeat -( -256 -) -& -mut -[ -0 -; -1024 -] -) -. -unwrap -( -) -; -} -# -[ -test -] -fn -padding -( -) -{ -assert_eq -! -( -0 -padding_len -( -8 -) -) -; -assert_eq -! -( -3 -padding_len -( -9 -) -) -; -assert_eq -! -( -2 -padding_len -( -10 -) -) -; -assert_eq -! -( -1 -padding_len -( -11 -) -) -; -assert_eq -! -( -0 -padding_len -( -12 -) -) -; -assert_eq -! -( -3 -padding_len -( -13 -) -) -; -assert_eq -! -( -2 -padding_len -( -14 -) -) -; -assert_eq -! -( -1 -padding_len -( -15 -) -) -; -assert_eq -! -( -0 -padding_len -( -16 -) -) -; -} -} diff --git a/third_party/rust/regex-automata/test b/third_party/rust/regex-automata/test deleted file mode 100644 index d49a035a28a3b..0000000000000 --- a/third_party/rust/regex-automata/test +++ /dev/null @@ -1,894 +0,0 @@ -# -! -/ -bin -/ -bash -# -This -is -a -script -that -attempts -to -* -approximately -* -exhaustively -run -the -test -# -suite -for -regex -- -automata -. -The -main -reason -for -why -' -cargo -test -' -isn -' -t -enough -# -is -because -of -crate -features -. -regex -- -automata -has -a -ton -of -them -. -This -script -# -tests -many -of -those -feature -combinations -( -although -not -all -) -to -try -to -get -# -decent -coverage -in -a -finite -amount -of -time -. -set -- -e -# -cd -to -the -directory -containing -this -crate -' -s -Cargo -. -toml -so -that -we -don -' -t -need -# -to -pass -- -- -manifest -- -path -to -every -cargo -command -. -cd -" -( -dirname -" -0 -" -) -" -echo -" -= -= -= -= -= -ALL -FEATURES -TEST -= -= -= -" -cargo -test -- -- -all -- -features -# -Man -I -don -' -t -* -want -* -to -have -this -many -crate -features -but -. -. -. -I -really -want -# -folks -to -be -able -to -slim -the -crate -down -to -just -the -things -they -want -. -But -# -the -main -downside -is -that -I -just -can -' -t -feasibly -test -every -combination -of -# -features -because -there -are -too -many -of -them -. -Sad -but -I -' -m -not -sure -if -there -# -is -a -better -alternative -. -features -= -( -" -" -" -unicode -- -word -- -boundary -" -" -unicode -- -word -- -boundary -syntax -unicode -- -perl -" -" -unicode -- -word -- -boundary -syntax -dfa -- -build -" -" -nfa -" -" -dfa -" -" -hybrid -" -" -nfa -dfa -" -" -nfa -hybrid -" -" -dfa -hybrid -" -" -dfa -- -onepass -" -" -nfa -- -pikevm -" -" -nfa -- -backtrack -" -" -std -" -" -alloc -" -" -syntax -" -" -syntax -nfa -- -pikevm -" -" -syntax -hybrid -" -" -perf -- -literal -- -substring -" -" -perf -- -literal -- -multisubstring -" -" -meta -" -" -meta -nfa -- -backtrack -" -" -meta -hybrid -" -" -meta -dfa -- -build -" -" -meta -dfa -- -onepass -" -" -meta -nfa -dfa -hybrid -nfa -- -backtrack -" -" -meta -nfa -dfa -hybrid -nfa -- -backtrack -perf -- -literal -- -substring -" -" -meta -nfa -dfa -hybrid -nfa -- -backtrack -perf -- -literal -- -multisubstring -" -) -for -f -in -" -{ -features -[ -] -} -" -; -do -echo -" -= -= -= -= -= -LIB -FEATURES -: -f -= -= -= -" -# -It -' -s -actually -important -to -do -a -standard -' -cargo -build -' -in -addition -to -a -# -' -cargo -test -' -. -In -particular -in -the -latter -case -the -dev -- -dependencies -may -# -wind -up -enabling -features -in -dependencies -( -like -memchr -) -that -make -it -look -# -like -everything -is -well -but -actually -isn -' -t -. -For -example -the -' -regex -- -test -' -# -dev -- -dependency -uses -' -bstr -' -and -enables -its -' -std -' -feature -which -in -turn -# -unconditionally -enables -' -memchr -' -s -' -std -' -feature -. -Since -we -' -re -specifically -# -looking -to -test -that -certain -feature -combinations -work -as -expected -this -# -can -lead -to -things -testing -okay -but -would -actually -fail -to -build -. -Yikes -. -cargo -build -- -- -no -- -default -- -features -- -- -lib -- -- -features -" -f -" -cargo -test -- -- -no -- -default -- -features -- -- -lib -- -- -features -" -f -" -done -# -We -can -also -run -the -integration -test -suite -on -stripped -down -features -too -. -# -But -the -test -suite -doesn -' -t -do -well -with -things -like -' -std -' -and -' -unicode -' -# -disabled -so -we -always -enable -them -. -features -= -( -" -std -unicode -syntax -nfa -- -pikevm -" -" -std -unicode -syntax -nfa -- -backtrack -" -" -std -unicode -syntax -hybrid -" -" -std -unicode -syntax -dfa -- -onepass -" -" -std -unicode -syntax -dfa -- -search -" -" -std -unicode -syntax -dfa -- -build -" -" -std -unicode -meta -" -# -This -one -is -a -little -tricky -because -it -causes -the -backtracker -to -get -used -# -in -more -instances -and -results -in -failing -tests -for -the -' -earliest -' -tests -. -# -The -actual -results -are -semantically -consistent -with -the -API -guarantee -# -( -the -backtracker -tends -to -report -greater -offsets -because -it -isn -' -t -an -FSM -) -# -but -our -tests -are -less -flexible -than -the -API -guarantee -and -demand -offsets -# -reported -by -FSM -regex -engines -. -( -Which -is -. -. -. -all -of -them -except -for -the -# -backtracker -. -) -# -" -std -unicode -meta -nfa -- -backtrack -" -" -std -unicode -meta -hybrid -" -" -std -unicode -meta -dfa -- -onepass -" -" -std -unicode -meta -dfa -- -build -" -" -std -unicode -meta -nfa -dfa -- -onepass -hybrid -" -) -for -f -in -" -{ -features -[ -] -} -" -; -do -echo -" -= -= -= -= -= -INTEGRATION -FEATURES -: -f -= -= -= -" -cargo -build -- -- -no -- -default -- -features -- -- -lib -- -- -features -" -f -" -cargo -test -- -- -no -- -default -- -features -- -- -test -integration -- -- -features -" -f -" -done diff --git a/third_party/rust/regex-automata/tests/dfa/api.rs b/third_party/rust/regex-automata/tests/dfa/api.rs deleted file mode 100644 index 66ce0d9685460..0000000000000 --- a/third_party/rust/regex-automata/tests/dfa/api.rs +++ /dev/null @@ -1,485 +0,0 @@ -use -std -: -: -error -: -: -Error -; -use -regex_automata -: -: -{ -dfa -: -: -{ -dense -Automaton -OverlappingState -} -nfa -: -: -thompson -HalfMatch -Input -MatchError -} -; -# -[ -test -] -fn -quit_fwd -( -) -- -> -Result -< -( -) -Box -< -dyn -Error -> -> -{ -let -dfa -= -dense -: -: -Builder -: -: -new -( -) -. -configure -( -dense -: -: -Config -: -: -new -( -) -. -quit -( -b -' -x -' -true -) -) -. -build -( -" -[ -[ -: -word -: -] -] -+ -" -) -? -; -assert_eq -! -( -Err -( -MatchError -: -: -quit -( -b -' -x -' -3 -) -) -dfa -. -try_search_fwd -( -& -Input -: -: -new -( -b -" -abcxyz -" -) -) -) -; -assert_eq -! -( -dfa -. -try_search_overlapping_fwd -( -& -Input -: -: -new -( -b -" -abcxyz -" -) -& -mut -OverlappingState -: -: -start -( -) -) -Err -( -MatchError -: -: -quit -( -b -' -x -' -3 -) -) -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -quit_rev -( -) -- -> -Result -< -( -) -Box -< -dyn -Error -> -> -{ -let -dfa -= -dense -: -: -Builder -: -: -new -( -) -. -configure -( -dense -: -: -Config -: -: -new -( -) -. -quit -( -b -' -x -' -true -) -) -. -thompson -( -thompson -: -: -Config -: -: -new -( -) -. -reverse -( -true -) -) -. -build -( -" -^ -[ -[ -: -word -: -] -] -+ -" -) -? -; -assert_eq -! -( -Err -( -MatchError -: -: -quit -( -b -' -x -' -3 -) -) -dfa -. -try_search_rev -( -& -Input -: -: -new -( -b -" -abcxyz -" -) -) -) -; -Ok -( -( -) -) -} -# -[ -test -] -# -[ -should_panic -] -fn -quit_panics -( -) -{ -dense -: -: -Config -: -: -new -( -) -. -unicode_word_boundary -( -true -) -. -quit -( -b -' -\ -xFF -' -false -) -; -} -# -[ -test -] -fn -unicode_word_implicitly_works -( -) -- -> -Result -< -( -) -Box -< -dyn -Error -> -> -{ -let -mut -config -= -dense -: -: -Config -: -: -new -( -) -; -for -b -in -0x80 -. -. -= -0xFF -{ -config -= -config -. -quit -( -b -true -) -; -} -let -dfa -= -dense -: -: -Builder -: -: -new -( -) -. -configure -( -config -) -. -build -( -r -" -\ -b -" -) -? -; -let -expected -= -HalfMatch -: -: -must -( -0 -1 -) -; -assert_eq -! -( -Ok -( -Some -( -expected -) -) -dfa -. -try_search_fwd -( -& -Input -: -: -new -( -b -" -a -" -) -) -) -; -Ok -( -( -) -) -} diff --git a/third_party/rust/regex-automata/tests/dfa/mod.rs b/third_party/rust/regex-automata/tests/dfa/mod.rs deleted file mode 100644 index 67a5898fadceb..0000000000000 --- a/third_party/rust/regex-automata/tests/dfa/mod.rs +++ /dev/null @@ -1,98 +0,0 @@ -# -[ -cfg -( -all -( -feature -= -" -dfa -- -build -" -feature -= -" -dfa -- -search -" -) -) -] -mod -api -; -# -[ -cfg -( -feature -= -" -dfa -- -onepass -" -) -] -mod -onepass -; -# -[ -cfg -( -all -( -feature -= -" -dfa -- -build -" -feature -= -" -dfa -- -search -" -) -) -] -mod -regression -; -# -[ -cfg -( -all -( -not -( -miri -) -feature -= -" -dfa -- -build -" -feature -= -" -dfa -- -search -" -) -) -] -mod -suite -; diff --git a/third_party/rust/regex-automata/tests/dfa/onepass/mod.rs b/third_party/rust/regex-automata/tests/dfa/onepass/mod.rs deleted file mode 100644 index f9d643965033c..0000000000000 --- a/third_party/rust/regex-automata/tests/dfa/onepass/mod.rs +++ /dev/null @@ -1,13 +0,0 @@ -# -[ -cfg -( -not -( -miri -) -) -] -mod -suite -; diff --git a/third_party/rust/regex-automata/tests/dfa/onepass/suite.rs b/third_party/rust/regex-automata/tests/dfa/onepass/suite.rs deleted file mode 100644 index ffe474b8af645..0000000000000 --- a/third_party/rust/regex-automata/tests/dfa/onepass/suite.rs +++ /dev/null @@ -1,1154 +0,0 @@ -use -{ -anyhow -: -: -Result -regex_automata -: -: -{ -dfa -: -: -onepass -: -: -{ -self -DFA -} -nfa -: -: -thompson -util -: -: -{ -iter -syntax -} -} -regex_test -: -: -{ -CompiledRegex -Match -RegexTest -SearchKind -Span -TestResult -TestRunner -} -} -; -use -crate -: -: -{ -create_input -suite -testify_captures -untestify_kind -} -; -const -EXPANSIONS -: -& -[ -& -str -] -= -& -[ -" -is_match -" -" -find -" -" -captures -" -] -; -# -[ -test -] -fn -default -( -) -- -> -Result -< -( -) -> -{ -let -builder -= -DFA -: -: -builder -( -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -starts_for_each_pattern -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -DFA -: -: -builder -( -) -; -builder -. -configure -( -DFA -: -: -config -( -) -. -starts_for_each_pattern -( -true -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -no_byte_classes -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -DFA -: -: -builder -( -) -; -builder -. -configure -( -DFA -: -: -config -( -) -. -byte_classes -( -false -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -compiler -( -mut -builder -: -onepass -: -: -Builder -) -- -> -impl -FnMut -( -& -RegexTest -& -[ -String -] -) -- -> -Result -< -CompiledRegex -> -{ -move -| -test -regexes -| -{ -if -! -configure_onepass_builder -( -test -& -mut -builder -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -let -re -= -match -builder -. -build_many -( -& -regexes -) -{ -Ok -( -re -) -= -> -re -Err -( -err -) -= -> -{ -let -msg -= -err -. -to_string -( -) -; -if -test -. -compiles -( -) -& -& -msg -. -contains -( -" -not -one -- -pass -" -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -return -Err -( -err -. -into -( -) -) -; -} -} -; -let -mut -cache -= -re -. -create_cache -( -) -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -& -mut -cache -test -) -} -) -) -} -} -fn -run_test -( -re -: -& -DFA -cache -: -& -mut -onepass -: -: -Cache -test -: -& -RegexTest -) -- -> -TestResult -{ -let -input -= -create_input -( -test -) -; -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -{ -TestResult -: -: -matched -( -re -. -is_match -( -cache -input -. -earliest -( -true -) -) -) -} -" -find -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -| -SearchKind -: -: -Leftmost -= -> -{ -let -input -= -input -. -earliest -( -test -. -search_kind -( -) -= -= -SearchKind -: -: -Earliest -) -; -let -mut -caps -= -re -. -create_captures -( -) -; -let -it -= -iter -: -: -Searcher -: -: -new -( -input -) -. -into_matches_iter -( -| -input -| -{ -re -. -try_search -( -cache -input -& -mut -caps -) -? -; -Ok -( -caps -. -get_match -( -) -) -} -) -. -infallible -( -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -m -| -Match -{ -id -: -m -. -pattern -( -) -. -as_usize -( -) -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -; -TestResult -: -: -matches -( -it -) -} -SearchKind -: -: -Overlapping -= -> -{ -TestResult -: -: -skip -( -) -} -} -" -captures -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -| -SearchKind -: -: -Leftmost -= -> -{ -let -input -= -input -. -earliest -( -test -. -search_kind -( -) -= -= -SearchKind -: -: -Earliest -) -; -let -it -= -iter -: -: -Searcher -: -: -new -( -input -) -. -into_captures_iter -( -re -. -create_captures -( -) -| -input -caps -| -{ -re -. -try_search -( -cache -input -caps -) -} -) -. -infallible -( -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -caps -| -testify_captures -( -& -caps -) -) -; -TestResult -: -: -captures -( -it -) -} -SearchKind -: -: -Overlapping -= -> -{ -TestResult -: -: -skip -( -) -} -} -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -configure_onepass_builder -( -test -: -& -RegexTest -builder -: -& -mut -onepass -: -: -Builder -) -- -> -bool -{ -if -! -test -. -anchored -( -) -{ -return -false -; -} -let -match_kind -= -match -untestify_kind -( -test -. -match_kind -( -) -) -{ -None -= -> -return -false -Some -( -k -) -= -> -k -} -; -let -config -= -DFA -: -: -config -( -) -. -match_kind -( -match_kind -) -; -builder -. -configure -( -config -) -. -syntax -( -config_syntax -( -test -) -) -. -thompson -( -config_thompson -( -test -) -) -; -true -} -fn -config_thompson -( -test -: -& -RegexTest -) -- -> -thompson -: -: -Config -{ -let -mut -lookm -= -regex_automata -: -: -util -: -: -look -: -: -LookMatcher -: -: -new -( -) -; -lookm -. -set_line_terminator -( -test -. -line_terminator -( -) -) -; -thompson -: -: -Config -: -: -new -( -) -. -utf8 -( -test -. -utf8 -( -) -) -. -look_matcher -( -lookm -) -} -fn -config_syntax -( -test -: -& -RegexTest -) -- -> -syntax -: -: -Config -{ -syntax -: -: -Config -: -: -new -( -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -utf8 -( -test -. -utf8 -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -} diff --git a/third_party/rust/regex-automata/tests/dfa/regression.rs b/third_party/rust/regex-automata/tests/dfa/regression.rs deleted file mode 100644 index 7a9fb6ac4d9bd..0000000000000 --- a/third_party/rust/regex-automata/tests/dfa/regression.rs +++ /dev/null @@ -1,306 +0,0 @@ -# -[ -test -] -# -[ -cfg -( -not -( -miri -) -) -] -fn -minimize_sets_correct_match_states -( -) -{ -use -regex_automata -: -: -{ -dfa -: -: -{ -dense -: -: -DFA -Automaton -StartKind -} -Anchored -Input -} -; -let -pattern -= -r -" -( -? -x -) -( -? -: -\ -p -{ -gcb -= -Prepend -} -* -( -? -: -( -? -: -( -? -: -\ -p -{ -gcb -= -L -} -* -( -? -: -\ -p -{ -gcb -= -V -} -+ -| -\ -p -{ -gcb -= -LV -} -\ -p -{ -gcb -= -V -} -* -| -\ -p -{ -gcb -= -LVT -} -) -\ -p -{ -gcb -= -T -} -* -) -| -\ -p -{ -gcb -= -L -} -+ -| -\ -p -{ -gcb -= -T -} -+ -) -| -\ -p -{ -Extended_Pictographic -} -( -? -: -\ -p -{ -gcb -= -Extend -} -* -\ -p -{ -gcb -= -ZWJ -} -\ -p -{ -Extended_Pictographic -} -) -* -| -[ -^ -\ -p -{ -gcb -= -Control -} -\ -p -{ -gcb -= -CR -} -\ -p -{ -gcb -= -LF -} -] -) -[ -\ -p -{ -gcb -= -Extend -} -\ -p -{ -gcb -= -ZWJ -} -\ -p -{ -gcb -= -SpacingMark -} -] -* -) -" -; -let -dfa -= -DFA -: -: -builder -( -) -. -configure -( -DFA -: -: -config -( -) -. -start_kind -( -StartKind -: -: -Anchored -) -. -minimize -( -true -) -) -. -build -( -pattern -) -. -unwrap -( -) -; -let -input -= -Input -: -: -new -( -b -" -\ -xE2 -" -) -. -anchored -( -Anchored -: -: -Yes -) -; -assert_eq -! -( -Ok -( -None -) -dfa -. -try_search_fwd -( -& -input -) -) -; -} diff --git a/third_party/rust/regex-automata/tests/dfa/suite.rs b/third_party/rust/regex-automata/tests/dfa/suite.rs deleted file mode 100644 index 1c5b2e2df1d41..0000000000000 --- a/third_party/rust/regex-automata/tests/dfa/suite.rs +++ /dev/null @@ -1,3053 +0,0 @@ -use -{ -anyhow -: -: -Result -regex_automata -: -: -{ -dfa -: -: -{ -self -dense -regex -: -: -Regex -sparse -Automaton -OverlappingState -StartKind -} -nfa -: -: -thompson -util -: -: -{ -prefilter -: -: -Prefilter -syntax -} -Anchored -Input -PatternSet -} -regex_syntax -: -: -hir -regex_test -: -: -{ -CompiledRegex -Match -RegexTest -SearchKind -Span -TestResult -TestRunner -} -} -; -use -crate -: -: -{ -create_input -suite -untestify_kind -} -; -const -EXPANSIONS -: -& -[ -& -str -] -= -& -[ -" -is_match -" -" -find -" -" -which -" -] -; -# -[ -test -] -fn -unminimized_default -( -) -- -> -Result -< -( -) -> -{ -let -builder -= -Regex -: -: -builder -( -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -dense_compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -unminimized_prefilter -( -) -- -> -Result -< -( -) -> -{ -let -my_compiler -= -| -test -: -& -RegexTest -regexes -: -& -[ -String -] -| -{ -let -mut -hirs -= -vec -! -[ -] -; -for -pattern -in -regexes -. -iter -( -) -{ -hirs -. -push -( -syntax -: -: -parse_with -( -pattern -& -config_syntax -( -test -) -) -? -) -; -} -let -kind -= -match -untestify_kind -( -test -. -match_kind -( -) -) -{ -None -= -> -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -Some -( -kind -) -= -> -kind -} -; -let -pre -= -Prefilter -: -: -from_hirs_prefix -( -kind -& -hirs -) -; -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dense -( -dense -: -: -DFA -: -: -config -( -) -. -prefilter -( -pre -) -) -; -compiler -( -builder -| -_ -_ -re -| -{ -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -test -) -} -) -) -} -) -( -test -regexes -) -} -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -my_compiler -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -unminimized_specialized_start_states -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dense -( -dense -: -: -Config -: -: -new -( -) -. -specialize_start_states -( -true -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -dense_compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -unminimized_no_byte_class -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dense -( -dense -: -: -Config -: -: -new -( -) -. -byte_classes -( -false -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -dense_compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -unminimized_nfa_shrink -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -thompson -( -thompson -: -: -Config -: -: -new -( -) -. -shrink -( -true -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -dense_compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -minimized_default -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dense -( -dense -: -: -Config -: -: -new -( -) -. -minimize -( -true -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -dense_compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -minimized_no_byte_class -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dense -( -dense -: -: -Config -: -: -new -( -) -. -minimize -( -true -) -. -byte_classes -( -false -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -dense_compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -sparse_unminimized_default -( -) -- -> -Result -< -( -) -> -{ -let -builder -= -Regex -: -: -builder -( -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -sparse_compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -sparse_unminimized_prefilter -( -) -- -> -Result -< -( -) -> -{ -let -my_compiler -= -| -test -: -& -RegexTest -regexes -: -& -[ -String -] -| -{ -let -mut -hirs -= -vec -! -[ -] -; -for -pattern -in -regexes -. -iter -( -) -{ -hirs -. -push -( -syntax -: -: -parse_with -( -pattern -& -config_syntax -( -test -) -) -? -) -; -} -let -kind -= -match -untestify_kind -( -test -. -match_kind -( -) -) -{ -None -= -> -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -Some -( -kind -) -= -> -kind -} -; -let -pre -= -Prefilter -: -: -from_hirs_prefix -( -kind -& -hirs -) -; -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dense -( -dense -: -: -DFA -: -: -config -( -) -. -prefilter -( -pre -) -) -; -compiler -( -builder -| -builder -_ -re -| -{ -let -fwd -= -re -. -forward -( -) -. -to_sparse -( -) -? -; -let -rev -= -re -. -reverse -( -) -. -to_sparse -( -) -? -; -let -re -= -builder -. -build_from_dfas -( -fwd -rev -) -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -test -) -} -) -) -} -) -( -test -regexes -) -} -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -my_compiler -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -serialization_unminimized_default -( -) -- -> -Result -< -( -) -> -{ -let -builder -= -Regex -: -: -builder -( -) -; -let -my_compiler -= -| -builder -| -{ -compiler -( -builder -| -builder -_ -re -| -{ -let -builder -= -builder -. -clone -( -) -; -let -( -fwd_bytes -_ -) -= -re -. -forward -( -) -. -to_bytes_native_endian -( -) -; -let -( -rev_bytes -_ -) -= -re -. -reverse -( -) -. -to_bytes_native_endian -( -) -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -let -fwd -: -dense -: -: -DFA -< -& -[ -u32 -] -> -= -dense -: -: -DFA -: -: -from_bytes -( -& -fwd_bytes -) -. -unwrap -( -) -. -0 -; -let -rev -: -dense -: -: -DFA -< -& -[ -u32 -] -> -= -dense -: -: -DFA -: -: -from_bytes -( -& -rev_bytes -) -. -unwrap -( -) -. -0 -; -let -re -= -builder -. -build_from_dfas -( -fwd -rev -) -; -run_test -( -& -re -test -) -} -) -) -} -) -} -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -my_compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -sparse_serialization_unminimized_default -( -) -- -> -Result -< -( -) -> -{ -let -builder -= -Regex -: -: -builder -( -) -; -let -my_compiler -= -| -builder -| -{ -compiler -( -builder -| -builder -_ -re -| -{ -let -builder -= -builder -. -clone -( -) -; -let -fwd_bytes -= -re -. -forward -( -) -. -to_sparse -( -) -? -. -to_bytes_native_endian -( -) -; -let -rev_bytes -= -re -. -reverse -( -) -. -to_sparse -( -) -? -. -to_bytes_native_endian -( -) -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -let -fwd -: -sparse -: -: -DFA -< -& -[ -u8 -] -> -= -sparse -: -: -DFA -: -: -from_bytes -( -& -fwd_bytes -) -. -unwrap -( -) -. -0 -; -let -rev -: -sparse -: -: -DFA -< -& -[ -u8 -] -> -= -sparse -: -: -DFA -: -: -from_bytes -( -& -rev_bytes -) -. -unwrap -( -) -. -0 -; -let -re -= -builder -. -build_from_dfas -( -fwd -rev -) -; -run_test -( -& -re -test -) -} -) -) -} -) -} -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -my_compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -dense_compiler -( -builder -: -dfa -: -: -regex -: -: -Builder -) -- -> -impl -FnMut -( -& -RegexTest -& -[ -String -] -) -- -> -Result -< -CompiledRegex -> -{ -compiler -( -builder -| -_ -_ -re -| -{ -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -test -) -} -) -) -} -) -} -fn -sparse_compiler -( -builder -: -dfa -: -: -regex -: -: -Builder -) -- -> -impl -FnMut -( -& -RegexTest -& -[ -String -] -) -- -> -Result -< -CompiledRegex -> -{ -compiler -( -builder -| -builder -_ -re -| -{ -let -fwd -= -re -. -forward -( -) -. -to_sparse -( -) -? -; -let -rev -= -re -. -reverse -( -) -. -to_sparse -( -) -? -; -let -re -= -builder -. -build_from_dfas -( -fwd -rev -) -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -test -) -} -) -) -} -) -} -fn -compiler -( -mut -builder -: -dfa -: -: -regex -: -: -Builder -mut -create_matcher -: -impl -FnMut -( -& -dfa -: -: -regex -: -: -Builder -Option -< -Prefilter -> -Regex -) -- -> -Result -< -CompiledRegex -> -) -- -> -impl -FnMut -( -& -RegexTest -& -[ -String -] -) -- -> -Result -< -CompiledRegex -> -{ -move -| -test -regexes -| -{ -let -mut -hirs -= -vec -! -[ -] -; -for -pattern -in -regexes -. -iter -( -) -{ -hirs -. -push -( -syntax -: -: -parse_with -( -pattern -& -config_syntax -( -test -) -) -? -) -; -} -let -kind -= -match -untestify_kind -( -test -. -match_kind -( -) -) -{ -None -= -> -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -Some -( -kind -) -= -> -kind -} -; -let -pre -= -Prefilter -: -: -from_hirs_prefix -( -kind -& -hirs -) -; -if -! -test -. -haystack -( -) -. -is_ascii -( -) -{ -for -hir -in -hirs -. -iter -( -) -{ -let -looks -= -hir -. -properties -( -) -. -look_set -( -) -; -if -looks -. -contains -( -hir -: -: -Look -: -: -WordUnicode -) -| -| -looks -. -contains -( -hir -: -: -Look -: -: -WordUnicodeNegate -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -} -} -if -! -configure_regex_builder -( -test -& -mut -builder -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -create_matcher -( -& -builder -pre -builder -. -build_many -( -& -regexes -) -? -) -} -} -fn -run_test -< -A -: -Automaton -> -( -re -: -& -Regex -< -A -> -test -: -& -RegexTest -) -- -> -TestResult -{ -let -input -= -create_input -( -test -) -; -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -TestResult -: -: -matched -( -re -. -is_match -( -input -. -earliest -( -true -) -) -) -" -find -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -| -SearchKind -: -: -Leftmost -= -> -{ -let -input -= -input -. -earliest -( -test -. -search_kind -( -) -= -= -SearchKind -: -: -Earliest -) -; -TestResult -: -: -matches -( -re -. -find_iter -( -input -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -m -| -Match -{ -id -: -m -. -pattern -( -) -. -as_usize -( -) -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -) -} -SearchKind -: -: -Overlapping -= -> -{ -try_search_overlapping -( -re -& -input -) -. -unwrap -( -) -} -} -" -which -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -| -SearchKind -: -: -Leftmost -= -> -{ -TestResult -: -: -skip -( -) -} -SearchKind -: -: -Overlapping -= -> -{ -let -dfa -= -re -. -forward -( -) -; -let -mut -patset -= -PatternSet -: -: -new -( -dfa -. -pattern_len -( -) -) -; -dfa -. -try_which_overlapping_matches -( -& -input -& -mut -patset -) -. -unwrap -( -) -; -TestResult -: -: -which -( -patset -. -iter -( -) -. -map -( -| -p -| -p -. -as_usize -( -) -) -) -} -} -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -configure_regex_builder -( -test -: -& -RegexTest -builder -: -& -mut -dfa -: -: -regex -: -: -Builder -) -- -> -bool -{ -let -match_kind -= -match -untestify_kind -( -test -. -match_kind -( -) -) -{ -None -= -> -return -false -Some -( -k -) -= -> -k -} -; -let -starts -= -if -test -. -anchored -( -) -{ -StartKind -: -: -Anchored -} -else -{ -StartKind -: -: -Unanchored -} -; -let -mut -dense_config -= -dense -: -: -Config -: -: -new -( -) -. -start_kind -( -starts -) -. -match_kind -( -match_kind -) -. -unicode_word_boundary -( -true -) -; -if -test -. -search_kind -( -) -= -= -SearchKind -: -: -Overlapping -{ -dense_config -= -dense_config -. -starts_for_each_pattern -( -true -) -; -} -builder -. -syntax -( -config_syntax -( -test -) -) -. -thompson -( -config_thompson -( -test -) -) -. -dense -( -dense_config -) -; -true -} -fn -config_thompson -( -test -: -& -RegexTest -) -- -> -thompson -: -: -Config -{ -let -mut -lookm -= -regex_automata -: -: -util -: -: -look -: -: -LookMatcher -: -: -new -( -) -; -lookm -. -set_line_terminator -( -test -. -line_terminator -( -) -) -; -thompson -: -: -Config -: -: -new -( -) -. -utf8 -( -test -. -utf8 -( -) -) -. -look_matcher -( -lookm -) -} -fn -config_syntax -( -test -: -& -RegexTest -) -- -> -syntax -: -: -Config -{ -syntax -: -: -Config -: -: -new -( -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -utf8 -( -test -. -utf8 -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -} -fn -try_search_overlapping -< -A -: -Automaton -> -( -re -: -& -Regex -< -A -> -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -TestResult -> -{ -let -mut -matches -= -vec -! -[ -] -; -let -mut -fwd_state -= -OverlappingState -: -: -start -( -) -; -let -( -fwd_dfa -rev_dfa -) -= -( -re -. -forward -( -) -re -. -reverse -( -) -) -; -while -let -Some -( -end -) -= -{ -fwd_dfa -. -try_search_overlapping_fwd -( -input -& -mut -fwd_state -) -? -; -fwd_state -. -get_match -( -) -} -{ -let -revsearch -= -input -. -clone -( -) -. -range -( -input -. -start -( -) -. -. -end -. -offset -( -) -) -. -anchored -( -Anchored -: -: -Pattern -( -end -. -pattern -( -) -) -) -. -earliest -( -false -) -; -let -mut -rev_state -= -OverlappingState -: -: -start -( -) -; -while -let -Some -( -start -) -= -{ -rev_dfa -. -try_search_overlapping_rev -( -& -revsearch -& -mut -rev_state -) -? -; -rev_state -. -get_match -( -) -} -{ -let -span -= -Span -{ -start -: -start -. -offset -( -) -end -: -end -. -offset -( -) -} -; -let -mat -= -Match -{ -id -: -end -. -pattern -( -) -. -as_usize -( -) -span -} -; -matches -. -push -( -mat -) -; -} -} -Ok -( -TestResult -: -: -matches -( -matches -) -) -} diff --git a/third_party/rust/regex-automata/tests/fuzz/dense.rs b/third_party/rust/regex-automata/tests/fuzz/dense.rs deleted file mode 100644 index 807269d24fbdf..0000000000000 --- a/third_party/rust/regex-automata/tests/fuzz/dense.rs +++ /dev/null @@ -1,316 +0,0 @@ -# -[ -test -] -fn -invalid_byte_classes -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -deserialize_dense_crash -- -9486fb7c8a93b12c12a62166b43d31640c0208a9 -" -) -; -let -_ -= -fuzz_run -( -data -) -; -} -# -[ -test -] -fn -invalid_byte_classes_min -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -deserialize_dense_minimized -- -from -- -9486fb7c8a93b12c12a62166b43d31640c0208a9 -" -) -; -let -_ -= -fuzz_run -( -data -) -; -} -fn -fuzz_run -( -given_data -: -& -[ -u8 -] -) -- -> -Option -< -( -) -> -{ -use -regex_automata -: -: -dfa -: -: -Automaton -; -if -given_data -. -len -( -) -< -2 -{ -return -None -; -} -let -haystack_len -= -usize -: -: -from -( -given_data -[ -0 -] -) -; -let -haystack -= -given_data -. -get -( -1 -. -. -1 -+ -haystack_len -) -? -; -let -given_dfa_bytes -= -given_data -. -get -( -1 -+ -haystack_len -. -. -) -? -; -let -label -= -" -rust -- -regex -- -automata -- -dfa -- -dense -\ -x00 -\ -x00 -\ -x00 -" -; -assert_eq -! -( -0 -label -. -len -( -) -% -4 -) -; -let -endianness_check -= -0xFEFFu32 -. -to_ne_bytes -( -) -. -to_vec -( -) -; -let -version_check -= -2u32 -. -to_ne_bytes -( -) -. -to_vec -( -) -; -let -mut -dfa_bytes -: -Vec -< -u8 -> -= -vec -! -[ -] -; -dfa_bytes -. -extend -( -label -. -as_bytes -( -) -) -; -dfa_bytes -. -extend -( -& -endianness_check -) -; -dfa_bytes -. -extend -( -& -version_check -) -; -dfa_bytes -. -extend -( -given_dfa_bytes -) -; -let -( -dfa -_ -) -= -regex_automata -: -: -dfa -: -: -dense -: -: -DFA -: -: -from_bytes -( -& -dfa_bytes -) -. -ok -( -) -? -; -let -_ -= -dfa -. -try_search_fwd -( -& -regex_automata -: -: -Input -: -: -new -( -haystack -) -) -; -Some -( -( -) -) -} diff --git a/third_party/rust/regex-automata/tests/fuzz/mod.rs b/third_party/rust/regex-automata/tests/fuzz/mod.rs deleted file mode 100644 index 262c06c1409ea..0000000000000 --- a/third_party/rust/regex-automata/tests/fuzz/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -mod -dense -; -mod -sparse -; diff --git a/third_party/rust/regex-automata/tests/fuzz/sparse.rs b/third_party/rust/regex-automata/tests/fuzz/sparse.rs deleted file mode 100644 index fe3f2ce3633f9..0000000000000 --- a/third_party/rust/regex-automata/tests/fuzz/sparse.rs +++ /dev/null @@ -1,477 +0,0 @@ -# -[ -test -] -fn -invalid_special_state -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -deserialize_sparse_crash -- -a1b839d899ced76d5d7d0f78f9edb7a421505838 -" -) -; -let -_ -= -fuzz_run -( -data -) -; -} -# -[ -test -] -fn -transition_to_invalid_but_valid_state -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -deserialize_sparse_crash -- -dbb8172d3984e7e7d03f4b5f8bb86ecd1460eff9 -" -) -; -let -_ -= -fuzz_run -( -data -) -; -} -# -[ -test -] -fn -start_state_is_not_match_state -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -deserialize_sparse_crash -- -0da59c0434eaf35e5a6b470fa9244bb79c72b000 -" -) -; -let -_ -= -fuzz_run -( -data -) -; -} -# -[ -test -] -fn -start_state_has_valid_transitions -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -deserialize_sparse_crash -- -61fd8e3003bf9d99f6c1e5a8488727eefd234b98 -" -) -; -let -_ -= -fuzz_run -( -data -) -; -} -# -[ -test -] -fn -match_state_inconsistency -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -deserialize_sparse_crash -- -c383ae07ec5e191422eadc492117439011816570 -" -) -; -let -_ -= -fuzz_run -( -data -) -; -} -# -[ -test -] -fn -invalid_accelerators -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -deserialize_sparse_crash -- -d07703ceb94b10dcd9e4acb809f2051420449e2b -" -) -; -let -_ -= -fuzz_run -( -data -) -; -} -# -[ -test -] -fn -eoi_transition_to_quit_state -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -deserialize_sparse_crash -- -18cfc246f2ddfc3dfc92b0c7893178c7cf65efa9 -" -) -; -let -_ -= -fuzz_run -( -data -) -; -} -fn -fuzz_run -( -given_data -: -& -[ -u8 -] -) -- -> -Option -< -( -) -> -{ -use -regex_automata -: -: -dfa -: -: -Automaton -; -if -given_data -. -len -( -) -< -2 -{ -return -None -; -} -let -haystack_len -= -usize -: -: -from -( -given_data -[ -0 -] -) -; -let -haystack -= -given_data -. -get -( -1 -. -. -1 -+ -haystack_len -) -? -; -let -given_dfa_bytes -= -given_data -. -get -( -1 -+ -haystack_len -. -. -) -? -; -let -label -= -" -rust -- -regex -- -automata -- -dfa -- -sparse -\ -x00 -\ -x00 -" -; -assert_eq -! -( -0 -label -. -len -( -) -% -4 -) -; -let -endianness_check -= -0xFEFFu32 -. -to_ne_bytes -( -) -. -to_vec -( -) -; -let -version_check -= -2u32 -. -to_ne_bytes -( -) -. -to_vec -( -) -; -let -mut -dfa_bytes -: -Vec -< -u8 -> -= -vec -! -[ -] -; -dfa_bytes -. -extend -( -label -. -as_bytes -( -) -) -; -dfa_bytes -. -extend -( -& -endianness_check -) -; -dfa_bytes -. -extend -( -& -version_check -) -; -dfa_bytes -. -extend -( -given_dfa_bytes -) -; -let -( -dfa -_ -) -= -regex_automata -: -: -dfa -: -: -sparse -: -: -DFA -: -: -from_bytes -( -& -dfa_bytes -) -. -ok -( -) -? -; -let -_ -= -dfa -. -try_search_fwd -( -& -regex_automata -: -: -Input -: -: -new -( -haystack -) -) -; -Some -( -( -) -) -} diff --git a/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_dense_crash-9486fb7c8a93b12c12a62166b43d31640c0208a9 b/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_dense_crash-9486fb7c8a93b12c12a62166b43d31640c0208a9 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_dense_minimized-from-9486fb7c8a93b12c12a62166b43d31640c0208a9 b/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_dense_minimized-from-9486fb7c8a93b12c12a62166b43d31640c0208a9 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-0da59c0434eaf35e5a6b470fa9244bb79c72b000 b/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-0da59c0434eaf35e5a6b470fa9244bb79c72b000 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-18cfc246f2ddfc3dfc92b0c7893178c7cf65efa9 b/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-18cfc246f2ddfc3dfc92b0c7893178c7cf65efa9 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-61fd8e3003bf9d99f6c1e5a8488727eefd234b98 b/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-61fd8e3003bf9d99f6c1e5a8488727eefd234b98 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-a1b839d899ced76d5d7d0f78f9edb7a421505838 b/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-a1b839d899ced76d5d7d0f78f9edb7a421505838 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-c383ae07ec5e191422eadc492117439011816570 b/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-c383ae07ec5e191422eadc492117439011816570 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-d07703ceb94b10dcd9e4acb809f2051420449e2b b/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-d07703ceb94b10dcd9e4acb809f2051420449e2b deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-dbb8172d3984e7e7d03f4b5f8bb86ecd1460eff9 b/third_party/rust/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-dbb8172d3984e7e7d03f4b5f8bb86ecd1460eff9 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/gen/README.md b/third_party/rust/regex-automata/tests/gen/README.md deleted file mode 100644 index 0bb3550b1df9e..0000000000000 --- a/third_party/rust/regex-automata/tests/gen/README.md +++ /dev/null @@ -1,522 +0,0 @@ -This -directory -contains -tests -for -serialized -objects -from -the -regex -- -automata -crate -. -Currently -there -are -only -two -supported -such -objects -: -dense -and -sparse -DFAs -. -The -idea -behind -these -tests -is -to -commit -some -serialized -objects -and -run -some -basic -tests -by -deserializing -them -and -running -searches -and -ensuring -they -are -correct -. -We -also -make -sure -these -are -run -under -Miri -since -deserialization -is -one -of -the -biggest -places -where -undefined -behavior -might -occur -in -this -crate -( -at -the -time -of -writing -) -. -The -main -thing -we -' -re -testing -is -that -the -* -current -* -code -can -still -deserialize -* -old -* -objects -correctly -. -Generally -speaking -compatibility -extends -to -semver -compatible -releases -of -this -crate -. -Beyond -that -no -promises -are -made -although -in -practice -callers -can -at -least -depend -on -errors -occurring -. -( -The -serialized -format -always -includes -a -version -number -and -incompatible -changes -increment -that -version -number -such -that -an -error -will -occur -if -an -unsupported -version -is -detected -. -) -To -generate -the -dense -DFAs -I -used -this -command -: -regex -- -cli -generate -serialize -dense -regex -\ -MULTI_PATTERN_V2 -\ -tests -/ -gen -/ -dense -/ -\ -- -- -rustfmt -\ -- -- -safe -\ -- -- -starts -- -for -- -each -- -pattern -\ -- -- -specialize -- -start -- -states -\ -- -- -start -- -kind -both -\ -- -- -unicode -- -word -- -boundary -\ -- -- -minimize -\ -' -\ -b -[ -a -- -zA -- -Z -] -+ -\ -b -' -\ -' -( -? -m -) -^ -\ -S -+ -' -\ -' -( -? -Rm -) -^ -\ -S -+ -' -And -to -generate -the -sparse -DFAs -I -used -this -command -which -is -the -same -as -above -but -with -s -/ -dense -/ -sparse -/ -g -. -regex -- -cli -generate -serialize -sparse -regex -\ -MULTI_PATTERN_V2 -\ -tests -/ -gen -/ -sparse -/ -\ -- -- -rustfmt -\ -- -- -safe -\ -- -- -starts -- -for -- -each -- -pattern -\ -- -- -specialize -- -start -- -states -\ -- -- -start -- -kind -both -\ -- -- -unicode -- -word -- -boundary -\ -- -- -minimize -\ -' -\ -b -[ -a -- -zA -- -Z -] -+ -\ -b -' -\ -' -( -? -m -) -^ -\ -S -+ -' -\ -' -( -? -Rm -) -^ -\ -S -+ -' -The -idea -is -to -try -to -enable -as -many -of -the -DFA -' -s -options -as -possible -in -order -to -test -that -serialization -works -for -all -of -them -. -Arguably -we -should -increase -test -coverage -here -but -this -is -a -start -. -Note -that -in -particular -this -does -not -need -to -test -that -serialization -and -deserialization -correctly -roundtrips -on -its -own -. -Indeed -the -normal -regex -test -suite -has -a -test -that -does -a -serialization -round -trip -for -every -test -supported -by -DFAs -. -So -that -has -very -good -coverage -. -What -we -' -re -interested -in -testing -here -is -our -compatibility -promise -: -do -DFAs -generated -with -an -older -revision -of -the -code -still -deserialize -correctly -? diff --git a/third_party/rust/regex-automata/tests/gen/dense/mod.rs b/third_party/rust/regex-automata/tests/gen/dense/mod.rs deleted file mode 100644 index b7ad58f5e3fed..0000000000000 --- a/third_party/rust/regex-automata/tests/gen/dense/mod.rs +++ /dev/null @@ -1,329 +0,0 @@ -use -regex_automata -: -: -{ -Input -Match -} -; -mod -multi_pattern_v2 -; -# -[ -test -] -fn -multi_pattern_v2 -( -) -{ -use -multi_pattern_v2 -: -: -MULTI_PATTERN_V2 -as -RE -; -assert_eq -! -( -Some -( -Match -: -: -must -( -0 -0 -. -. -4 -) -) -RE -. -find -( -" -abcd -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -0 -2 -. -. -6 -) -) -RE -. -find -( -" -abcd -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -1 -0 -. -. -6 -) -) -RE -. -find -( -" -abcd -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -0 -1 -. -. -5 -) -) -RE -. -find -( -" -\ -nabcd -\ -n -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -0 -1 -. -. -5 -) -) -RE -. -find -( -" -\ -nabcd -wxyz -\ -n -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -1 -1 -. -. -7 -) -) -RE -. -find -( -" -\ -n -abcd -\ -n -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -2 -0 -. -. -6 -) -) -RE -. -find -( -" -abcd -\ -r -\ -n -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -1 -2 -. -. -8 -) -) -RE -. -find -( -" -\ -r -\ -n -abcd -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -2 -2 -. -. -8 -) -) -RE -. -find -( -" -\ -r -\ -n -abcd -\ -r -\ -n -" -) -) -; -assert -! -( -RE -. -try_search -( -& -Input -: -: -new -( -b -" -\ -xFF -abcd -\ -xFF -" -) -) -. -is_err -( -) -) -; -} diff --git a/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2.rs b/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2.rs deleted file mode 100644 index 95108e83a252c..0000000000000 --- a/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2.rs +++ /dev/null @@ -1,278 +0,0 @@ -use -regex_automata -: -: -{ -dfa -: -: -{ -dense -: -: -DFA -regex -: -: -Regex -} -util -: -: -{ -lazy -: -: -Lazy -wire -: -: -AlignAs -} -} -; -pub -static -MULTI_PATTERN_V2 -: -Lazy -< -Regex -< -DFA -< -& -' -static -[ -u32 -] -> -> -> -= -Lazy -: -: -new -( -| -| -{ -let -dfafwd -= -{ -static -ALIGNED -: -& -AlignAs -< -[ -u8 -] -u32 -> -= -& -AlignAs -{ -_align -: -[ -] -# -[ -cfg -( -target_endian -= -" -big -" -) -] -bytes -: -* -include_bytes -! -( -" -multi_pattern_v2_fwd -. -bigendian -. -dfa -" -) -# -[ -cfg -( -target_endian -= -" -little -" -) -] -bytes -: -* -include_bytes -! -( -" -multi_pattern_v2_fwd -. -littleendian -. -dfa -" -) -} -; -DFA -: -: -from_bytes -( -& -ALIGNED -. -bytes -) -. -expect -( -" -serialized -forward -DFA -should -be -valid -" -) -. -0 -} -; -let -dfarev -= -{ -static -ALIGNED -: -& -AlignAs -< -[ -u8 -] -u32 -> -= -& -AlignAs -{ -_align -: -[ -] -# -[ -cfg -( -target_endian -= -" -big -" -) -] -bytes -: -* -include_bytes -! -( -" -multi_pattern_v2_rev -. -bigendian -. -dfa -" -) -# -[ -cfg -( -target_endian -= -" -little -" -) -] -bytes -: -* -include_bytes -! -( -" -multi_pattern_v2_rev -. -littleendian -. -dfa -" -) -} -; -DFA -: -: -from_bytes -( -& -ALIGNED -. -bytes -) -. -expect -( -" -serialized -reverse -DFA -should -be -valid -" -) -. -0 -} -; -Regex -: -: -builder -( -) -. -build_from_dfas -( -dfafwd -dfarev -) -} -) -; diff --git a/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2_fwd.bigendian.dfa b/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2_fwd.bigendian.dfa deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2_fwd.littleendian.dfa b/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2_fwd.littleendian.dfa deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2_rev.bigendian.dfa b/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2_rev.bigendian.dfa deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2_rev.littleendian.dfa b/third_party/rust/regex-automata/tests/gen/dense/multi_pattern_v2_rev.littleendian.dfa deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/gen/mod.rs b/third_party/rust/regex-automata/tests/gen/mod.rs deleted file mode 100644 index 262c06c1409ea..0000000000000 --- a/third_party/rust/regex-automata/tests/gen/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -mod -dense -; -mod -sparse -; diff --git a/third_party/rust/regex-automata/tests/gen/sparse/mod.rs b/third_party/rust/regex-automata/tests/gen/sparse/mod.rs deleted file mode 100644 index b7ad58f5e3fed..0000000000000 --- a/third_party/rust/regex-automata/tests/gen/sparse/mod.rs +++ /dev/null @@ -1,329 +0,0 @@ -use -regex_automata -: -: -{ -Input -Match -} -; -mod -multi_pattern_v2 -; -# -[ -test -] -fn -multi_pattern_v2 -( -) -{ -use -multi_pattern_v2 -: -: -MULTI_PATTERN_V2 -as -RE -; -assert_eq -! -( -Some -( -Match -: -: -must -( -0 -0 -. -. -4 -) -) -RE -. -find -( -" -abcd -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -0 -2 -. -. -6 -) -) -RE -. -find -( -" -abcd -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -1 -0 -. -. -6 -) -) -RE -. -find -( -" -abcd -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -0 -1 -. -. -5 -) -) -RE -. -find -( -" -\ -nabcd -\ -n -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -0 -1 -. -. -5 -) -) -RE -. -find -( -" -\ -nabcd -wxyz -\ -n -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -1 -1 -. -. -7 -) -) -RE -. -find -( -" -\ -n -abcd -\ -n -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -2 -0 -. -. -6 -) -) -RE -. -find -( -" -abcd -\ -r -\ -n -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -1 -2 -. -. -8 -) -) -RE -. -find -( -" -\ -r -\ -n -abcd -" -) -) -; -assert_eq -! -( -Some -( -Match -: -: -must -( -2 -2 -. -. -8 -) -) -RE -. -find -( -" -\ -r -\ -n -abcd -\ -r -\ -n -" -) -) -; -assert -! -( -RE -. -try_search -( -& -Input -: -: -new -( -b -" -\ -xFF -abcd -\ -xFF -" -) -) -. -is_err -( -) -) -; -} diff --git a/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2.rs b/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2.rs deleted file mode 100644 index c561f6a39488d..0000000000000 --- a/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2.rs +++ /dev/null @@ -1,256 +0,0 @@ -use -regex_automata -: -: -{ -dfa -: -: -{ -regex -: -: -Regex -sparse -: -: -DFA -} -util -: -: -lazy -: -: -Lazy -} -; -pub -static -MULTI_PATTERN_V2 -: -Lazy -< -Regex -< -DFA -< -& -' -static -[ -u8 -] -> -> -> -= -Lazy -: -: -new -( -| -| -{ -let -dfafwd -= -{ -# -[ -cfg -( -target_endian -= -" -big -" -) -] -static -BYTES -: -& -' -static -[ -u8 -] -= -include_bytes -! -( -" -multi_pattern_v2_fwd -. -bigendian -. -dfa -" -) -; -# -[ -cfg -( -target_endian -= -" -little -" -) -] -static -BYTES -: -& -' -static -[ -u8 -] -= -include_bytes -! -( -" -multi_pattern_v2_fwd -. -littleendian -. -dfa -" -) -; -DFA -: -: -from_bytes -( -BYTES -) -. -expect -( -" -serialized -forward -DFA -should -be -valid -" -) -. -0 -} -; -let -dfarev -= -{ -# -[ -cfg -( -target_endian -= -" -big -" -) -] -static -BYTES -: -& -' -static -[ -u8 -] -= -include_bytes -! -( -" -multi_pattern_v2_rev -. -bigendian -. -dfa -" -) -; -# -[ -cfg -( -target_endian -= -" -little -" -) -] -static -BYTES -: -& -' -static -[ -u8 -] -= -include_bytes -! -( -" -multi_pattern_v2_rev -. -littleendian -. -dfa -" -) -; -DFA -: -: -from_bytes -( -BYTES -) -. -expect -( -" -serialized -reverse -DFA -should -be -valid -" -) -. -0 -} -; -Regex -: -: -builder -( -) -. -build_from_dfas -( -dfafwd -dfarev -) -} -) -; diff --git a/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2_fwd.bigendian.dfa b/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2_fwd.bigendian.dfa deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2_fwd.littleendian.dfa b/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2_fwd.littleendian.dfa deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2_rev.bigendian.dfa b/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2_rev.bigendian.dfa deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2_rev.littleendian.dfa b/third_party/rust/regex-automata/tests/gen/sparse/multi_pattern_v2_rev.littleendian.dfa deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex-automata/tests/hybrid/api.rs b/third_party/rust/regex-automata/tests/hybrid/api.rs deleted file mode 100644 index 134c7eb457655..0000000000000 --- a/third_party/rust/regex-automata/tests/hybrid/api.rs +++ /dev/null @@ -1,878 +0,0 @@ -use -std -: -: -error -: -: -Error -; -use -regex_automata -: -: -{ -hybrid -: -: -dfa -: -: -{ -OverlappingState -DFA -} -nfa -: -: -thompson -HalfMatch -Input -MatchError -} -; -# -[ -test -] -# -[ -cfg -( -target_pointer_width -= -" -64 -" -) -] -# -[ -cfg -( -not -( -miri -) -) -] -fn -too_many_cache_resets_cause_quit -( -) -- -> -Result -< -( -) -Box -< -dyn -Error -> -> -{ -let -pattern -= -r -" -[ -a -] -{ -99 -} -" -; -let -dfa -= -DFA -: -: -builder -( -) -. -configure -( -DFA -: -: -config -( -) -. -skip_cache_capacity_check -( -true -) -. -cache_capacity -( -0 -) -. -minimum_cache_clear_count -( -Some -( -0 -) -) -) -. -thompson -( -thompson -: -: -NFA -: -: -config -( -) -) -. -build -( -pattern -) -? -; -let -mut -cache -= -dfa -. -create_cache -( -) -; -let -haystack -= -" -a -" -. -repeat -( -101 -) -. -into_bytes -( -) -; -let -err -= -MatchError -: -: -gave_up -( -25 -) -; -assert_eq -! -( -Err -( -err -. -clone -( -) -) -dfa -. -try_search_fwd -( -& -mut -cache -& -Input -: -: -new -( -& -haystack -) -) -) -; -assert_eq -! -( -Err -( -err -. -clone -( -) -) -dfa -. -try_search_overlapping_fwd -( -& -mut -cache -& -Input -: -: -new -( -& -haystack -) -& -mut -OverlappingState -: -: -start -( -) -) -) -; -let -haystack -= -" -" -. -repeat -( -101 -) -. -into_bytes -( -) -; -let -err -= -MatchError -: -: -gave_up -( -2 -) -; -assert_eq -! -( -Err -( -err -) -dfa -. -try_search_fwd -( -& -mut -cache -& -Input -: -: -new -( -& -haystack -) -) -) -; -cache -. -reset -( -& -dfa -) -; -let -err -= -MatchError -: -: -gave_up -( -27 -) -; -assert_eq -! -( -Err -( -err -) -dfa -. -try_search_fwd -( -& -mut -cache -& -Input -: -: -new -( -& -haystack -) -) -) -; -let -haystack -= -" -a -" -. -repeat -( -101 -) -. -into_bytes -( -) -; -let -err -= -MatchError -: -: -gave_up -( -13 -) -; -assert_eq -! -( -Err -( -err -) -dfa -. -try_search_fwd -( -& -mut -cache -& -Input -: -: -new -( -& -haystack -) -) -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -quit_fwd -( -) -- -> -Result -< -( -) -Box -< -dyn -Error -> -> -{ -let -dfa -= -DFA -: -: -builder -( -) -. -configure -( -DFA -: -: -config -( -) -. -quit -( -b -' -x -' -true -) -) -. -build -( -" -[ -[ -: -word -: -] -] -+ -" -) -? -; -let -mut -cache -= -dfa -. -create_cache -( -) -; -assert_eq -! -( -dfa -. -try_search_fwd -( -& -mut -cache -& -Input -: -: -new -( -" -abcxyz -" -) -) -Err -( -MatchError -: -: -quit -( -b -' -x -' -3 -) -) -) -; -assert_eq -! -( -dfa -. -try_search_overlapping_fwd -( -& -mut -cache -& -Input -: -: -new -( -b -" -abcxyz -" -) -& -mut -OverlappingState -: -: -start -( -) -) -Err -( -MatchError -: -: -quit -( -b -' -x -' -3 -) -) -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -quit_rev -( -) -- -> -Result -< -( -) -Box -< -dyn -Error -> -> -{ -let -dfa -= -DFA -: -: -builder -( -) -. -configure -( -DFA -: -: -config -( -) -. -quit -( -b -' -x -' -true -) -) -. -thompson -( -thompson -: -: -Config -: -: -new -( -) -. -reverse -( -true -) -) -. -build -( -" -^ -[ -[ -: -word -: -] -] -+ -" -) -? -; -let -mut -cache -= -dfa -. -create_cache -( -) -; -assert_eq -! -( -dfa -. -try_search_rev -( -& -mut -cache -& -Input -: -: -new -( -" -abcxyz -" -) -) -Err -( -MatchError -: -: -quit -( -b -' -x -' -3 -) -) -) -; -Ok -( -( -) -) -} -# -[ -test -] -# -[ -should_panic -] -fn -quit_panics -( -) -{ -DFA -: -: -config -( -) -. -unicode_word_boundary -( -true -) -. -quit -( -b -' -\ -xFF -' -false -) -; -} -# -[ -test -] -fn -unicode_word_implicitly_works -( -) -- -> -Result -< -( -) -Box -< -dyn -Error -> -> -{ -let -mut -config -= -DFA -: -: -config -( -) -; -for -b -in -0x80 -. -. -= -0xFF -{ -config -= -config -. -quit -( -b -true -) -; -} -let -dfa -= -DFA -: -: -builder -( -) -. -configure -( -config -) -. -build -( -r -" -\ -b -" -) -? -; -let -mut -cache -= -dfa -. -create_cache -( -) -; -let -expected -= -HalfMatch -: -: -must -( -0 -1 -) -; -assert_eq -! -( -Ok -( -Some -( -expected -) -) -dfa -. -try_search_fwd -( -& -mut -cache -& -Input -: -: -new -( -" -a -" -) -) -) -; -Ok -( -( -) -) -} diff --git a/third_party/rust/regex-automata/tests/hybrid/mod.rs b/third_party/rust/regex-automata/tests/hybrid/mod.rs deleted file mode 100644 index 7af58e2ac3c94..0000000000000 --- a/third_party/rust/regex-automata/tests/hybrid/mod.rs +++ /dev/null @@ -1,16 +0,0 @@ -mod -api -; -# -[ -cfg -( -not -( -miri -) -) -] -mod -suite -; diff --git a/third_party/rust/regex-automata/tests/hybrid/suite.rs b/third_party/rust/regex-automata/tests/hybrid/suite.rs deleted file mode 100644 index 81c7a3a8cb8db..0000000000000 --- a/third_party/rust/regex-automata/tests/hybrid/suite.rs +++ /dev/null @@ -1,2076 +0,0 @@ -use -{ -anyhow -: -: -Result -regex_automata -: -: -{ -hybrid -: -: -{ -dfa -: -: -{ -OverlappingState -DFA -} -regex -: -: -{ -self -Regex -} -} -nfa -: -: -thompson -util -: -: -{ -prefilter -: -: -Prefilter -syntax -} -Anchored -Input -PatternSet -} -regex_test -: -: -{ -CompiledRegex -Match -RegexTest -SearchKind -Span -TestResult -TestRunner -} -} -; -use -crate -: -: -{ -create_input -suite -untestify_kind -} -; -const -EXPANSIONS -: -& -[ -& -str -] -= -& -[ -" -is_match -" -" -find -" -" -which -" -] -; -# -[ -test -] -fn -default -( -) -- -> -Result -< -( -) -> -{ -let -builder -= -Regex -: -: -builder -( -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -/ -regression -- -many -- -repeat -- -no -- -stack -- -overflow -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -prefilter -( -) -- -> -Result -< -( -) -> -{ -let -my_compiler -= -| -test -: -& -RegexTest -regexes -: -& -[ -String -] -| -{ -let -mut -hirs -= -vec -! -[ -] -; -for -pattern -in -regexes -. -iter -( -) -{ -hirs -. -push -( -syntax -: -: -parse_with -( -pattern -& -config_syntax -( -test -) -) -? -) -; -} -let -kind -= -match -untestify_kind -( -test -. -match_kind -( -) -) -{ -None -= -> -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -Some -( -kind -) -= -> -kind -} -; -let -pre -= -Prefilter -: -: -from_hirs_prefix -( -kind -& -hirs -) -; -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dfa -( -DFA -: -: -config -( -) -. -prefilter -( -pre -) -) -; -compiler -( -builder -) -( -test -regexes -) -} -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -/ -regression -- -many -- -repeat -- -no -- -stack -- -overflow -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -my_compiler -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -nfa_shrink -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -thompson -( -thompson -: -: -Config -: -: -new -( -) -. -shrink -( -true -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -starts_for_each_pattern -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dfa -( -DFA -: -: -config -( -) -. -starts_for_each_pattern -( -true -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -/ -regression -- -many -- -repeat -- -no -- -stack -- -overflow -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -specialize_start_states -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dfa -( -DFA -: -: -config -( -) -. -specialize_start_states -( -true -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -/ -regression -- -many -- -repeat -- -no -- -stack -- -overflow -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -no_byte_classes -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dfa -( -DFA -: -: -config -( -) -. -byte_classes -( -false -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -/ -regression -- -many -- -repeat -- -no -- -stack -- -overflow -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -no_cache_clearing -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dfa -( -DFA -: -: -config -( -) -. -minimum_cache_clear_count -( -Some -( -0 -) -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -blacklist -( -" -expensive -/ -regression -- -many -- -repeat -- -no -- -stack -- -overflow -" -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -min_cache_capacity -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -dfa -( -DFA -: -: -config -( -) -. -cache_capacity -( -0 -) -. -skip_cache_capacity_check -( -true -) -) -; -TestRunner -: -: -new -( -) -? -. -expand -( -EXPANSIONS -| -t -| -t -. -compiles -( -) -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -compiler -( -mut -builder -: -regex -: -: -Builder -) -- -> -impl -FnMut -( -& -RegexTest -& -[ -String -] -) -- -> -Result -< -CompiledRegex -> -{ -move -| -test -regexes -| -{ -let -mut -hirs -= -vec -! -[ -] -; -for -pattern -in -regexes -. -iter -( -) -{ -hirs -. -push -( -syntax -: -: -parse_with -( -pattern -& -config_syntax -( -test -) -) -? -) -; -} -if -! -test -. -haystack -( -) -. -is_ascii -( -) -{ -for -hir -in -hirs -. -iter -( -) -{ -if -hir -. -properties -( -) -. -look_set -( -) -. -contains_word_unicode -( -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -} -} -if -! -configure_regex_builder -( -test -& -mut -builder -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -let -re -= -builder -. -build_many -( -& -regexes -) -? -; -let -mut -cache -= -re -. -create_cache -( -) -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -& -mut -cache -test -) -} -) -) -} -} -fn -run_test -( -re -: -& -Regex -cache -: -& -mut -regex -: -: -Cache -test -: -& -RegexTest -) -- -> -TestResult -{ -let -input -= -create_input -( -test -) -; -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -{ -TestResult -: -: -matched -( -re -. -is_match -( -cache -input -. -earliest -( -true -) -) -) -} -" -find -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -| -SearchKind -: -: -Leftmost -= -> -{ -let -input -= -input -. -earliest -( -test -. -search_kind -( -) -= -= -SearchKind -: -: -Earliest -) -; -TestResult -: -: -matches -( -re -. -find_iter -( -cache -input -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -m -| -Match -{ -id -: -m -. -pattern -( -) -. -as_usize -( -) -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -) -} -SearchKind -: -: -Overlapping -= -> -{ -try_search_overlapping -( -re -cache -& -input -) -. -unwrap -( -) -} -} -" -which -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -| -SearchKind -: -: -Leftmost -= -> -{ -TestResult -: -: -skip -( -) -} -SearchKind -: -: -Overlapping -= -> -{ -let -dfa -= -re -. -forward -( -) -; -let -cache -= -cache -. -as_parts_mut -( -) -. -0 -; -let -mut -patset -= -PatternSet -: -: -new -( -dfa -. -pattern_len -( -) -) -; -dfa -. -try_which_overlapping_matches -( -cache -& -input -& -mut -patset -) -. -unwrap -( -) -; -TestResult -: -: -which -( -patset -. -iter -( -) -. -map -( -| -p -| -p -. -as_usize -( -) -) -) -} -} -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -configure_regex_builder -( -test -: -& -RegexTest -builder -: -& -mut -regex -: -: -Builder -) -- -> -bool -{ -let -match_kind -= -match -untestify_kind -( -test -. -match_kind -( -) -) -{ -None -= -> -return -false -Some -( -k -) -= -> -k -} -; -let -mut -dfa_config -= -DFA -: -: -config -( -) -. -match_kind -( -match_kind -) -. -unicode_word_boundary -( -true -) -; -if -test -. -search_kind -( -) -= -= -SearchKind -: -: -Overlapping -{ -dfa_config -= -dfa_config -. -starts_for_each_pattern -( -true -) -; -} -builder -. -syntax -( -config_syntax -( -test -) -) -. -thompson -( -config_thompson -( -test -) -) -. -dfa -( -dfa_config -) -; -true -} -fn -config_thompson -( -test -: -& -RegexTest -) -- -> -thompson -: -: -Config -{ -let -mut -lookm -= -regex_automata -: -: -util -: -: -look -: -: -LookMatcher -: -: -new -( -) -; -lookm -. -set_line_terminator -( -test -. -line_terminator -( -) -) -; -thompson -: -: -Config -: -: -new -( -) -. -utf8 -( -test -. -utf8 -( -) -) -. -look_matcher -( -lookm -) -} -fn -config_syntax -( -test -: -& -RegexTest -) -- -> -syntax -: -: -Config -{ -syntax -: -: -Config -: -: -new -( -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -utf8 -( -test -. -utf8 -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -} -fn -try_search_overlapping -( -re -: -& -Regex -cache -: -& -mut -regex -: -: -Cache -input -: -& -Input -< -' -_ -> -) -- -> -Result -< -TestResult -> -{ -let -mut -matches -= -vec -! -[ -] -; -let -mut -fwd_state -= -OverlappingState -: -: -start -( -) -; -let -( -fwd_dfa -rev_dfa -) -= -( -re -. -forward -( -) -re -. -reverse -( -) -) -; -let -( -fwd_cache -rev_cache -) -= -cache -. -as_parts_mut -( -) -; -while -let -Some -( -end -) -= -{ -fwd_dfa -. -try_search_overlapping_fwd -( -fwd_cache -input -& -mut -fwd_state -) -? -; -fwd_state -. -get_match -( -) -} -{ -let -revsearch -= -input -. -clone -( -) -. -range -( -input -. -start -( -) -. -. -end -. -offset -( -) -) -. -anchored -( -Anchored -: -: -Pattern -( -end -. -pattern -( -) -) -) -. -earliest -( -false -) -; -let -mut -rev_state -= -OverlappingState -: -: -start -( -) -; -while -let -Some -( -start -) -= -{ -rev_dfa -. -try_search_overlapping_rev -( -rev_cache -& -revsearch -& -mut -rev_state -) -? -; -rev_state -. -get_match -( -) -} -{ -let -span -= -Span -{ -start -: -start -. -offset -( -) -end -: -end -. -offset -( -) -} -; -let -mat -= -Match -{ -id -: -end -. -pattern -( -) -. -as_usize -( -) -span -} -; -matches -. -push -( -mat -) -; -} -} -Ok -( -TestResult -: -: -matches -( -matches -) -) -} diff --git a/third_party/rust/regex-automata/tests/lib.rs b/third_party/rust/regex-automata/tests/lib.rs deleted file mode 100644 index 5d2b2c77f262b..0000000000000 --- a/third_party/rust/regex-automata/tests/lib.rs +++ /dev/null @@ -1,778 +0,0 @@ -# -! -[ -cfg_attr -( -not -( -all -( -feature -= -" -std -" -feature -= -" -nfa -" -feature -= -" -dfa -" -feature -= -" -hybrid -" -feature -= -" -perf -- -literal -- -substring -" -feature -= -" -perf -- -literal -- -multisubstring -" -) -) -allow -( -dead_code -unused_imports -unused_variables -) -) -] -# -! -[ -cfg_attr -( -miri -allow -( -dead_code -unused_imports -unused_variables -) -) -] -# -[ -cfg -( -any -( -feature -= -" -dfa -- -search -" -feature -= -" -dfa -- -onepass -" -) -) -] -mod -dfa -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -mod -fuzz -; -# -[ -cfg -( -feature -= -" -dfa -- -search -" -) -] -mod -gen -; -# -[ -cfg -( -feature -= -" -hybrid -" -) -] -mod -hybrid -; -# -[ -cfg -( -feature -= -" -meta -" -) -] -mod -meta -; -# -[ -cfg -( -any -( -feature -= -" -nfa -- -backtrack -" -feature -= -" -nfa -- -pikevm -" -) -) -] -mod -nfa -; -fn -suite -( -) -- -> -anyhow -: -: -Result -< -regex_test -: -: -RegexTests -> -{ -let -_ -= -env_logger -: -: -try_init -( -) -; -let -mut -tests -= -regex_test -: -: -RegexTests -: -: -new -( -) -; -macro_rules -! -load -{ -( -name -: -expr -) -= -> -{ -{ -const -DATA -: -& -[ -u8 -] -= -include_bytes -! -( -concat -! -( -" -. -. -/ -. -. -/ -testdata -/ -" -name -" -. -toml -" -) -) -; -tests -. -load_slice -( -name -DATA -) -? -; -} -} -; -} -load -! -( -" -anchored -" -) -; -load -! -( -" -bytes -" -) -; -load -! -( -" -crazy -" -) -; -load -! -( -" -crlf -" -) -; -load -! -( -" -earliest -" -) -; -load -! -( -" -empty -" -) -; -load -! -( -" -expensive -" -) -; -load -! -( -" -flags -" -) -; -load -! -( -" -iter -" -) -; -load -! -( -" -leftmost -- -all -" -) -; -load -! -( -" -line -- -terminator -" -) -; -load -! -( -" -misc -" -) -; -load -! -( -" -multiline -" -) -; -load -! -( -" -no -- -unicode -" -) -; -load -! -( -" -overlapping -" -) -; -load -! -( -" -regression -" -) -; -load -! -( -" -set -" -) -; -load -! -( -" -substring -" -) -; -load -! -( -" -unicode -" -) -; -load -! -( -" -utf8 -" -) -; -load -! -( -" -word -- -boundary -" -) -; -load -! -( -" -fowler -/ -basic -" -) -; -load -! -( -" -fowler -/ -nullsubexpr -" -) -; -load -! -( -" -fowler -/ -repetition -" -) -; -Ok -( -tests -) -} -fn -create_input -< -' -h -> -( -test -: -& -' -h -regex_test -: -: -RegexTest -) -- -> -regex_automata -: -: -Input -< -' -h -> -{ -use -regex_automata -: -: -Anchored -; -let -bounds -= -test -. -bounds -( -) -; -let -anchored -= -if -test -. -anchored -( -) -{ -Anchored -: -: -Yes -} -else -{ -Anchored -: -: -No -} -; -regex_automata -: -: -Input -: -: -new -( -test -. -haystack -( -) -) -. -range -( -bounds -. -start -. -. -bounds -. -end -) -. -anchored -( -anchored -) -} -fn -testify_captures -( -caps -: -& -regex_automata -: -: -util -: -: -captures -: -: -Captures -) -- -> -regex_test -: -: -Captures -{ -assert -! -( -caps -. -is_match -( -) -" -expected -captures -to -represent -a -match -" -) -; -let -spans -= -caps -. -iter -( -) -. -map -( -| -group -| -{ -group -. -map -( -| -m -| -regex_test -: -: -Span -{ -start -: -m -. -start -end -: -m -. -end -} -) -} -) -; -regex_test -: -: -Captures -: -: -new -( -caps -. -pattern -( -) -. -unwrap -( -) -. -as_usize -( -) -spans -) -. -unwrap -( -) -} -fn -untestify_kind -( -kind -: -regex_test -: -: -MatchKind -) -- -> -Option -< -regex_automata -: -: -MatchKind -> -{ -match -kind -{ -regex_test -: -: -MatchKind -: -: -All -= -> -Some -( -regex_automata -: -: -MatchKind -: -: -All -) -regex_test -: -: -MatchKind -: -: -LeftmostFirst -= -> -{ -Some -( -regex_automata -: -: -MatchKind -: -: -LeftmostFirst -) -} -regex_test -: -: -MatchKind -: -: -LeftmostLongest -= -> -None -} -} diff --git a/third_party/rust/regex-automata/tests/meta/mod.rs b/third_party/rust/regex-automata/tests/meta/mod.rs deleted file mode 100644 index f9d643965033c..0000000000000 --- a/third_party/rust/regex-automata/tests/meta/mod.rs +++ /dev/null @@ -1,13 +0,0 @@ -# -[ -cfg -( -not -( -miri -) -) -] -mod -suite -; diff --git a/third_party/rust/regex-automata/tests/meta/suite.rs b/third_party/rust/regex-automata/tests/meta/suite.rs deleted file mode 100644 index 8d7a2c77b32b2..0000000000000 --- a/third_party/rust/regex-automata/tests/meta/suite.rs +++ /dev/null @@ -1,1369 +0,0 @@ -use -{ -anyhow -: -: -Result -regex_automata -: -: -{ -meta -: -: -{ -self -Regex -} -util -: -: -syntax -MatchKind -PatternSet -} -regex_test -: -: -{ -CompiledRegex -Match -RegexTest -SearchKind -Span -TestResult -TestRunner -} -} -; -use -crate -: -: -{ -create_input -suite -testify_captures -} -; -const -BLACKLIST -: -& -[ -& -str -] -= -& -[ -" -earliest -/ -" -] -; -# -[ -test -] -fn -default -( -) -- -> -Result -< -( -) -> -{ -let -builder -= -Regex -: -: -builder -( -) -; -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -. -blacklist_iter -( -BLACKLIST -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -no_dfa -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -configure -( -Regex -: -: -config -( -) -. -dfa -( -false -) -) -; -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -. -blacklist_iter -( -BLACKLIST -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -no_dfa_hybrid -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -configure -( -Regex -: -: -config -( -) -. -dfa -( -false -) -. -hybrid -( -false -) -) -; -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -. -blacklist_iter -( -BLACKLIST -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -no_dfa_hybrid_onepass -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -configure -( -Regex -: -: -config -( -) -. -dfa -( -false -) -. -hybrid -( -false -) -. -onepass -( -false -) -) -; -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -. -blacklist_iter -( -BLACKLIST -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -no_dfa_hybrid_onepass_backtrack -( -) -- -> -Result -< -( -) -> -{ -let -mut -builder -= -Regex -: -: -builder -( -) -; -builder -. -configure -( -Regex -: -: -config -( -) -. -dfa -( -false -) -. -hybrid -( -false -) -. -onepass -( -false -) -. -backtrack -( -false -) -) -; -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -. -blacklist_iter -( -BLACKLIST -) -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -compiler -( -mut -builder -: -meta -: -: -Builder -) -- -> -impl -FnMut -( -& -RegexTest -& -[ -String -] -) -- -> -Result -< -CompiledRegex -> -{ -move -| -test -regexes -| -{ -if -! -configure_meta_builder -( -test -& -mut -builder -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -let -re -= -builder -. -build_many -( -& -regexes -) -? -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -test -) -} -) -) -} -} -fn -run_test -( -re -: -& -Regex -test -: -& -RegexTest -) -- -> -TestResult -{ -let -input -= -create_input -( -test -) -; -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -TestResult -: -: -matched -( -re -. -is_match -( -input -) -) -" -find -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -= -> -TestResult -: -: -matches -( -re -. -find_iter -( -input -. -earliest -( -true -) -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -m -| -Match -{ -id -: -m -. -pattern -( -) -. -as_usize -( -) -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -) -SearchKind -: -: -Leftmost -= -> -TestResult -: -: -matches -( -re -. -find_iter -( -input -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -m -| -Match -{ -id -: -m -. -pattern -( -) -. -as_usize -( -) -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -) -SearchKind -: -: -Overlapping -= -> -{ -let -mut -patset -= -PatternSet -: -: -new -( -re -. -pattern_len -( -) -) -; -re -. -which_overlapping_matches -( -& -input -& -mut -patset -) -; -TestResult -: -: -which -( -patset -. -iter -( -) -. -map -( -| -p -| -p -. -as_usize -( -) -) -) -} -} -" -captures -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -= -> -{ -let -it -= -re -. -captures_iter -( -input -. -earliest -( -true -) -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -caps -| -testify_captures -( -& -caps -) -) -; -TestResult -: -: -captures -( -it -) -} -SearchKind -: -: -Leftmost -= -> -{ -let -it -= -re -. -captures_iter -( -input -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -caps -| -testify_captures -( -& -caps -) -) -; -TestResult -: -: -captures -( -it -) -} -SearchKind -: -: -Overlapping -= -> -{ -TestResult -: -: -skip -( -) -} -} -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -configure_meta_builder -( -test -: -& -RegexTest -builder -: -& -mut -meta -: -: -Builder -) -- -> -bool -{ -let -match_kind -= -match -test -. -match_kind -( -) -{ -regex_test -: -: -MatchKind -: -: -All -= -> -MatchKind -: -: -All -regex_test -: -: -MatchKind -: -: -LeftmostFirst -= -> -MatchKind -: -: -LeftmostFirst -regex_test -: -: -MatchKind -: -: -LeftmostLongest -= -> -return -false -} -; -let -meta_config -= -Regex -: -: -config -( -) -. -match_kind -( -match_kind -) -. -utf8_empty -( -test -. -utf8 -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -; -builder -. -configure -( -meta_config -) -. -syntax -( -config_syntax -( -test -) -) -; -true -} -fn -config_syntax -( -test -: -& -RegexTest -) -- -> -syntax -: -: -Config -{ -syntax -: -: -Config -: -: -new -( -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -utf8 -( -test -. -utf8 -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -} diff --git a/third_party/rust/regex-automata/tests/nfa/mod.rs b/third_party/rust/regex-automata/tests/nfa/mod.rs deleted file mode 100644 index c22923ea28a72..0000000000000 --- a/third_party/rust/regex-automata/tests/nfa/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -mod -thompson -; diff --git a/third_party/rust/regex-automata/tests/nfa/thompson/backtrack/mod.rs b/third_party/rust/regex-automata/tests/nfa/thompson/backtrack/mod.rs deleted file mode 100644 index f9d643965033c..0000000000000 --- a/third_party/rust/regex-automata/tests/nfa/thompson/backtrack/mod.rs +++ /dev/null @@ -1,13 +0,0 @@ -# -[ -cfg -( -not -( -miri -) -) -] -mod -suite -; diff --git a/third_party/rust/regex-automata/tests/nfa/thompson/backtrack/suite.rs b/third_party/rust/regex-automata/tests/nfa/thompson/backtrack/suite.rs deleted file mode 100644 index e24da283fb9e9..0000000000000 --- a/third_party/rust/regex-automata/tests/nfa/thompson/backtrack/suite.rs +++ /dev/null @@ -1,1333 +0,0 @@ -use -{ -anyhow -: -: -Result -regex_automata -: -: -{ -nfa -: -: -thompson -: -: -{ -self -backtrack -: -: -{ -self -BoundedBacktracker -} -NFA -} -util -: -: -{ -prefilter -: -: -Prefilter -syntax -} -Input -} -regex_test -: -: -{ -CompiledRegex -Match -MatchKind -RegexTest -SearchKind -Span -TestResult -TestRunner -} -} -; -use -crate -: -: -{ -create_input -suite -testify_captures -} -; -# -[ -test -] -fn -default -( -) -- -> -Result -< -( -) -> -{ -let -builder -= -BoundedBacktracker -: -: -builder -( -) -; -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -; -runner -. -blacklist -( -" -expensive -/ -backtrack -- -blow -- -visited -- -capacity -" -) -; -runner -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -prefilter -( -) -- -> -Result -< -( -) -> -{ -let -my_compiler -= -| -test -: -& -RegexTest -regexes -: -& -[ -String -] -| -{ -let -mut -hirs -= -vec -! -[ -] -; -for -pattern -in -regexes -. -iter -( -) -{ -hirs -. -push -( -syntax -: -: -parse_with -( -pattern -& -config_syntax -( -test -) -) -? -) -; -} -let -pre -= -Prefilter -: -: -from_hirs_prefix -( -regex_automata -: -: -MatchKind -: -: -LeftmostFirst -& -hirs -) -; -let -mut -builder -= -BoundedBacktracker -: -: -builder -( -) -; -builder -. -configure -( -BoundedBacktracker -: -: -config -( -) -. -prefilter -( -pre -) -) -; -compiler -( -builder -) -( -test -regexes -) -} -; -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -; -runner -. -blacklist -( -" -expensive -/ -backtrack -- -blow -- -visited -- -capacity -" -) -; -runner -. -test_iter -( -suite -( -) -? -. -iter -( -) -my_compiler -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -min_visited_capacity -( -) -- -> -Result -< -( -) -> -{ -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -; -runner -. -test_iter -( -suite -( -) -? -. -iter -( -) -move -| -test -regexes -| -{ -let -nfa -= -NFA -: -: -compiler -( -) -. -configure -( -config_thompson -( -test -) -) -. -syntax -( -config_syntax -( -test -) -) -. -build_many -( -& -regexes -) -? -; -let -mut -builder -= -BoundedBacktracker -: -: -builder -( -) -; -if -! -configure_backtrack_builder -( -test -& -mut -builder -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -builder -. -configure -( -BoundedBacktracker -: -: -config -( -) -. -visited_capacity -( -backtrack -: -: -min_visited_capacity -( -& -nfa -& -Input -: -: -new -( -test -. -haystack -( -) -) -) -) -) -; -let -re -= -builder -. -build_from_nfa -( -nfa -) -? -; -let -mut -cache -= -re -. -create_cache -( -) -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -& -mut -cache -test -) -} -) -) -} -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -compiler -( -mut -builder -: -backtrack -: -: -Builder -) -- -> -impl -FnMut -( -& -RegexTest -& -[ -String -] -) -- -> -Result -< -CompiledRegex -> -{ -move -| -test -regexes -| -{ -if -! -configure_backtrack_builder -( -test -& -mut -builder -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -let -re -= -builder -. -build_many -( -& -regexes -) -? -; -let -mut -cache -= -re -. -create_cache -( -) -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -& -mut -cache -test -) -} -) -) -} -} -fn -run_test -( -re -: -& -BoundedBacktracker -cache -: -& -mut -backtrack -: -: -Cache -test -: -& -RegexTest -) -- -> -TestResult -{ -let -input -= -create_input -( -test -) -; -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -| -SearchKind -: -: -Overlapping -= -> -{ -TestResult -: -: -skip -( -) -} -SearchKind -: -: -Leftmost -= -> -{ -let -input -= -input -. -earliest -( -true -) -; -TestResult -: -: -matched -( -re -. -try_is_match -( -cache -input -) -. -unwrap -( -) -) -} -} -" -find -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -| -SearchKind -: -: -Overlapping -= -> -{ -TestResult -: -: -skip -( -) -} -SearchKind -: -: -Leftmost -= -> -TestResult -: -: -matches -( -re -. -try_find_iter -( -cache -input -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -result -| -result -. -unwrap -( -) -) -. -map -( -| -m -| -Match -{ -id -: -m -. -pattern -( -) -. -as_usize -( -) -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -) -} -" -captures -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -| -SearchKind -: -: -Overlapping -= -> -{ -TestResult -: -: -skip -( -) -} -SearchKind -: -: -Leftmost -= -> -TestResult -: -: -captures -( -re -. -try_captures_iter -( -cache -input -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -result -| -result -. -unwrap -( -) -) -. -map -( -| -caps -| -testify_captures -( -& -caps -) -) -) -} -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -configure_backtrack_builder -( -test -: -& -RegexTest -builder -: -& -mut -backtrack -: -: -Builder -) -- -> -bool -{ -match -( -test -. -search_kind -( -) -test -. -match_kind -( -) -) -{ -( -SearchKind -: -: -Leftmost -MatchKind -: -: -LeftmostFirst -) -= -> -{ -} -( -SearchKind -: -: -Overlapping -_ -) -= -> -return -false -( -SearchKind -: -: -Earliest -_ -) -= -> -return -false -( -_ -MatchKind -: -: -All -) -= -> -return -false -( -_ -MatchKind -: -: -LeftmostLongest -) -= -> -return -false -} -; -let -backtrack_config -= -BoundedBacktracker -: -: -config -( -) -; -builder -. -configure -( -backtrack_config -) -. -syntax -( -config_syntax -( -test -) -) -. -thompson -( -config_thompson -( -test -) -) -; -true -} -fn -config_thompson -( -test -: -& -RegexTest -) -- -> -thompson -: -: -Config -{ -let -mut -lookm -= -regex_automata -: -: -util -: -: -look -: -: -LookMatcher -: -: -new -( -) -; -lookm -. -set_line_terminator -( -test -. -line_terminator -( -) -) -; -thompson -: -: -Config -: -: -new -( -) -. -utf8 -( -test -. -utf8 -( -) -) -. -look_matcher -( -lookm -) -} -fn -config_syntax -( -test -: -& -RegexTest -) -- -> -syntax -: -: -Config -{ -syntax -: -: -Config -: -: -new -( -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -utf8 -( -test -. -utf8 -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -} diff --git a/third_party/rust/regex-automata/tests/nfa/thompson/mod.rs b/third_party/rust/regex-automata/tests/nfa/thompson/mod.rs deleted file mode 100644 index 70202b08442cf..0000000000000 --- a/third_party/rust/regex-automata/tests/nfa/thompson/mod.rs +++ /dev/null @@ -1,32 +0,0 @@ -# -[ -cfg -( -feature -= -" -nfa -- -backtrack -" -) -] -mod -backtrack -; -# -[ -cfg -( -feature -= -" -nfa -- -pikevm -" -) -] -mod -pikevm -; diff --git a/third_party/rust/regex-automata/tests/nfa/thompson/pikevm/mod.rs b/third_party/rust/regex-automata/tests/nfa/thompson/pikevm/mod.rs deleted file mode 100644 index f9d643965033c..0000000000000 --- a/third_party/rust/regex-automata/tests/nfa/thompson/pikevm/mod.rs +++ /dev/null @@ -1,13 +0,0 @@ -# -[ -cfg -( -not -( -miri -) -) -] -mod -suite -; diff --git a/third_party/rust/regex-automata/tests/nfa/thompson/pikevm/suite.rs b/third_party/rust/regex-automata/tests/nfa/thompson/pikevm/suite.rs deleted file mode 100644 index 66ea93d5d3587..0000000000000 --- a/third_party/rust/regex-automata/tests/nfa/thompson/pikevm/suite.rs +++ /dev/null @@ -1,1184 +0,0 @@ -use -{ -anyhow -: -: -Result -regex_automata -: -: -{ -nfa -: -: -thompson -: -: -{ -self -pikevm -: -: -{ -self -PikeVM -} -} -util -: -: -{ -prefilter -: -: -Prefilter -syntax -} -PatternSet -} -regex_test -: -: -{ -CompiledRegex -Match -RegexTest -SearchKind -Span -TestResult -TestRunner -} -} -; -use -crate -: -: -{ -create_input -suite -testify_captures -untestify_kind -} -; -# -[ -test -] -fn -default -( -) -- -> -Result -< -( -) -> -{ -let -builder -= -PikeVM -: -: -builder -( -) -; -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -; -runner -. -test_iter -( -suite -( -) -? -. -iter -( -) -compiler -( -builder -) -) -. -assert -( -) -; -Ok -( -( -) -) -} -# -[ -test -] -fn -prefilter -( -) -- -> -Result -< -( -) -> -{ -let -my_compiler -= -| -test -: -& -RegexTest -regexes -: -& -[ -String -] -| -{ -let -mut -hirs -= -vec -! -[ -] -; -for -pattern -in -regexes -. -iter -( -) -{ -hirs -. -push -( -syntax -: -: -parse_with -( -pattern -& -config_syntax -( -test -) -) -? -) -; -} -let -kind -= -match -untestify_kind -( -test -. -match_kind -( -) -) -{ -None -= -> -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -Some -( -kind -) -= -> -kind -} -; -let -pre -= -Prefilter -: -: -from_hirs_prefix -( -kind -& -hirs -) -; -let -mut -builder -= -PikeVM -: -: -builder -( -) -; -builder -. -configure -( -PikeVM -: -: -config -( -) -. -prefilter -( -pre -) -) -; -compiler -( -builder -) -( -test -regexes -) -} -; -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -; -runner -. -test_iter -( -suite -( -) -? -. -iter -( -) -my_compiler -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -compiler -( -mut -builder -: -pikevm -: -: -Builder -) -- -> -impl -FnMut -( -& -RegexTest -& -[ -String -] -) -- -> -Result -< -CompiledRegex -> -{ -move -| -test -regexes -| -{ -if -! -configure_pikevm_builder -( -test -& -mut -builder -) -{ -return -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -} -let -re -= -builder -. -build_many -( -& -regexes -) -? -; -let -mut -cache -= -re -. -create_cache -( -) -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -- -> -TestResult -{ -run_test -( -& -re -& -mut -cache -test -) -} -) -) -} -} -fn -run_test -( -re -: -& -PikeVM -cache -: -& -mut -pikevm -: -: -Cache -test -: -& -RegexTest -) -- -> -TestResult -{ -let -input -= -create_input -( -test -) -; -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -TestResult -: -: -matched -( -re -. -is_match -( -cache -input -) -) -" -find -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -= -> -{ -let -it -= -re -. -find_iter -( -cache -input -. -earliest -( -true -) -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -m -| -Match -{ -id -: -m -. -pattern -( -) -. -as_usize -( -) -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -; -TestResult -: -: -matches -( -it -) -} -SearchKind -: -: -Leftmost -= -> -{ -let -it -= -re -. -find_iter -( -cache -input -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -m -| -Match -{ -id -: -m -. -pattern -( -) -. -as_usize -( -) -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -; -TestResult -: -: -matches -( -it -) -} -SearchKind -: -: -Overlapping -= -> -{ -let -mut -patset -= -PatternSet -: -: -new -( -re -. -get_nfa -( -) -. -pattern_len -( -) -) -; -re -. -which_overlapping_matches -( -cache -& -input -& -mut -patset -) -; -TestResult -: -: -which -( -patset -. -iter -( -) -. -map -( -| -p -| -p -. -as_usize -( -) -) -) -} -} -" -captures -" -= -> -match -test -. -search_kind -( -) -{ -SearchKind -: -: -Earliest -= -> -{ -let -it -= -re -. -captures_iter -( -cache -input -. -earliest -( -true -) -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -caps -| -testify_captures -( -& -caps -) -) -; -TestResult -: -: -captures -( -it -) -} -SearchKind -: -: -Leftmost -= -> -{ -let -it -= -re -. -captures_iter -( -cache -input -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -caps -| -testify_captures -( -& -caps -) -) -; -TestResult -: -: -captures -( -it -) -} -SearchKind -: -: -Overlapping -= -> -{ -TestResult -: -: -skip -( -) -} -} -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -configure_pikevm_builder -( -test -: -& -RegexTest -builder -: -& -mut -pikevm -: -: -Builder -) -- -> -bool -{ -let -match_kind -= -match -untestify_kind -( -test -. -match_kind -( -) -) -{ -None -= -> -return -false -Some -( -k -) -= -> -k -} -; -let -pikevm_config -= -PikeVM -: -: -config -( -) -. -match_kind -( -match_kind -) -; -builder -. -configure -( -pikevm_config -) -. -syntax -( -config_syntax -( -test -) -) -. -thompson -( -config_thompson -( -test -) -) -; -true -} -fn -config_thompson -( -test -: -& -RegexTest -) -- -> -thompson -: -: -Config -{ -let -mut -lookm -= -regex_automata -: -: -util -: -: -look -: -: -LookMatcher -: -: -new -( -) -; -lookm -. -set_line_terminator -( -test -. -line_terminator -( -) -) -; -thompson -: -: -Config -: -: -new -( -) -. -utf8 -( -test -. -utf8 -( -) -) -. -look_matcher -( -lookm -) -} -fn -config_syntax -( -test -: -& -RegexTest -) -- -> -syntax -: -: -Config -{ -syntax -: -: -Config -: -: -new -( -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -utf8 -( -test -. -utf8 -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -} diff --git a/third_party/rust/regex-syntax/.cargo-checksum.json b/third_party/rust/regex-syntax/.cargo-checksum.json index bcb7d1f2f352b..f17b7f63a15c6 100644 --- a/third_party/rust/regex-syntax/.cargo-checksum.json +++ b/third_party/rust/regex-syntax/.cargo-checksum.json @@ -11,7 +11,7 @@ toml " : " -cddce5fdfc6f46bbf659bda143f7b659487ed3912d66c86a1173735485316fbd +238d0bbc855edbecf9a6a6936efc20bd2759f36bc8fa4d53bdef33a1629a9a0f " " LICENSE @@ -38,7 +38,7 @@ md " : " -b2484aa7e66fb92d1378e9a7ce7605af18f77cb12c179866eaf92ba28cfec1d9 +67a3e673a9da6826fd4db5be6902841c821b52b98dc22c300f6e327872392b0a " " benches @@ -62,7 +62,7 @@ rs " : " -f3412bf62ca9976079fffbb42784491dd69215e6fa0e14340e8ad2c7bef18184 +91b277a9bb979f85a44a67e39f17f77bde033764eea1f1a93aad1b61f1250089 " " src @@ -75,7 +75,7 @@ rs " : " -27c666cc74931894a839ed4dd2191c4c33837320b24332d5c6c9564cf89f0afd +150b42e944f766fdca70d654dbe32f8a17498432729c78b9eb50b73ae7f91f86 " " src @@ -88,7 +88,7 @@ rs " : " -62d319cd0b7e6f437dc8dcaf798046a44afa03e9aeb6a384d5cffa448383af53 +d12f2cc75cd62f35623e1eb7a77ab8ac804b971752082700d2c4f550f834b249 " " src @@ -101,18 +101,7 @@ rs " : " -e97ca0a38aaa145dd928261e8e13d1ec7a6ae37534e92a24c93ea007b0c16a7d -" -" -src -/ -debug -. -rs -" -: -" -7a16cca02be9715fdc8c26a32279465774623cd12fab1ec59ac25a6e3047817f +1a7b473147e4f6b89623ef1744a9e87f665bcf160fe08a33ce8e35011811ba71 " " src @@ -134,7 +123,7 @@ rs " : " -01a67e3407b0d0d869119363e47a94d92158834bfe5936366c2e3f6f4ed13f36 +b3c5903a8937d2aff229a3ec65d4571d01ec4d9874c9a242ed6562c32702bcbd " " src @@ -147,7 +136,7 @@ rs " : " -2358e74b4d4aabfa62f79df855fd5d183779b86c4e14aae4ee42d8695bb3d010 +e767fed363bebe4bbda0d78b8f07e73f321eaf4f837e2d7bd14a1617387e9a89 " " src @@ -155,12 +144,14 @@ src hir / literal +/ +mod . rs " : " -2c8066c18ee1783343bb06ced01ca32f6b8a581ac020378965a57375c4832e88 +ffe9a0aff7827f97bffd29eb2f4ba96627b16953161dce6c50a2f760e76bbd98 " " src @@ -173,7 +164,7 @@ rs " : " -bf2bd12c4ab6d5420e131aee193c5885d465a15f1d91d67fcf773e6c9c2a23d8 +7f83c828223a54d236d348e48d5cedf015c904812110b6c38e9d52039c2b1572 " " src @@ -186,7 +177,7 @@ rs " : " -c24eab0e29db7547d3d7f86b8bf19239265d6b114244f5e71a9904e7ae9e9c67 +651b5d9776532a78612a5f9081372a57bad693890639ac19e3128b4defa96662 " " src @@ -199,7 +190,7 @@ rs " : " -c84d930e156883c5dbad3a0c4500e6659c1f3c55dd6e4caa28b157da681ddb7c +c7cd9693f73760263fd49a968714d27e7985ebe840211b2d83bca6686b0602a8 " " src @@ -212,7 +203,7 @@ rs " : " -71ca9c93aa48a5ed445399659fa6455093a1bbd9ef44b66bc7095c1b08b2ec1f +e5bf7f8c09f6155e59c9d676fe25437f7e3700f9bf5d91101d7e246a64c11d5a " " src @@ -223,7 +214,7 @@ rs " : " -d2891213d00edb99b26ab93bd53749a85f0a6b2a71a1addbed9d2c4969a7515f +a004f65196dd5745b3112e4acc8c467b18495cecac64a58d6608b35de67371cb " " src @@ -234,18 +225,7 @@ rs " : " -6b2f4f27e3331a01a25b87c89368dd2e54396bd425dac57941f9c1ebfd238ac8 -" -" -src -/ -rank -. -rs -" -: -" -ff3d58b0cc5ffa69e2e8c56fc7d9ef41dd399d59a639a253a51551b858cb5bbd +0dfb553a152e008b2755f115663e553ed99c4b8e6a4dcbcad1662737534de49d " " src @@ -256,7 +236,7 @@ rs " : " -9829458ef321b3bc22c21eae4b22805b33f8b5e67022928ffd9a9e0287bc7c31 +2ad48193433fefbede0837bd645f4288f6b39b1facb59dbb7d541bce7bf19109 " " src @@ -475,14 +455,14 @@ rs " : " -e9a13623a94295b81969c5483de17219ff74bb20768be13c527010351245acbd +de854b3bfb3f7dbefc422f6a25935aaeef55ead2c35386c712a1fe9bf81a7b6f " " test " : " -c7de5fbc0010d9b5b758cd49956375a64b88601c068167fd366808950257f108 +8a9bd1bd9fb389e08288f951319a9bbb0d4c5284a2ba63cbdab7f6afa2c2f76e " } " @@ -490,6 +470,6 @@ package " : " -dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da +456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848 " } diff --git a/third_party/rust/regex-syntax/Cargo.toml b/third_party/rust/regex-syntax/Cargo.toml index 476cb3c58e9b7..7497073827c5b 100644 --- a/third_party/rust/regex-syntax/Cargo.toml +++ b/third_party/rust/regex-syntax/Cargo.toml @@ -100,18 +100,7 @@ package edition = " -2021 -" -rust -- -version -= -" -1 -. -60 -. -0 +2018 " name = @@ -125,9 +114,9 @@ version " 0 . -7 +6 . -5 +28 " authors = @@ -138,16 +127,6 @@ Rust Project Developers " -" -Andrew -Gallant -< -jamslam -gmail -. -com -> -" ] description = @@ -158,6 +137,23 @@ expression parser . " +homepage += +" +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +regex +" documentation = " @@ -207,93 +203,17 @@ rust lang / regex -/ -tree -/ -master -/ -regex -- -syntax -" -[ -package -. -metadata -. -docs -. -rs -] -all -- -features -= -true -rustdoc -- -args -= -[ -" -- -- -cfg " -" -docsrs -" -] [ -dependencies -. -arbitrary -] -version -= -" -1 -. -3 -. -0 -" features -= -[ -" -derive -" -] -optional -= -true -[ -features -] -arbitrary -= -[ -" -dep -: -arbitrary -" ] default = [ " -std -" -" unicode " ] -std -= -[ -] unicode = [ diff --git a/third_party/rust/regex-syntax/README.md b/third_party/rust/regex-syntax/README.md index c360aa4cf162d..d140b26c95b38 100644 --- a/third_party/rust/regex-syntax/README.md +++ b/third_party/rust/regex-syntax/README.md @@ -113,6 +113,58 @@ regex - syntax ) +[ +! +[ +Rust +] +( +https +: +/ +/ +img +. +shields +. +io +/ +badge +/ +rust +- +1 +. +28 +. +0 +% +2B +- +blue +. +svg +? +maxAge += +3600 +) +] +( +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +regex +) # # # @@ -264,17 +316,30 @@ use regex_syntax : : -{ +Parser +; +use +regex_syntax +: +: hir : : +{ +self Hir -parse } ; let hir = +Parser +: +: +new +( +) +. parse ( " @@ -305,12 +370,17 @@ Hir : literal ( -" -a -" -. -as_bytes +hir +: +: +Literal +: +: +Unicode ( +' +a +' ) ) Hir @@ -318,12 +388,17 @@ Hir : literal ( -" -b -" -. -as_bytes +hir +: +: +Literal +: +: +Unicode ( +' +b +' ) ) ] diff --git a/third_party/rust/regex-syntax/src/ast/mod.rs b/third_party/rust/regex-syntax/src/ast/mod.rs index 7f2c1e63a268b..4f4fe0d67fb88 100644 --- a/third_party/rust/regex-syntax/src/ast/mod.rs +++ b/third_party/rust/regex-syntax/src/ast/mod.rs @@ -1,5 +1,5 @@ use -core +std : : cmp @@ -8,24 +8,16 @@ cmp Ordering ; use -alloc -: -: -{ -boxed -: -: -Box -string +std : : -String -vec -vec +error +; +use +std : : -Vec -} +fmt ; pub use @@ -64,24 +56,6 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub struct Error @@ -225,10 +199,6 @@ None } # [ -non_exhaustive -] -# -[ derive ( Clone @@ -237,24 +207,6 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub enum ErrorKind @@ -308,22 +260,16 @@ RepetitionMissing UnicodeClassInvalid UnsupportedBackreference UnsupportedLookAround -} # [ -cfg +doc ( -feature -= -" -std -" +hidden ) ] +__Nonexhaustive +} impl -std -: -: error : : @@ -331,110 +277,23 @@ Error for Error { -} -impl -core -: -: -fmt -: -: -Display -for -Error -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -crate -: -: -error -: -: -Formatter -: -: -from -( -self -) -. -fmt +# +[ +allow ( -f +deprecated ) -} -} -impl -core -: -: -fmt -: -: -Display -for -ErrorKind -{ +] fn -fmt +description ( & self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> ) - > -core -: -: -fmt -: -: -Result +& +str { use self @@ -446,85 +305,42 @@ ErrorKind * ; match -* self +. +kind { CaptureLimitExceeded = > -write -! -( -f " +capture +group +limit exceeded -the -maximum -number -of -\ -capturing -groups -( -{ -} -) " -u32 -: -: -MAX -) ClassEscapeInvalid = > -{ -write -! -( -f " invalid escape sequence -found in character class " -) -} ClassRangeInvalid = > -write -! -( -f " invalid character class range -\ -the -start -must -be -< -= -the -end " -) ClassRangeLiteral = > -{ -write -! -( -f " invalid range @@ -534,141 +350,82 @@ be a literal " -) -} ClassUnclosed = > -write -! -( -f " unclosed character class " -) DecimalEmpty = > -write -! -( -f " +empty decimal literal -empty " -) DecimalInvalid = > -write -! -( -f " +invalid decimal literal -invalid " -) EscapeHexEmpty = > -write -! -( -f " +empty hexadecimal literal -empty " -) EscapeHexInvalid = > -{ -write -! -( -f " +invalid hexadecimal literal -is -not -a -Unicode -scalar -value " -) -} EscapeHexInvalidDigit = > -write -! -( -f " invalid hexadecimal digit " -) EscapeUnexpectedEof = > -write -! -( -f " -incomplete +unexpected +eof +( escape sequence -\ -reached -end -of -pattern -prematurely -" ) +" EscapeUnrecognized = > -write -! -( -f " unrecognized escape sequence " -) FlagDanglingNegation = > -{ -write -! -( -f " dangling flag negation operator " -) -} FlagDuplicate { . @@ -676,15 +433,10 @@ FlagDuplicate } = > -write -! -( -f " duplicate flag " -) FlagRepeatedNegation { . @@ -692,50 +444,27 @@ FlagRepeatedNegation } = > -{ -write -! -( -f " -flag -negation -operator repeated +negation " -) -} FlagUnexpectedEof = > -{ -write -! -( -f " -expected +unexpected +eof +( flag -but -got -end -of -regex -" ) -} +" FlagUnrecognized = > -write -! -( -f " unrecognized flag " -) GroupNameDuplicate { . @@ -743,296 +472,136 @@ GroupNameDuplicate } = > -{ -write -! -( -f " duplicate capture group name " -) -} GroupNameEmpty = > -write -! -( -f " empty capture group name " -) GroupNameInvalid = > -write -! -( -f " invalid capture group -character +name " -) GroupNameUnexpectedEof = > -write -! -( -f " unclosed capture group name " -) GroupUnclosed = > -write -! -( -f " unclosed group " -) GroupUnopened = > -write -! -( -f " unopened group " -) NestLimitExceeded ( -limit +_ ) = > -write -! -( -f -" -exceed -the -maximum -number -of -\ -nested -parentheses -/ -brackets -( -{ -} -) " +nest limit -) +exceeded +" RepetitionCountInvalid = > -write -! -( -f " invalid repetition count range -\ -the -start -must -be -< -= -the -end " -) -RepetitionCountDecimalEmpty -= -> -{ -write -! -( -f -" -repetition -quantifier -expects -a -valid -decimal -" -) -} RepetitionCountUnclosed = > -{ -write -! -( -f " unclosed counted repetition " -) -} RepetitionMissing = > -{ -write -! -( -f " repetition operator missing expression " -) -} UnicodeClassInvalid = > -{ -write -! -( -f " invalid Unicode character class " -) -} UnsupportedBackreference = > -{ -write -! -( -f " backreferences are not supported " -) -} UnsupportedLookAround = > -write -! -( -f " look - around -including -look -- -ahead -and -look -- -behind -\ is not supported " -) -} -} -} -# -[ -derive -( -Clone -Copy -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature +_ = -" -arbitrary -" -derive +> +unreachable +! ( -arbitrary -: -: -Arbitrary ) -) -] -pub -struct -Span -{ -pub -start -: -Position -pub -end -: -Position +} +} } impl -core -: -: fmt : : -Debug +Display for -Span +Error { fn fmt @@ -1043,9 +612,6 @@ f : & mut -core -: -: fmt : : @@ -1057,174 +623,38 @@ _ ) - > -core -: -: fmt : : Result { -write -! -( -f -" -Span -( -{ +crate : -? -} -{ : -? -} -) -" -self -. -start -self -. -end -) -} -} -impl -Ord -for -Span -{ -fn -cmp -( -& -self -other +error : -& -Span -) -- -> -Ordering -{ -( -& -self -. -start -& -self -. -end -) -. -cmp -( -& -( -& -other -. -start -& -other -. -end -) -) -} -} -impl -PartialOrd -for -Span -{ -fn -partial_cmp -( -& -self -other : -& -Span -) -- -> -Option -< -Ordering -> -{ -Some +Formatter +: +: +from ( self +) . -cmp +fmt ( -other -) +f ) } } -# -[ -derive -( -Clone -Copy -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -struct -Position -{ -pub -offset -: -usize -pub -line -: -usize -pub -column -: -usize -} impl -core -: -: fmt : : -Debug +Display for -Position +ErrorKind { fn fmt @@ -1235,9 +665,6 @@ f : & mut -core -: -: fmt : : @@ -1249,1724 +676,566 @@ _ ) - > -core -: -: fmt : : Result { +use +self +: +: +ErrorKind +: +: +* +; +match +* +self +{ +CaptureLimitExceeded += +> write ! ( f " -Position +exceeded +the +maximum +number +of +\ +capturing +groups ( -o -: { -: -? } -l +) +" : -{ : -? -} -c +std : -{ : -? -} +u32 +: +: +MAX ) +ClassEscapeInvalid += +> +{ +write +! +( +f +" +invalid +escape +sequence +found +in +character +class " -self -. -offset -self -. -line -self -. -column ) } -} -impl -Ord -for -Position -{ -fn -cmp +ClassRangeInvalid += +> +write +! ( -& -self -other -: -& -Position +f +" +invalid +character +class +range +\ +the +start +must +be +< += +the +end +" ) -- +ClassRangeLiteral += > -Ordering { -self -. -offset -. -cmp +write +! ( -& -other -. -offset -) -} -} -impl -PartialOrd -for -Position -{ -fn -partial_cmp -( -& -self -other -: -& -Position -) -- -> -Option -< -Ordering -> -{ -Some -( -self -. -cmp -( -other -) -) -} -} -impl -Span -{ -pub -fn -new -( -start -: -Position -end -: -Position -) -- -> -Span -{ -Span -{ -start -end -} -} -pub -fn -splat -( -pos -: -Position -) -- -> -Span -{ -Span -: -: -new -( -pos -pos -) -} -pub -fn -with_start -( -self -pos -: -Position -) -- -> -Span -{ -Span -{ -start -: -pos -. -. -self -} -} -pub -fn -with_end -( -self -pos -: -Position -) -- -> -Span -{ -Span -{ -end -: -pos -. -. -self -} -} -pub -fn -is_one_line -( -& -self -) -- -> -bool -{ -self -. -start -. -line -= -= -self -. -end -. -line -} -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -start -. -offset -= -= -self -. -end -. -offset -} -} -impl -Position -{ -pub -fn -new -( -offset -: -usize -line -: -usize -column -: -usize -) -- -> -Position -{ -Position -{ -offset -line -column -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -struct -WithComments -{ -pub -ast -: -Ast -pub -comments -: -Vec -< -Comment -> -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -struct -Comment -{ -pub -span -: -Span -pub -comment -: -String -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -enum -Ast -{ -Empty -( -Span -) -Flags -( -SetFlags -) -Literal -( -Literal -) -Dot -( -Span -) -Assertion -( -Assertion -) -Class -( -Class -) -Repetition -( -Repetition -) -Group -( -Group -) -Alternation -( -Alternation -) -Concat -( -Concat -) -} -impl -Ast -{ -pub -fn -span -( -& -self -) -- -> -& -Span -{ -match -* -self -{ -Ast -: -: -Empty -( -ref -span -) -= -> -span -Ast -: -: -Flags -( -ref -x -) -= -> -& -x -. -span -Ast -: -: -Literal -( -ref -x -) -= -> -& -x -. -span -Ast -: -: -Dot -( -ref -span -) -= -> -span -Ast -: -: -Assertion -( -ref -x -) -= -> -& -x -. -span -Ast -: -: -Class -( -ref -x -) -= -> -x -. -span -( -) -Ast -: -: -Repetition -( -ref -x -) -= -> -& -x -. -span -Ast -: -: -Group -( -ref -x -) -= -> -& -x -. -span -Ast -: -: -Alternation -( -ref -x -) -= -> -& -x -. -span -Ast -: -: -Concat -( -ref -x -) -= -> -& -x -. -span -} -} -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -match -* -self -{ -Ast -: -: -Empty -( -_ -) -= -> -true -_ -= -> -false -} -} -fn -has_subexprs -( -& -self -) -- -> -bool -{ -match -* -self -{ -Ast -: -: -Empty -( -_ -) -| -Ast -: -: -Flags -( -_ -) -| -Ast -: -: -Literal -( -_ -) -| -Ast -: -: -Dot -( -_ -) -| -Ast -: -: -Assertion -( -_ -) -= -> -false -Ast -: -: -Class -( -_ -) -| -Ast -: -: -Repetition -( -_ -) -| -Ast -: -: -Group -( -_ -) -| -Ast -: -: -Alternation -( -_ -) -| -Ast -: -: -Concat -( -_ -) -= -> -true -} -} -} -impl -core -: -: -fmt -: -: -Display -for -Ast -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -use -crate -: -: -ast -: -: -print -: -: -Printer -; -Printer -: -: -new -( -) -. -print -( -self -f -) -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -struct -Alternation -{ -pub -span -: -Span -pub -asts -: -Vec -< -Ast -> -} -impl -Alternation -{ -pub -fn -into_ast -( -mut -self -) -- -> -Ast -{ -match -self -. -asts -. -len -( -) -{ -0 -= -> -Ast -: -: -Empty -( -self -. -span -) -1 -= -> -self -. -asts -. -pop -( -) -. -unwrap -( -) -_ -= -> -Ast -: -: -Alternation -( -self -) -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -struct -Concat -{ -pub -span -: -Span -pub -asts -: -Vec -< -Ast -> -} -impl -Concat -{ -pub -fn -into_ast -( -mut -self -) -- -> -Ast -{ -match -self -. -asts -. -len -( -) -{ -0 -= -> -Ast -: -: -Empty -( -self -. -span -) -1 -= -> -self -. -asts -. -pop -( -) -. -unwrap -( -) -_ -= -> -Ast -: -: -Concat -( -self -) -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -struct -Literal -{ -pub -span -: -Span -pub -kind -: -LiteralKind -pub -c -: -char -} -impl -Literal -{ -pub -fn -byte -( -& -self -) -- -> -Option -< -u8 -> -{ -match -self -. -kind -{ -LiteralKind -: -: -HexFixed -( -HexLiteralKind -: -: -X -) -= -> -{ -u8 -: -: -try_from -( -self -. -c -) -. -ok -( -) -} -_ -= -> -None -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -enum -LiteralKind -{ -Verbatim -Meta -Superfluous -Octal -HexFixed -( -HexLiteralKind -) -HexBrace -( -HexLiteralKind -) -Special -( -SpecialLiteralKind -) -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -enum -SpecialLiteralKind -{ -Bell -FormFeed -Tab -LineFeed -CarriageReturn -VerticalTab -Space -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= +f " -arbitrary +invalid +range +boundary +must +be +a +literal " -derive -( -arbitrary -: -: -Arbitrary ) -) -] -pub -enum -HexLiteralKind -{ -X -UnicodeShort -UnicodeLong } -impl -HexLiteralKind -{ -pub -fn -digits -( -& -self -) -- -> -u32 -{ -match -* -self -{ -HexLiteralKind -: -: -X -= -> -2 -HexLiteralKind -: -: -UnicodeShort -= -> -4 -HexLiteralKind -: -: -UnicodeLong +ClassUnclosed = > -8 -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr +write +! ( -feature -= +f " -arbitrary +unclosed +character +class " -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -enum -Class -{ -Unicode -( -ClassUnicode ) -Perl +DecimalEmpty += +> +write +! ( -ClassPerl +f +" +decimal +literal +empty +" ) -Bracketed +DecimalInvalid += +> +write +! ( -ClassBracketed +f +" +decimal +literal +invalid +" ) -} -impl -Class -{ -pub -fn -span +EscapeHexEmpty += +> +write +! ( -& -self +f +" +hexadecimal +literal +empty +" ) -- +EscapeHexInvalid += > -& -Span { -match -* -self -{ -Class -: -: -Perl +write +! ( -ref -x +f +" +hexadecimal +literal +is +not +a +Unicode +scalar +value +" ) +} +EscapeHexInvalidDigit = > -& -x -. -span -Class -: -: -Unicode +write +! ( -ref -x +f +" +invalid +hexadecimal +digit +" ) +EscapeUnexpectedEof = > -& -x -. -span -Class -: -: -Bracketed +write +! ( -ref -x +f +" +incomplete +escape +sequence +\ +reached +end +of +pattern +prematurely +" ) +EscapeUnrecognized = > -& -x -. -span -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr +write +! ( -feature -= +f " -arbitrary +unrecognized +escape +sequence " -derive -( -arbitrary -: -: -Arbitrary -) ) -] -pub -struct -ClassPerl +FlagDanglingNegation += +> { -pub -span -: -Span -pub -kind -: -ClassPerlKind -pub -negated -: -bool -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr +write +! ( -feature -= +f " -arbitrary +dangling +flag +negation +operator " -derive -( -arbitrary -: -: -Arbitrary ) -) -] -pub -enum -ClassPerlKind -{ -Digit -Space -Word } -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature +FlagDuplicate +{ +. +. +} = +> +write +! +( +f " -arbitrary +duplicate +flag " -derive -( -arbitrary -: -: -Arbitrary ) -) -] -pub -struct -ClassAscii +FlagRepeatedNegation { -pub -span -: -Span -pub -kind -: -ClassAsciiKind -pub -negated -: -bool +. +. } -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature = +> +{ +write +! +( +f " -arbitrary +flag +negation +operator +repeated " -derive -( -arbitrary -: -: -Arbitrary -) ) -] -pub -enum -ClassAsciiKind -{ -Alnum -Alpha -Ascii -Blank -Cntrl -Digit -Graph -Lower -Print -Punct -Space -Upper -Word -Xdigit } -impl -ClassAsciiKind +FlagUnexpectedEof += +> { -pub -fn -from_name +write +! ( -name -: -& -str +f +" +expected +flag +but +got +end +of +regex +" ) -- -> -Option -< -ClassAsciiKind +} +FlagUnrecognized += > +write +! +( +f +" +unrecognized +flag +" +) +GroupNameDuplicate { -use -self -: -: -ClassAsciiKind -: -: -* -; -match -name +. +. +} += +> { +write +! +( +f " -alnum +duplicate +capture +group +name " +) +} +GroupNameEmpty = > -Some +write +! ( -Alnum -) +f " -alpha +empty +capture +group +name " +) +GroupNameInvalid = > -Some +write +! ( -Alpha -) +f " -ascii +invalid +capture +group +character " +) +GroupNameUnexpectedEof = > -Some +write +! ( -Ascii -) +f " -blank +unclosed +capture +group +name " +) +GroupUnclosed = > -Some +write +! ( -Blank -) +f " -cntrl +unclosed +group " +) +GroupUnopened = > -Some +write +! ( -Cntrl -) +f " -digit +unopened +group " +) +NestLimitExceeded +( +limit +) = > -Some +write +! ( -Digit -) +f " -graph +exceed +the +maximum +number +of +\ +nested +parentheses +/ +brackets +( +{ +} +) " +limit +) +RepetitionCountInvalid = > -Some +write +! ( -Graph -) +f " -lower +invalid +repetition +count +range +\ +the +start +must +be +< += +the +end " +) +RepetitionCountDecimalEmpty = > -Some +{ +write +! ( -Lower -) +f " -print +repetition +quantifier +expects +a +valid +decimal " +) +} +RepetitionCountUnclosed = > -Some +{ +write +! ( -Print -) +f " -punct +unclosed +counted +repetition " +) +} +RepetitionMissing = > -Some +{ +write +! ( -Punct -) +f " -space +repetition +operator +missing +expression " +) +} +UnicodeClassInvalid = > -Some +{ +write +! ( -Space -) +f " -upper +invalid +Unicode +character +class " +) +} +UnsupportedBackreference = > -Some +{ +write +! ( -Upper -) +f " -word +backreferences +are +not +supported " +) +} +UnsupportedLookAround = > -Some +write +! ( -Word -) +f " -xdigit +look +- +around +including +look +- +ahead +and +look +- +behind +\ +is +not +supported " -= -> -Some -( -Xdigit ) _ = > -None +unreachable +! +( +) } } } @@ -2975,92 +1244,160 @@ None derive ( Clone -Debug +Copy Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub struct -ClassUnicode -{ -pub -span -: Span +{ pub -negated +start : -bool +Position pub -kind +end : -ClassUnicodeKind +Position } impl -ClassUnicode +fmt +: +: +Debug +for +Span { -pub fn -is_negated +fmt ( & self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> ) - > -bool -{ -match -self -. -kind -{ -ClassUnicodeKind +fmt : : -NamedValue +Result +{ +write +! +( +f +" +Span +( { -op -: -ClassUnicodeOpKind : +? +} +{ : -NotEqual +? +} +) +" +self . +start +self . +end +) } -= +} +impl +Ord +for +Span +{ +fn +cmp +( +& +self +other +: +& +Span +) +- > -! +Ordering +{ +( +& +self +. +start +& +self +. +end +) +. +cmp +( +& +( +& +other +. +start +& +other +. +end +) +) +} +} +impl +PartialOrd +for +Span +{ +fn +partial_cmp +( +& self -. -negated -_ -= +other +: +& +Span +) +- +> +Option +< +Ordering > +{ +Some +( self . -negated -} +cmp +( +other +) +) } } # @@ -3068,967 +1405,957 @@ negated derive ( Clone -Debug +Copy Eq PartialEq ) ] pub -enum -ClassUnicodeKind -{ -OneLetter -( -char -) -Named -( -String -) -NamedValue +struct +Position { -op +pub +offset : -ClassUnicodeOpKind -name +usize +pub +line : -String -value +usize +pub +column : -String -} +usize } -# -[ -cfg -( -feature -= -" -arbitrary -" -) -] impl -arbitrary +fmt : : -Arbitrary -< -' -_ -> +Debug for -ClassUnicodeKind +Position { fn -arbitrary +fmt ( -u +& +self +f : & mut -arbitrary +fmt : : -Unstructured +Formatter +< +' +_ +> ) - > -arbitrary +fmt : : Result -< -ClassUnicodeKind -> { -# -[ -cfg -( -any +write +! ( -feature -= -" -unicode -- -age -" -feature -= -" -unicode -- -bool -" -feature -= -" -unicode -- -gencat -" -feature -= -" -unicode -- -perl -" -feature -= -" -unicode -- -script -" -feature -= -" -unicode -- -segment +f " -) -) -] -{ -use -alloc -: -: -string -: -: -ToString -; -use -super -: +Position +( +o : -unicode_tables +{ : +? +} +l : { -property_names -: : -PROPERTY_NAMES -property_values +? +} +c : +{ : -PROPERTY_VALUES -} -; -match -u -. -choose_index -( -3 -) ? -{ -0 -= -> -{ -let -all -= -PROPERTY_VALUES -. -iter -( +} ) +" +self . -flat_map -( -| -e -| -e +offset +self . -1 +line +self . -iter -( -) +column ) -. -filter -( -| +} +} +impl +Ord +for +Position +{ +fn +cmp ( -name -_ +& +self +other +: +& +Position ) -| -name +- +> +Ordering +{ +self . -len -( -) -= -= -1 -) +offset . -count +cmp ( -) -; -let -idx -= -u +& +other . -choose_index -( -all +offset ) -? -; -let -value -= -PROPERTY_VALUES -. -iter +} +} +impl +PartialOrd +for +Position +{ +fn +partial_cmp ( +& +self +other +: +& +Position ) +- +> +Option +< +Ordering +> +{ +Some +( +self . -flat_map -( -| -e -| -e -. -1 -. -iter +cmp ( +other ) ) -. -take +} +} +impl +Span +{ +pub +fn +new ( -idx -+ -1 +start +: +Position +end +: +Position ) -. -last +- +> +Span +{ +Span +{ +start +end +} +} +pub +fn +splat ( +pos +: +Position ) -. -unwrap +- +> +Span +{ +Span +: +: +new ( +pos +pos ) -. -0 -. -chars +} +pub +fn +with_start ( +self +pos +: +Position ) +- +> +Span +{ +Span +{ +start +: +pos . -next -( -) . -unwrap -( -) -; -Ok +self +} +} +pub +fn +with_end ( -ClassUnicodeKind +self +pos : +Position +) +- +> +Span +{ +Span +{ +end : -OneLetter +pos +. +. +self +} +} +pub +fn +is_one_line ( -value -) +& +self ) -} -1 -= +- > +bool { -let -all +self +. +start +. +line += = -PROPERTY_VALUES +self . -iter +end +. +line +} +pub +fn +is_empty ( +& +self ) +- +> +bool +{ +self . -map -( -| -e -| -e +start . -1 +offset += += +self . -len -( -) -) +end . -sum +offset +} +} +impl +Position +{ +pub +fn +new +( +offset : +usize +line +: +usize +column : -< usize +) +- > +Position +{ +Position +{ +offset +line +column +} +} +} +# +[ +derive ( +Clone +Debug +Eq +PartialEq ) -+ -PROPERTY_NAMES -. -len +] +pub +struct +WithComments +{ +pub +ast +: +Ast +pub +comments +: +Vec +< +Comment +> +} +# +[ +derive ( +Clone +Debug +Eq +PartialEq ) -; -let -idx -= -u -. -choose_index +] +pub +struct +Comment +{ +pub +span +: +Span +pub +comment +: +String +} +# +[ +derive ( -all +Clone +Debug +Eq +PartialEq ) -? -; -let -name -= -PROPERTY_VALUES -. -iter +] +pub +enum +Ast +{ +Empty ( +Span ) -. -flat_map -( -| -e -| -e -. -1 -. -iter +Flags ( +SetFlags ) +Literal +( +Literal ) -. -chain +Dot ( -PROPERTY_NAMES +Span ) -. -map +Assertion ( -| +Assertion +) +Class ( -_ -e +Class ) -| -e +Repetition +( +Repetition ) -. -take +Group ( -idx -+ -1 +Group ) -. -last +Alternation ( +Alternation ) -. -unwrap +Concat ( +Concat ) -; -Ok +} +impl +Ast +{ +pub +fn +span ( -ClassUnicodeKind +& +self +) +- +> +& +Span +{ +match +* +self +{ +Ast : : -Named -( -name -. -to_string +Empty ( +ref +span ) -) -) -} -2 = > -{ -let -all -= -PROPERTY_VALUES -. -iter -( -) -. -map -( -| -e -| -e -. -1 -. -len +span +Ast +: +: +Flags ( +ref +x ) -) += +> +& +x . -sum +span +Ast : : -< -usize -> +Literal ( +ref +x ) -; -let -idx = -u +> +& +x . -choose_index -( -all -) -? -; -let +span +Ast +: +: +Dot ( -prop -value +ref +span ) = -PROPERTY_VALUES -. -iter +> +span +Ast +: +: +Assertion ( +ref +x ) += +> +& +x . -flat_map -( -| -e -| -{ -e -. -1 -. -iter +span +Ast +: +: +Class ( +ref +x ) += +> +x . -map -( -| +span ( -_ -value ) -| +Ast +: +: +Repetition ( -e -. -0 -value -) -) -} +ref +x ) += +> +& +x . -take +span +Ast +: +: +Group ( -idx -+ -1 +ref +x ) += +> +& +x . -last +span +Ast +: +: +Alternation ( +ref +x ) += +> +& +x . -unwrap -( -) -; -Ok -( -ClassUnicodeKind -: +span +Ast : -NamedValue -{ -op : -u -. -arbitrary +Concat ( +ref +x ) -? -name -: -prop += +> +& +x . -to_string +span +} +} +pub +fn +is_empty ( +& +self ) -value +- +> +bool +{ +match +* +self +{ +Ast : -value -. -to_string +: +Empty ( +_ ) -} -) -} += +> +true _ = > -unreachable -! -( -" -index -chosen -is -impossible -" -) +false } } -# -[ -cfg -( -not -( -any +fn +has_subexprs ( -feature -= -" -unicode -- -age -" -feature -= -" -unicode +& +self +) - +> bool -" -feature -= -" -unicode -- -gencat -" -feature -= -" -unicode -- -perl -" -feature -= -" -unicode -- -script -" -feature -= -" -unicode -- -segment -" -) -) -) -] { match -u -. -choose_index -( -3 -) -? +* +self { -0 -= -> -Ok -( -ClassUnicodeKind +Ast : : -OneLetter -( -u -. -arbitrary +Empty ( +_ ) -? -) -) -1 -= -> -Ok -( -ClassUnicodeKind +| +Ast : : -Named +Flags ( -u -. -arbitrary +_ +) +| +Ast +: +: +Literal ( +_ ) -? +| +Ast +: +: +Dot +( +_ ) +| +Ast +: +: +Assertion +( +_ ) -2 = > -Ok -( -ClassUnicodeKind -: +false +Ast : -NamedValue -{ -op : -u -. -arbitrary +Class ( +_ ) -? -name +| +Ast : -u -. -arbitrary +: +Repetition ( +_ ) -? -value +| +Ast : -u -. -arbitrary +: +Group ( +_ ) -? -} +| +Ast +: +: +Alternation +( +_ ) +| +Ast +: +: +Concat +( _ +) = > -unreachable -! -( -" -index -chosen -is -impossible -" -) +true } } } +impl +fmt +: +: +Display +for +Ast +{ fn -size_hint +fmt ( -depth +& +self +f : -usize -) -- -> -( -usize -Option +& +mut +fmt +: +: +Formatter < -usize +' +_ > ) +- +> +fmt +: +: +Result { -# -[ -cfg +use +crate +: +: +ast +: +: +print +: +: +Printer +; +Printer +: +: +new ( -any +) +. +print ( -feature -= -" -unicode -- -age -" -feature -= -" -unicode -- -bool -" -feature -= -" -unicode -- -gencat -" -feature -= -" -unicode -- -perl -" -feature -= -" -unicode -- -script -" -feature -= -" -unicode -- -segment -" +self +f ) +} +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq ) ] +pub +struct +Alternation { -arbitrary -: -: -size_hint -: -: -and_all -( -& -[ -usize +pub +span : +Span +pub +asts : -size_hint +Vec +< +Ast +> +} +impl +Alternation +{ +pub +fn +into_ast ( -depth +mut +self ) -usize -: -: -size_hint +- +> +Ast +{ +match +self +. +asts +. +len ( -depth ) -arbitrary -: -: -size_hint +{ +0 += +> +Ast : : -or -( +Empty ( -0 -Some +self +. +span +) +1 += +> +self +. +asts +. +pop ( -0 ) +. +unwrap +( ) -ClassUnicodeOpKind +_ += +> +Ast : : -size_hint +Alternation ( -depth -) -) -] +self ) } +} +} # [ -cfg -( -not -( -any +derive ( -feature -= -" -unicode -- -age -" -feature -= -" -unicode -- -bool -" -feature -= -" -unicode -- -gencat -" -feature -= -" -unicode -- -perl -" -feature -= -" -unicode -- -script -" -feature -= -" -unicode -- -segment -" -) -) +Clone +Debug +Eq +PartialEq ) ] +pub +struct +Concat { -arbitrary -: -: -size_hint -: -: -and -( -usize +pub +span : +Span +pub +asts : -size_hint +Vec +< +Ast +> +} +impl +Concat +{ +pub +fn +into_ast ( -depth +mut +self ) -arbitrary -: -: -size_hint -: -: -or_all -( -& -[ -char -: -: -size_hint +- +> +Ast +{ +match +self +. +asts +. +len ( -depth ) -String +{ +0 += +> +Ast : : -size_hint +Empty ( -depth +self +. +span ) -arbitrary -: -: -size_hint -: -: -and_all -( -& -[ -String -: -: -size_hint +1 += +> +self +. +asts +. +pop ( -depth ) -String -: -: -size_hint +. +unwrap ( -depth ) -ClassUnicodeOpKind +_ += +> +Ast : : -size_hint +Concat ( -depth -) -] -) -] -) +self ) } } @@ -4043,66 +2370,84 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary +pub +struct +Literal +{ +pub +span : +Span +pub +kind : -Arbitrary -) -) -] +LiteralKind pub -enum -ClassUnicodeOpKind -{ -Equal -Colon -NotEqual +c +: +char } impl -ClassUnicodeOpKind +Literal { pub fn -is_equal +byte ( & self ) - > -bool -{ -match -* -self +Option +< +u8 +> { -ClassUnicodeOpKind +let +short_hex += +LiteralKind : : -Equal -| -ClassUnicodeOpKind +HexFixed +( +HexLiteralKind : : -Colon +X +) +; +if +self +. +c +as +u32 +< = -> -true -_ +255 +& +& +self +. +kind = -> -false += +short_hex +{ +Some +( +self +. +c +as +u8 +) +} +else +{ +None } } } @@ -4116,40 +2461,25 @@ Eq PartialEq ) ] -# -[ -cfg_attr +pub +enum +LiteralKind +{ +Verbatim +Punctuation +Octal +HexFixed ( -feature -= -" -arbitrary -" -derive +HexLiteralKind +) +HexBrace ( -arbitrary -: -: -Arbitrary +HexLiteralKind ) +Special +( +SpecialLiteralKind ) -] -pub -struct -ClassBracketed -{ -pub -span -: -Span -pub -negated -: -bool -pub -kind -: -ClassSet } # [ @@ -4161,198 +2491,92 @@ Eq PartialEq ) ] +pub +enum +SpecialLiteralKind +{ +Bell +FormFeed +Tab +LineFeed +CarriageReturn +VerticalTab +Space +} # [ -cfg_attr -( -feature -= -" -arbitrary -" derive ( -arbitrary -: -: -Arbitrary -) +Clone +Debug +Eq +PartialEq ) ] pub enum -ClassSet +HexLiteralKind { -Item -( -ClassSetItem -) -BinaryOp -( -ClassSetBinaryOp -) +X +UnicodeShort +UnicodeLong } impl -ClassSet -{ -pub -fn -union -( -ast -: -ClassSetUnion -) -- -> -ClassSet +HexLiteralKind { -ClassSet -: -: -Item -( -ClassSetItem -: -: -Union -( -ast -) -) -} pub fn -span +digits ( & self ) - > -& -Span +u32 { match * self { -ClassSet +HexLiteralKind : : -Item -( -ref -x -) +X = > -x -. -span -( -) -ClassSet +2 +HexLiteralKind : : -BinaryOp -( -ref -x -) +UnicodeShort = > -& -x -. -span -} -} -fn -is_empty -( -& -self -) -- -> -bool -{ -match -* -self -{ -ClassSet -: -: -Item -( -ClassSetItem +4 +HexLiteralKind : : -Empty -( -_ -) -) -= -> -true -_ +UnicodeLong = > -false -} +8 } } -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] -pub -enum -ClassSetItem -{ -Empty -( -Span -) -Literal -( -Literal -) -Range -( -ClassSetRange -) -Ascii +} +# +[ +derive ( -ClassAscii +Clone +Debug +Eq +PartialEq ) +] +pub +enum +Class +{ Unicode ( ClassUnicode @@ -4363,18 +2587,11 @@ ClassPerl ) Bracketed ( -Box -< ClassBracketed -> -) -Union -( -ClassSetUnion ) } impl -ClassSetItem +Class { pub fn @@ -4392,21 +2609,24 @@ match * self { -ClassSetItem +Class : : -Empty +Perl ( ref -span +x ) = > +& +x +. span -ClassSetItem +Class : : -Literal +Unicode ( ref x @@ -4417,10 +2637,10 @@ x x . span -ClassSetItem +Class : : -Range +Bracketed ( ref x @@ -4431,76 +2651,271 @@ x x . span -ClassSetItem +} +} +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq +) +] +pub +struct +ClassPerl +{ +pub +span +: +Span +pub +kind +: +ClassPerlKind +pub +negated +: +bool +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq +) +] +pub +enum +ClassPerlKind +{ +Digit +Space +Word +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq +) +] +pub +struct +ClassAscii +{ +pub +span +: +Span +pub +kind +: +ClassAsciiKind +pub +negated +: +bool +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq +) +] +pub +enum +ClassAsciiKind +{ +Alnum +Alpha +Ascii +Blank +Cntrl +Digit +Graph +Lower +Print +Punct +Space +Upper +Word +Xdigit +} +impl +ClassAsciiKind +{ +pub +fn +from_name +( +name +: +& +str +) +- +> +Option +< +ClassAsciiKind +> +{ +use +self +: +: +ClassAsciiKind : : +* +; +match +name +{ +" +alnum +" += +> +Some +( +Alnum +) +" +alpha +" += +> +Some +( +Alpha +) +" +ascii +" += +> +Some +( Ascii +) +" +blank +" += +> +Some +( +Blank +) +" +cntrl +" += +> +Some +( +Cntrl +) +" +digit +" += +> +Some +( +Digit +) +" +graph +" += +> +Some +( +Graph +) +" +lower +" += +> +Some +( +Lower +) +" +print +" += +> +Some +( +Print +) +" +punct +" += +> +Some ( -ref -x +Punct ) +" +space +" = > -& -x -. -span -ClassSetItem -: -: -Perl +Some ( -ref -x +Space ) +" +upper +" = > -& -x -. -span -ClassSetItem -: -: -Unicode +Some ( -ref -x +Upper ) +" +word +" = > -& -x -. -span -ClassSetItem -: -: -Bracketed +Some ( -ref -x +Word ) +" +xdigit +" = > -& -x -. -span -ClassSetItem -: -: -Union +Some ( -ref -x +Xdigit ) +_ = > -& -x -. -span +None } } } @@ -4514,47 +2929,29 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub struct -ClassSetRange +ClassUnicode { pub span : Span pub -start +negated : -Literal +bool pub -end +kind : -Literal +ClassUnicodeKind } impl -ClassSetRange +ClassUnicode { pub fn -is_valid +is_negated ( & self @@ -4563,183 +2960,37 @@ self > bool { +match self . -start -. -c -< -= -self -. -end -. -c -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary +kind +{ +ClassUnicodeKind : : -Arbitrary -) -) -] -pub -struct -ClassSetUnion +NamedValue { -pub -span +op : -Span -pub -items +ClassUnicodeOpKind : -Vec -< -ClassSetItem -> -} -impl -ClassSetUnion -{ -pub -fn -push -( -& -mut -self -item : -ClassSetItem -) -{ -if -self -. -items -. -is_empty -( -) -{ -self -. -span -. -start -= -item -. -span -( -) -. -start -; -} -self -. -span -. -end -= -item -. -span -( -) -. -end -; -self +NotEqual . -items . -push -( -item -) -; } -pub -fn -into_item -( -mut -self -) -- -> -ClassSetItem -{ -match -self -. -items -. -len -( -) -{ -0 -= -> -ClassSetItem -: -: -Empty -( -self -. -span -) -1 = > +! self . -items -. -pop -( -) -. -unwrap -( -) +negated _ = > -ClassSetItem -: -: -Union -( self -) +. +negated } } } @@ -4753,87 +3004,85 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive +pub +enum +ClassUnicodeKind +{ +OneLetter ( -arbitrary -: -: -Arbitrary +char ) +Named +( +String ) -] -pub -struct -ClassSetBinaryOp +NamedValue { -pub -span -: -Span -pub -kind +op : -ClassSetBinaryOpKind -pub -lhs +ClassUnicodeOpKind +name : -Box -< -ClassSet -> -pub -rhs +String +value : -Box -< -ClassSet -> +String +} } # [ derive ( Clone -Copy Debug Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub enum -ClassSetBinaryOpKind +ClassUnicodeOpKind { -Intersection -Difference -SymmetricDifference +Equal +Colon +NotEqual +} +impl +ClassUnicodeOpKind +{ +pub +fn +is_equal +( +& +self +) +- +> +bool +{ +match +* +self +{ +ClassUnicodeOpKind +: +: +Equal +| +ClassUnicodeOpKind +: +: +Colon += +> +true +_ += +> +false +} +} } # [ @@ -4845,36 +3094,22 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub struct -Assertion +ClassBracketed { pub span : Span pub +negated +: +bool +pub kind : -AssertionKind +ClassSet } # [ @@ -4886,127 +3121,131 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub enum -AssertionKind +ClassSet { -StartLine -EndLine -StartText -EndText -WordBoundary -NotWordBoundary -} -# -[ -derive +Item ( -Clone -Debug -Eq -PartialEq +ClassSetItem ) -] -# -[ -cfg_attr +BinaryOp ( -feature -= -" -arbitrary -" -derive +ClassSetBinaryOp +) +} +impl +ClassSet +{ +pub +fn +union ( -arbitrary -: +ast : -Arbitrary -) +ClassSetUnion ) -] -pub -struct -Repetition +- +> +ClassSet { -pub -span +ClassSet : -Span -pub -op : -RepetitionOp -pub -greedy +Item +( +ClassSetItem : -bool -pub -ast : -Box -< -Ast -> +Union +( +ast +) +) } -# -[ -derive +pub +fn +span ( -Clone -Debug -Eq -PartialEq +& +self ) -] -# -[ -cfg_attr +- +> +& +Span +{ +match +* +self +{ +ClassSet +: +: +Item ( -feature +ref +x +) = -" -arbitrary -" -derive +> +x +. +span ( -arbitrary +) +ClassSet : : -Arbitrary +BinaryOp +( +ref +x ) += +> +& +x +. +span +} +} +fn +is_empty +( +& +self ) -] -pub -struct -RepetitionOp +- +> +bool { -pub -span +match +* +self +{ +ClassSet : -Span -pub -kind : -RepetitionKind +Item +( +ClassSetItem +: +: +Empty +( +_ +) +) += +> +true +_ += +> +false +} +} } # [ @@ -5018,119 +3257,174 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub enum -RepetitionKind +ClassSetItem { -ZeroOrOne -ZeroOrMore -OneOrMore -Range +Empty ( -RepetitionRange +Span ) -} -# -[ -derive +Literal ( -Clone -Debug -Eq -PartialEq +Literal ) -] -# -[ -cfg_attr +Range ( -feature -= -" -arbitrary -" -derive +ClassSetRange +) +Ascii ( -arbitrary -: -: -Arbitrary +ClassAscii ) +Unicode +( +ClassUnicode ) -] -pub -enum -RepetitionRange -{ -Exactly +Perl ( -u32 +ClassPerl ) -AtLeast +Bracketed ( -u32 +Box +< +ClassBracketed +> ) -Bounded +Union ( -u32 -u32 +ClassSetUnion ) } impl -RepetitionRange +ClassSetItem { pub fn -is_valid +span ( & self ) - > -bool +& +Span { match * self { -RepetitionRange +ClassSetItem : : -Bounded +Empty ( -s -e +ref +span ) -if -s += > -e +span +ClassSetItem +: +: +Literal +( +ref +x +) = > -false -_ +& +x +. +span +ClassSetItem +: +: +Range +( +ref +x +) = > -true +& +x +. +span +ClassSetItem +: +: +Ascii +( +ref +x +) += +> +& +x +. +span +ClassSetItem +: +: +Perl +( +ref +x +) += +> +& +x +. +span +ClassSetItem +: +: +Unicode +( +ref +x +) += +> +& +x +. +span +ClassSetItem +: +: +Bracketed +( +ref +x +) += +> +& +x +. +span +ClassSetItem +: +: +Union +( +ref +x +) += +> +& +x +. +span } } } @@ -5138,200 +3432,202 @@ true [ derive ( -Clone -Debug -Eq -PartialEq -) -] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) +Clone +Debug +Eq +PartialEq ) ] pub struct -Group +ClassSetRange { pub span : Span pub -kind +start : -GroupKind +Literal pub -ast +end : -Box -< -Ast -> +Literal } impl -Group +ClassSetRange { pub fn -flags +is_valid ( & self ) - > -Option -< -& -Flags -> +bool { -match self . -kind -{ -GroupKind -: -: -NonCapturing -( -ref -flags -) +start +. +c +< = -> -Some +self +. +end +. +c +} +} +# +[ +derive ( -flags +Clone +Debug +Eq +PartialEq ) -_ -= +] +pub +struct +ClassSetUnion +{ +pub +span +: +Span +pub +items +: +Vec +< +ClassSetItem > -None -} } +impl +ClassSetUnion +{ pub fn -is_capturing +push ( & +mut self +item +: +ClassSetItem ) -- -> -bool { -match +if self . -kind -{ -GroupKind -: -: -CaptureIndex +items +. +is_empty ( -_ ) -| -GroupKind -: -: -CaptureName { +self . +span . -} +start = -> -true -GroupKind -: -: -NonCapturing +item +. +span ( -_ ) -= -> -false +. +start +; } +self +. +span +. +end += +item +. +span +( +) +. +end +; +self +. +items +. +push +( +item +) +; } pub fn -capture_index +into_item ( -& +mut self ) - > -Option -< -u32 -> +ClassSetItem { match self . -kind -{ -GroupKind -: -: -CaptureIndex +items +. +len ( -i ) +{ +0 = > -Some -( -i -) -GroupKind +ClassSetItem : : -CaptureName -{ -ref -name -. +Empty +( +self . -} +span +) +1 = > -Some +self +. +items +. +pop ( -name +) . -index +unwrap +( ) -GroupKind +_ += +> +ClassSetItem : : -NonCapturing +Union ( -_ +self ) -= -> -None } } } @@ -5345,45 +3641,129 @@ Eq PartialEq ) ] +pub +struct +ClassSetBinaryOp +{ +pub +span +: +Span +pub +kind +: +ClassSetBinaryOpKind +pub +lhs +: +Box +< +ClassSet +> +pub +rhs +: +Box +< +ClassSet +> +} +# +[ +derive +( +Clone +Copy +Debug +Eq +PartialEq +) +] +pub +enum +ClassSetBinaryOpKind +{ +Intersection +Difference +SymmetricDifference +} # [ -cfg_attr -( -feature -= -" -arbitrary -" derive ( -arbitrary +Clone +Debug +Eq +PartialEq +) +] +pub +struct +Assertion +{ +pub +span : +Span +pub +kind : -Arbitrary -) +AssertionKind +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq ) ] pub enum -GroupKind +AssertionKind { -CaptureIndex +StartLine +EndLine +StartText +EndText +WordBoundary +NotWordBoundary +} +# +[ +derive ( -u32 +Clone +Debug +Eq +PartialEq ) -CaptureName +] +pub +struct +Repetition { -starts_with_p +pub +span +: +Span +pub +op +: +RepetitionOp +pub +greedy : bool -name +pub +ast : -CaptureName -} -NonCapturing -( -Flags -) +Box +< +Ast +> } # [ @@ -5397,259 +3777,285 @@ PartialEq ] pub struct -CaptureName +RepetitionOp { pub span : Span pub -name +kind : -String +RepetitionKind +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq +) +] pub -index -: -u32 +enum +RepetitionKind +{ +ZeroOrOne +ZeroOrMore +OneOrMore +Range +( +RepetitionRange +) } # [ -cfg +derive ( -feature -= -" -arbitrary -" +Clone +Debug +Eq +PartialEq ) ] +pub +enum +RepetitionRange +{ +Exactly +( +u32 +) +AtLeast +( +u32 +) +Bounded +( +u32 +u32 +) +} impl -arbitrary -: -: -Arbitrary -< -' -_ -> -for -CaptureName +RepetitionRange { +pub fn -arbitrary +is_valid ( -u -: & -mut -arbitrary -: -: -Unstructured +self ) - > -arbitrary -: -: -Result -< -CaptureName -> +bool { -let -len -= -u -. -arbitrary_len +match +* +self +{ +RepetitionRange : : -< -char -> +Bounded ( +s +e ) -? -; if -len +s +> +e = +> +false +_ = -0 -{ -return -Err +> +true +} +} +} +# +[ +derive ( -arbitrary -: -: -Error -: -: -NotEnoughData +Clone +Debug +Eq +PartialEq ) -; -} -let -mut -name +] +pub +struct +Group +{ +pub +span : -String -= -String +Span +pub +kind : +GroupKind +pub +ast : -new -( -) -; -for -_ -in -0 -. -. -len +Box +< +Ast +> +} +impl +Group { -let -ch -: -char -= -u -. -arbitrary +pub +fn +flags ( +& +self ) -? -; -let -cp -= -u32 +- +> +Option +< +& +Flags +> +{ +match +self +. +kind +{ +GroupKind : : -from +NonCapturing ( -ch +ref +flags ) -; -let -ascii_letter_offset = -u8 -: -: -try_from +> +Some ( -cp -% -26 +flags ) -. -unwrap +_ += +> +None +} +} +pub +fn +is_capturing ( +& +self ) -; -let -ascii_letter -= -b -' -a -' -+ -ascii_letter_offset -; -name +- +> +bool +{ +match +self . -push -( -char +kind +{ +GroupKind : : -from +CaptureIndex ( -ascii_letter -) +_ ) -; -} -Ok -( -CaptureName -{ -span +| +GroupKind : -u -. -arbitrary +: +CaptureName ( +_ ) -? -name -index += +> +true +GroupKind : -u -. -arbitrary +: +NonCapturing ( +_ ) -? += +> +false } -) } +pub fn -size_hint +capture_index ( -depth -: -usize +& +self ) - > -( -usize Option < -usize +u32 > -) { -arbitrary -: -: -size_hint +match +self +. +kind +{ +GroupKind : : -and_all +CaptureIndex ( -& -[ -Span -: -: -size_hint +i +) += +> +Some ( -depth +i ) -usize +GroupKind : : -size_hint +CaptureName ( -depth +ref +x ) -u32 += +> +Some +( +x +. +index +) +GroupKind : : -size_hint +NonCapturing ( -depth -) -] +_ ) += +> +None +} } } # @@ -5662,36 +4068,49 @@ Eq PartialEq ) ] +pub +enum +GroupKind +{ +CaptureIndex +( +u32 +) +CaptureName +( +CaptureName +) +NonCapturing +( +Flags +) +} # [ -cfg_attr -( -feature -= -" -arbitrary -" derive ( -arbitrary -: -: -Arbitrary -) +Clone +Debug +Eq +PartialEq ) ] pub struct -SetFlags +CaptureName { pub span : Span pub -flags +name : -Flags +String +pub +index +: +u32 } # [ @@ -5703,22 +4122,27 @@ Eq PartialEq ) ] +pub +struct +SetFlags +{ +pub +span +: +Span +pub +flags +: +Flags +} # [ -cfg_attr -( -feature -= -" -arbitrary -" derive ( -arbitrary -: -: -Arbitrary -) +Clone +Debug +Eq +PartialEq ) ] pub @@ -5898,24 +4322,6 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub struct FlagsItem @@ -5939,24 +4345,6 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub enum FlagsItemKind @@ -6010,24 +4398,6 @@ Eq PartialEq ) ] -# -[ -cfg_attr -( -feature -= -" -arbitrary -" -derive -( -arbitrary -: -: -Arbitrary -) -) -] pub enum Flag @@ -6037,7 +4407,6 @@ MultiLine DotMatchesNewLine SwapGreed Unicode -CRLF IgnoreWhitespace } impl @@ -6054,7 +4423,7 @@ self ) { use -core +std : : mem @@ -6460,7 +4829,7 @@ self ) { use -core +std : : mem @@ -7039,7 +5408,7 @@ new . stack_size ( -16 +1 < < 10 diff --git a/third_party/rust/regex-syntax/src/ast/parse.rs b/third_party/rust/regex-syntax/src/ast/parse.rs index 9a52bded2f262..cdab2863257b5 100644 --- a/third_party/rust/regex-syntax/src/ast/parse.rs +++ b/third_party/rust/regex-syntax/src/ast/parse.rs @@ -1,12 +1,16 @@ use -core +std : : -{ borrow : : Borrow +; +use +std +: +: cell : : @@ -14,37 +18,23 @@ cell Cell RefCell } -mem -} ; use -alloc -: +std : -{ -boxed -: -: -Box -string : -: -{ -String -ToString -} -vec -vec +mem +; +use +std : : -Vec -} +result ; use crate : : -{ ast : : @@ -54,13 +44,21 @@ Ast Position Span } +; +use +crate +: +: either : : Either -is_escapeable_character +; +use +crate +: +: is_meta_character -} ; type Result @@ -68,9 +66,6 @@ Result T > = -core -: -: result : : @@ -614,9 +609,6 @@ bool > bool { -if -first -{ c = = @@ -625,20 +617,28 @@ _ ' | | -c -. -is_alphabetic ( -) -} -else -{ -c +! +first +& +& +( +( +' +0 +' +< = +c +& +& +c +< = ' -_ +9 ' +) | | c @@ -663,15 +663,45 @@ c ' ] ' +) +) | | +( +' +A +' +< += c -. -is_alphanumeric +& +& +c +< += +' +Z +' +) +| +| ( +' +a +' +< += +c +& +& +c +< += +' +z +' ) } -} # [ derive @@ -1386,6 +1416,10 @@ str self . pattern +. +borrow +( +) } fn error @@ -5777,12 +5811,6 @@ span ( ) ; -let -mut -starts_with_p -= -true -; if self . @@ -5794,23 +5822,6 @@ P < " ) -| -| -{ -starts_with_p -= -false -; -self -. -bump_if -( -" -? -< -" -) -} { let capture_index @@ -5824,7 +5835,7 @@ open_span ? ; let -name +cap = self . @@ -5858,10 +5869,9 @@ GroupKind : : CaptureName -{ -starts_with_p -name -} +( +cap +) ast : Box @@ -6881,21 +6891,6 @@ Flag Unicode ) ' -R -' -= -> -Ok -( -ast -: -: -Flag -: -: -CRLF -) -' x ' = @@ -7579,42 +7574,7 @@ ast LiteralKind : : -Meta -c -} -) -) -; -} -if -is_escapeable_character -( -c -) -{ -return -Ok -( -Primitive -: -: -Literal -( -ast -: -: -Literal -{ -span -kind -: -ast -: -: -LiteralKind -: -: -Superfluous +Punctuation c } ) @@ -7778,6 +7738,30 @@ x0B ' ) ' +' +if +self +. +ignore_whitespace +( +) += +> +{ +special +( +ast +: +: +SpecialLiteralKind +: +: +Space +' +' +) +} +' A ' = @@ -7938,6 +7922,18 @@ ast : Literal { +use +std +: +: +char +; +use +std +: +: +u32 +; assert ! ( @@ -8328,6 +8324,18 @@ ast Literal > { +use +std +: +: +char +; +use +std +: +: +u32 +; let mut scratch @@ -8594,6 +8602,18 @@ ast Literal > { +use +std +: +: +char +; +use +std +: +: +u32 +; let mut scratch @@ -11519,6 +11539,11 @@ ErrorKind : NestLimitExceeded ( +: +: +std +: +: u32 : : @@ -12491,7 +12516,7 @@ mod tests { use -core +std : : ops @@ -12500,10 +12525,15 @@ ops Range ; use -alloc +super : : -format +{ +Parser +ParserBuilder +ParserI +Primitive +} ; use crate @@ -12519,12 +12549,6 @@ Position Span } ; -use -super -: -: -* -; macro_rules ! assert_eq @@ -13265,7 +13289,7 @@ len_utf8 ) } fn -meta_lit +punct_lit ( c : @@ -13297,7 +13321,7 @@ ast LiteralKind : : -Meta +Punctuation c } ) @@ -15197,7 +15221,7 @@ concat vec ! [ -meta_lit +punct_lit ( ' \ @@ -15211,7 +15235,7 @@ span 2 ) ) -meta_lit +punct_lit ( ' . @@ -15224,7 +15248,7 @@ span 4 ) ) -meta_lit +punct_lit ( ' + @@ -15237,7 +15261,7 @@ span 6 ) ) -meta_lit +punct_lit ( ' * @@ -15250,7 +15274,7 @@ span 8 ) ) -meta_lit +punct_lit ( ' ? @@ -15263,7 +15287,7 @@ span 10 ) ) -meta_lit +punct_lit ( ' ( @@ -15276,7 +15300,7 @@ span 12 ) ) -meta_lit +punct_lit ( ' ) @@ -15289,7 +15313,7 @@ span 14 ) ) -meta_lit +punct_lit ( ' | @@ -15302,7 +15326,7 @@ span 16 ) ) -meta_lit +punct_lit ( ' [ @@ -15315,7 +15339,7 @@ span 18 ) ) -meta_lit +punct_lit ( ' ] @@ -15328,7 +15352,7 @@ span 20 ) ) -meta_lit +punct_lit ( ' { @@ -15341,7 +15365,7 @@ span 22 ) ) -meta_lit +punct_lit ( ' } @@ -15354,7 +15378,7 @@ span 24 ) ) -meta_lit +punct_lit ( ' ^ @@ -15367,7 +15391,7 @@ span 26 ) ) -meta_lit +punct_lit ( ' ' @@ -15379,7 +15403,7 @@ span 28 ) ) -meta_lit +punct_lit ( ' # @@ -15392,7 +15416,7 @@ span 30 ) ) -meta_lit +punct_lit ( ' & @@ -15405,7 +15429,7 @@ span 32 ) ) -meta_lit +punct_lit ( ' - @@ -15418,7 +15442,7 @@ span 34 ) ) -meta_lit +punct_lit ( ' ~ @@ -16054,13 +16078,8 @@ GroupKind : : CaptureName -{ -starts_with_p -: -true -name -: -ast +( +ast : : CaptureName @@ -16087,7 +16106,7 @@ index : 1 } -} +) ast : Box @@ -16585,7 +16604,16 @@ ast LiteralKind : : -Superfluous +Special +( +ast +: +: +SpecialLiteralKind +: +: +Space +) c : ' @@ -16597,6 +16625,53 @@ c ) ) ; +let +pat += +r +" +\ +" +; +assert_eq +! +( +parser +( +pat +) +. +parse +( +) +. +unwrap_err +( +) +TestError +{ +span +: +span_range +( +pat +0 +. +. +2 +) +kind +: +ast +: +: +ErrorKind +: +: +EscapeUnrecognized +} +) +; } # [ @@ -22853,6 +22928,7 @@ parser " ( ? +P < a > @@ -22883,7 +22959,7 @@ span 0 . . -7 +8 ) kind : @@ -22894,12 +22970,7 @@ GroupKind : : CaptureName -{ -starts_with_p -: -false -name -: +( ast : : @@ -22909,10 +22980,10 @@ span : span ( -3 +4 . . -4 +5 ) name : @@ -22926,7 +22997,7 @@ index : 1 } -} +) ast : Box @@ -22939,7 +23010,7 @@ lit ' z ' -5 +6 ) ) } @@ -22957,7 +23028,7 @@ parser ? P < -a +abc > z ) @@ -22986,7 +23057,7 @@ span 0 . . -8 +10 ) kind : @@ -22997,12 +23068,7 @@ GroupKind : : CaptureName -{ -starts_with_p -: -true -name -: +( ast : : @@ -23015,21 +23081,21 @@ span 4 . . -5 +7 ) name : s ( " -a +abc " ) index : 1 } -} +) ast : Box @@ -23042,7 +23108,7 @@ lit ' z ' -6 +8 ) ) } @@ -23060,7 +23126,7 @@ parser ? P < -abc +a_1 > z ) @@ -23100,12 +23166,7 @@ GroupKind : : CaptureName -{ -starts_with_p -: -true -name -: +( ast : : @@ -23125,14 +23186,14 @@ name s ( " -abc +a_1 " ) index : 1 } -} +) ast : Box @@ -23163,7 +23224,9 @@ parser ? P < -a_1 +a +. +1 > z ) @@ -23203,12 +23266,7 @@ GroupKind : : CaptureName -{ -starts_with_p -: -true -name -: +( ast : : @@ -23228,14 +23286,16 @@ name s ( " -a_1 +a +. +1 " ) index : 1 } -} +) ast : Box @@ -23267,8 +23327,9 @@ parser P < a -. +[ 1 +] > z ) @@ -23297,7 +23358,7 @@ span 0 . . -10 +11 ) kind : @@ -23308,12 +23369,7 @@ GroupKind : : CaptureName -{ -starts_with_p -: -true -name -: +( ast : : @@ -23326,7 +23382,7 @@ span 4 . . -7 +8 ) name : @@ -23334,15 +23390,16 @@ s ( " a -. +[ 1 +] " ) index : 1 } -} +) ast : Box @@ -23355,7 +23412,7 @@ lit ' z ' -8 +9 ) ) } @@ -23373,59 +23430,63 @@ parser ? P < -a -[ -1 -] -> -z -) " ) . parse ( ) -Ok -( -Ast -: -: -Group +. +unwrap_err ( -ast -: -: -Group +) +TestError { span : span ( -0 +4 . . -11 +4 ) kind : ast : : -GroupKind -: -: -CaptureName -{ -starts_with_p -: -true -name -: -ast +ErrorKind : : -CaptureName +GroupNameUnexpectedEof +} +) +; +assert_eq +! +( +parser +( +" +( +? +P +< +> +z +) +" +) +. +parse +( +) +. +unwrap_err +( +) +TestError { span : @@ -23434,43 +23495,19 @@ span 4 . . -8 -) -name -: -s -( -" -a -[ -1 -] -" +4 ) -index +kind : -1 -} -} ast : -Box : +ErrorKind : -new -( -lit -( -' -z -' -9 -) -) +: +GroupNameEmpty } ) -) -) ; assert_eq ! @@ -23483,608 +23520,26 @@ parser P < a -> -) " ) . parse ( ) -Ok +. +unwrap_err ( -Ast -: -: -Group -( -ast -: -: -Group -{ -span -: -Span -: -: -new -( -Position -: -: -new -( -0 -1 -1 -) -Position -: -: -new -( -9 -1 -9 -) -) -kind -: -ast -: -: -GroupKind -: -: -CaptureName -{ -starts_with_p -: -true -name -: -ast -: -: -CaptureName -{ -span -: -Span -: -: -new -( -Position -: -: -new -( -4 -1 -5 -) -Position -: -: -new -( -7 -1 -7 -) -) -name -: -s -( -" -a -" -) -index -: -1 -} -} -ast -: -Box -: -: -new -( -Ast -: -: -Empty -( -Span -: -: -new -( -Position -: -: -new -( -8 -1 -8 -) -Position -: -: -new -( -8 -1 -8 -) -) -) -) -} -) -) -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -> -) -" -) -. -parse -( -) -Ok -( -Ast -: -: -Group -( -ast -: -: -Group -{ -span -: -Span -: -: -new -( -Position -: -: -new -( -0 -1 -1 -) -Position -: -: -new -( -12 -1 -9 -) -) -kind -: -ast -: -: -GroupKind -: -: -CaptureName -{ -starts_with_p -: -true -name -: -ast -: -: -CaptureName -{ -span -: -Span -: -: -new -( -Position -: -: -new -( -4 -1 -5 -) -Position -: -: -new -( -10 -1 -7 -) -) -name -: -s -( -" -" -) -index -: -1 -} -} -ast -: -Box -: -: -new -( -Ast -: -: -Empty -( -Span -: -: -new -( -Position -: -: -new -( -11 -1 -8 -) -Position -: -: -new -( -11 -1 -8 -) -) -) -) -} -) -) -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -" -) -. -parse -( -) -. -unwrap_err -( -) -TestError -{ -span -: -span -( -4 -. -. -4 -) -kind -: -ast -: -: -ErrorKind -: -: -GroupNameUnexpectedEof -} -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -> -z -) -" -) -. -parse -( -) -. -unwrap_err -( -) -TestError -{ -span -: -span -( -4 -. -. -4 -) -kind -: -ast -: -: -ErrorKind -: -: -GroupNameEmpty -} -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -a -" -) -. -parse -( -) -. -unwrap_err -( -) -TestError -{ -span -: -span -( -5 -. -. -5 -) -kind -: -ast -: -: -ErrorKind -: -: -GroupNameUnexpectedEof -} -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -ab -" -) -. -parse -( -) -. -unwrap_err -( -) -TestError -{ -span -: -span -( -6 -. -. -6 -) -kind -: -ast -: -: -ErrorKind -: -: -GroupNameUnexpectedEof -} -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -0a -" -) -. -parse -( -) -. -unwrap_err -( -) -TestError -{ -span -: -span -( -4 -. -. -5 -) -kind -: -ast -: -: -ErrorKind -: -: -GroupNameInvalid -} -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -~ -" -) -. -parse -( -) -. -unwrap_err -( -) -TestError -{ -span +) +TestError +{ +span : span ( -4 -. -. 5 -) -kind -: -ast -: -: -ErrorKind -: -: -GroupNameInvalid -} -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -abc -~ -" -) -. -parse -( -) -. -unwrap_err -( -) -TestError -{ -span -: -span -( -7 . . -8 +5 ) kind : @@ -24094,7 +23549,7 @@ ast ErrorKind : : -GroupNameInvalid +GroupNameUnexpectedEof } ) ; @@ -24108,18 +23563,7 @@ parser ? P < -a -> -y -) -( -? -P -< -a -> -z -) +ab " ) . @@ -24136,10 +23580,10 @@ span : span ( -12 +6 . . -13 +6 ) kind : @@ -24149,18 +23593,7 @@ ast ErrorKind : : -GroupNameDuplicate -{ -original -: -span -( -4 -. -. -5 -) -} +GroupNameUnexpectedEof } ) ; @@ -24174,9 +23607,7 @@ parser ? P < -5 -> -) +0a " ) . @@ -24220,9 +23651,7 @@ parser ? P < -5a -> -) +~ " ) . @@ -24266,133 +23695,8 @@ parser ? P < -> -) -" -) -. -parse -( -) -. -unwrap_err -( -) -TestError -{ -span -: -Span -: -: -new -( -Position -: -: -new -( -4 -1 -5 -) -Position -: -: -new -( -6 -1 -6 -) -) -kind -: -ast -: -: -ErrorKind -: -: -GroupNameInvalid -} -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -a -> -) -" -) -. -parse -( -) -. -unwrap_err -( -) -TestError -{ -span -: -Span -: -: -new -( -Position -: -: -new -( -4 -1 -5 -) -Position -: -: -new -( -6 -1 -6 -) -) -kind -: -ast -: -: -ErrorKind -: -: -GroupNameInvalid -} -) -; -assert_eq -! -( -parser -( -" -( -? -P -< -> -) +abc +~ " ) . @@ -24400,36 +23704,19 @@ parse ( ) . -unwrap_err -( -) -TestError -{ -span -: -Span -: -: -new -( -Position -: -: -new +unwrap_err ( -4 -1 -5 ) -Position -: +TestError +{ +span : -new +span ( 7 -1 -6 -) +. +. +8 ) kind : @@ -24455,6 +23742,15 @@ P < a > +y +) +( +? +P +< +a +> +z ) " ) @@ -24470,29 +23766,12 @@ TestError { span : -Span -: -: -new -( -Position -: -: -new -( -5 -1 -6 -) -Position -: -: -new +span ( -8 -1 -7 -) +12 +. +. +13 ) kind : @@ -24502,7 +23781,18 @@ ast ErrorKind : : -GroupNameInvalid +GroupNameDuplicate +{ +original +: +span +( +4 +. +. +5 +) +} } ) ; @@ -25136,171 +24426,6 @@ assert_eq parser ( " -i -- -sR -: -" -) -. -parse_flags -( -) -Ok -( -ast -: -: -Flags -{ -span -: -span -( -0 -. -. -4 -) -items -: -vec -! -[ -ast -: -: -FlagsItem -{ -span -: -span -( -0 -. -. -1 -) -kind -: -ast -: -: -FlagsItemKind -: -: -Flag -( -ast -: -: -Flag -: -: -CaseInsensitive -) -} -ast -: -: -FlagsItem -{ -span -: -span -( -1 -. -. -2 -) -kind -: -ast -: -: -FlagsItemKind -: -: -Negation -} -ast -: -: -FlagsItem -{ -span -: -span -( -2 -. -. -3 -) -kind -: -ast -: -: -FlagsItemKind -: -: -Flag -( -ast -: -: -Flag -: -: -DotMatchesNewLine -) -} -ast -: -: -FlagsItem -{ -span -: -span -( -3 -. -. -4 -) -kind -: -ast -: -: -FlagsItemKind -: -: -Flag -( -ast -: -: -Flag -: -: -CRLF -) -} -] -} -) -) -; -assert_eq -! -( -parser -( -" isU " ) @@ -25615,42 +24740,17 @@ FlagDanglingNegation test ] fn -parse_flag -( -) -{ -assert_eq -! -( -parser -( -" -i -" -) -. -parse_flag -( -) -Ok -( -ast -: -: -Flag -: -: -CaseInsensitive -) +parse_flag +( ) -; +{ assert_eq ! ( parser ( " -m +i " ) . @@ -25665,7 +24765,7 @@ ast Flag : : -MultiLine +CaseInsensitive ) ) ; @@ -25675,7 +24775,7 @@ assert_eq parser ( " -s +m " ) . @@ -25690,7 +24790,7 @@ ast Flag : : -DotMatchesNewLine +MultiLine ) ) ; @@ -25700,7 +24800,7 @@ assert_eq parser ( " -U +s " ) . @@ -25715,7 +24815,7 @@ ast Flag : : -SwapGreed +DotMatchesNewLine ) ) ; @@ -25725,7 +24825,7 @@ assert_eq parser ( " -u +U " ) . @@ -25740,7 +24840,7 @@ ast Flag : : -Unicode +SwapGreed ) ) ; @@ -25750,7 +24850,7 @@ assert_eq parser ( " -R +u " ) . @@ -25765,7 +24865,7 @@ ast Flag : : -CRLF +Unicode ) ) ; @@ -26230,7 +25330,7 @@ ast LiteralKind : : -Meta +Punctuation c : ' @@ -26622,96 +25722,6 @@ NotWordBoundary ) ) ; -for -c -in -[ -' -! -' -' -' -' -% -' -' -" -' -' -\ -' -' -' -/ -' -' -' -] -{ -let -pat -= -format -! -( -r -" -\ -{ -} -" -c -) -; -assert_eq -! -( -parser -( -& -pat -) -. -parse_primitive -( -) -Ok -( -Primitive -: -: -Literal -( -ast -: -: -Literal -{ -span -: -span -( -0 -. -. -2 -) -kind -: -ast -: -: -LiteralKind -: -: -Superfluous -c -} -) -) -) -; -} assert_eq ! ( @@ -26720,7 +25730,6 @@ parser r " \ -e " ) . @@ -26740,7 +25749,7 @@ span 0 . . -2 +1 ) kind : @@ -26750,7 +25759,7 @@ ast ErrorKind : : -EscapeUnrecognized +EscapeUnexpectedEof } ) ; @@ -26796,131 +25805,6 @@ EscapeUnrecognized } ) ; -assert_eq -! -( -parser -( -r -" -\ -< -" -) -. -parse_escape -( -) -. -unwrap_err -( -) -TestError -{ -span -: -span -( -0 -. -. -2 -) -kind -: -ast -: -: -ErrorKind -: -: -EscapeUnrecognized -} -) -; -assert_eq -! -( -parser -( -r -" -\ -> -" -) -. -parse_escape -( -) -. -unwrap_err -( -) -TestError -{ -span -: -span -( -0 -. -. -2 -) -kind -: -ast -: -: -ErrorKind -: -: -EscapeUnrecognized -} -) -; -assert_eq -! -( -parser -( -r -" -\ -" -) -. -parse_escape -( -) -. -unwrap_err -( -) -TestError -{ -span -: -span -( -0 -. -. -1 -) -kind -: -ast -: -: -ErrorKind -: -: -EscapeUnexpectedEof -} -) -; } # [ @@ -27098,6 +25982,11 @@ LiteralKind Octal c : +: +: +std +: +: char : : @@ -27602,6 +26491,11 @@ X ) c : +: +: +std +: +: char : : @@ -27767,6 +26661,11 @@ let c = match +: +: +std +: +: char : : @@ -28142,6 +27041,11 @@ let c = match +: +: +std +: +: char : : @@ -30907,7 +29811,7 @@ ast LiteralKind : : -Meta +Punctuation c : ' @@ -31031,7 +29935,7 @@ ast LiteralKind : : -Meta +Punctuation c : ' @@ -32502,7 +31406,7 @@ ast LiteralKind : : -Meta +Punctuation c : ' @@ -32629,7 +31533,7 @@ ast LiteralKind : : -Meta +Punctuation c : ' @@ -33109,7 +32013,7 @@ ast LiteralKind : : -Meta +Punctuation c : ' @@ -33218,7 +32122,7 @@ ast LiteralKind : : -Meta +Punctuation c : ' diff --git a/third_party/rust/regex-syntax/src/ast/print.rs b/third_party/rust/regex-syntax/src/ast/print.rs index 3e8aff3533040..98ad62626f69a 100644 --- a/third_party/rust/regex-syntax/src/ast/print.rs +++ b/third_party/rust/regex-syntax/src/ast/print.rs @@ -1,5 +1,5 @@ use -core +std : : fmt @@ -11,8 +11,6 @@ crate ast : : -{ -self visitor : : @@ -20,6 +18,16 @@ visitor self Visitor } +; +use +crate +: +: +ast +: +: +{ +self Ast } ; @@ -933,43 +941,25 @@ write_str " ) CaptureName -{ +( ref -name -starts_with_p -} +x +) = > { -let -start -= -if -starts_with_p -{ -" -( -? -P -< -" -} -else -{ -" -( -? -< -" -} -; self . wtr . write_str ( -start +" +( +? +P +< +" ) ? ; @@ -980,7 +970,7 @@ wtr write_str ( & -name +x . name ) @@ -1421,9 +1411,7 @@ ast . c ) -Meta -| -Superfluous +Punctuation = > write @@ -1459,15 +1447,11 @@ r o } " -u32 -: -: -from -( ast . c -) +as +u32 ) HexFixed ( @@ -1497,15 +1481,11 @@ x 02X } " -u32 -: -: -from -( ast . c -) +as +u32 ) } HexFixed @@ -1536,15 +1516,11 @@ u 04X } " -u32 -: -: -from -( ast . c -) +as +u32 ) } HexFixed @@ -1575,15 +1551,11 @@ U 08X } " -u32 -: -: -from -( ast . c -) +as +u32 ) } HexBrace @@ -1618,15 +1590,11 @@ X } } " -u32 -: -: -from -( ast . c -) +as +u32 ) } HexBrace @@ -1661,15 +1629,11 @@ X } } " -u32 -: -: -from -( ast . c -) +as +u32 ) } HexBrace @@ -1704,15 +1668,11 @@ X } } " -u32 -: -: -from -( ast . c -) +as +u32 ) } Special @@ -2243,22 +2203,6 @@ u Flag : : -CRLF -= -> -self -. -wtr -. -write_str -( -" -R -" -) -Flag -: -: IgnoreWhitespace = > @@ -3417,13 +3361,10 @@ mod tests { use -alloc -: -: -string +super : : -String +Printer ; use crate @@ -3437,12 +3378,6 @@ parse : ParserBuilder ; -use -super -: -: -* -; fn roundtrip ( @@ -4194,19 +4129,6 @@ roundtrip ( " ( -? -< -foo -> -a -) -" -) -; -roundtrip -( -" -( a ) " diff --git a/third_party/rust/regex-syntax/src/ast/visitor.rs b/third_party/rust/regex-syntax/src/ast/visitor.rs index eaf0145ff3ae1..d706fa6ddf25e 100644 --- a/third_party/rust/regex-syntax/src/ast/visitor.rs +++ b/third_party/rust/regex-syntax/src/ast/visitor.rs @@ -1,14 +1,8 @@ use -alloc +std : : -{ -vec -vec -: -: -Vec -} +fmt ; use crate @@ -144,31 +138,6 @@ Ok ) } fn -visit_concat_in -( -& -mut -self -) -- -> -Result -< -( -) -Self -: -: -Err -> -{ -Ok -( -( -) -) -} -fn visit_class_set_item_pre ( & @@ -815,9 +784,8 @@ pop frame ) { -match -x -{ +if +let Frame : : @@ -827,7 +795,7 @@ Alternation . } = -> +x { visitor . @@ -837,31 +805,6 @@ visit_alternation_in ? ; } -Frame -: -: -Concat -{ -. -. -} -= -> -{ -visitor -. -visit_concat_in -( -) -? -; -} -_ -= -> -{ -} -} ast = x @@ -2340,9 +2283,6 @@ impl ' a > -core -: -: fmt : : @@ -2363,9 +2303,6 @@ f : & mut -core -: -: fmt : : @@ -2377,9 +2314,6 @@ _ ) - > -core -: -: fmt : : @@ -2463,9 +2397,6 @@ impl ' a > -core -: -: fmt : : @@ -2486,9 +2417,6 @@ f : & mut -core -: -: fmt : : @@ -2500,9 +2428,6 @@ _ ) - > -core -: -: fmt : : diff --git a/third_party/rust/regex-syntax/src/debug.rs b/third_party/rust/regex-syntax/src/debug.rs deleted file mode 100644 index a2d7a30d3e5fa..0000000000000 --- a/third_party/rust/regex-syntax/src/debug.rs +++ /dev/null @@ -1,756 +0,0 @@ -pub -( -crate -) -struct -Byte -( -pub -( -crate -) -u8 -) -; -impl -core -: -: -fmt -: -: -Debug -for -Byte -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -if -self -. -0 -= -= -b -' -' -{ -return -write -! -( -f -" -' -' -" -) -; -} -let -mut -bytes -= -[ -0u8 -; -10 -] -; -let -mut -len -= -0 -; -for -( -i -mut -b -) -in -core -: -: -ascii -: -: -escape_default -( -self -. -0 -) -. -enumerate -( -) -{ -if -i -> -= -2 -& -& -b -' -a -' -< -= -b -& -& -b -< -= -b -' -f -' -{ -b -- -= -32 -; -} -bytes -[ -len -] -= -b -; -len -+ -= -1 -; -} -write -! -( -f -" -{ -} -" -core -: -: -str -: -: -from_utf8 -( -& -bytes -[ -. -. -len -] -) -. -unwrap -( -) -) -} -} -pub -( -crate -) -struct -Bytes -< -' -a -> -( -pub -( -crate -) -& -' -a -[ -u8 -] -) -; -impl -< -' -a -> -core -: -: -fmt -: -: -Debug -for -Bytes -< -' -a -> -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -\ -" -" -) -? -; -let -mut -bytes -= -self -. -0 -; -while -let -Some -( -result -) -= -utf8_decode -( -bytes -) -{ -let -ch -= -match -result -{ -Ok -( -ch -) -= -> -ch -Err -( -byte -) -= -> -{ -write -! -( -f -r -" -\ -x -{ -: -02x -} -" -byte -) -? -; -bytes -= -& -bytes -[ -1 -. -. -] -; -continue -; -} -} -; -bytes -= -& -bytes -[ -ch -. -len_utf8 -( -) -. -. -] -; -match -ch -{ -' -\ -0 -' -= -> -write -! -( -f -" -\ -\ -0 -" -) -? -' -\ -x01 -' -. -. -= -' -\ -x08 -' -| -' -\ -x0b -' -| -' -\ -x0c -' -| -' -\ -x0e -' -. -. -= -' -\ -x19 -' -| -' -\ -x7f -' -= -> -{ -write -! -( -f -" -\ -\ -x -{ -: -02x -} -" -u32 -: -: -from -( -ch -) -) -? -; -} -' -\ -n -' -| -' -\ -r -' -| -' -\ -t -' -| -_ -= -> -{ -write -! -( -f -" -{ -} -" -ch -. -escape_debug -( -) -) -? -; -} -} -} -write -! -( -f -" -\ -" -" -) -? -; -Ok -( -( -) -) -} -} -pub -( -crate -) -fn -utf8_decode -( -bytes -: -& -[ -u8 -] -) -- -> -Option -< -Result -< -char -u8 -> -> -{ -fn -len -( -byte -: -u8 -) -- -> -Option -< -usize -> -{ -if -byte -< -= -0x7F -{ -return -Some -( -1 -) -; -} -else -if -byte -& -0b1100_0000 -= -= -0b1000_0000 -{ -return -None -; -} -else -if -byte -< -= -0b1101_1111 -{ -Some -( -2 -) -} -else -if -byte -< -= -0b1110_1111 -{ -Some -( -3 -) -} -else -if -byte -< -= -0b1111_0111 -{ -Some -( -4 -) -} -else -{ -None -} -} -if -bytes -. -is_empty -( -) -{ -return -None -; -} -let -len -= -match -len -( -bytes -[ -0 -] -) -{ -None -= -> -return -Some -( -Err -( -bytes -[ -0 -] -) -) -Some -( -len -) -if -len -> -bytes -. -len -( -) -= -> -return -Some -( -Err -( -bytes -[ -0 -] -) -) -Some -( -1 -) -= -> -return -Some -( -Ok -( -char -: -: -from -( -bytes -[ -0 -] -) -) -) -Some -( -len -) -= -> -len -} -; -match -core -: -: -str -: -: -from_utf8 -( -& -bytes -[ -. -. -len -] -) -{ -Ok -( -s -) -= -> -Some -( -Ok -( -s -. -chars -( -) -. -next -( -) -. -unwrap -( -) -) -) -Err -( -_ -) -= -> -Some -( -Err -( -bytes -[ -0 -] -) -) -} -} diff --git a/third_party/rust/regex-syntax/src/error.rs b/third_party/rust/regex-syntax/src/error.rs index df272172515e6..0db9334280419 100644 --- a/third_party/rust/regex-syntax/src/error.rs +++ b/third_party/rust/regex-syntax/src/error.rs @@ -1,36 +1,55 @@ use -alloc +std : : -{ -format -string +cmp +; +use +std : : -{ -String -ToString -} -vec -vec +error +; +use +std : : -Vec -} +fmt +; +use +std +: +: +result ; use crate : : -{ ast +; +use +crate +: +: hir -} ; -# -[ -non_exhaustive -] +pub +type +Result +< +T +> += +result +: +: +Result +< +T +Error +> +; # [ derive @@ -59,6 +78,14 @@ hir : Error ) +# +[ +doc +( +hidden +) +] +__Nonexhaustive } impl From @@ -128,33 +155,77 @@ err ) } } +impl +error +: +: +Error +for +Error +{ # [ -cfg +allow ( -feature -= -" -std -" +deprecated ) ] -impl -std +fn +description +( +& +self +) +- +> +& +str +{ +match +* +self +{ +Error : : -error +Parse +( +ref +x +) += +> +x +. +description +( +) +Error : : -Error -for -Error -{ +Translate +( +ref +x +) += +> +x +. +description +( +) +_ += +> +unreachable +! +( +) +} +} } impl -core -: -: fmt : : @@ -171,9 +242,6 @@ f : & mut -core -: -: fmt : : @@ -185,9 +253,6 @@ _ ) - > -core -: -: fmt : : @@ -229,6 +294,13 @@ fmt ( f ) +_ += +> +unreachable +! +( +) } } } @@ -436,17 +508,11 @@ impl e E : -core -: -: fmt : : Display > -core -: -: fmt : : @@ -468,9 +534,6 @@ f : & mut -core -: -: fmt : : @@ -482,9 +545,6 @@ _ ) - > -core -: -: fmt : : @@ -823,9 +883,6 @@ from_formatter e E : -core -: -: fmt : : @@ -1329,9 +1386,6 @@ in 0 . . -core -: -: cmp : : @@ -1469,7 +1523,9 @@ usize > String { -core +: +: +std : : iter @@ -1500,15 +1556,6 @@ mod tests { use -alloc -: -: -string -: -: -ToString -; -use crate : : diff --git a/third_party/rust/regex-syntax/src/hir/interval.rs b/third_party/rust/regex-syntax/src/hir/interval.rs index b81d14556eadc..6ed5970cd31d9 100644 --- a/third_party/rust/regex-syntax/src/hir/interval.rs +++ b/third_party/rust/regex-syntax/src/hir/interval.rs @@ -1,25 +1,35 @@ use -core +std : : -{ char +; +use +std +: +: cmp +; +use +std +: +: fmt : : Debug -slice -} ; use -alloc +std : : -vec +slice +; +use +std : : -Vec +u8 ; use crate @@ -33,6 +43,8 @@ derive ( Clone Debug +Eq +PartialEq ) ] pub @@ -48,66 +60,6 @@ Vec < I > -folded -: -bool -} -impl -< -I -: -Interval -> -Eq -for -IntervalSet -< -I -> -{ -} -impl -< -I -: -Interval -> -PartialEq -for -IntervalSet -< -I -> -{ -fn -eq -( -& -self -other -: -& -IntervalSet -< -I -> -) -- -> -bool -{ -self -. -ranges -. -eq -( -& -other -. -ranges -) -} } impl < @@ -146,13 +98,13 @@ I > { let +mut +set += +IntervalSet +{ ranges : -Vec -< -I -> -= intervals . into_iter @@ -162,24 +114,6 @@ into_iter collect ( ) -; -let -folded -= -ranges -. -is_empty -( -) -; -let -mut -set -= -IntervalSet -{ -ranges -folded } ; set @@ -217,12 +151,6 @@ canonicalize ( ) ; -self -. -folded -= -false -; } pub fn @@ -290,19 +218,6 @@ unicode CaseFoldError > { -if -self -. -folded -{ -return -Ok -( -( -) -) -; -} let len = @@ -370,12 +285,6 @@ canonicalize ( ) ; -self -. -folded -= -true -; Ok ( ( @@ -398,28 +307,6 @@ I > ) { -if -other -. -ranges -. -is_empty -( -) -| -| -self -. -ranges -= -= -other -. -ranges -{ -return -; -} self . ranges @@ -438,19 +325,6 @@ canonicalize ( ) ; -self -. -folded -= -self -. -folded -& -& -other -. -folded -; } pub fn @@ -497,12 +371,6 @@ clear ( ) ; -self -. -folded -= -true -; return ; } @@ -690,19 +558,6 @@ drain drain_end ) ; -self -. -folded -= -self -. -folded -& -& -other -. -folded -; } pub fn @@ -1090,19 +945,6 @@ drain drain_end ) ; -self -. -folded -= -self -. -folded -& -& -other -. -folded -; } pub fn @@ -1214,12 +1056,6 @@ max ) ) ; -self -. -folded -= -true -; return ; } @@ -2732,13 +2568,9 @@ self > u32 { -u32 -: -: -from -( self -) +as +u32 } fn increment @@ -2824,13 +2656,9 @@ self > u32 { -u32 -: -: -from -( self -) +as +u32 } fn increment @@ -2868,12 +2696,10 @@ char : from_u32 ( -u32 -: -: -from ( c +as +u32 ) . checked_add @@ -2927,12 +2753,10 @@ char : from_u32 ( -u32 -: -: -from ( c +as +u32 ) . checked_sub diff --git a/third_party/rust/regex-syntax/src/hir/literal.rs b/third_party/rust/regex-syntax/src/hir/literal/mod.rs similarity index 52% rename from third_party/rust/regex-syntax/src/hir/literal.rs rename to third_party/rust/regex-syntax/src/hir/literal/mod.rs index fabba22b6b79a..02ea8bee2abce 100644 --- a/third_party/rust/regex-syntax/src/hir/literal.rs +++ b/third_party/rust/regex-syntax/src/hir/literal/mod.rs @@ -1,27 +1,32 @@ use -core +std : : -{ cmp -mem -num +; +use +std : : -NonZeroUsize -} +fmt ; use -alloc +std : : -{ -vec -vec +iter +; +use +std : : -Vec -} +mem +; +use +std +: +: +ops ; use crate @@ -33,6 +38,7 @@ hir { self Hir +HirKind } ; # @@ -40,4521 +46,4383 @@ Hir derive ( Clone -Debug +Eq +PartialEq ) ] pub struct -Extractor +Literals { -kind +lits : -ExtractKind -limit_class +Vec +< +Literal +> +limit_size : usize -limit_repeat +limit_class : usize -limit_literal_len +} +# +[ +derive +( +Clone +Eq +Ord +) +] +pub +struct +Literal +{ +v : -usize -limit_total +Vec +< +u8 +> +cut : -usize +bool } impl -Extractor +Literals { pub fn -new +empty ( ) - > -Extractor +Literals { -Extractor +Literals { -kind -: -ExtractKind +lits : +vec +! +[ +] +limit_size : -Prefix +250 limit_class : 10 -limit_repeat -: -10 -limit_literal_len -: -100 -limit_total -: -250 } } pub fn -extract +prefixes ( -& -self -hir +expr : & Hir ) - > -Seq -{ -use -crate -: -: -hir -: -: -HirKind -: -: -* -; -match -* -hir -. -kind -( -) +Literals { -Empty -| -Look -( -_ -) +let +mut +lits = -> -Seq -: -: -singleton -( -self +Literals : : -Literal -: -: -exact +empty ( -vec -! -[ -] ) +; +lits +. +union_prefixes +( +expr ) -Literal +; +lits +} +pub +fn +suffixes ( -hir +expr : -: -Literal -( -ref -bytes -) +& +Hir ) -= +- > +Literals { let mut -seq +lits = -Seq -: -: -singleton -( -self -: -: -Literal +Literals : : -exact -( -bytes -. -to_vec +empty ( ) -) -) ; -self +lits . -enforce_literal_len +union_suffixes ( -& -mut -seq +expr ) ; -seq +lits } -Class -( -hir -: -: -Class -: -: -Unicode +pub +fn +limit_size ( -ref -cls -) +& +self ) -= +- > +usize { self . -extract_class_unicode -( -cls -) +limit_size } -Class +pub +fn +set_limit_size ( -hir -: -: -Class -: +& +mut +self +size : -Bytes -( -ref -cls -) +usize ) -= +- > +& +mut +Literals +{ self . -extract_class_bytes -( -cls -) -Repetition -( -ref -rep -) +limit_size = -> +size +; self -. -extract_repetition -( -rep -) -Capture -( -hir -: -: -Capture -{ -ref -sub -. -. } +pub +fn +limit_class +( +& +self ) -= +- > +usize +{ self . -extract -( -sub -) -Concat +limit_class +} +pub +fn +set_limit_class ( -ref -hirs +& +mut +self +size +: +usize ) -= +- > -match +& +mut +Literals +{ self . -kind -{ -ExtractKind -: -: -Prefix +limit_class = -> +size +; self -. -extract_concat -( -hirs -. -iter +} +pub +fn +literals ( +& +self ) -) -ExtractKind -: -: -Suffix -= +- > +& +[ +Literal +] +{ +& self . -extract_concat +lits +} +pub +fn +min_len ( -hirs +& +self +) +- +> +Option +< +usize +> +{ +let +mut +min += +None +; +for +lit +in +& +self . -iter +lits +{ +match +min +{ +None += +> +min += +Some ( -) +lit . -rev +len ( ) ) -} -Alternation +Some +( +m +) +if +lit +. +len ( -ref -hirs ) +< +m = > -{ -self -. -extract_alternation +min += +Some ( -hirs +lit . -iter +len ( ) ) +_ += +> +{ } } } +min +} pub fn -kind +all_complete ( & -mut self -kind -: -ExtractKind ) - > -& -mut -Extractor +bool { +! self . -kind -= -kind -; -self -} -pub -fn -limit_class +lits +. +is_empty ( -& -mut -self -limit -: -usize ) -- -> & -mut -Extractor -{ +& self . -limit_class -= -limit -; -self +lits +. +iter +( +) +. +all +( +| +l +| +! +l +. +is_cut +( +) +) } pub fn -limit_repeat +any_complete ( & -mut self -limit -: -usize ) - > -& -mut -Extractor +bool { self . -limit_repeat -= -limit -; -self +lits +. +iter +( +) +. +any +( +| +lit +| +! +lit +. +is_cut +( +) +) } pub fn -limit_literal_len +contains_empty ( & -mut self -limit -: -usize ) - > -& -mut -Extractor +bool { self . -limit_literal_len -= -limit -; -self +lits +. +iter +( +) +. +any +( +| +lit +| +lit +. +is_empty +( +) +) } pub fn -limit_total +is_empty ( & -mut self -limit -: -usize ) - > -& -mut -Extractor +bool { self . -limit_total -= -limit -; +lits +. +is_empty +( +) +| +| self +. +lits +. +iter +( +) +. +all +( +| +lit +| +lit +. +is_empty +( +) +) } +pub fn -extract_concat -< -' -a -I -: -Iterator -< -Item -= -& -' -a -Hir -> -> +to_empty ( & self -it -: -I ) - > -Seq +Literals { let mut -seq +lits = -Seq -: -: -singleton -( -self +Literals : : -Literal -: -: -exact +empty ( -vec -! -[ -] -) ) ; -for -hir -in -it -{ -if -seq +lits . -is_inexact +set_limit_size ( -) -{ -break -; -} -seq -= self . -cross +limit_size +) +. +set_limit_class ( -seq -& -mut self . -extract -( -hir -) +limit_class ) ; +lits } -seq -} +pub fn -extract_alternation -< -' -a -I -: -Iterator -< -Item -= -& -' -a -Hir -> -> +longest_common_prefix ( & self -it -: -I ) - > -Seq +& +[ +u8 +] +{ +if +self +. +is_empty +( +) { +return +& +[ +] +; +} +let +lit0 += +& +* +self +. +lits +[ +0 +] +; let mut -seq +len = -Seq -: -: -empty +lit0 +. +len ( ) ; for -hir +lit in -it +& +self +. +lits +[ +1 +. +. +] { -if -! -seq +len += +cmp +: +: +min +( +len +lit . -is_finite +iter ( ) -{ -break -; -} -seq -= -self . -union +zip +( +lit0 +) +. +take_while ( -seq +| & -mut -self +( +a +b +) +| +a += += +b +) . -extract +count ( -hir ) ) ; } -seq +& +self +. +lits +[ +0 +] +[ +. +. +len +] } +pub fn -extract_repetition +longest_common_suffix ( & self -rep -: -& -hir -: -: -Repetition ) - > -Seq +& +[ +u8 +] { -let -mut -subseq -= +if self . -extract +is_empty ( -& -rep -. -sub ) -; -match -* -rep -{ -hir -: -: -Repetition { -min -: -0 -max -greedy -. -. +return +& +[ +] +; } +let +lit0 = -> -{ -if -max -! -= -Some -( -1 -) -{ -subseq +& +* +self . -make_inexact -( -) +lits +[ +0 +] ; -} let mut -empty +len = -Seq -: -: -singleton -( -Literal -: -: -exact +lit0 +. +len ( -vec -! -[ -] -) ) ; -if -! -greedy +for +lit +in +& +self +. +lits +[ +1 +. +. +] { -mem +len += +cmp : : -swap +min +( +len +lit +. +iter ( -& -mut -subseq -& -mut -empty ) -; -} -self . -union +rev ( -subseq -& -mut -empty -) -} -hir -: -: -Repetition -{ -min -max -: -Some -( -max ) . +zip +( +lit0 . -} -if -min -= -= -max -= -> -{ -assert -! +iter ( -min -> -0 ) -; -let -limit -= -u32 -: -: -try_from -( -self . -limit_repeat +rev +( +) ) . -unwrap_or +take_while ( -u32 -: -: -MAX +| +& +( +a +b ) -; -let -mut -seq +| +a = -Seq -: -: -singleton -( -Literal -: -: -exact += +b +) +. +count ( -vec -! -[ -] ) ) ; -for -_ -in +} +& +self +. +lits +[ 0 +] +[ +self . +lits +[ +0 +] . -cmp -: -: -min +len ( -min -limit ) -{ -if -seq +- +len . -is_inexact -( -) -{ -break -; -} -seq -= -self . -cross +] +} +pub +fn +trim_suffix ( -seq & -mut -subseq -. -clone -( -) +self +num_bytes +: +usize ) -; -} +- +> +Option +< +Literals +> +{ if -usize -: -: -try_from +self +. +min_len ( -min ) . -is_err +map ( -) | +len | -min -> -limit -{ -seq +len +< += +num_bytes +) . -make_inexact +unwrap_or ( +true ) -; -} -seq -} -hir -: -: -Repetition { -min -. -. +return +None +; } +let +mut +new = -> -{ -assert -! +self +. +to_empty ( -min -> -0 ) ; -let -limit -= -u32 -: -: -try_from -( +for +mut +lit +in self . -limit_repeat +lits +. +iter +( ) . -unwrap_or +cloned ( -u32 -: -: -MAX ) -; +{ let -mut -seq +new_len = -Seq -: -: -singleton -( -Literal -: -: -exact +lit +. +len ( -vec -! -[ -] -) ) +- +num_bytes ; -for -_ -in -0 +lit . +truncate +( +new_len +) +; +lit . -cmp -: -: -min +cut ( -min -limit ) -{ -if -seq +; +new +. +lits . -is_inexact +push ( +lit ) -{ -break ; } -seq -= -self +new . -cross -( -seq -& -mut -subseq +lits . -clone +sort ( ) -) ; -} -seq +new +. +lits . -make_inexact +dedup ( ) ; -seq -} -} +Some +( +new +) } +pub fn -extract_class_unicode +unambiguous_prefixes ( & self -cls -: -& -hir -: -: -ClassUnicode ) - > -Seq +Literals { if self . -class_over_limit_unicode -( -cls +lits +. +is_empty +( ) { return -Seq -: -: -infinite +self +. +to_empty ( ) ; } let mut -seq +old = -Seq -: -: -empty +self +. +lits +. +to_vec ( ) ; -for -r -in -cls +let +mut +new += +self . -iter +to_empty ( ) -{ -for -ch -in -r +; +' +OUTER +: +while +let +Some +( +mut +candidate +) += +old . -start +pop ( ) +{ +if +candidate . +is_empty +( +) +{ +continue +; +} +if +new . -= -r +lits . -end +is_empty ( ) { -seq +new +. +lits . push ( -Literal -: -: -from -( -ch -) +candidate ) ; +continue +; } -} -self -. -enforce_literal_len -( +for +lit2 +in & mut -seq +new +. +lits +{ +if +lit2 +. +is_empty +( ) +{ +continue ; -seq } -fn -extract_class_bytes -( -& -self -cls -: +if & -hir -: -: -ClassBytes -) -- -> -Seq +candidate += += +lit2 { +candidate +. +cut += +candidate +. +cut +| +| +lit2 +. +cut +; +lit2 +. +cut += +candidate +. +cut +; +continue +' +OUTER +; +} if -self +candidate +. +len +( +) +< +lit2 . -class_over_limit_bytes +len ( -cls ) { -return -Seq -: -: -infinite +if +let +Some +( +i +) += +position +( +& +candidate +& +lit2 +) +{ +candidate +. +cut ( ) ; -} let mut -seq +lit3 = -Seq -: -: -empty +lit2 +. +clone ( ) ; -for -r -in -cls +lit3 . -iter +truncate ( +i ) -{ -for -b -in -r +; +lit3 . -start +cut ( ) +; +old . -. -= -r -. -end +push ( +lit3 ) -{ -seq +; +lit2 . -push -( -Literal -: -: -from +clear ( -b -) ) ; } } -self -. -enforce_literal_len +else +if +let +Some ( -& -mut -seq +i ) -; -seq -} -fn -class_over_limit_unicode += +position ( & -self -cls -: +lit2 & -hir -: -: -ClassUnicode +candidate ) -- -> -bool { +lit2 +. +cut +( +) +; let mut -count +new_candidate = -0 +candidate +. +clone +( +) ; -for -r -in -cls +new_candidate . -iter +truncate ( +i ) -{ -if -count -> -self +; +new_candidate . -limit_class -{ -return -true +cut +( +) ; -} -count -+ -= -r +old . -len +push ( +new_candidate ) ; -} -count -> -self +candidate . -limit_class -} -fn -class_over_limit_bytes +clear ( -& -self -cls -: -& -hir -: -: -ClassBytes ) -- -> -bool -{ -let -mut -count -= -0 ; -for -r -in -cls +} +if +candidate . -iter +is_empty ( ) { -if -count -> -self -. -limit_class -{ -return -true +continue +' +OUTER ; } -count -+ -= -r +} +new . -len +lits +. +push ( +candidate ) ; } -count -> -self -. -limit_class -} -fn -cross -( -& -self -mut -seq1 -: -Seq -seq2 -: -& -mut -Seq -) -- -> -Seq -{ -if -seq1 +new . -max_cross_len -( -seq2 -) +lits . -map_or +retain ( -false | -len +lit | -len -> -self -. -limit_total -) -{ -seq2 +! +lit . -make_infinite +is_empty ( ) +) ; -} -if -let -ExtractKind -: -: -Suffix -= -self +new . -kind -{ -seq1 +lits . -cross_reverse +sort ( -seq2 ) ; -} -else -{ -seq1 +new +. +lits . -cross_forward +dedup ( -seq2 ) ; +new } -assert -! +pub +fn +unambiguous_suffixes ( -seq1 +& +self +) +- +> +Literals +{ +let +mut +lits += +self . -len +clone ( ) +; +lits . -map_or +reverse ( -true -| -x -| -x -< +) +; +let +mut +unamb = -self +lits . -limit_total -) +unambiguous_prefixes +( ) ; -self +unamb . -enforce_literal_len +reverse ( -& -mut -seq1 ) ; -seq1 +unamb } +pub fn -union +union_prefixes ( & -self mut -seq1 -: -Seq -seq2 +self +expr : & -mut -Seq +Hir ) - > -Seq +bool { -if -seq1 +let +mut +lits += +self . -max_union_len +to_empty ( -seq2 ) -. -map_or +; +prefixes ( -false -| -len -| -len -> -self -. -limit_total +expr +& +mut +lits ) -{ -match -self +; +! +lits . -kind -{ -ExtractKind -: -: -Prefix -= -> -{ -seq1 +is_empty +( +) +& +& +! +lits . -keep_first_bytes +contains_empty ( -4 ) -; -seq2 +& +& +self . -keep_first_bytes +union ( -4 +lits ) -; } -ExtractKind -: +pub +fn +union_suffixes +( +& +mut +self +expr : -Suffix -= +& +Hir +) +- > +bool { -seq1 +let +mut +lits += +self . -keep_last_bytes +to_empty ( -4 ) ; -seq2 -. -keep_last_bytes +suffixes ( -4 +expr +& +mut +lits ) ; -} -} -seq1 +lits . -dedup +reverse ( ) ; -seq2 +! +lits . -dedup +is_empty ( ) -; -if -seq1 +& +& +! +lits . -max_union_len +contains_empty ( -seq2 ) -. -map_or -( -false -| -len -| -len -> +& +& self . -limit_total -) -{ -seq2 -. -make_infinite +union ( +lits ) -; -} } -seq1 -. +pub +fn union ( -seq2 +& +mut +self +lits +: +Literals ) -; -assert -! -( -seq1 +- +> +bool +{ +if +self . -len +num_bytes ( ) ++ +lits . -map_or +num_bytes ( -true -| -x -| -x -< -= +) +> self . -limit_total -) -) +limit_size +{ +return +false ; -seq1 } -fn -enforce_literal_len +if +lits +. +is_empty ( -& -self -seq -: -& -mut -Seq ) { -let -len -= self . -limit_literal_len -; -match -self -. -kind -{ -ExtractKind -: -: -Prefix -= -> -seq +lits . -keep_first_bytes +push ( -len -) -ExtractKind +Literal : : -Suffix -= -> -seq -. -keep_last_bytes +empty ( -len ) -} -} -} -impl -Default -for -Extractor -{ -fn -default -( ) -- -> -Extractor +; +} +else { -Extractor -: -: -new +self +. +lits +. +extend ( +lits +. +lits ) +; } +true } -# -[ -non_exhaustive -] -# -[ -derive -( -Clone -Debug -) -] -pub -enum -ExtractKind -{ -Prefix -Suffix -} -impl -ExtractKind -{ pub fn -is_prefix +cross_product ( & +mut self +lits +: +& +Literals ) - > bool { -matches -! +if +lits +. +is_empty ( -* -self -ExtractKind -: -: -Prefix ) +{ +return +true +; } -pub -fn -is_suffix -( -& +let +mut +size_after +; +if self +. +is_empty +( ) -- -> -bool -{ -matches +| +| ! +self +. +any_complete ( -* +) +{ +size_after += self -ExtractKind -: -: -Suffix +. +num_bytes +( ) -} -} -impl -Default +; for -ExtractKind -{ -fn -default +lits_lit +in +lits +. +literals ( ) -- -> -ExtractKind { -ExtractKind -: -: -Prefix -} -} -# -[ -derive +size_after ++ += +lits_lit +. +len ( -Clone -Eq -PartialEq ) -] -pub -struct -Seq -{ -literals -: -Option -< -Vec -< -Literal -> -> +; } -impl -Seq +} +else { -# -[ -inline -] -pub -fn -empty +size_after += +self +. +lits +. +iter ( ) -- -> -Seq +. +fold +( +0 +| +accum +lit +| { -Seq +accum ++ +if +lit +. +is_cut +( +) { -literals -: -Some +lit +. +len ( -vec -! -[ -] ) } +else +{ +0 } -# -[ -inline -] -pub -fn -infinite +} +) +; +for +lits_lit +in +lits +. +literals ( ) -- -> -Seq -{ -Seq { +for +self_lit +in +self +. literals -: -None -} -} -# -[ -inline -] -pub -fn -singleton ( -lit -: -Literal ) -- -> -Seq { -Seq +if +! +self_lit +. +is_cut +( +) { -literals -: -Some +size_after ++ += +self_lit +. +len ( -vec -! -[ -lit -] ) -} -} -# -[ -inline -] -pub -fn -new -< -I -B -> ++ +lits_lit +. +len ( -it -: -I ) -- -> -Seq -where -I -: -IntoIterator -< -Item -= -B -> -B -: -AsRef -< -[ -u8 -] +; +} +} +} +} +if +size_after > +self +. +limit_size { -it +return +false +; +} +let +mut +base += +self . -into_iter +remove_complete ( ) +; +if +base . -map +is_empty ( -| -b -| +) +{ +base += +vec +! +[ Literal : : -exact +empty ( -b +) +] +; +} +for +lits_lit +in +lits . -as_ref +literals ( ) -) -) +{ +for +mut +self_lit +in +base . -collect +clone ( ) -} -# -[ -inline -] -pub -fn -literals +{ +self_lit +. +extend ( & -self +* +* +lits_lit ) -- -> -Option -< -& -[ -Literal -] -> -{ +; +self_lit +. +cut += +lits_lit +. +cut +; self . -literals +lits . -as_deref +push ( +self_lit ) +; +} +} +true } -# -[ -inline -] pub fn -push +cross_add ( & mut self -lit +bytes : -Literal +& +[ +u8 +] ) +- +> +bool { -let -lits -= -match -self +if +bytes . -literals -{ -None -= -> -return -Some +is_empty ( -ref -mut -lits ) -= -> -lits -} +{ +return +true ; +} if +self +. lits . -last +is_empty ( ) +{ +let +i += +cmp +: +: +min +( +self . -map_or +limit_size +bytes +. +len ( -false -| -m -| -m -= -= -& -lit ) -{ -return +) ; -} +self +. lits . push ( -lit -) -; -} -# +Literal +: +: +new +( +bytes [ -inline +. +. +i ] -pub -fn -make_inexact +. +to_owned ( -& -mut -self ) -{ -let -lits -= -match +) +) +; self . -literals -{ -None -= -> -return -Some -( -ref -mut -lits -) -= -> -lits -} -; -for -lit -in lits +[ +0 +] . -iter_mut -( -) -{ -lit +cut += +i +< +bytes . -make_inexact +len ( ) ; -} -} -# -[ -inline -] -pub -fn -make_infinite -( -& -mut -self -) -{ +return +! self . -literals -= -None -; -} -# +lits [ -inline +0 ] -pub -fn -cross_forward +. +is_cut ( -& -mut -self -other -: -& -mut -Seq ) -{ +; +} let -( -lits1 -lits2 -) +size = -match self . -cross_preamble +num_bytes ( -other ) -{ -None -= -> -return -Some -( +; +if +size ++ +self +. +lits +. +len ( -lits1 -lits2 ) -) -= > -( -lits1 -lits2 -) -} += +self +. +limit_size +{ +return +false ; +} let -newcap +mut +i = -lits1 +1 +; +while +size ++ +( +i +* +self +. +lits . len ( ) +) +< += +self . -saturating_mul -( -lits2 +limit_size +& +& +i +< +bytes . len ( ) -) +{ +i ++ += +1 ; +} for -selflit +lit in -mem -: -: -replace -( -lits1 -Vec -: -: -with_capacity -( -newcap -) -) +& +mut +self +. +lits { if ! -selflit +lit . -is_exact +is_cut ( ) { -lits1 +lit . -push +extend ( -selflit -) -; -continue -; -} -for -otherlit -in -lits2 +& +bytes +[ . -iter -( -) -{ -let -mut -newlit -= -Literal -: -: -exact -( -Vec -: -: -with_capacity -( -selflit . -len -( +i +] ) -+ -otherlit +; +if +i +< +bytes . len ( ) -) -) -; -newlit +{ +lit . -extend +cut ( -& -selflit ) ; -newlit -. -extend +} +} +} +true +} +pub +fn +add ( & -otherlit +mut +self +lit +: +Literal ) -; +- +> +bool +{ if -! -otherlit +self . -is_exact +num_bytes ( ) -{ -newlit ++ +lit . -make_inexact +len ( ) -; -} -lits1 +> +self . -push -( -newlit -) +limit_size +{ +return +false ; } -} -lits2 -. -drain -( -. -. -) -; self . -dedup +lits +. +push ( +lit ) ; +true } -# -[ -inline -] pub fn -cross_reverse +add_char_class ( & mut self -other +cls : & -mut -Seq +hir +: +: +ClassUnicode ) +- +> +bool { -let -( -lits1 -lits2 -) -= -match self . -cross_preamble +_add_char_class ( -other +cls +false ) -{ -None -= -> -return -Some -( +} +fn +add_char_class_reverse ( -lits1 -lits2 -) +& +mut +self +cls +: +& +hir +: +: +ClassUnicode ) -= +- > +bool +{ +self +. +_add_char_class ( -lits1 -lits2 +cls +true ) } -; -let -newcap -= -lits1 -. -len +fn +_add_char_class ( +& +mut +self +cls +: +& +hir +: +: +ClassUnicode +reverse +: +bool ) +- +> +bool +{ +use +std +: +: +char +; +if +self . -saturating_mul +class_exceeds_limits ( -lits2 -. -len +cls_char_count ( +cls ) ) +{ +return +false ; +} let -selflits +mut +base = -mem -: -: -replace +self +. +remove_complete ( -lits1 -Vec +) +; +if +base +. +is_empty +( +) +{ +base += +vec +! +[ +Literal : : -with_capacity +empty ( -newcap -) ) +] ; +} for -( -i -otherlit -) +r in -lits2 +cls . -drain +iter ( -. -. ) -. -enumerate +{ +let ( +s +e ) -{ += +( +r +. +start +as +u32 +r +. +end +as +u32 ++ +1 +) +; for -selflit +c in -selflits -. -iter ( +s +. +. +e ) -{ -if -! -selflit . -is_exact +filter_map ( +char +: +: +from_u32 ) { -if -i -= -= -0 -{ -lits1 -. -push -( -selflit +for +mut +lit +in +base . clone ( ) -) -; -} -continue -; -} +{ let mut -newlit +bytes = -Literal -: -: -exact -( -Vec -: -: -with_capacity -( -otherlit +c . -len +to_string ( ) -+ -selflit . -len +into_bytes ( ) -) -) ; -newlit +if +reverse +{ +bytes . -extend +reverse ( -& -otherlit ) ; -newlit +} +lit . extend ( & -selflit +bytes ) ; -if -! -otherlit -. -is_exact -( -) -{ -newlit +self . -make_inexact -( -) -; -} -lits1 +lits . push ( -newlit +lit ) ; } } -self -. -dedup -( -) -; } +true +} +pub fn -cross_preamble -< -' -a -> +add_byte_class ( & -' -a mut self -other +cls : & -' -a -mut -Seq +hir +: +: +ClassBytes ) - > -Option -< +bool +{ +if +self +. +class_exceeds_limits ( -& -' -a +cls_byte_count +( +cls +) +) +{ +return +false +; +} +let mut -Vec -< -Literal -> -& -' -a -mut -Vec -< -Literal -> -) -> -{ -let -lits2 -= -match -other -. -literals -{ -None +base = -> -{ -if self . -min_literal_len +remove_complete ( ) -= -= -Some +; +if +base +. +is_empty ( -0 ) { -* -self +base = -Seq +vec +! +[ +Literal : : -infinite +empty ( ) +] ; } -else -{ -self +for +r +in +cls . -make_inexact +iter ( ) -; -} -return -None -; -} -Some +{ +let ( -ref -mut -lits +s +e ) = -> -lits -} -; -let -lits1 -= -match -self +( +r . -literals -{ -None -= -> -{ -lits2 +start +as +u32 +r . -drain +end +as +u32 ++ +1 +) +; +for +b +in ( +s . . +e ) -; -return -None -; -} -Some +. +map ( -ref -mut -lits +| +b +| +b +as +u8 ) -= -> -lits -} -; -Some +{ +for +mut +lit +in +base +. +clone ( +) +{ +lit +. +push ( -lits1 -lits2 +b ) +; +self +. +lits +. +push +( +lit ) +; +} +} +} +true } -# -[ -inline -] pub fn -union +cut ( & mut self -other -: -& -mut -Seq ) { -let -lits2 -= -match -other +for +lit +in +& +mut +self . -literals -{ -None -= -> +lits { -self +lit . -make_infinite +cut ( ) ; -return -; } -Some +} +pub +fn +reverse ( -ref +& mut -lits -) -= -> -lits -. -drain -( -. -. +self ) -} -; -let -lits1 -= -match +{ +for +lit +in +& +mut self . -literals +lits { -None -= -> -return -Some +lit +. +reverse ( -ref -mut -lits ) -= -> -lits -} ; -lits1 -. -extend +} +} +pub +fn +clear ( -lits2 +& +mut +self ) -; +{ self . -dedup +lits +. +clear ( ) ; } -# -[ -inline -] -pub fn -union_into_empty +remove_complete ( & mut self -other -: -& -mut -Seq ) +- +> +Vec +< +Literal +> { let -lits2 +mut +base = -other -. -literals -. -as_mut -( -) -. -map +vec +! +[ +] +; +for +lit +in +mem +: +: +replace ( -| -lits -| +& +mut +self +. lits +vec +! +[ +] +) +{ +if +lit . -drain +is_cut ( +) +{ +self . +lits . -) +push +( +lit ) ; -let -lits1 -= -match -self -. -literals +} +else { -None -= -> -return -Some +base +. +push ( -ref -mut -lits +lit ) -= +; +} +} +base +} +fn +num_bytes +( +& +self +) +- > +usize +{ +self +. lits -} -; -let -first_empty -= -match -lits1 . iter ( ) . -position +fold ( +0 | -m +accum +lit | -m +accum ++ +lit . -is_empty +len ( ) ) -{ -None -= -> -return -Some +} +fn +class_exceeds_limits ( -i +& +self +size +: +usize ) -= +- > -i -} -; -let -lits2 -= -match -lits2 +bool { -None -= +if +size > -{ self . -literals -= -None -; +limit_class +{ return +true ; } -Some -( -lits -) +let +new_byte_count = -> -lits -} -; -lits1 +if +self . -retain -( -| -m -| -! -m +lits . is_empty ( ) -) -; -lits1 -. -splice -( -first_empty -. -. -first_empty -lits2 -) -; -self -. -dedup -( -) -; +{ +size } -# -[ -inline -] -pub -fn -dedup -( -& -mut -self -) +else { -if -let -Some -( -ref -mut -lits -) -= self . -literals -{ lits . -dedup_by +iter +( +) +. +fold ( +0 | -lit1 -lit2 +accum +lit | { +accum ++ if -lit1 -. -as_bytes -( -) -! -= -lit2 +lit . -as_bytes +is_cut ( ) { -return -false -; +0 } -if -lit1 -. -is_exact -( -) -! -= -lit2 -. -is_exact -( -) +else { -lit1 -. -make_inexact ( -) -; -lit2 +lit . -make_inexact +len ( ) -; ++ +1 +) +* +size } -true } ) +} ; +new_byte_count +> +self +. +limit_size } } -# -[ -inline -] -pub fn -sort +prefixes ( +expr +: +& +Hir +lits +: & mut -self +Literals ) { -if -let -Some +match +* +expr +. +kind ( -ref -mut -lits ) -= -self -. -literals { -lits -. -sort +HirKind +: +: +Literal ( -) -; -} -} -# -[ -inline -] -pub -fn -reverse_literals +hir +: +: +Literal +: +: +Unicode ( -& -mut -self +c ) +) += +> { -if let -Some -( -ref mut -lits -) +buf = -self -. -literals -{ -for -lit -in +[ +0 +; +4 +] +; lits . -iter_mut +cross_add ( +c +. +encode_utf8 +( +& +mut +buf ) -{ -lit . -reverse +as_bytes ( ) +) ; } -} -} -# -[ -inline -] -pub -fn -minimize_by_preference +HirKind +: +: +Literal ( -& -mut -self -) -{ -if -let -Some +hir +: +: +Literal +: +: +Byte ( -ref -mut -lits +b +) ) = -self -. -literals +> { -PreferenceTrie -: -: -minimize -( lits -false +. +cross_add +( +& +[ +b +] ) ; } -} -# -[ -inline -] -pub -fn -keep_first_bytes +HirKind +: +: +Class ( -& -mut -self -len +hir : -usize -) -{ -if -let -Some +: +Class +: +: +Unicode ( ref -mut -lits +cls +) ) = -self -. -literals +> { -for -m -in +if +! lits . -iter_mut +add_char_class ( +cls ) { -m +lits . -keep_first_bytes +cut ( -len ) ; } } -} -# -[ -inline -] -pub -fn -keep_last_bytes +HirKind +: +: +Class ( -& -mut -self -len +hir : -usize -) -{ -if -let -Some +: +Class +: +: +Bytes ( ref -mut -lits +cls +) ) = -self -. -literals +> { -for -m -in +if +! lits . -iter_mut +add_byte_class ( +cls ) { -m +lits . -keep_last_bytes +cut ( -len ) ; } } -} -# -[ -inline -] -pub -fn -is_finite +HirKind +: +: +Group ( -& -self -) -- -> -bool +hir +: +: +Group { -self +ref +hir . -literals . -is_some -( -) } -# -[ -inline -] -pub -fn -is_empty -( -& -self ) -- += > -bool { -self -. -len -( -) -= -= -Some +prefixes ( -0 +& +* +* +hir +lits ) +; } -# -[ -inline -] -pub -fn -len +HirKind +: +: +Repetition ( -& -self +ref +x ) -- += > -Option -< -usize +match +x +. +kind +{ +hir +: +: +RepetitionKind +: +: +ZeroOrOne += > { -self -. -literals -. -as_ref +repeat_zero_or_one_literals ( -) +& +x . -map -( -| -lits -| +hir lits -. -len -( -) +prefixes ) +; } -# -[ -inline -] -pub -fn -is_exact -( -& -self -) -- +hir +: +: +RepetitionKind +: +: +ZeroOrMore += > -bool { -self -. -literals +repeat_zero_or_more_literals ( -) +& +x . -map_or -( -false -| -lits -| +hir lits -. -iter -( +prefixes ) -. -all +; +} +hir +: +: +RepetitionKind +: +: +OneOrMore += +> +{ +repeat_one_or_more_literals ( -| -x -| +& x . -is_exact -( -) -) +hir +lits +prefixes ) +; } -# -[ -inline -] -pub -fn -is_inexact +hir +: +: +RepetitionKind +: +: +Range ( -& -self +ref +rng ) -- += > -bool { -self -. -literals +let ( +min +max ) -. -map_or -( -true -| -lits -| -lits -. -iter += +match +* +rng +{ +hir +: +: +RepetitionRange +: +: +Exactly ( +m ) -. -all += +> ( -| -x -| -! -x -. -is_exact +m +Some ( +m ) ) -) -} -# -[ -inline -] -pub -fn -max_union_len -( -& -self -other +hir : -& -Seq +: +RepetitionRange +: +: +AtLeast +( +m ) -- -> -Option -< -usize -> -{ -let -len1 = -self -. -len +> ( +m +None ) -? -; -let -len2 -= -other -. -len +hir +: +: +RepetitionRange +: +: +Bounded ( +m +n ) -? -; -Some += +> ( -len1 -. -saturating_add +m +Some ( -len2 +n ) ) } -# -[ -inline -] -pub -fn -max_cross_len +; +repeat_range_literals ( & -self -other +x +. +hir +min +max +x +. +greedy +lits +prefixes +) +} +} +HirKind : -& -Seq +: +Concat +( +ref +es ) -- -> -Option -< -usize -> -{ -let -len1 -= -self +if +es . -len +is_empty ( ) -? -; -let -len2 = -other +> +{ +} +HirKind +: +: +Concat +( +ref +es +) +if +es . len ( ) -? -; -Some -( -len1 -. -saturating_mul += += +1 += +> +prefixes ( -len2 -) -) -} -# +& +es [ -inline +0 ] -pub -fn -min_literal_len +lits +) +HirKind +: +: +Concat ( -& -self +ref +es ) -- -> -Option -< -usize += > { -self -. -literals -. -as_ref +for +e +in +es +{ +if +let +HirKind +: +: +Anchor ( +hir +: +: +Anchor +: +: +StartText ) -? += +* +e . -iter +kind ( ) +{ +if +! +lits . -map -( -| -x -| -x -. -len +is_empty ( ) -) +{ +lits . -min +cut ( ) +; +break +; } -# -[ -inline -] -pub -fn -max_literal_len +lits +. +add +( +Literal +: +: +empty ( -& -self ) -- -> -Option -< -usize -> -{ -self -. -literals +) +; +continue +; +} +let +mut +lits2 += +lits . -as_ref +to_empty ( ) -? -. -iter +; +prefixes ( +e +& +mut +lits2 ) +; +if +! +lits . -map +cross_product ( +& +lits2 +) | -x | -x +! +lits2 . -len +any_complete ( ) -) +{ +lits . -max +cut ( ) +; +break +; } -# -[ -inline -] -pub -fn -longest_common_prefix +} +} +HirKind +: +: +Alternation ( -& -self +ref +es ) -- -> -Option -< -& -[ -u8 -] -> -{ -let -lits -= -match -self -. -literals -{ -None = > -return -None -Some +{ +alternate_literals ( -ref +es lits +prefixes ) +; +} +_ = > lits +. +cut +( +) } -; -if +} +fn +suffixes +( +expr +: +& +Hir lits +: +& +mut +Literals +) +{ +match +* +expr . -len +kind ( ) +{ +HirKind +: +: +Literal +( +hir +: +: +Literal +: +: +Unicode +( +c +) +) = -= -0 +> { -return -None -; -} let -base +mut +buf = -lits [ -0 +0u8 +; +4 ] -. -as_bytes -( -) ; let -mut -len +i = -base +c . -len +encode_utf8 ( +& +mut +buf ) -; -for -m -in -lits . -iter +len ( ) -. -skip -( -1 -) -{ -len +; +let +buf = -m -. -as_bytes -( -) -. -iter -( -) -. -zip -( -base +& +mut +buf [ . . -len +i ] +; +buf . -iter +reverse ( ) -) +; +lits . -take_while +cross_add ( -| -& -( -a -b +buf ) -| -a -= -= +; +} +HirKind +: +: +Literal +( +hir +: +: +Literal +: +: +Byte +( b ) -. -count -( ) -; -if -len -= = -0 +> { -return -Some +lits +. +cross_add ( & [ +b ] ) ; } -} -Some +HirKind +: +: +Class ( -& -base -[ -. -. -len -] -) -} -# -[ -inline -] -pub -fn -longest_common_suffix +hir +: +: +Class +: +: +Unicode ( -& -self +ref +cls ) -- -> -Option -< -& -[ -u8 -] +) += > { -let +if +! lits -= -match -self . -literals +add_char_class_reverse +( +cls +) { -None -= -> -return -None -Some +lits +. +cut +( +) +; +} +} +HirKind +: +: +Class +( +hir +: +: +Class +: +: +Bytes ( ref -lits +cls +) ) = > -lits -} -; +{ if +! lits . -len +add_byte_class ( +cls ) -= -= -0 { -return -None -; -} -let -base -= lits -[ -0 -] . -as_bytes +cut ( ) ; -let -mut -len -= -base +} +} +HirKind +: +: +Group +( +hir +: +: +Group +{ +ref +hir . -len +. +} +) += +> +{ +suffixes ( +& +* +* +hir +lits ) ; -for -m -in -lits -. -iter +} +HirKind +: +: +Repetition ( +ref +x ) += +> +match +x . -skip -( -1 -) +kind { -len +hir +: +: +RepetitionKind +: +: +ZeroOrOne = -m -. -as_bytes +> +{ +repeat_zero_or_one_literals ( -) +& +x . -iter -( +hir +lits +suffixes ) -. -rev +; +} +hir +: +: +RepetitionKind +: +: +ZeroOrMore += +> +{ +repeat_zero_or_more_literals ( -) +& +x . -zip +hir +lits +suffixes +) +; +} +hir +: +: +RepetitionKind +: +: +OneOrMore += +> +{ +repeat_one_or_more_literals ( -base -[ -base +& +x . -len -( +hir +lits +suffixes ) -- -len -. -. -] -. -iter +; +} +hir +: +: +RepetitionKind +: +: +Range ( +ref +rng ) -. -rev += +> +{ +let ( +min +max ) += +match +* +rng +{ +hir +: +: +RepetitionRange +: +: +Exactly +( +m ) -. -take_while += +> ( -| -& +m +Some ( -a -b +m ) -| -a -= -= -b ) -. -count +hir +: +: +RepetitionRange +: +: +AtLeast ( +m ) -; -if -len = +> +( +m +None +) +hir +: +: +RepetitionRange +: +: +Bounded +( +m +n +) = -0 -{ -return +> +( +m Some ( -& -[ -] +n +) ) -; -} } -Some +; +repeat_range_literals ( & -base -[ -base -. -len -( -) -- -len +x . +hir +min +max +x . -] +greedy +lits +suffixes ) } -# -[ -inline -] -pub -fn -optimize_for_prefix_by_preference +} +HirKind +: +: +Concat ( -& -mut -self +ref +es ) -{ -self +if +es . -optimize_by_preference +is_empty ( -true ) -; += +> +{ } -# -[ -inline -] -pub -fn -optimize_for_suffix_by_preference +HirKind +: +: +Concat ( -& -mut -self +ref +es ) -{ -self +if +es . -optimize_by_preference +len ( -false ) -; -} -fn -optimize_by_preference += += +1 += +> +suffixes ( & -mut -self -prefix +es +[ +0 +] +lits +) +HirKind : -bool +: +Concat +( +ref +es ) -{ -let -origlen = -match -self +> +{ +for +e +in +es . -len +iter +( +) +. +rev ( ) { -None -= -> -return -Some +if +let +HirKind +: +: +Anchor ( -len +hir +: +: +Anchor +: +: +EndText ) = -> -len -} -; -if -self +* +e . -min_literal_len +kind ( ) +{ +if +! +lits . -map_or +is_empty ( -false -| -len -| -len -= -= -0 ) { -self +lits . -make_infinite +cut ( ) ; -return +break ; } -if -prefix -{ -if -let -Some -( -ref -mut lits -) -= -self . -literals -{ -PreferenceTrie +add +( +Literal : : -minimize +empty ( -lits -true +) ) ; -} +continue +; } let -fix +mut +lits2 = +lits +. +to_empty +( +) +; +suffixes +( +e +& +mut +lits2 +) +; if -prefix -{ -self +! +lits . -longest_common_prefix +cross_product +( +& +lits2 +) +| +| +! +lits2 +. +any_complete ( ) -} -else { -self +lits . -longest_common_suffix +cut ( ) -} ; -if -let -Some +break +; +} +} +} +HirKind +: +: +Alternation ( -fix +ref +es ) = -fix -{ -if -prefix -& -& -origlen > -1 -& -& -fix -. -len +{ +alternate_literals ( +es +lits +suffixes ) -> +; +} +_ = -1 -& -& -fix +> +lits . -len +cut ( ) +} +} +fn +repeat_zero_or_one_literals < -= -3 +F +: +FnMut +( & +Hir & -rank +mut +Literals +) +> ( -fix -[ -0 -] +e +: +& +Hir +lits +: +& +mut +Literals +mut +f +: +F ) -< -200 { -self -. -keep_first_bytes +f ( -1 -) -; -self +& +Hir +: +: +repetition +( +hir +: +: +Repetition +{ +kind +: +hir +: +: +RepetitionKind +: +: +ZeroOrMore +greedy +: +true +hir +: +Box +: +: +new +( +e . -dedup +clone ( ) -; -return +) +} +) +lits +) ; } -let -isfast -= -self -. -is_exact +fn +repeat_zero_or_more_literals +< +F +: +FnMut ( -) & +Hir & -self -. -len -( +mut +Literals ) -. -map_or +> ( -false -| -len -| -len -< -= -16 +e +: +& +Hir +lits +: +& +mut +Literals +mut +f +: +F ) -; +{ let -usefix +( +mut +lits2 +mut +lits3 +) = -fix +( +lits . -len +clone ( ) -> -4 -| -| -( -fix +lits . -len +to_empty ( ) -> -1 -& -& -! -isfast ) ; -if -usefix -{ -if -prefix -{ -self +lits3 . -keep_first_bytes +set_limit_size ( -fix +lits . -len +limit_size ( ) +/ +2 ) ; -} -else -{ -self -. -keep_last_bytes -( -fix -. -len +f ( -) +e +& +mut +lits3 ) ; -} -self +if +lits3 . -dedup +is_empty ( ) -; -assert_eq +| +| ! +lits2 +. +cross_product ( -Some -( -1 +& +lits3 ) -self +{ +lits . -len +cut ( ) -) +; +return ; } -} -let -exact -: -Option -< -Seq -> -= -if -self +lits2 . -is_exact +cut ( ) -{ -Some -( -self +; +lits2 . -clone +add ( -) -) -} -else -{ -None -} -; -const -ATTEMPTS +Literal : -[ +: +empty ( -usize -usize +) ) ; -5 -] -= -[ +if +! +lits +. +union ( -5 -10 +lits2 ) +{ +lits +. +cut ( -4 -10 ) +; +} +} +fn +repeat_one_or_more_literals +< +F +: +FnMut ( -3 -64 +& +Hir +& +mut +Literals ) +> ( -2 -64 +e +: +& +Hir +lits +: +& +mut +Literals +mut +f +: +F ) +{ +f ( -1 -10 +e +lits ) -] ; -for +lits +. +cut ( -keep -limit ) -in -ATTEMPTS -{ -let -len -= -match -self -. -len +; +} +fn +repeat_range_literals +< +F +: +FnMut ( +& +Hir +& +mut +Literals ) -{ -None -= > -break -Some ( -len -) -= +e +: +& +Hir +min +: +u32 +max +: +Option +< +u32 > -len -} -; +greedy +: +bool +lits +: +& +mut +Literals +mut +f +: +F +) +{ if -len -< +min += = -limit +0 { -break -; -} -if -prefix +f +( +& +Hir +: +: +repetition +( +hir +: +: +Repetition { -self +kind +: +hir +: +: +RepetitionKind +: +: +ZeroOrMore +greedy +hir +: +Box +: +: +new +( +e . -keep_first_bytes +clone ( -keep ) -; +) } -else -{ -self -. -keep_last_bytes -( -keep +) +lits ) ; } -if -prefix +else { if +min +> +0 +{ let -Some -( -ref -mut -lits -) +n = -self -. -literals -{ -PreferenceTrie +cmp : : -minimize +min ( lits -true +. +limit_size +min +as +usize ) ; -} -} -} -if let -Some -( -lits -) +es = -self +iter +: +: +repeat +( +e . -literals +clone ( ) -{ -if -lits +) . -iter +take ( +n ) . -any +collect +( +) +; +f +( +& +Hir +: +: +concat ( +es +) +lits +) +; +if +n +< +min +as +usize | -lit | -lit +lits . -is_poisonous +contains_empty ( ) -) { -self +lits . -make_infinite +cut ( ) ; } } if -let -Some +max +. +map_or ( -exact +true +| +max +| +min +< +max ) -= -exact { -if -! -self +lits . -is_finite +cut +( +) +; +} +} +} +fn +alternate_literals +< +F +: +FnMut +( +& +Hir +& +mut +Literals +) +> ( +es +: +& +[ +Hir +] +lits +: +& +mut +Literals +mut +f +: +F ) { -* -self +let +mut +lits2 = -exact +lits +. +to_empty +( +) ; -return +for +e +in +es +{ +let +mut +lits3 += +lits +. +to_empty +( +) ; -} -if -self +lits3 . -min_literal_len +set_limit_size +( +lits +. +limit_size +( +) +/ +5 +) +; +f ( +e +& +mut +lits3 ) +; +if +lits3 . -map_or +is_empty ( -true +) | -len | -len -< -= -2 +! +lits2 +. +union +( +lits3 ) { -* -self -= -exact +lits +. +cut +( +) ; return ; } +} if -self +! +lits . -len +cross_product ( +& +lits2 ) +{ +lits . -map_or +cut ( -true -| -len -| -len -> -64 ) -{ -* -self -= -exact -; -return ; } } -} -} impl -core -: -: fmt : : Debug for -Seq +Literals { fn fmt @@ -4565,1811 +4433,1929 @@ f : & mut -core -: -: fmt : : Formatter +< +' +_ +> ) - > -core -: -: fmt : : Result { -write -! -( f +. +debug_struct +( " -Seq +Literals " ) -? -; -if -let -Some +. +field ( +" lits -) -= +" +& self . -literals -( +lits ) -{ -f . -debug_list +field ( +" +limit_size +" +& +self +. +limit_size ) . -entries +field ( -lits +" +limit_class +" +& +self . -iter -( -) +limit_class ) . finish ( ) } -else -{ -write -! -( -f -" -[ -] -" -) -} -} } impl -FromIterator -< Literal -> -for -Seq { +pub fn -from_iter -< -T +new +( +bytes : -IntoIterator +Vec < -Item -= -Literal -> +u8 > -( -it -: -T ) - > -Seq +Literal { -let -mut -seq -= -Seq +Literal +{ +v : +bytes +cut : -empty -( -) -; -for -literal -in -it -{ -seq -. -push -( -literal -) -; -} -seq +false } } -# -[ -derive +pub +fn +empty ( -Clone -Eq -PartialEq -PartialOrd -Ord ) -] -pub -struct +- +> Literal { -bytes -: -Vec -< -u8 -> -exact -: -bool -} -impl Literal { -# +v +: +vec +! [ -inline ] +cut +: +false +} +} pub fn -exact -< -B -: -Into -< -Vec -< -u8 -> -> -> +is_cut ( -bytes -: -B +& +self ) - > -Literal -{ -Literal +bool { -bytes -: -bytes +self . -into -( -) -exact -: -true +cut } -} -# -[ -inline -] pub fn -inexact -< -B -: -Into -< -Vec -< -u8 -> -> -> +cut ( -bytes -: -B +& +mut +self ) -- -> -Literal -{ -Literal { -bytes -: -bytes +self . -into -( -) -exact -: -false +cut += +true +; } } -# -[ -inline -] -pub +impl +PartialEq +for +Literal +{ fn -as_bytes +eq ( & self +other +: +& +Literal ) - > -& -[ -u8 -] +bool { -& self . -bytes +v += += +other +. +v } -# -[ -inline -] -pub +} +impl +PartialOrd +for +Literal +{ fn -into_bytes +partial_cmp ( +& self +other +: +& +Literal ) - > -Vec +Option < -u8 +cmp +: +: +Ordering > { self . -bytes +v +. +partial_cmp +( +& +other +. +v +) } -# -[ -inline -] -pub +} +impl +fmt +: +: +Debug +for +Literal +{ fn -len +fmt ( & self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> ) - > -usize +fmt +: +: +Result { +if self . -as_bytes +is_cut +( +) +{ +write +! +( +f +" +Cut ( +{ +} ) +" +escape_unicode +( +& +self . -len +v +) +) +} +else +{ +write +! +( +f +" +Complete +( +{ +} +) +" +escape_unicode ( +& +self +. +v +) ) } -# +} +} +impl +AsRef +< [ -inline +u8 ] -pub +> +for +Literal +{ fn -is_empty +as_ref ( & self ) - > -bool +& +[ +u8 +] { +& self . -len -( -) -= -= -0 +v } -# -[ -inline -] -pub +} +impl +ops +: +: +Deref +for +Literal +{ +type +Target += +Vec +< +u8 +> +; fn -is_exact +deref ( & self ) - > -bool +& +Vec +< +u8 +> { +& self . -exact +v } -# -[ -inline -] -pub +} +impl +ops +: +: +DerefMut +for +Literal +{ fn -make_inexact +deref_mut ( & mut self ) -{ -self -. -exact -= -false -; -} -# -[ -inline -] -pub -fn -reverse -( +- +> & mut -self -) +Vec +< +u8 +> { +& +mut self . -bytes -. -reverse -( -) -; +v +} } -# -[ -inline -] -pub fn -extend +position ( +needle +: & +[ +u8 +] mut -self -lit +haystack : & -Literal -) -{ -if -! -self -. -is_exact -( +[ +u8 +] ) +- +> +Option +< +usize +> { -return +let +mut +i += +0 ; -} -self -. -bytes +while +haystack . -extend_from_slice +len ( -& -lit -. -bytes ) -; -} -# -[ -inline -] -pub -fn -keep_first_bytes -( -& -mut -self +> += +needle +. len -: -usize +( ) { if -len -> +needle = -self += +& +haystack +[ +. +. +needle . len ( ) +] { return -; -} -self -. -make_inexact +Some ( +i ) ; -self +} +i ++ += +1 +; +haystack += +& +haystack +[ +1 . -bytes . -truncate -( -len -) +] ; } -# -[ -inline -] -pub +None +} fn -keep_last_bytes +escape_unicode ( -& -mut -self -len +bytes : -usize +& +[ +u8 +] ) -{ -if -len +- > +String +{ +let +show = -self -. -len +match +: +: +std +: +: +str +: +: +from_utf8 ( +bytes ) { -return -; -} -self -. -make_inexact +Ok ( +v ) -; -self -. -bytes += +> +v . -drain +to_string ( -. -. -self -. -len +) +Err ( +_ ) -- -len += +> +escape_bytes +( +bytes ) -; } -fn -is_poisonous +; +let +mut +space_escaped += +String +: +: +new ( -& -self ) -- -> -bool -{ -self +; +for +c +in +show . -is_empty +chars ( ) -| -| -( -self +{ +if +c . -len +is_whitespace ( ) +{ +let +escaped = +if +c +as +u32 +< = -1 -& -& -rank -( -self -. -as_bytes +0x7F +{ +escape_byte ( +c +as +u8 ) -[ -0 -] -) -> -= -250 -) -} } -impl -From +else +if +c +as +u32 < -u8 -> -for -Literal += +0xFFFF { -fn -from +format +! ( -byte +r +" +\ +u +{ +{ +{ : +04x +} +} +} +" +c +as +u32 +) +} +else +{ +format +! +( +r +" +\ +U +{ +{ +{ +: +08x +} +} +} +" +c +as +u32 +) +} +; +space_escaped +. +push_str +( +& +escaped +) +; +} +else +{ +space_escaped +. +push +( +c +) +; +} +} +space_escaped +} +fn +escape_bytes +( +bytes +: +& +[ u8 +] ) - > -Literal +String { -Literal +let +mut +s += +String : : -exact +new ( -vec -! -[ -byte -] ) -} -} -impl -From -< -char -> +; for -Literal +& +b +in +bytes { +s +. +push_str +( +& +escape_byte +( +b +) +) +; +} +s +} fn -from +escape_byte ( -ch +byte : -char +u8 ) - > -Literal +String { use -alloc +std : : -string +ascii : : -ToString +escape_default ; -Literal -: +let +escaped : -exact +Vec +< +u8 +> += +escape_default ( -ch +byte +) . -encode_utf8 +collect ( -& -mut -[ -0 +) ; -4 -] +String +: +: +from_utf8_lossy +( +& +escaped ) . -to_string +into_owned ( ) -) -} } -impl -AsRef -< -[ -u8 -] -> -for -Literal -{ fn -as_ref +cls_char_count ( +cls +: & -self +hir +: +: +ClassUnicode ) - > -& -[ -u8 -] +usize { -self +cls . -as_bytes +iter ( ) -} -} -impl -core -: -: -fmt +. +map +( +| +& +r +| +1 ++ +( +r +. +end +as +u32 +) +- +( +r +. +start +as +u32 +) +) +. +sum : : -Debug -for -Literal -{ +< +u32 +> +( +) +as +usize +} fn -fmt +cls_byte_count ( -& -self -f +cls : & -mut -core -: -: -fmt +hir : : -Formatter +ClassBytes ) - > -core -: -: -fmt -: -: -Result -{ -let -tag -= -if -self -. -exact -{ -" -E -" -} -else +usize { -" -I -" -} -; -f +cls . -debug_tuple +iter ( -tag ) . -field +map ( +| & -crate -: -: -debug -: -: -Bytes +r +| +1 ++ ( -self +r . -as_bytes -( +end +as +u32 ) +- +( +r +. +start +as +u32 ) ) . -finish +sum +: +: +< +u32 +> ( ) -} +as +usize } # [ -derive +cfg ( -Debug +test ) ] -struct -PreferenceTrie +mod +tests { -states +use +std : -Vec -< -State -> -matches : -Vec -< -Option -< -NonZeroUsize -> -> -next_literal_index +fmt +; +use +super : -usize +: +{ +escape_bytes +Literal +Literals } +; +use +crate +: +: +hir +: +: +Hir +; +use +crate +: +: +ParserBuilder +; # [ derive ( Debug -Default +Eq +PartialEq ) ] struct -State -{ -trans -: +Bytes +( Vec < +ULiteral +> +) +; +# +[ +derive ( -u8 -usize +Debug +Eq +PartialEq ) -> -} -impl -PreferenceTrie -{ -fn -minimize +] +struct +Unicode ( -literals -: -& -mut Vec < -Literal +ULiteral > -keep_exact -: -bool ) -{ -use -core -: -: -cell -: -: -RefCell ; -let -trie -= -RefCell -: -: -new +fn +escape_lits ( -PreferenceTrie -{ -states -: -vec -! -[ -] -matches +blits : -vec -! +& [ +Literal ] -next_literal_index -: -1 -} ) -; +- +> +Vec +< +ULiteral +> +{ let mut -make_inexact +ulits = vec ! [ ] ; -literals +for +blit +in +blits +{ +ulits . -retain +push ( -| -lit -| +ULiteral { -match -trie -. -borrow_mut +v +: +escape_bytes ( +& +blit ) +cut +: +blit . -insert -( -lit -. -as_bytes +is_cut ( ) +} ) -{ -Ok -( -_ -) +; +} +ulits +} +fn +create_lits +< +I +: +IntoIterator +< +Item = +Literal +> > -true -Err ( -i +it +: +I ) -= +- > +Literals { -if -! -keep_exact +Literals { -make_inexact -. -push -( -i +lits +: +it . -checked_sub +into_iter ( -1 ) . -unwrap +collect ( ) -) -; -} -false -} +limit_size +: +0 +limit_class +: +0 } } -) -; -for -i -in -make_inexact -{ -literals +# [ -i +derive +( +Clone +Eq +PartialEq +) ] -. -make_inexact +pub +struct +ULiteral +{ +v +: +String +cut +: +bool +} +impl +ULiteral +{ +fn +is_cut ( +& +self ) -; +- +> +bool +{ +self +. +cut } } +impl +fmt +: +: +Debug +for +ULiteral +{ fn -insert +fmt ( & -mut self -bytes +f : & -[ -u8 -] +mut +fmt +: +: +Formatter +< +' +_ +> ) - > +fmt +: +: Result -< -usize -usize -> { -let -mut -prev -= +if self . -root +is_cut ( ) -; -if -let -Some +{ +write +! +( +f +" +Cut ( -idx +{ +} ) -= +" self . -matches -[ -prev -] +v +) +} +else { -return -Err +write +! ( -idx -. -get +f +" +Complete ( -) -) -; +{ } -for -& -b -in -bytes -. -iter -( ) -{ -match +" self . -states -[ -prev -] -. -trans -. -binary_search_by_key -( -& -b -| -t -| -t -. -0 +v ) +} +} +} +impl +PartialEq +< +Literal +> +for +ULiteral { -Ok +fn +eq ( -i +& +self +other +: +& +Literal ) -= +- > +bool { -prev -= self . -states -[ -prev -] -. -trans -[ -i -] +v . -1 -; -if -let -Some +as_bytes ( -idx ) = += +& +* +other +. +v +& +& self . -matches -[ -prev -] -{ -return -Err +is_cut ( -idx +) += += +other . -get +is_cut ( ) -) -; } } -Err +impl +PartialEq +< +ULiteral +> +for +Literal +{ +fn +eq ( -i +& +self +other +: +& +ULiteral ) -= +- > +bool { -let -next -= +& +* self . -create_state +v += += +other +. +v +. +as_bytes ( ) -; +& +& self . -states -[ -prev -] -. -trans -. -insert -( -i +is_cut ( -b -next ) -) -; -prev -= -next -; -} -} -} -let -idx = -self -. -next_literal_index -; -self -. -next_literal_index -+ = -1 -; -self +other . -matches -[ -prev -] -= -NonZeroUsize -: -: -new +is_cut ( -idx ) -; -Ok +} +} +# +[ +allow ( -idx +non_snake_case ) -} +] fn -root +C ( +s +: & -mut -self +' +static +str ) - > -usize +ULiteral { -if -! -self -. -states +ULiteral +{ +v +: +s . -is_empty +to_owned ( ) -{ -0 +cut +: +true } -else +} +# +[ +allow +( +non_snake_case +) +] +fn +M +( +s +: +& +' +static +str +) +- +> +ULiteral { -self +ULiteral +{ +v +: +s . -create_state +to_owned ( ) +cut +: +false } } fn -create_state +prefixes ( +lits +: & mut -self +Literals +expr +: +& +Hir ) -- -> -usize { -let -id -= -self -. -states +lits . -len +union_prefixes ( +expr ) ; -self -. -states -. -push +} +fn +suffixes ( -State +lits : +& +mut +Literals +expr : -default -( -) +& +Hir ) -; -self -. -matches +{ +lits . -push +union_suffixes ( -None +expr ) ; -id } -} -pub -fn -rank +macro_rules +! +assert_lit_eq +{ ( -byte +which : -u8 +ident +got_lits +: +expr +( +expected_lit +: +expr ) -- -> -u8 +* +) += +> { -crate -: -: -rank -: +{ +let +expected : -BYTE_FREQUENCIES +Vec +< +ULiteral +> += +vec +! [ -usize -: -: -from ( -byte +expected_lit ) +* ] -} -# -[ -cfg +; +let +lits += +got_lits +; +assert_eq +! +( +which +( +expected +. +clone ( -test ) -] -mod -tests -{ -use -super -: -: -* +) +which +( +escape_lits +( +lits +. +literals +( +) +) +) +) ; -fn -parse +assert_eq +! ( -pattern -: +! +expected +. +is_empty +( +) & -str +& +expected +. +iter +( ) -- -> -Hir -{ -crate -: -: -ParserBuilder -: -: -new +. +all +( +| +l +| +! +l +. +is_cut ( ) +) +lits . -utf8 +all_complete ( -false ) +) +; +assert_eq +! +( +expected . -build +iter ( ) . -parse +any +( +| +l +| +! +l +. +is_cut ( -pattern ) +) +lits . -unwrap +any_complete ( ) +) +; } -fn -prefixes +} +; +} +macro_rules +! +test_lit +{ ( -pattern +name : -& -str +ident +which +: +ident +re +: +expr ) -- += > -Seq { -Extractor -: -: -new +test_lit +! ( +name +which +re ) -. -kind +; +} +; ( -ExtractKind +name : +ident +which : -Prefix -) -. -extract -( -& -parse +ident +re +: +expr ( -pattern +lit +: +expr ) +* ) -} += +> +{ +# +[ +test +] fn -suffixes +name ( -pattern -: -& -str ) -- -> -Seq { -Extractor +let +expr += +ParserBuilder : : new ( ) . -kind +build ( -ExtractKind -: -: -Suffix ) . -extract -( -& parse ( -pattern +re ) -) -} -fn -e +. +unwrap ( -pattern +) +; +let +lits += +Literals +: : +which +( & -str +expr ) -- -> +; +assert_lit_eq +! +( +Unicode +lits ( -Seq -Seq +lit ) -{ +* +) +; +let +expr += +ParserBuilder +: +: +new ( -prefixes +) +. +allow_invalid_utf8 ( -pattern +true ) -suffixes +. +unicode ( -pattern +false ) +. +build +( ) -} -# -[ -allow +. +parse ( -non_snake_case +re ) -] -fn -E +. +unwrap ( -x -: -& -str ) -- -> -Literal -{ -Literal +; +let +lits += +Literals : : -exact +which ( -x -. -as_bytes +& +expr +) +; +assert_lit_eq +! +( +Bytes +lits ( +lit ) +* ) +; } -# -[ -allow +} +; +} +test_lit +! ( -non_snake_case -) -] -fn -I +pfx_one_lit1 +prefixes +" +a +" +M ( -x -: -& -str +" +a +" ) -- -> -Literal -{ -Literal -: -: -inexact +) +; +test_lit +! ( -x -. -as_bytes +pfx_one_lit2 +prefixes +" +abc +" +M ( +" +abc +" ) ) -} -fn -seq -< -I -: -IntoIterator -< -Item -= -Literal -> -> +; +test_lit +! ( -it -: -I -) -- -> -Seq -{ -Seq -: -: -from_iter +pfx_one_lit3 +prefixes +" ( -it +? +u ) -} -fn -infinite +" +M ( +" +\ +\ +xe2 +\ +\ +x98 +\ +\ +x83 +" ) -- -> +) +; +# +[ +cfg ( -Seq -Seq +feature += +" +unicode +- +case +" ) -{ +] +test_lit +! ( -Seq -: -: -infinite +pfx_one_lit4 +prefixes +" ( +? +ui ) -Seq -: -: -infinite +" +M ( +" +\ +\ +xe2 +\ +\ +x98 +\ +\ +x83 +" ) ) -} -fn -inexact -< -I1 -I2 -> +; +test_lit +! ( -it1 -: -I1 -it2 -: -I2 -) +pfx_class1 +prefixes +" +[ +1 - -> +4 +] +" +M ( -Seq -Seq +" +1 +" ) -where -I1 -: -IntoIterator -< -Item -= -Literal -> -I2 -: -IntoIterator -< -Item -= -Literal -> -{ +M ( -Seq -: -: -from_iter +" +2 +" +) +M ( -it1 +" +3 +" ) -Seq -: -: -from_iter +M ( -it2 +" +4 +" ) ) -} -fn -exact -< -B -: -AsRef -< +; +test_lit +! +( +pfx_class2 +prefixes +" +( +? +u +) [ -u8 ] -> -I -: -IntoIterator -< -Item -= -B -> -> +" +M ( -it -: -I +" +\ +\ +xe2 +\ +\ +x85 +\ +\ +xa0 +" ) -- -> +M ( -Seq -Seq +" +\ +\ +xe2 +\ +\ +x98 +\ +\ +x83 +" ) -{ -let -s1 -= -Seq -: -: -new -( -it ) ; -let -s2 -= -s1 -. -clone +# +[ +cfg ( +feature += +" +unicode +- +case +" ) -; +] +test_lit +! ( -s1 -s2 +pfx_class3 +prefixes +" +( +? +ui ) -} -fn -opt -< -B -: -AsRef -< -[ -u8 -] -> -I -: -IntoIterator -< -Item -= -B -> -> -( -it -: -I -) -- -> -( -Seq -Seq -) -{ -let -( -mut -p -mut -s -) -= -exact -( -it -) -; -p -. -optimize_for_prefix_by_preference -( -) -; -s -. -optimize_for_suffix_by_preference -( -) -; -( -p -s -) -} -# [ -test ] -fn -literal -( -) -{ -assert_eq -! -( -exact -( -[ -" -a " -] -) -e +M ( " -a +\ +\ +xe2 +\ +\ +x85 +\ +\ +xa0 " ) -) -; -assert_eq -! -( -exact +M ( -[ " -aaaaa +\ +\ +xe2 +\ +\ +x85 +\ +\ +xb0 " -] ) -e +M ( " -aaaaa +\ +\ +xe2 +\ +\ +x98 +\ +\ +x83 " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ -" -A -" -" -a -" -] -) -e -( +pfx_one_lit_casei1 +prefixes " ( ? @@ -6379,31 +6365,25 @@ u ) a " -) -) -; -assert_eq -! -( -exact +M ( -[ -" -AB -" " -Ab -" -" -aB +A " +) +M +( " -ab +a " -] ) -e +) +; +test_lit +! ( +pfx_one_lit_casei2 +prefixes " ( ? @@ -6411,7734 +6391,5396 @@ i - u ) -ab +abc " -) -) -; -assert_eq -! -( -exact +M ( -[ " -abC +ABC " +) +M +( " -abc +aBC " -] ) -e +M ( " -ab -( -? -i -- -u -) -c +AbC " ) -) -; -assert_eq -! -( -exact +M ( -[ -b " -\ -xFF +abC " -] ) -e +M ( -r " -( -? -- -u -: -\ -xFF +ABc +" ) +M +( +" +aBc " ) +M +( +" +Abc +" ) -; -# -[ -cfg +M ( -feature -= " -unicode -- -case +abc " ) -] -{ -assert_eq +) +; +test_lit ! ( -exact -( -[ -" +pfx_group1 +prefixes " -] +( +a ) -e +" +M ( " +a " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_rep_zero_or_one1 +prefixes " +a +? " -] ) -e +; +test_lit +! ( +pfx_rep_zero_or_one2 +prefixes " ( ? -i +: +abc ) +? " ) -) ; -assert_eq +test_lit ! ( -exact +pfx_rep_zero_or_one_cat1 +prefixes +" +ab +? +" +C ( -[ " +ab " -] ) -e +M ( " +a " ) ) ; -assert_eq +test_lit ! ( -exact +pfx_rep_zero_or_one_cat2 +prefixes +" +ab +? +? +" +C ( -[ " +ab " -] ) -e +M ( " +a " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_rep_zero_or_more1 +prefixes " +a +* " -] ) -e +; +test_lit +! ( +pfx_rep_zero_or_more2 +prefixes " -" +( +? +: +abc ) +* +" ) ; -assert_eq +test_lit ! ( -exact -( -[ -" -" +pfx_rep_one_or_more1 +prefixes " +a ++ " -] -) -e +C ( " -( -? -i -) +a " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_rep_one_or_more2 +prefixes " +( +? +: +abc +) ++ " +C +( " +abc " -] ) -e +) +; +test_lit +! ( +pfx_rep_nested_one_or_more +prefixes " ( ? -i +: +a ++ ) ++ +" +C +( +" +a " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_rep_range1 +prefixes " -S +a +{ +0 +} " +) +; +test_lit +! +( +pfx_rep_range2 +prefixes " -s +a +{ +0 +} " +) +; +test_lit +! +( +pfx_rep_range3 +prefixes " +a +{ +0 +1 +} " -] ) -e +; +test_lit +! ( +pfx_rep_range4 +prefixes +" +a +{ +1 +} " +M ( -? -i -) -S +" +a " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ -" -S -" +pfx_rep_range5 +prefixes " -s +a +{ +2 +} " +M +( " +aa " -] ) -e +) +; +test_lit +! ( +pfx_rep_range6 +prefixes +" +a +{ +1 +2 +} " +C ( -? -i -) -s +" +a " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ -" -S -" +pfx_rep_range7 +prefixes " -s +a +{ +2 +3 +} " +C +( " +aa " -] ) -e +) +; +test_lit +! ( +pfx_cat1 +prefixes " ( ? -i -) -" +: +a ) +( +? +: +b ) -; -} -let -letters -= " +M +( +" +ab " +) +) ; -assert_eq +test_lit ! ( -exact -( +pfx_cat2 +prefixes +" [ -letters +ab ] +z +" +M +( +" +az +" ) -e +M ( -letters +" +bz +" ) ) ; -} -# -[ -test -] -fn -class -( -) -{ -assert_eq +test_lit ! ( -exact +pfx_cat3 +prefixes +" ( +? +i +- +u +) [ +ab +] +z " -a -" +M +( " -b +AZ " +) +M +( " -c +BZ " -] ) -e +M ( " -[ -abc -] +aZ " ) -) -; -assert_eq -! +M ( -exact +" +bZ +" +) +M ( -[ " -a1b +Az " +) +M +( " -a2b +Bz " +) +M +( " -a3b +az " -] ) -e +M ( " -a -[ -123 -] -b +bz " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ -" -" -" +pfx_cat4 +prefixes " +[ +ab ] -) -e -( -" [ +yz ] " -) -) -; -# -[ -cfg +M ( -feature -= " -unicode -- -case +ay " ) -] -{ -assert_eq -! -( -exact +M ( -[ -" -" -" -" -" -" " +by " +) +M +( " +az " -] ) -e +M ( -r " -( -? -i -) -[ -] +bz " ) ) ; -} -} -# -[ -test -] -fn -look -( -) -{ -assert_eq +test_lit ! ( -exact +pfx_cat5 +prefixes +" +a +* +b +" +C ( -[ " -ab +a " -] ) -e +M ( -r " -a -\ -Ab +b " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_cat6 +prefixes " -ab +a +* +b +* +c " -] -) -e +C ( -r " a -\ -zb " ) -) -; -assert_eq -! +C ( -exact -( -[ " -ab +b " -] ) -e +M ( -r " -a -( -? -m -: -^ -) -b +c " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_cat7 +prefixes " -ab +a +* +b +* +c ++ " -] -) -e +C ( -r " a -( -? -m -: -) -b " ) -) -; -assert_eq -! +C ( -exact -( -[ " -ab +b " -] ) -e +C ( -r " -a -\ -bb +c " ) ) ; -assert_eq +test_lit ! ( -exact +pfx_cat8 +prefixes +" +a +* +b ++ +c +" +C ( -[ " -ab +a " -] ) -e +C ( -r " -a -\ -Bb +b " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_cat9 +prefixes " -ab +a +* +b ++ +c +* " -] -) -e +C ( -r " a -( -? -- -u -: -\ -b +" ) +C +( +" b " ) ) ; -assert_eq +test_lit ! ( -exact +pfx_cat10 +prefixes +" +ab +* +" +C ( -[ " ab " -] ) -e +M ( -r " a -( -? -- -u -: -\ -B -) -b " ) ) ; -assert_eq +test_lit ! ( -exact +pfx_cat11 +prefixes +" +ab +* +c +" +C ( -[ " ab " -] ) -e +M ( -r " -^ -ab +ac " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_cat12 +prefixes " ab ++ " -] -) -e +C ( -r " ab " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_cat13 +prefixes " ab ++ +c " -] -) -e +C ( -r " -( -? -m -: -^ -) ab " ) ) ; -assert_eq +test_lit ! ( -exact +pfx_cat14 +prefixes +" +a +^ +" +C ( -[ " -ab +a " -] ) -e +) +; +test_lit +! ( -r +pfx_cat15 +prefixes " -( -? -m -: -) -ab +a " ) -) ; -assert_eq +test_lit ! ( -exact +pfx_cat16 +prefixes +r +" +ab +* +c +" +C ( -[ " ab " -] ) -e +M ( -r " -\ -bab +ac " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_cat17 +prefixes +r " ab ++ +c " -] -) -e +C ( -r " -\ -Bab +ab " ) ) ; -assert_eq +test_lit ! ( -exact +pfx_cat18 +prefixes +r +" +z +* +azb +" +C ( -[ " -ab +z " -] ) -e +M ( -r " -( -? -- -u -: -\ -b -) -ab +azb " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_cat19 +prefixes " -ab +a +. +z " -] -) -e +C ( -r " -( -? -- -u -: -\ -B -) -ab +a " ) ) ; -assert_eq +test_lit ! ( -exact +pfx_alt1 +prefixes +" +a +| +b +" +M ( -[ " -ab +a " -] ) -e +M ( -r " -ab -^ +b " ) ) ; -assert_eq +test_lit ! ( -exact -( +pfx_alt2 +prefixes +" [ +1 +- +3 +] +| +b " -ab +M +( +" +1 " -] ) -e +M ( -r " -ab +2 " ) -) -; -assert_eq -! -( -exact +M ( -[ " -ab +3 " -] ) -e +M ( -r " -ab -( -? -m -: -^ -) +b " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ -" -ab -" -] -) -e -( -r +pfx_alt3 +prefixes " -ab +y ( ? -m : +a +| +b ) +z " -) -) -; -assert_eq -! +M ( -exact +" +yaz +" +) +M ( -[ " -ab +ybz " -] ) -e +) +; +test_lit +! ( -r +pfx_alt4 +prefixes " -ab -\ +a +| b +* " ) -) ; -assert_eq +test_lit ! ( -exact +pfx_alt5 +prefixes +" +a +| +b ++ +" +M ( -[ " -ab +a " -] ) -e +C ( -r " -ab -\ -B +b " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ -" -ab -" -] -) -e -( -r +pfx_alt6 +prefixes " -ab +a +| ( ? -- -u : -\ b +| +c +* ) " ) -) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_alt7 +prefixes " +( +a +| +b +) +* +c +| +( +a +| ab -" -] ) -e +* +c +" +C ( -r " -ab -( -? -- -u -: -\ -B -) +a " ) -) -; -let -expected -= -( -seq -( -[ -I +C ( " -aZ +b " ) -E +M ( " -ab +c " ) -] -) -seq -( -[ -I +C ( " -Zb +a " ) -E +C ( " ab " ) -] +M +( +" +c +" ) ) ; -assert_eq +test_lit ! ( -expected -e -( -r +pfx_alt8 +prefixes " -^ -aZ +a * b +| +c " -) -) -; -} -# -[ -test -] -fn -repetition -( -) -{ -assert_eq -! +C ( -exact -( -[ " a " +) +M +( " +b " -] ) -e +M ( -r " -a -? +c " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +pfx_empty1 +prefixes " +^ +a " +M +( " a " -] ) -e +) +; +test_lit +! +( +pfx_empty2 +prefixes +" +a +{ +2 +} +" +C ( -r " a -? -? " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -I +pfx_empty3 +prefixes +" +^ +abc +" +M ( " -a +abc " ) -E +) +; +test_lit +! ( +pfx_empty4 +prefixes " -" +( +? +: +^ +abc ) -] -[ -I +| +( +? +: +^ +z +) +" +M ( " -a +abc " ) -E +M ( " +z " ) -] ) -e +; +test_lit +! ( -r +pfx_nothing1 +prefixes " -a -* +. " ) -) ; -assert_eq +test_lit ! ( -inexact -( -[ -E -( +pfx_nothing2 +prefixes " +( +? +s +) +. " ) -I +; +test_lit +! ( +pfx_nothing3 +prefixes " -a +^ " ) -] -[ -E +; +test_lit +! ( +pfx_nothing4 +prefixes " " ) -I +; +test_lit +! ( +pfx_nothing6 +prefixes " -a -" +( +? +m ) -] +" ) -e +; +test_lit +! ( +pfx_nothing7 +prefixes r " -a -* -? +\ +b " ) -) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +pfx_nothing8 +prefixes +r " -a +\ +B " ) -] -[ -I +; +test_lit +! ( +pfx_defeated1 +prefixes " +. a " ) -] -) -e +; +test_lit +! ( -r +pfx_defeated2 +prefixes " +( +? +s +) +. a -+ " ) -) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +pfx_defeated3 +prefixes " a +* +b +* +c +* " ) -] -[ -I +; +test_lit +! ( +pfx_defeated4 +prefixes " a +| +. " ) -] -) -e +; +test_lit +! ( -r +pfx_defeated5 +prefixes " -( +. +| a -+ -) -+ " ) -) ; -assert_eq +test_lit ! ( -exact -( -[ -" -ab -" -] -) -e -( -r +pfx_defeated6 +prefixes " -aZ -{ -0 -} -b +a +| +^ " ) -) ; -assert_eq +test_lit ! ( -exact -( -[ -" -aZb -" -" -ab +pfx_defeated7 +prefixes " -] -) -e +. ( -r -" -aZ ? -b -" -) -) -; -assert_eq -! -( -exact +: +a ( -[ -" -ab -" -" -aZb -" -] +? +: +b ) -e ( -r -" -aZ -? ? -b -" +: +c ) ) +" +) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +pfx_defeated8 +prefixes " -aZ +a " ) -E +; +test_lit +! ( +pfx_defeated9 +prefixes " -ab -" -) -] -[ -I ( -" -Zb -" +? +m ) -E -( -" -ab +a " ) -] -) -e +; +test_lit +! ( +pfx_defeated10 +prefixes r " -aZ -* -b +\ +ba " ) -) ; -assert_eq +test_lit ! ( -inexact -( -[ -E -( +pfx_defeated11 +prefixes +r " -ab +\ +Ba " ) -I +; +test_lit +! ( +pfx_defeated12 +prefixes " -aZ +^ +* +a " ) -] -[ -E +; +test_lit +! ( +pfx_defeated13 +prefixes " -ab +^ ++ +a " ) -I +; +test_lit +! ( +pfx_crazy1 +prefixes +r " -Zb -" -) +M +[ +ou +] +' +? +am ++ +[ +ae ] -) -e -( r -" -aZ +. * -? -b -" -) -) -; -assert_eq -! -( -inexact ( [ -I -( -" -aZ -" +AEae +] +l +[ +- +] ) +? +[ +GKQ ] +h +? [ -I +aeu +] ++ ( -" -Zb -" -) +[ +dtz +] +[ +dhz ] +? ) -e ++ +af +[ +iy +] +" +C ( -r " -aZ -+ -b +Mo +\ +\ +' " ) -) -; -assert_eq -! -( -inexact -( -[ -I +C ( " -aZ +Mu +\ +\ +' " ) -] -[ -I +C ( " -Zb +Moam " ) -] -) -e +C ( -r " -aZ -+ -? -b +Muam " ) ) ; -assert_eq +macro_rules ! +test_exhausted +{ ( -exact -( -[ -" -aZZb -" -] +name +: +ident +which +: +ident +re +: +expr ) -e -( -r -" -aZ += +> { -2 -} -b -" -) -) -; -assert_eq +test_exhausted ! ( -inexact +name +which +re +) +; +} +; ( -[ -I +name +: +ident +which +: +ident +re +: +expr ( -" -aZZ -" +lit +: +expr ) -] +* +) += +> +{ +# [ -I +test +] +fn +name ( -" -ZZb -" ) -] +{ +let +expr += +ParserBuilder +: +: +new +( ) -e +. +build ( -r -" -aZ -{ -2 -3 -} -b -" ) +. +parse +( +re +) +. +unwrap +( ) ; -assert_eq -! +let +mut +lits += +Literals +: +: +empty ( -exact +) +; +lits +. +set_limit_size ( -[ -" -abc -" -" -" -] +20 ) -e +. +set_limit_class ( -r -" +10 +) +; +which ( -abc +& +mut +lits +& +expr ) -? -" +; +assert_lit_eq +! +( +Unicode +lits +( +lit ) +* ) ; -assert_eq -! +let +expr += +ParserBuilder +: +: +new ( -exact +) +. +allow_invalid_utf8 ( -[ -" -" -" -abc -" -] +true ) -e +. +unicode ( -r -" +false +) +. +build ( -abc ) -? -? -" +. +parse +( +re +) +. +unwrap +( ) +; +let +mut +lits += +Literals +: +: +empty +( ) ; -assert_eq +lits +. +set_limit_size +( +20 +) +. +set_limit_class +( +10 +) +; +which +( +& +mut +lits +& +expr +) +; +assert_lit_eq ! ( -inexact +Bytes +lits ( -[ -I +lit +) +* +) +; +} +} +; +} +test_exhausted +! ( +pfx_exhausted1 +prefixes " +[ a +- +z +] " ) -E +; +test_exhausted +! ( +pfx_exhausted2 +prefixes " -b -" -) -] [ -I -( -" -ab +a +- +z +] +* +A " ) -E +; +test_exhausted +! ( +pfx_exhausted3 +prefixes " -b -" -) +A +[ +a +- +z ] -) -e +Z +" +C ( -r " -a -* -b +A " ) ) ; -assert_eq +test_exhausted ! ( -inexact +pfx_exhausted4 +prefixes +" ( -[ -E +? +i +- +u +) +foobar +" +C ( " -b +FO " ) -I +C ( " -a +fO " ) -] -[ -E +C ( " -b +Fo " ) -I +C ( " -ab +fo " ) -] ) -e +; +test_exhausted +! ( -r +pfx_exhausted5 +prefixes " -a -* +( ? -b +: +ab +) +{ +100 +} +" +C +( +" +abababababababababab " ) ) ; -assert_eq +test_exhausted ! ( -inexact -( -[ -I -( +pfx_exhausted6 +prefixes " +( +? +: +( +? +: ab -" ) -] -[ -I +{ +100 +} +) +* +cd +" +C ( " -b +ababababab " ) -] -) -e +M ( -r " -ab -+ +cd " ) ) ; -assert_eq +test_exhausted ! ( -inexact +pfx_exhausted7 +prefixes +" +z ( -[ -I +? +: ( -" -a -" +? +: +ab ) -I +{ +100 +} +) +* +cd +" +C ( " -b +zababababab " ) -] -[ -I +M ( " -b +zcd " ) -] ) -e +; +test_exhausted +! ( -r +pfx_exhausted8 +prefixes " -a -* -b -+ +aaaaaaaaaaaaaaaaaaaaz +" +C +( +" +aaaaaaaaaaaaaaaaaaaa " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +sfx_one_lit1 +suffixes " a " -) -I +M ( " -b +a " ) -E -( -" -c -" ) -] -[ -I +; +test_lit +! ( +sfx_one_lit2 +suffixes " -bc +abc " -) -I +M ( " -ac +abc " ) -E +) +; +test_lit +! ( +sfx_one_lit3 +suffixes " -c -" -) -] +( +? +u ) -e +" +M ( -r " -a -* -b -* -c +\ +\ +xe2 +\ +\ +x98 +\ +\ +x83 " ) ) ; -assert_eq -! -( -inexact -( +# [ -I +cfg ( +feature += " -a +unicode +- +case " ) -I +] +test_lit +! ( +sfx_one_lit4 +suffixes " -b -" +( +? +ui ) -E +" +M ( " -c +\ +\ +xe2 +\ +\ +x98 +\ +\ +x83 " ) -] -[ -I +) +; +test_lit +! ( +sfx_class1 +suffixes " -bc +[ +1 +- +4 +] " -) -I +M ( " -ac +1 " ) -E +M ( " -c +2 " ) -] -) -e +M ( -r " -( -a -+ +3 +" ) -? +M ( -b -+ -) -? -c +" +4 " ) ) ; -assert_eq +test_lit ! ( -inexact +sfx_class2 +suffixes +" ( +? +u +) [ -I +] +" +M ( " -a +\ +\ +xe2 +\ +\ +x85 +\ +\ +xa0 " ) -I +M ( " -b +\ +\ +xe2 +\ +\ +x98 +\ +\ +x83 " ) -E +) +; +# +[ +cfg ( +feature += " -c +unicode +- +case " ) ] -[ -I +test_lit +! ( +sfx_class3 +suffixes " -bc -" +( +? +ui ) -I +[ +] +" +M ( " -ac +\ +\ +xe2 +\ +\ +x85 +\ +\ +xa0 " ) -E +M ( " -c +\ +\ +xe2 +\ +\ +x85 +\ +\ +xb0 " ) -] -) -e +M ( -r " -( -a -+ -| -) -( -b -+ -| -) -c +\ +\ +xe2 +\ +\ +x98 +\ +\ +x83 " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +sfx_one_lit_casei1 +suffixes " +( +? +i +- +u +) a " -) -I +M ( " -b +A " ) -I +M ( " -c +a " ) -E +) +; +test_lit +! ( +sfx_one_lit_casei2 +suffixes " -" +( +? +i +- +u ) -] -[ -I +abc +" +M ( " -c +ABC " ) -I +M ( " -b +ABc " ) -I +M ( " -a +AbC " ) -E +M ( " +Abc " ) -] -) -e +M ( -r " -a -* -b -* -c -* +aBC " ) -) -; -assert_eq -! -( -inexact -( -[ -I +M ( " -a +aBc " ) -I +M ( " -b +abC " ) -I +M ( " -c +abc " ) -] -[ -I +) +; +test_lit +! ( +sfx_group1 +suffixes " -c -" -) -] +( +a ) -e +" +M ( -r " a -* -b -* -c -+ " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +sfx_rep_zero_or_one1 +suffixes " a +? " ) -I +; +test_lit +! ( +sfx_rep_zero_or_one2 +suffixes " -b -" -) -] -[ -I ( -" -bc -" +? +: +abc ) -] +? +" ) -e +; +test_lit +! ( -r +sfx_rep_zero_or_more1 +suffixes " a * -b -+ -c " ) -) ; -assert_eq +test_lit ! ( -inexact +sfx_rep_zero_or_more2 +suffixes +" ( -[ -I +? +: +abc +) +* +" +) +; +test_lit +! ( +sfx_rep_one_or_more1 +suffixes " a ++ " -) -I +C ( " -b +a " ) -] -[ -I +) +; +test_lit +! ( +sfx_rep_one_or_more2 +suffixes " -c -" +( +? +: +abc ) -I ++ +" +C ( " -b +abc " ) -] ) -e +; +test_lit +! ( -r +sfx_rep_nested_one_or_more +suffixes " +( +? +: a -* -b + -c -* +) ++ +" +C +( +" +a " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +sfx_rep_range1 +suffixes " -ab +a +{ +0 +} " ) -E +; +test_lit +! ( +sfx_rep_range2 +suffixes " a +{ +0 +} " ) -] -[ -I +; +test_lit +! ( +sfx_rep_range3 +suffixes " -b +a +{ +0 +1 +} " ) -E +; +test_lit +! ( +sfx_rep_range4 +suffixes " a +{ +1 +} " -) -] -) -e +M ( -r " -ab -* +a " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +sfx_rep_range5 +suffixes " -ab +a +{ +2 +} " -) -E +M ( " -ac +aa " ) -] -[ -I +) +; +test_lit +! ( +sfx_rep_range6 +suffixes " -bc +a +{ +1 +2 +} " -) -E +C ( " -ac +a " ) -] ) -e +; +test_lit +! ( -r +sfx_rep_range7 +suffixes " -ab -* -c +a +{ +2 +3 +} +" +C +( +" +aa " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( -" -ab +sfx_cat1 +suffixes " +( +? +: +a ) -] -[ -I ( -" +? +: b -" -) -] ) -e +" +M ( -r " ab -+ " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +sfx_cat2 +suffixes " +[ ab -" -) ] -[ -I +z +" +M ( " -bc +az " ) -] -) -e +M ( -r " -ab -+ -c +bz " ) ) ; -assert_eq +test_lit ! ( -inexact +sfx_cat3 +suffixes +" ( +? +i +- +u +) [ -I -( -" +ab +] z " -) -E +M ( " -azb +AZ " ) -] -[ -I +M ( " -zazb +Az " ) -E +M ( " -azb +BZ " ) -] -) -e +M ( -r " -z -* -azb +Bz " ) -) -; -let -expected -= -exact +M ( -[ -" -aaa -" " -aab -" -" -aba -" -" -abb -" -" -baa +aZ " +) +M +( " -bab +az " +) +M +( " -bba +bZ " +) +M +( " -bbb +bz " -] +) ) ; -assert_eq +test_lit ! ( -expected -e -( -r +sfx_cat4 +suffixes " [ ab ] -{ -3 -} -" -) -) -; -let -expected -= -inexact -( [ -I -( -" -aaa +yz +] " -) -I +M ( " -aab +ay " ) -I +M ( " -aba +az " ) -I +M ( " -abb +by " ) -I +M ( " -baa +bz " ) -I +) +; +test_lit +! ( +sfx_cat5 +suffixes " -bab +a +* +b " -) -I +C ( " -bba +ab " ) -I +M ( " -bbb +b " ) -] -[ -I +) +; +test_lit +! ( +sfx_cat6 +suffixes " -aaa +a +* +b +* +c " -) -I +C ( " -aab +bc " ) -I +C ( " -aba +ac " ) -I +M ( " -abb +c " ) -I +) +; +test_lit +! ( +sfx_cat7 +suffixes " -baa +a +* +b +* +c ++ " -) -I +C ( " -bab +c " ) -I +) +; +test_lit +! ( +sfx_cat8 +suffixes " -bba +a +* +b ++ +c " -) -I +C ( " -bbb +bc " ) -] ) ; -assert_eq +test_lit ! ( -expected -e -( -r +sfx_cat9 +suffixes " -[ -ab -] -{ -3 -4 -} +a +* +b ++ +c +* " -) -) -; -} -# -[ -test -] -fn -concat -( -) -{ -let -empty -: -[ -& -str -; -0 -] -= -[ -] -; -assert_eq -! +C ( -exact -( -[ " -abcxyz +c " -] ) -e +C ( -r " -abc -( -) -xyz +b " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +sfx_cat10 +suffixes " -abcxyz +ab +* " -] -) -e +C ( -r " -( -abc +b +" ) +M ( -xyz -) +" +a " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +sfx_cat11 +suffixes " -abcmnoxyz +ab +* +c " -] -) -e +C ( -r " -abc -( +bc +" ) -mno +M ( -) -xyz +" +ac " ) ) ; -assert_eq +test_lit ! ( -exact -( -empty -) -e +sfx_cat12 +suffixes +" +ab ++ +" +C ( -r " -abc -[ -a -& -& b -] -xyz " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +sfx_cat13 +suffixes " -abcxyz +ab ++ +c " -] -) -e +C ( -r " -abc -[ -a -& -& -b -] -* -xyz +bc " ) ) ; -} -# -[ -test -] -fn -alternation -( -) -{ -assert_eq +test_lit ! ( -exact -( -[ -" -abc -" +sfx_cat14 +suffixes " -mno +a +^ " +) +; +test_lit +! +( +sfx_cat15 +suffixes " -xyz +a " -] -) -e +C ( -r " -abc -| -mno -| -xyz +a " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -E -( +sfx_cat16 +suffixes +r " -abc +ab +* +c " -) -I +C ( " -mZ +bc " ) -E +M ( " -mo +ac " ) -E +) +; +test_lit +! ( +sfx_cat17 +suffixes +r " -xyz +ab ++ +c " -) -] -[ -E +C ( " -abc +bc " ) -I +) +; +test_lit +! ( +sfx_cat18 +suffixes +r " -Zo +z +* +azb " -) -E +C ( " -mo +zazb " ) -E +M ( " -xyz +azb " ) -] ) -e +; +test_lit +! ( -r +sfx_cat19 +suffixes " -abc -| -mZ -* -o -| -xyz +a +. +z +" +C +( +" +z " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +sfx_alt1 +suffixes " -abc +a +| +b " +M +( " -xyz +a " -] ) -e +M ( -r " -abc -| -M -[ -a -& -& b -] -N -| -xyz " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ +sfx_alt2 +suffixes " -abc +[ +1 +- +3 +] +| +b " +M +( " -MN +1 " +) +M +( " -xyz +2 " -] ) -e +M ( -r " -abc -| +3 +" +) M -[ -a -& -& +( +" b -] -* -N -| -xyz " ) ) ; -assert_eq +test_lit ! ( -exact -( -[ -" -aaa -" -" -aaaaa -" -] -) -e -( -r +sfx_alt3 +suffixes " +y ( ? : +a | -aa +b ) -aaa +z " -) -) -; -assert_eq -! -( -inexact -( -[ -I +M ( " -aaa +yaz " ) -E +M ( " +ybz " ) -I -( -" -aaaaa -" ) -E +; +test_lit +! ( +sfx_alt4 +suffixes " -aa +a +| +b +* " ) -] -[ -I +; +test_lit +! ( +sfx_alt5 +suffixes " -aaa +a +| +b ++ " -) -E +M ( " +a " ) -E +C ( " -aa +b " ) -] ) -e +; +test_lit +! ( -r +sfx_alt6 +suffixes " -( -? -: +a | -aa -) ( ? : -aaa -) +b +| +c * -" ) +" ) ; -assert_eq +test_lit ! ( -inexact -( -[ -E -( -" +sfx_alt7 +suffixes " +( +a +| +b ) -I +* +c +| ( -" -aaa -" +a +| +ab ) -E +* +c +" +C ( " -aa +ac " ) -I +C ( " -aaaaa +bc " ) -] -[ -E +M ( " +c " ) -I +C ( " -aaa +ac " ) -E +C ( " -aa +abc " ) -] -) -e +M ( -r " -( -? -: -| -aa -) -( -? -: -aaa -) -* -? +c " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -E -( +sfx_alt8 +suffixes " a +* +b +| +c +" +C +( +" +ab " ) -I +M ( " b " ) -E +M ( " +c " ) -] -[ -E +) +; +test_lit +! ( +sfx_empty1 +suffixes " a " -) -I +M ( " -b +a " ) -E +) +; +test_lit +! ( +sfx_empty2 +suffixes " +{ +2 +} +a " -) -] -) -e +C ( -r " a -| -b -* " ) ) ; -assert_eq +test_lit ! ( -inexact -( -[ -E -( +sfx_nothing1 +suffixes " -a +. " ) -I +; +test_lit +! ( +sfx_nothing2 +suffixes " -b +( +? +s +) +. " ) -] -[ -E +; +test_lit +! ( +sfx_nothing3 +suffixes " -a +^ " ) -I +; +test_lit +! ( +sfx_nothing4 +suffixes " -b " ) -] +; +test_lit +! +( +sfx_nothing6 +suffixes +" +( +? +m ) -e +" +) +; +test_lit +! ( +sfx_nothing7 +suffixes r " -a -| +\ b -+ " ) -) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +sfx_nothing8 +suffixes +r " -a +\ +B " ) -E +; +test_lit +! ( +sfx_defeated1 +suffixes " -b +a +. " ) -E +; +test_lit +! ( +sfx_defeated2 +suffixes " -c -" -) -] -[ -I -( -" -ab -" -) -E ( -" -b -" +? +s ) -E -( -" -c +a +. " ) -] -) -e +; +test_lit +! ( -r +sfx_defeated3 +suffixes " a * b -| +* c +* " ) -) ; -assert_eq +test_lit ! ( -inexact -( -[ -E -( +sfx_defeated4 +suffixes " a +| +. " ) -E +; +test_lit +! ( +sfx_defeated5 +suffixes " -b +. +| +a " ) -I +; +test_lit +! ( +sfx_defeated6 +suffixes " -c +a +| +^ " ) -E +; +test_lit +! ( +sfx_defeated7 +suffixes " -" -) -] -[ -E ( -" +? +: a -" -) -E ( -" +? +: b -" ) -I ( -" +? +: c +) +) +. " ) -E +; +test_lit +! ( +sfx_defeated8 +suffixes " +a +^ " ) -] -) -e +; +test_lit +! ( -r +sfx_defeated9 +suffixes " -a -| ( ? -: -b -| -c -* +m ) +a " ) -) ; -assert_eq +test_lit ! ( -inexact -( -[ -I -( +sfx_defeated10 +suffixes +r " a +\ +b " ) -I +; +test_lit +! ( +sfx_defeated11 +suffixes +r " -b +a +\ +B " ) -E +; +test_lit +! ( +sfx_defeated12 +suffixes " -c +a +^ +* " ) -I +; +test_lit +! ( +sfx_defeated13 +suffixes " a +^ ++ " ) -I +; +test_exhausted +! ( +sfx_exhausted1 +suffixes " -ab +[ +a +- +z +] " ) -E +; +test_exhausted +! ( +sfx_exhausted2 +suffixes " -c +A +[ +a +- +z +] +* " ) -] +; +test_exhausted +! +( +sfx_exhausted3 +suffixes +" +A [ -I +a +- +z +] +Z +" +C ( " -ac +Z " ) -I +) +; +test_exhausted +! ( +sfx_exhausted4 +suffixes " -bc -" +( +? +i +- +u ) -E +foobar +" +C ( " -c +AR " ) -I +C ( " -ac +Ar " ) -I +C ( " -abc +aR " ) -E +C ( " -c +ar " ) -] ) -e +; +test_exhausted +! ( -r +sfx_exhausted5 +suffixes " ( -a -| -b -) -* -c -| -( -a -| +? +: ab ) -* -c +{ +100 +} +" +C +( +" +abababababababababab " ) ) ; -assert_eq +test_exhausted ! ( -exact -( -[ -" -abef -" -" -abgh -" +sfx_exhausted6 +suffixes " -cdef +cd +( +? +: +( +? +: +ab +) +{ +100 +} +) +* " +C +( " -cdgh +ababababab " -] ) -e +M ( -r " -( -ab -| cd -) -( -ef -| -gh -) " ) ) ; -assert_eq +test_exhausted ! ( -exact -( -[ -" -abefij -" -" -abefkl -" -" -abghij -" +sfx_exhausted7 +suffixes " -abghkl +cd +( +? +: +( +? +: +ab +) +{ +100 +} +) +* +z " +C +( " -cdefij +abababababz " +) +M +( " -cdefkl +cdz " +) +) +; +test_exhausted +! +( +sfx_exhausted8 +suffixes " -cdghij +zaaaaaaaaaaaaaaaaaaaa " +C +( " -cdghkl +aaaaaaaaaaaaaaaaaaaa " +) +) +; +macro_rules +! +test_unamb +{ +( +name +: +ident +given +: +expr +expected +: +expr +) += +> +{ +# +[ +test ] +fn +name +( ) -e +{ +let +given +: +Vec +< +Literal +> += +given +. +into_iter ( -r -" +) +. +map ( -ab | -cd +ul +| +{ +let +cut += +ul +. +is_cut +( ) +; +Literal +{ +v +: +ul +. +v +. +into_bytes ( -ef -| -gh ) +cut +: +cut +} +} +) +. +collect ( -ij -| -kl ) -" +; +let +lits += +create_lits +( +given ) +; +let +got += +lits +. +unambiguous_prefixes +( ) ; assert_eq ! ( -inexact +expected +escape_lits +( +got +. +literals +( +) +) +) +; +} +} +; +} +test_unamb +! ( +unambiguous1 +vec +! [ -E +M ( " -abab +z " ) -] -[ -E +M ( " -abab +azb " ) ] -) -e +vec +! +[ +C ( -r " -( -ab +a +" ) -{ -2 -} +C +( +" +z " ) +] ) ; -assert_eq +test_unamb ! ( -inexact -( +unambiguous2 +vec +! [ -I +M ( " -abab +zaaaaaa " ) -] -[ -I +M ( " -abab +aa " ) ] -) -e +vec +! +[ +C ( -r " -( -ab +aa +" ) -{ -2 -3 -} +C +( +" +z " ) +] ) ; -assert_eq +test_unamb ! ( -inexact -( +unambiguous3 +vec +! [ -I +M ( " -abab +Sherlock " ) -] -[ -I +M ( " -abab +Watson " ) ] -) -e +vec +! +[ +M ( -r " -( -ab -) -{ -2 -} +Sherlock " ) -) -; -} -# -[ -test -] -fn -impossible +M ( +" +Watson +" ) -{ -let -empty -: -[ -& -str -; -0 -] -= -[ ] +) ; -assert_eq +test_unamb ! ( -exact +unambiguous4 +vec +! +[ +M ( -empty +" +abc +" ) -e +M ( -r " +bc +" +) +] +vec +! [ +C +( +" a -& -& -b -] " ) +C +( +" +bc +" +) +] ) ; -assert_eq +test_unamb ! ( -exact -( -empty -) -e +unambiguous5 +vec +! +[ +M ( -r " -a +bc +" +) +M +( +" +abc +" +) +] +vec +! [ +C +( +" a -& -& -b -] " ) +C +( +" +bc +" +) +] ) ; -assert_eq +test_unamb ! ( -exact +unambiguous6 +vec +! +[ +M ( -empty +" +a +" ) -e +M ( -r " +aa +" +) +] +vec +! [ +C +( +" a -& -& -b -] -b " ) +] ) ; -assert_eq +test_unamb ! ( -exact +unambiguous7 +vec +! +[ +M ( -empty +" +aa +" ) -e +M ( -r " a +" +) +] +vec +! [ +C +( +" a -& -& -b -] -b " ) +] ) ; -assert_eq +test_unamb ! ( -exact -( +unambiguous8 +vec +! [ +M +( " -a -" -" -b +ab " -] ) -e +M ( -r " a -| +" +) +] +vec +! [ +C +( +" a -& -& -b -] -| -b " ) +] ) ; -assert_eq +test_unamb ! ( -exact -( +unambiguous9 +vec +! [ +M +( " -a +ac " +) +M +( " -b +bc " -] ) -e +M ( -r " -a -| c -[ -a -& -& -b -] -| -b " ) -) -; -assert_eq -! -( -exact +M ( -[ " -a +ac " +) +M +( " -b +abc " -] ) -e +M ( -r " -a -| -[ -a -& -& -b -] -d -| -b +c " ) -) -; -assert_eq +] +vec ! -( -exact -( [ +C +( " a " +) +C +( " b " -] ) -e +C ( -r " -a -| c -[ -a -& -& -b -] -d -| -b " ) +] ) ; -assert_eq +test_unamb ! ( -exact -( +unambiguous10 +vec +! [ +M +( " +Mo +' " -] ) -e +M ( -r " -[ -a -& -& -b -] -* +Mu +' " ) -) -; -assert_eq -! -( -exact +M ( -[ " -MN +Mo " -] ) -e +M ( -r " -M -[ -a -& -& -b -] -* -N +Mu " ) -) -; -} -# -[ -test ] -fn -anything -( -) -{ -assert_eq +vec ! +[ +C ( -infinite -( +" +Mo +" ) -e +C ( -r " -. +Mu " ) +] ) ; -assert_eq +test_unamb ! ( -infinite +unambiguous11 +vec +! +[ +M ( -) -e -( -r " -( -? -s -) -. +zazb " ) -) -; -assert_eq -! -( -infinite -( -) -e +M ( -r " -[ -A -- -Za -- -z -] +azb " ) -) -; -assert_eq +] +vec ! +[ +C ( -infinite -( +" +a +" ) -e +C ( -r " -[ -A -- -Z -] +z " ) +] ) ; -assert_eq +test_unamb ! ( -exact -( +unambiguous12 +vec +! [ +M +( " +foo " -] ) -e +C ( -r " -[ -A -- -Z -] -{ -0 -} +foo " ) -) -; -assert_eq +] +vec ! +[ +C ( -infinite -( -) -e -( -r " -[ -A -- -Z -] -? +foo " ) +] ) ; -assert_eq +test_unamb ! ( -infinite -( -) -e +unambiguous13 +vec +! +[ +M ( -r " -[ -A -- -Z -] -* +ABCX " ) -) -; -assert_eq -! -( -infinite +M ( +" +CDAX +" ) -e +M ( -r " -[ -A -- -Z -] -+ +BCX " ) -) -; -assert_eq +] +vec ! -( -( -seq -( [ -I +C ( " -1 +A " ) -] -) -Seq -: -: -infinite +C ( +" +BCX +" ) -) -e +C ( -r " -1 -[ -A -- -Z -] +CD " ) +] ) ; -assert_eq +test_unamb ! ( -( -seq -( +unambiguous14 +vec +! [ -I +M ( " -1 +IMGX " ) -] -) -seq -( -[ -I +M ( " -2 +MVIX " ) -] -) -) -e +M ( -r " -1 -[ -A -- -Z -] -2 +MGX " ) -) -; -assert_eq -! -( -( -Seq -: -: -infinite +M ( +" +DSX +" ) -seq -( +] +vec +! [ -I +M ( " -123 +DSX " ) -] -) -) -e +C ( -r " -[ -A -- -Z -] -+ -123 +I " ) -) -; -assert_eq -! -( -infinite +C ( +" +MGX +" ) -e +C ( -r " -[ -A -- -Z -] -+ -123 -[ -A -- -Z -] -+ +MV " ) +] ) ; -assert_eq +test_unamb ! ( -infinite +unambiguous15 +vec +! +[ +M ( +" +IMG_ +" ) -e +M ( -r " -1 -| -[ -A -- -Z -] -| -3 +MG_ " ) +M +( +" +CIMG +" ) -; -assert_eq +] +vec ! -( -( -seq -( [ -E +C ( " -1 +C " ) -I +C ( " -2 +I " ) -E +C ( " -3 +MG_ " ) ] ) -Seq +; +macro_rules +! +test_trim +{ +( +name : +ident +trim : -infinite +expr +given +: +expr +expected +: +expr +) += +> +{ +# +[ +test +] +fn +name ( ) +{ +let +given +: +Vec +< +Literal +> += +given +. +into_iter +( ) -e +. +map ( -r -" -1 | -2 -[ -A -- -Z -] +ul | -3 -" +{ +let +cut += +ul +. +is_cut +( +) +; +Literal +{ +v +: +ul +. +v +. +into_bytes +( +) +cut +: +cut +} +} +) +. +collect +( +) +; +let +lits += +create_lits +( +given +) +; +let +got += +lits +. +trim_suffix +( +trim ) +. +unwrap +( ) ; assert_eq ! ( +expected +escape_lits ( -Seq -: -: -infinite +got +. +literals ( ) -seq +) +) +; +} +} +; +} +test_trim +! ( +trim1 +1 +vec +! [ -E +M ( " -1 +ab " ) -I +M ( " -2 +yz " ) -E +] +vec +! +[ +C ( " -3 +a " ) -] -) -) -e +C ( -r " -1 -| -[ -A -- -Z -] -2 -| -3 +y " ) +] ) ; -assert_eq +test_trim ! ( -( -seq -( +trim2 +1 +vec +! [ -E +M ( " -1 +abc " ) -I +M ( " -2 +abd " ) -E +] +vec +! +[ +C ( " -4 +ab " ) ] ) -seq +; +test_trim +! ( +trim3 +2 +vec +! [ -E -( -" -1 -" -) -I +M ( " -3 +abc " ) -E +M ( " -4 +abd " ) ] -) -) -e +vec +! +[ +C ( -r " -1 -| -2 -[ -A -- -Z -] -3 -| -4 +a " ) +] ) ; -assert_eq +test_trim ! ( -( -Seq -: -: -infinite -( -) -seq -( +trim4 +2 +vec +! [ -I +M ( " -2 +abc " ) -] -) -) -e +M ( -r " -( -? -: -| -1 -) -[ -A -- -Z -] -2 +ghij " ) -) -; -assert_eq +] +vec ! -( -inexact -( [ -I +C ( " a " ) -] -[ -I +C ( " -z +gh " ) ] ) -e +; +macro_rules +! +test_lcp +{ ( -r -" -a -. -z -" -) +name +: +ident +given +: +expr +expected +: +expr ) -; -} += +> +{ # [ test ] fn -anything_small_limits +name ( ) { -fn -prefixes -( -pattern +let +given : -& -str -) -- +Vec +< +Literal > -Seq -{ -Extractor -: -: -new -( -) -. -kind -( -ExtractKind -: -: -Prefix -) += +given . -limit_total +into_iter ( -10 ) . -extract -( -& -parse -( -pattern -) -) -} -fn -suffixes +map ( -pattern +| +s : & str -) -- -> -Seq +| +Literal { -Extractor +v : -: -new -( -) +s . -kind +to_owned ( -ExtractKind -: -: -Suffix ) . -limit_total +into_bytes ( -10 +) +cut +: +false +} ) . -extract -( -& -parse +collect ( -pattern ) -) -} -fn -e +; +let +lits += +create_lits ( -pattern -: -& -str +given ) -- -> +; +let +got += +lits +. +longest_common_prefix ( -Seq -Seq ) -{ -( -prefixes +; +assert_eq +! ( -pattern -) -suffixes +expected +escape_bytes ( -pattern +got ) ) +; } -assert_eq +} +; +} +test_lcp ! ( -( -seq -( +lcp1 +vec +! [ -I -( " -aaa +a " -) -I -( +] " -aab +a " ) -I +; +test_lcp +! ( +lcp2 +vec +! +[ +] " -aba " ) -I +; +test_lcp +! ( +lcp3 +vec +! +[ " -abb +a " -) -I -( " -baa +b " -) -I -( +] " -bab " ) -I +; +test_lcp +! ( +lcp4 +vec +! +[ " -bba +ab " -) -I -( " -bbb +ab " -) ] +" +ab +" ) -seq +; +test_lcp +! ( +lcp5 +vec +! [ -I -( " -aaa +ab " -) -I -( " -aab +a " -) -I -( +] " -aba +a " ) -I +; +test_lcp +! ( +lcp6 +vec +! +[ " -abb +a " -) -I -( " -baa +ab " -) -I -( +] " -bab +a " ) -I +; +test_lcp +! ( +lcp7 +vec +! +[ " -bba +ab " -) -I -( " -bbb +b " -) ] -) -) -e -( -r " -[ -ab -] -{ -3 -} -{ -3 -} " ) -) ; -assert_eq +test_lcp ! ( -infinite -( -) -e -( -r -" -ab -| -cd -| -ef -| -gh -| -ij -| -kl -| -mn -| -op -| -qr -| -st -| -uv -| -wx -| -yz -" -) -) -; -} -# -[ -test -] -fn -empty -( -) -{ -assert_eq +lcp8 +vec ! -( -exact -( [ " +b +" +" +ab " ] -) -e -( -r " " ) -) ; -assert_eq +test_lcp ! ( -exact -( +lcp9 +vec +! [ " +foobar +" +" +foobaz " ] -) -e -( -r " -^ +fooba " ) -) ; -assert_eq +test_lcp ! ( -exact -( +lcp10 +vec +! [ " +foobar " -] -) -e -( -r " +foobaz " -) -) -; -assert_eq -! -( -exact -( -[ " +a " ] -) -e -( -r " -( -? -m -: -^ -) " ) -) ; -assert_eq +test_lcp ! ( -exact -( +lcp11 +vec +! [ " +a " -] -) -e -( -r " -( -? -m -: -) +foobar " -) -) -; -assert_eq -! -( -exact -( -[ " +foobaz " ] -) -e -( -r " -\ -b " ) -) ; -assert_eq +test_lcp ! ( -exact -( +lcp12 +vec +! [ " +foo " -] -) -e -( -r " -\ -B +flub " -) -) -; -assert_eq -! -( -exact -( -[ +" +flab " " +floo +" ] -) -e -( -r " -( -? -- -u -: -\ -b -) +f " ) -) ; -assert_eq +macro_rules ! +test_lcs +{ ( -exact -( -[ -" -" -] -) -e -( -r -" -( -? -- -u +name : -\ -B -) -" -) +ident +given +: +expr +expected +: +expr ) -; -} += +> +{ # [ test ] fn -odds_and_ends +name ( ) { -assert_eq -! -( -( -Seq -: -: -infinite -( -) -seq -( -[ -I -( -" -a -" -) -] -) -) -e -( -r -" -. -a -" -) -) -; -assert_eq -! -( -( -seq -( -[ -I -( -" -a -" -) -] -) -Seq -: +let +given : -infinite -( -) -) -e -( -r -" -a +Vec +< +Literal +> += +given . -" -) -) -; -assert_eq -! -( -infinite +into_iter ( ) -e -( -r -" -a -| . -" -) -) -; -assert_eq -! -( -infinite -( -) -e +map ( -r -" -. | -a -" -) -) -; -let -pat -= -r -" -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -" -; -let -expected -= -inexact -( -[ -" -Mo -' -am -" -" -Moam -" -" -Mu -' -am -" -" -Muam -" -] -. -map -( -I -) -[ -" -ddafi -" -" -ddafy -" -" -dhafi -" -" -dhafy -" -" -dzafi -" -" -dzafy -" -" -dafi -" -" -dafy -" -" -tdafi -" -" -tdafy -" -" -thafi -" -" -thafy -" -" -tzafi -" -" -tzafy -" -" -tafi -" -" -tafy -" -" -zdafi -" -" -zdafy -" -" -zhafi -" -" -zhafy -" -" -zzafi -" -" -zzafy -" -" -zafi -" -" -zafy -" -] -. -map -( -I -) -) -; -assert_eq -! -( -expected -e -( -pat -) -) -; -assert_eq -! -( -( -seq -( -[ -" -fn -is_ -" -" -fn -as_ -" -] -. -map -( -I -) -) -Seq -: -: -infinite -( -) -) -e -( -r -" -fn -is_ -( -[ -A -- -Z -] -+ -) -| -fn -as_ -( -[ -A -- -Z -] -+ -) -" -) -) -; -assert_eq -! -( -inexact -( -[ -I -( -" -foo -" -) -] -[ -I -( -" -quux -" -) -] -) -e -( -r -" -foo -[ -A -- -Z -] -+ -bar -[ -A -- -Z -] -+ -quux -" -) -) -; -assert_eq -! -( -infinite -( -) -e -( -r -" -[ -A -- -Z -] -+ -bar -[ -A -- -Z -] -+ -" -) -) -; -assert_eq -! -( -exact -( -[ -" -Sherlock -Holmes -" -] -) -e -( -r -" -( -? -m -) -^ -Sherlock -Holmes -| -Sherlock -Holmes -" -) -) -; -assert_eq -! -( -exact -( -[ -" -sa -" -" -sb -" -] -) -e -( -r -" -\ -bs -( -? -: -[ -ab -] -) -" -) -) -; -} -# -[ -test -] -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] -fn -holmes -( -) -{ -let -expected -= -inexact -( -[ -" -HOL -" -" -HOl -" -" -HoL -" -" -Hol -" -" -hOL -" -" -hOl -" -" -hoL -" -" -hol -" -] -. -map -( -I -) -[ -" -MES -" -" -MEs -" -" -E -" -" -MeS -" -" -Mes -" -" -e -" -" -mES -" -" -mEs -" -" -meS -" -" -mes -" -] -. -map -( -I -) -) -; -let -( -mut -prefixes -mut -suffixes -) -= -e -( -r -" -( -? -i -) -Holmes -" -) -; -prefixes -. -keep_first_bytes -( -3 -) -; -suffixes -. -keep_last_bytes -( -3 -) -; -prefixes -. -minimize_by_preference -( -) -; -suffixes -. -minimize_by_preference -( -) -; -assert_eq -! -( -expected -( -prefixes -suffixes -) -) -; -} -# -[ -test -] -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] -fn -holmes_alt -( -) -{ -let -mut -pre -= -prefixes -( -r -" -( -? -i -) -Sherlock -| -Holmes -| -Watson -| -Irene -| -Adler -| -John -| -Baker -" -) -; -assert -! -( -pre -. -len -( -) -. -unwrap -( -) -> -0 -) -; -pre -. -optimize_for_prefix_by_preference -( -) -; -assert -! -( -pre -. -len -( -) -. -unwrap -( -) -> -0 -) -; -} -# -[ -test -] -fn -crazy_repeats -( -) -{ -assert_eq -! -( -inexact -( -[ -E -( -" -" -) -] -[ -E -( -" -" -) -] -) -e -( -r -" -( -? -: -) -{ -4294967295 -} -" -) -) -; -assert_eq -! -( -inexact -( -[ -E -( -" -" -) -] -[ -E -( -" -" -) -] -) -e -( -r -" -( -? -: -) -{ -64 -} -{ -64 -} -{ -64 -} -{ -64 -} -{ -64 -} -{ -64 -} -" -) -) -; -assert_eq -! -( -inexact -( -[ -E -( -" -" -) -] -[ -E -( -" -" -) -] -) -e -( -r -" -x -{ -0 -} -{ -4294967295 -} -" -) -) -; -assert_eq -! -( -inexact -( -[ -E -( -" -" -) -] -[ -E -( -" -" -) -] -) -e -( -r -" -( -? -: -| -) -{ -4294967295 -} -" -) -) -; -assert_eq -! -( -inexact -( -[ -E -( -" -" -) -] -[ -E -( -" -" -) -] -) -e -( -r -" -( -? -: -) -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -" -) -) -; -let -repa -= -" -a -" -. -repeat -( -100 -) -; -assert_eq -! -( -inexact -( -[ -I -( -& -repa -) -] -[ -I -( -& -repa -) -] -) -e -( -r -" -a -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -{ -8 -} -" -) -) -; -} -# -[ -test -] -fn -huge -( -) -{ -let -pat -= -r -# -" -( -? -- -u -) -2 -( -? -: -[ -45 -] -\ -d -{ -3 -} -| -7 -( -? -: -1 -[ -0 -- -267 -] -| -2 -[ -0 -- -289 -] -| -3 -[ -0 -- -29 -] -| -4 -[ -01 -] -| -5 -[ -1 -- -3 -] -| -6 -[ -013 -] -| -7 -[ -0178 -] -| -91 -) -| -8 -( -? -: -0 -[ -125 -] -| -[ -139 -] -[ -1 -- -6 -] -| -2 -[ -0157 -- -9 -] -| -41 -| -6 -[ -1 -- -35 -] -| -7 -[ -1 -- -5 -] -| -8 -[ -1 -- -8 -] -| -90 -) -| -9 -( -? -: -0 -[ -0 -- -2 -] -| -1 -[ -0 -- -4 -] -| -2 -[ -568 -] -| -3 -[ -3 -- -6 -] -| -5 -[ -5 -- -7 -] -| -6 -[ -0167 -] -| -7 -[ -15 -] -| -8 -[ -0146 -- -9 -] -) -) -\ -d -{ -4 -} -| -3 -( -? -: -12 -? -[ -5 -- -7 -] -\ -d -{ -2 -} -| -0 -( -? -: -2 -( -? -: -[ -025 -- -79 -] -\ -d -| -[ -348 -] -\ -d -{ -1 -2 -} -) -| -3 -( -? -: -[ -2 -- -4 -] -\ -d -| -[ -56 -] -\ -d -? -) -) -| -2 -( -? -: -1 -\ -d -{ -2 -} -| -2 -( -? -: -[ -12 -] -\ -d -| -[ -35 -] -\ -d -{ -1 -2 -} -| -4 -\ -d -? -) -) -| -3 -( -? -: -1 -\ -d -{ -2 -} -| -2 -( -? -: -[ -2356 -] -\ -d -| -4 -\ -d -{ -1 -2 -} -) -) -| -4 -( -? -: -1 -\ -d -{ -2 -} -| -2 -( -? -: -2 -\ -d -{ -1 -2 -} -| -[ -47 -] -| -5 -\ -d -{ -2 -} -) -) -| -5 -( -? -: -1 -\ -d -{ -2 -} -| -29 -) -| -[ -67 -] -1 -\ -d -{ -2 -} -| -8 -( -? -: -1 -\ -d -{ -2 -} -| -2 -( -? -: -2 -\ -d -{ -2 -} -| -3 -| -4 -\ -d -) -) -) -\ -d -{ -3 -} -| -4 -( -? -: -0 -( -? -: -2 -( -? -: -[ -09 -] -\ -d -| -7 -) -| -33 -\ -d -{ -2 -} -) -| -1 -\ -d -{ -3 -} -| -2 -( -? -: -1 -\ -d -{ -2 -} -| -2 -( -? -: -[ -25 -] -\ -d -? -| -[ -348 -] -\ -d -| -[ -67 -] -\ -d -{ -1 -2 -} -) -) -| -3 -( -? -: -1 -\ -d -{ -2 -} -( -? -: -\ -d -{ -2 -} -) -? -| -2 -( -? -: -[ -045 -] -\ -d -| -[ -236 -- -9 -] -\ -d -{ -1 -2 -} -) -| -32 -\ -d -{ -2 -} -) -| -4 -( -? -: -[ -18 -] -\ -d -{ -2 -} -| -2 -( -? -: -[ -2 -- -46 -] -\ -d -{ -2 -} -| -3 -) -| -5 -[ -25 -] -\ -d -{ -2 -} -) -| -5 -( -? -: -1 -\ -d -{ -2 -} -| -2 -( -? -: -3 -\ -d -| -5 -) -) -| -6 -( -? -: -[ -18 -] -\ -d -{ -2 -} -| -2 -( -? -: -3 -( -? -: -\ -d -{ -2 -} -) -? -| -[ -46 -] -\ -d -{ -1 -2 -} -| -5 -\ -d -{ -2 -} -| -7 -\ -d -) -| -5 -( -? -: -3 -\ -d -? -| -4 -\ -d -| -[ -57 -] -\ -d -{ -1 -2 -} -| -6 -\ -d -{ -2 -} -| -8 -) -) -| -71 -\ -d -{ -2 -} -| -8 -( -? -: -[ -18 -] -\ -d -{ -2 -} -| -23 -\ -d -{ -2 -} -| -54 -\ -d -{ -2 -} -) -| -9 -( -? -: -[ -18 -] -\ -d -{ -2 -} -| -2 -[ -2 -- -5 -] -\ -d -{ -2 -} -| -53 -\ -d -{ -1 -2 -} -) -) -\ -d -{ -3 -} -| -5 -( -? -: -02 -[ -03489 -] -\ -d -{ -2 -} -| -1 -\ -d -{ -2 -} -| -2 -( -? -: -1 -\ -d -{ -2 -} -| -2 -( -? -: -2 -( -? -: -\ -d -{ -2 -} -) -? -| -[ -457 -] -\ -d -{ -2 -} -) -) -| -3 -( -? -: -1 -\ -d -{ -2 -} -| -2 -( -? -: -[ -37 -] -( -? -: -\ -d -{ -2 -} -) -? -| -[ -569 -] -\ -d -{ -2 -} -) -) -| -4 -( -? -: -1 -\ -d -{ -2 -} -| -2 -[ -46 -] -\ -d -{ -2 -} -) -| -5 -( -? -: -1 -\ -d -{ -2 -} -| -26 -\ -d -{ -1 -2 -} -) -| -6 -( -? -: -[ -18 -] -\ -d -{ -2 -} -| -2 -| -53 -\ -d -{ -2 -} -) -| -7 -( -? -: -1 -| -24 -) -\ -d -{ -2 -} -| -8 -( -? -: -1 -| -26 -) -\ -d -{ -2 -} -| -91 -\ -d -{ -2 -} -) -\ -d -{ -3 -} -| -6 -( -? -: -0 -( -? -: -1 -\ -d -{ -2 -} -| -2 -( -? -: -3 -\ -d -{ -2 -} -| -4 -\ -d -{ -1 -2 -} -) -) -| -2 -( -? -: -2 -[ -2 -- -5 -] -\ -d -{ -2 -} -| -5 -( -? -: -[ -3 -- -5 -] -\ -d -{ -2 -} -| -7 -) -| -8 -\ -d -{ -2 -} -) -| -3 -( -? -: -1 -| -2 -[ -3478 -] -) -\ -d -{ -2 -} -| -4 -( -? -: -1 -| -2 -[ -34 -] -) -\ -d -{ -2 -} -| -5 -( -? -: -1 -| -2 -[ -47 -] -) -\ -d -{ -2 -} -| -6 -( -? -: -[ -18 -] -\ -d -{ -2 -} -| -6 -( -? -: -2 -( -? -: -2 -\ -d -| -[ -34 -] -\ -d -{ -2 -} -) -| -5 -( -? -: -[ -24 -] -\ -d -{ -2 -} -| -3 -\ -d -| -5 -\ -d -{ -1 -2 -} -) -) -) -| -72 -[ -2 -- -5 -] -\ -d -{ -2 -} -| -8 -( -? -: -1 -\ -d -{ -2 -} -| -2 -[ -2 -- -5 -] -\ -d -{ -2 -} -) -| -9 -( -? -: -1 -\ -d -{ -2 -} -| -2 -[ -2 -- -6 -] -\ -d -{ -2 -} -) -) -\ -d -{ -3 -} -| -7 -( -? -: -( -? -: -02 -| -[ -3 -- -589 -] -1 -| -6 -[ -12 -] -| -72 -[ -24 -] -) -\ -d -{ -2 -} -| -21 -\ -d -{ -3 -} -| -32 -) -\ -d -{ -3 -} -| -8 -( -? -: -( -? -: -4 -[ -12 -] -| -[ -5 -- -7 -] -2 -| -1 -\ -d -? -) -| -( -? -: -0 -| -3 -[ -12 -] -| -[ -5 -- -7 -] -1 -| -217 -) -\ -d -) -\ -d -{ -4 -} -| -9 -( -? -: -[ -35 -] -1 -| -( -? +s : -[ -024 -] -2 +& +str | -81 +Literal +{ +v +: +s +. +to_owned +( ) -\ -d -| +. +into_bytes ( -? -: -1 -| -[ -24 -] -1 ) -\ -d -{ -2 +cut +: +false } ) -\ -d -{ -3 -} -" -# -; -let +. +collect ( -prefixes -suffixes ) +; +let +lits = -e +create_lits ( -pat +given ) ; -assert -! -( -! -suffixes +let +got += +lits . -is_finite +longest_common_suffix ( ) -) ; assert_eq ! ( -Some -( -243 -) -prefixes -. -len +expected +escape_bytes ( +got ) ) ; } -# -[ -test -] -fn -optimize -( -) -{ -let -( -p -s -) -= -opt +} +; +} +test_lcs +! ( +lcs1 +vec +! [ " -foobarfoobar -" -" -foobar -" -" -foobarzfoobar +a " +] " -foobarfoobar +a " -] ) ; -assert_eq +test_lcs ! ( -seq -( +lcs2 +vec +! [ -I -( +] " -foobar " ) -] -) -p -) ; -assert_eq +test_lcs ! ( -seq -( +lcs3 +vec +! [ -I -( " -foobar +a +" +" +b " -) ] -) -s +" +" ) ; -let -( -p -s -) -= -opt +test_lcs +! ( +lcs4 +vec +! [ " -abba +ab " " -akka +ab " +] " -abccba +ab " -] ) ; -assert_eq +test_lcs ! ( -exact -( +lcs5 +vec +! [ " -abba +ab " " -akka +a " +] " -abccba " -] -) -( -p -s -) ) ; -let -( -p -s -) -= -opt +test_lcs +! ( +lcs6 +vec +! [ " -sam +a " " -samwise +ab " ] +" +" ) ; -assert_eq +test_lcs ! ( -( -seq -( +lcs7 +vec +! [ -E -( " -sam +ab +" +" +b " -) ] +" +b +" ) -seq +; +test_lcs +! ( +lcs8 +vec +! [ -E -( " -sam +b " -) -E -( " -samwise +ab " -) ] -) -) -( -p -s -) +" +b +" ) ; -let -( -p -s -) -= -opt +test_lcs +! ( +lcs9 +vec +! [ " -foobarfoo +barfoo +" " +bazfoo +" +] " foo " +) +; +test_lcs +! +( +lcs10 +vec +! +[ " +barfoo " " -foozfoo +bazfoo " " -foofoo +a " ] +" +" ) ; -assert +test_lcs ! ( +lcs11 +vec ! -p -. -is_finite -( -) +[ +" +a +" +" +barfoo +" +" +bazfoo +" +] +" +" ) ; -assert +test_lcs ! ( +lcs12 +vec ! -s -. -is_finite -( -) -) -; -let -mut -p -= -seq -( [ -E -( " -foobarfoo +flub " -) -I -( " -foo +bub " -) -E -( " +boob " -) -E -( " -foofoo +dub " -) ] +" +b +" ) ; -p -. -optimize_for_prefix_by_preference -( -) -; -assert -! -( -! -p -. -is_finite -( -) -) -; -} } diff --git a/third_party/rust/regex-syntax/src/hir/mod.rs b/third_party/rust/regex-syntax/src/hir/mod.rs index f00db1a702694..abfa79ec7760a 100644 --- a/third_party/rust/regex-syntax/src/hir/mod.rs +++ b/third_party/rust/regex-syntax/src/hir/mod.rs @@ -1,45 +1,52 @@ use -core +std : : -{ char +; +use +std +: +: cmp -} ; use -alloc +std : : -{ -boxed +error +; +use +std : : -Box -format -string +fmt +; +use +std : : -{ -String -ToString -} -vec -vec +result +; +use +std : : -Vec -} +u8 ; use crate : : -{ ast : : Span +; +use +crate +: +: hir : : @@ -51,15 +58,18 @@ Interval IntervalSet IntervalSetIter } +; +use +crate +: +: unicode -} ; pub use crate : : -{ hir : : @@ -70,11 +80,16 @@ visitor visit Visitor } +; +pub +use +crate +: +: unicode : : CaseFoldError -} ; mod interval @@ -175,10 +190,6 @@ span } # [ -non_exhaustive -] -# -[ derive ( Clone @@ -193,138 +204,40 @@ ErrorKind { UnicodeNotAllowed InvalidUtf8 -InvalidLineTerminator UnicodePropertyNotFound UnicodePropertyValueNotFound UnicodePerlClassNotFound UnicodeCaseUnavailable -} +EmptyClassNotAllowed # [ -cfg +doc ( -feature -= -" -std -" +hidden ) ] -impl -std -: -: -error -: -: -Error -for -Error -{ +__Nonexhaustive } impl -core -: -: -fmt -: -: -Display -for -Error -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result +ErrorKind { -crate -: -: -error -: -: -Formatter -: -: -from -( -self -) -. -fmt +# +[ +allow ( -f +deprecated ) -} -} -impl -core -: -: -fmt -: -: -Display -for -ErrorKind -{ +] fn -fmt +description ( & self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> ) - > -core -: -: -fmt -: -: -Result +& +str { use self @@ -335,9 +248,6 @@ ErrorKind : * ; -let -msg -= match * self @@ -363,17 +273,6 @@ UTF - 8 " -InvalidLineTerminator -= -> -" -invalid -line -terminator -must -be -ASCII -" UnicodePropertyNotFound = > @@ -447,42 +346,44 @@ enabled ) " } -} -; -f -. -write_str +EmptyClassNotAllowed += +> +" +empty +character +classes +are +not +allowed +" +__Nonexhaustive += +> +unreachable +! ( -msg ) } } +} +impl +error +: +: +Error +for +Error +{ # [ -derive +allow ( -Clone -Eq -PartialEq +deprecated ) ] -pub -struct -Hir -{ -kind -: -HirKind -props -: -Properties -} -impl -Hir -{ -pub fn -kind +description ( & self @@ -490,46 +391,203 @@ self - > & -HirKind +str { -& self . kind +. +description +( +) } -pub +} +impl +fmt +: +: +Display +for +Error +{ fn -into_kind +fmt ( -mut +& self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> ) - > -HirKind +fmt +: +: +Result { -core +crate : : -mem +error : : -replace +Formatter +: +: +from +( +self +) +. +fmt +( +f +) +} +} +impl +fmt +: +: +Display +for +ErrorKind +{ +fn +fmt ( & +self +f +: +& mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +# +[ +allow +( +deprecated +) +] +f +. +write_str +( self . +description +( +) +) +} +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq +) +] +pub +struct +Hir +{ kind -HirKind : +HirKind +info : +HirInfo +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq +) +] +pub +enum +HirKind +{ Empty +Literal +( +Literal +) +Class +( +Class +) +Anchor +( +Anchor +) +WordBoundary +( +WordBoundary +) +Repetition +( +Repetition +) +Group +( +Group +) +Concat +( +Vec +< +Hir +> +) +Alternation +( +Vec +< +Hir +> ) } +impl +Hir +{ pub fn -properties +kind ( & self @@ -537,31 +595,31 @@ self - > & -Properties +HirKind { & self . -props +kind } +pub fn -into_parts +into_kind ( mut self ) - > -( HirKind -Properties -) { -( -core +use +std : : mem +; +mem : : replace @@ -576,36 +634,7 @@ HirKind : Empty ) -core -: -: -mem -: -: -replace -( -& -mut -self -. -props -Properties -: -: -empty -( -) -) -) } -} -impl -Hir -{ -# -[ -inline -] pub fn empty @@ -616,13 +645,91 @@ empty Hir { let -props +mut +info = -Properties +HirInfo : : -empty +new +( +) +; +info +. +set_always_utf8 +( +true +) +; +info +. +set_all_assertions +( +true +) +; +info +. +set_anchored_start +( +false +) +; +info +. +set_anchored_end +( +false +) +; +info +. +set_line_anchored_start +( +false +) +; +info +. +set_line_anchored_end +( +false +) +; +info +. +set_any_anchored_start +( +false +) +; +info +. +set_any_anchored_end +( +false +) +; +info +. +set_match_empty +( +true +) +; +info +. +set_literal ( +false +) +; +info +. +set_alternation_literal +( +false ) ; Hir @@ -633,136 +740,132 @@ HirKind : : Empty -props +info } } -# -[ -inline -] pub fn -fail +literal ( +lit +: +Literal ) - > Hir { +if let -class -= -Class -: -: -Bytes -( -ClassBytes +Literal : : -empty +Byte ( +b ) += +lit +{ +assert +! +( +b +> +0x7F ) ; +} let -props +mut +info = -Properties +HirInfo : : -class +new ( -& -class ) ; -Hir -{ -kind -: -HirKind -: -: -Class +info +. +set_always_utf8 +( +lit +. +is_unicode ( -class ) -props -} -} -# -[ -inline -] -pub -fn -literal -< -B -: -Into -< -Box -< -[ -u8 -] -> -> -> +) +; +info +. +set_all_assertions ( -lit -: -B +false ) -- -> -Hir -{ -let -bytes -= -lit +; +info . -into +set_anchored_start ( +false ) ; -if -bytes +info . -is_empty +set_anchored_end ( +false ) -{ -return -Hir -: -: -empty +; +info +. +set_line_anchored_start +( +false +) +; +info +. +set_line_anchored_end ( +false ) ; -} -let -lit -= -Literal +info +. +set_any_anchored_start ( -bytes +false ) ; -let -props -= -Properties -: -: -literal +info +. +set_any_anchored_end ( -& -lit +false +) +; +info +. +set_match_empty +( +false +) +; +info +. +set_literal +( +true +) +; +info +. +set_alternation_literal +( +true ) ; Hir @@ -776,13 +879,9 @@ Literal ( lit ) -props +info } } -# -[ -inline -] pub fn class @@ -795,56 +894,96 @@ Class > Hir { -if +let +mut +info += +HirInfo +: +: +new +( +) +; +info +. +set_always_utf8 +( class . -is_empty +is_always_utf8 ( ) -{ -return -Hir -: -: -fail +) +; +info +. +set_all_assertions ( +false ) ; -} -else -if -let -Some +info +. +set_anchored_start ( -bytes +false ) -= -class +; +info . -literal +set_anchored_end ( +false ) -{ -return -Hir -: -: -literal +; +info +. +set_line_anchored_start ( -bytes +false ) ; -} -let -props -= -Properties -: -: -class +info +. +set_line_anchored_end ( -& -class +false +) +; +info +. +set_any_anchored_start +( +false +) +; +info +. +set_any_anchored_end +( +false +) +; +info +. +set_match_empty +( +false +) +; +info +. +set_literal +( +false +) +; +info +. +set_alternation_literal +( +false ) ; Hir @@ -858,200 +997,205 @@ Class ( class ) -props +info } } -# -[ -inline -] pub fn -look +anchor ( -look +anchor : -Look +Anchor ) - > Hir { let -props +mut +info = -Properties +HirInfo : : -look +new ( -look ) ; -Hir -{ -kind -: -HirKind -: -: -Look +info +. +set_always_utf8 ( -look +true ) -props -} -} -# -[ -inline -] -pub -fn -repetition +; +info +. +set_all_assertions ( -mut -rep -: -Repetition +true ) -- -> -Hir -{ -if -rep +; +info . -sub +set_anchored_start +( +false +) +; +info . -properties +set_anchored_end ( +false ) +; +info . -maximum_len +set_line_anchored_start ( +false ) -= -= -Some +; +info +. +set_line_anchored_end ( -0 +false ) -{ -rep +; +info . -min -= -cmp -: -: -min +set_any_anchored_start ( -rep +false +) +; +info . -min -1 +set_any_anchored_end +( +false ) ; -rep +info . -max -= -rep +set_match_empty +( +true +) +; +info . -max +set_literal +( +false +) +; +info . -map +set_alternation_literal ( -| -n -| -cmp +false +) +; +if +let +Anchor : : -min +StartText += +anchor +{ +info +. +set_anchored_start ( -n -1 -) +true ) +; +info . -or -( -Some +set_line_anchored_start ( -1 +true ) +; +info +. +set_any_anchored_start +( +true ) ; } if -rep -. -min -= +let +Anchor +: +: +EndText = -0 -& -& -rep +anchor +{ +info . -max -= -= -Some +set_anchored_end ( -0 +true ) -{ -return -Hir -: -: -empty +; +info +. +set_line_anchored_end ( +true +) +; +info +. +set_any_anchored_end +( +true ) ; } -else if -rep -. -min -= +let +Anchor +: +: +StartLine = -1 -& -& -rep +anchor +{ +info . -max -= -= -Some +set_line_anchored_start ( -1 +true ) -{ -return -* -rep -. -sub ; } +if let -props -= -Properties +Anchor : : -repetition +EndLine += +anchor +{ +info +. +set_line_anchored_end ( -& -rep +true ) ; +} Hir { kind @@ -1059,418 +1203,335 @@ kind HirKind : : -Repetition +Anchor ( -rep +anchor ) -props +info } } -# -[ -inline -] pub fn -capture +word_boundary ( -capture +word_boundary : -Capture +WordBoundary ) - > Hir { let -props +mut +info = -Properties +HirInfo : : -capture +new ( -& -capture ) ; -Hir -{ -kind -: -HirKind -: -: -Capture +info +. +set_always_utf8 ( -capture +true ) -props -} -} -pub -fn -concat +; +info +. +set_all_assertions ( -subs -: -Vec -< -Hir -> +true ) -- -> -Hir -{ -let -mut -new -= -vec -! -[ -] -; -let -mut -prior_lit -: -Option -< -Vec -< -u8 -> -> -= -None ; -for -sub -in -subs -{ -let +info +. +set_anchored_start ( -kind -props +false ) -= -sub +; +info . -into_parts +set_anchored_end ( +false ) ; -match -kind -{ -HirKind -: -: -Literal -( -Literal +info +. +set_line_anchored_start ( -bytes +false ) +; +info +. +set_line_anchored_end +( +false ) -= -> -{ -if -let -Some +; +info +. +set_any_anchored_start ( -ref -mut -prior_bytes +false ) -= -prior_lit -{ -prior_bytes +; +info . -extend_from_slice +set_any_anchored_end ( -& -bytes +false ) ; -} -else -{ -prior_lit -= -Some +info +. +set_literal ( -bytes +false +) +; +info . -to_vec +set_alternation_literal ( +false ) +; +info +. +set_match_empty +( +true ) ; -} -} -HirKind +if +let +WordBoundary : : -Concat -( -subs2 -) +AsciiNegate = -> -{ -for -sub2 -in -subs2 +word_boundary { -let -( -kind2 -props2 -) -= -sub2 +info . -into_parts +set_always_utf8 ( +false ) ; -match -kind2 +} +Hir { +kind +: HirKind : : -Literal -( -Literal +WordBoundary ( -bytes +word_boundary ) +info +} +} +pub +fn +repetition +( +rep +: +Repetition ) -= +- > +Hir { -if let -Some -( -ref mut -prior_bytes -) +info = -prior_lit -{ -prior_bytes -. -extend_from_slice +HirInfo +: +: +new ( -& -bytes ) ; -} -else -{ -prior_lit -= -Some +info +. +set_always_utf8 ( -bytes +rep . -to_vec +hir +. +is_always_utf8 ( ) ) ; -} -} -kind2 -= -> -{ -if -let -Some +info +. +set_all_assertions ( -prior_bytes -) -= -prior_lit +rep +. +hir . -take +is_all_assertions ( ) -{ -new +) +; +info . -push +set_anchored_start ( -Hir -: -: -literal +! +rep +. +is_match_empty ( -prior_bytes ) -) -; -} -new +& +& +rep . -push +hir +. +is_anchored_start ( -Hir -{ -kind -: -kind2 -props -: -props2 -} +) ) ; -} -} -} -} -HirKind -: -: -Empty -= -> -{ -} -kind -= -> -{ -if -let -Some +info +. +set_anchored_end ( -prior_bytes -) -= -prior_lit +! +rep . -take +is_match_empty ( ) -{ -new +& +& +rep . -push -( -Hir -: -: -literal +hir +. +is_anchored_end ( -prior_bytes ) ) ; -} -new +info . -push +set_line_anchored_start ( -Hir -{ -kind -props -} +! +rep +. +is_match_empty +( +) +& +& +rep +. +hir +. +is_anchored_start +( +) ) ; -} -} -} -if -let -Some +info +. +set_line_anchored_end +( +! +rep +. +is_match_empty ( -prior_bytes ) -= -prior_lit +& +& +rep +. +hir . -take +is_anchored_end ( ) -{ -new +) +; +info . -push +set_any_anchored_start ( -Hir -: -: -literal +rep +. +hir +. +is_any_anchored_start ( -prior_bytes ) ) ; -} -if -new +info . -is_empty +set_any_anchored_end ( -) -{ -return -Hir -: -: -empty +rep +. +hir +. +is_any_anchored_end ( ) +) ; -} -else -if -new +info . -len +set_match_empty +( +rep +. +is_match_empty ( ) -= -= -1 -{ -return -new +| +| +rep . -pop +hir +. +is_match_empty ( ) +) +; +info . -unwrap +set_literal ( +false ) ; -} -let -props -= -Properties -: -: -concat +info +. +set_alternation_literal ( -& -new +false ) ; Hir @@ -1480,23 +1541,20 @@ kind HirKind : : -Concat +Repetition ( -new +rep ) -props +info } } pub fn -alternation +group ( -subs +group : -Vec -< -Hir -> +Group ) - > @@ -1504,316 +1562,144 @@ Hir { let mut -new +info = -Vec +HirInfo : : -with_capacity +new +( +) +; +info +. +set_always_utf8 ( -subs +group . -len +hir +. +is_always_utf8 ( ) ) ; -for -sub -in -subs -{ -let +info +. +set_all_assertions ( -kind -props -) -= -sub +group +. +hir . -into_parts +is_all_assertions ( ) +) ; -match -kind -{ -HirKind -: -: -Alternation +info +. +set_anchored_start ( -subs2 -) -= -> -{ -new +group . -extend +hir +. +is_anchored_start ( -subs2 +) ) ; -} -kind -= -> -{ -new +info . -push +set_anchored_end ( -Hir -{ -kind -props -} -) -; -} -} -} -if -new +group . -is_empty +hir +. +is_anchored_end ( ) -{ -return -Hir -: -: -fail -( ) ; -} -else -if -new +info . -len +set_line_anchored_start ( -) -= -= -1 -{ -return -new +group . -pop -( -) +hir . -unwrap -( -) -; -} -if -let -Some +is_line_anchored_start ( -singletons ) -= -singleton_chars -( -& -new ) -{ -let -it -= -singletons +; +info . -into_iter +set_line_anchored_end ( -) +group . -map -( -| -ch -| -ClassUnicodeRange -{ -start -: -ch -end -: -ch -} -) -; -return -Hir -: -: -class -( -Class -: -: -Unicode -( -ClassUnicode -: -: -new +hir +. +is_line_anchored_end ( -it -) ) ) ; -} -if -let -Some -( -singletons -) -= -singleton_bytes -( -& -new -) -{ -let -it -= -singletons +info . -into_iter +set_any_anchored_start ( -) +group . -map -( -| -b -| -ClassBytesRange -{ -start -: -b -end -: -b -} -) -; -return -Hir -: -: -class -( -Class -: -: -Bytes -( -ClassBytes -: -: -new +hir +. +is_any_anchored_start ( -it -) ) ) ; -} -if -let -Some +info +. +set_any_anchored_end ( -cls -) -= -class_chars +group +. +hir +. +is_any_anchored_end ( -& -new ) -{ -return -Hir -: -: -class -( -cls ) ; -} -if -let -Some +info +. +set_match_empty ( -cls -) -= -class_bytes +group +. +hir +. +is_match_empty ( -& -new ) -{ -return -Hir -: -: -class -( -cls ) ; -} -new -= -match -lift_common_prefix -( -new -) -{ -Ok -( -hir -) -= -> -return -hir -Err +info +. +set_literal ( -unchanged +false ) -= -> -unchanged -} ; -let -props -= -Properties -: -: -alternation +info +. +set_alternation_literal ( -& -new +false ) ; Hir @@ -1823,7965 +1709,3513 @@ kind HirKind : : -Alternation +Group ( -new +group ) -props +info } } -# -[ -inline -] pub fn -dot +concat ( -dot +mut +exprs : -Dot +Vec +< +Hir +> ) - > Hir { match -dot +exprs +. +len +( +) { -Dot +0 += +> +Hir : : -AnyChar +empty +( +) +1 += +> +exprs +. +pop +( +) +. +unwrap +( +) +_ = > { let mut -cls +info = -ClassUnicode +HirInfo : : -empty +new ( ) ; -cls +info . -push +set_always_utf8 ( -ClassUnicodeRange -: -: -new -( -' -\ -0 -' -' -\ -u -{ -10FFFF -} -' -) +true ) ; -Hir -: -: -class -( -Class -: -: -Unicode +info +. +set_all_assertions ( -cls -) +true ) -} -Dot -: -: -AnyByte -= -> -{ -let -mut -cls -= -ClassBytes -: -: -empty +; +info +. +set_any_anchored_start ( +false ) ; -cls +info . -push +set_any_anchored_end ( -ClassBytesRange -: -: -new -( -b -' -\ -0 -' -b -' -\ -xFF -' -) +false ) ; -Hir -: -: -class -( -Class -: -: -Bytes +info +. +set_match_empty ( -cls +true ) +; +info +. +set_literal +( +true ) -} -Dot -: -: -AnyCharExcept +; +info +. +set_alternation_literal ( -ch +true ) -= -> +; +for +e +in +& +exprs { let -mut -cls +x = -ClassUnicode -: -: -new -( -[ -ClassUnicodeRange -: -: -new +info +. +is_always_utf8 ( -ch -ch ) -] +& +& +e +. +is_always_utf8 +( ) ; -cls +info . -negate +set_always_utf8 ( +x ) ; -Hir -: -: -class +let +x += +info +. +is_all_assertions ( -Class -: -: -Unicode +) +& +& +e +. +is_all_assertions ( -cls ) +; +info +. +set_all_assertions +( +x ) -} -Dot -: -: -AnyCharExceptLF -= -> -{ +; let -mut -cls +x = -ClassUnicode -: -: -empty +info +. +is_any_anchored_start ( ) -; -cls +| +| +e . -push +is_any_anchored_start ( -ClassUnicodeRange -: -: -new -( -' -\ -0 -' -' -\ -x09 -' -) ) ; -cls +info . -push +set_any_anchored_start ( -ClassUnicodeRange -: -: -new -( -' -\ -x0B -' -' -\ -u -{ -10FFFF -} -' -) +x ) ; -Hir -: -: -class +let +x += +info +. +is_any_anchored_end ( -Class -: -: -Unicode +) +| +| +e +. +is_any_anchored_end ( -cls ) +; +info +. +set_any_anchored_end +( +x ) -} -Dot -: -: -AnyCharExceptCRLF -= -> -{ +; let -mut -cls +x = -ClassUnicode -: -: -empty +info +. +is_match_empty ( ) -; -cls +& +& +e . -push -( -ClassUnicodeRange -: -: -new +is_match_empty ( -' -\ -0 -' -' -\ -x09 -' -) ) ; -cls +info . -push +set_match_empty ( -ClassUnicodeRange -: -: -new -( -' -\ -x0B -' -' -\ -x0C -' -) +x ) ; -cls +let +x += +info . -push -( -ClassUnicodeRange -: -: -new +is_literal ( -' -\ -x0E -' -' -\ -u -{ -10FFFF -} -' ) -) -; -Hir -: -: -class -( -Class -: -: -Unicode +& +& +e +. +is_literal ( -cls -) ) -} -Dot -: -: -AnyByteExcept +; +info +. +set_literal ( -byte +x ) -= -> -{ +; let -mut -cls +x = -ClassBytes -: -: -new -( -[ -ClassBytesRange -: -: -new +info +. +is_alternation_literal ( -byte -byte ) -] +& +& +e +. +is_alternation_literal +( ) ; -cls +info . -negate +set_alternation_literal ( +x ) ; -Hir -: -: -class +} +info +. +set_anchored_start ( -Class -: -: -Bytes +exprs +. +iter ( -cls ) -) -} -Dot -: -: -AnyByteExceptLF -= -> +. +take_while +( +| +e +| { -let -mut -cls -= -ClassBytes -: -: -empty +e +. +is_anchored_start ( ) -; -cls +| +| +e . -push -( -ClassBytesRange -: -: -new +is_all_assertions ( -b -' -\ -0 -' -b -' -\ -x09 -' ) +} ) -; -cls . -push +any ( -ClassBytesRange -: -: -new +| +e +| +e +. +is_anchored_start ( -b -' -\ -x0B -' -b -' -\ -xFF -' +) ) ) ; -Hir -: -: -class +info +. +set_anchored_end ( -Class -: -: -Bytes +exprs +. +iter ( -cls ) +. +rev +( ) -} -Dot -: -: -AnyByteExceptCRLF -= -> +. +take_while +( +| +e +| { -let -mut -cls -= -ClassBytes -: -: -empty +e +. +is_anchored_end ( ) -; -cls +| +| +e . -push +is_all_assertions ( -ClassBytesRange -: -: -new -( -b -' -\ -0 -' -b -' -\ -x09 -' ) +} ) -; -cls . -push +any ( -ClassBytesRange -: -: -new +| +e +| +e +. +is_anchored_end ( -b -' -\ -x0B -' -b -' -\ -x0C -' +) ) ) ; -cls +info . -push +set_line_anchored_start ( -ClassBytesRange -: -: -new +exprs +. +iter ( -b -' -\ -x0E -' -b -' -\ -xFF -' ) -) -; -Hir -: -: -class +. +take_while ( -Class -: -: -Bytes +| +e +| +{ +e +. +is_line_anchored_start ( -cls ) +| +| +e +. +is_all_assertions +( ) } -} -} -} -# -[ -derive +) +. +any +( +| +e +| +e +. +is_line_anchored_start ( -Clone -Debug -Eq -PartialEq ) -] -pub -enum -HirKind -{ -Empty -Literal +) +) +; +info +. +set_line_anchored_end +( +exprs +. +iter ( -Literal ) -Class +. +rev ( -Class ) -Look +. +take_while +( +| +e +| +{ +e +. +is_line_anchored_end ( -Look ) -Repetition +| +| +e +. +is_all_assertions ( -Repetition ) -Capture +} +) +. +any +( +| +e +| +e +. +is_line_anchored_end ( -Capture ) +) +) +; +Hir +{ +kind +: +HirKind +: +: Concat ( -Vec -< -Hir -> +exprs ) -Alternation +info +} +} +} +} +pub +fn +alternation ( +mut +exprs +: Vec < Hir > ) -} -impl -HirKind -{ -pub -fn -subs -( -& -self -) - > -& -[ Hir -] { -use -core -: -: -slice -: -: -from_ref -; match -* -self +exprs +. +len +( +) { -HirKind -: -: -Empty -| -HirKind +0 += +> +Hir : : -Literal +empty ( -_ ) -| -HirKind -: -: -Class +1 += +> +exprs +. +pop ( -_ ) -| -HirKind -: -: -Look +. +unwrap ( -_ ) +_ = > -& -[ -] -HirKind +{ +let +mut +info += +HirInfo : : -Repetition +new ( -Repetition -{ -ref -sub +) +; +info . +set_always_utf8 +( +true +) +; +info . -} +set_all_assertions +( +true ) -= -> -from_ref +; +info +. +set_anchored_start ( -sub +true ) -HirKind -: -: -Capture +; +info +. +set_anchored_end ( -Capture -{ -ref -sub +true +) +; +info . +set_line_anchored_start +( +true +) +; +info . -} +set_line_anchored_end +( +true ) -= -> -from_ref +; +info +. +set_any_anchored_start ( -sub +false ) -HirKind -: -: -Concat +; +info +. +set_any_anchored_end ( -ref -subs +false ) -= -> -subs -HirKind -: -: -Alternation +; +info +. +set_match_empty ( -ref -subs +false ) -= -> -subs -} -} -} -impl -core -: -: -fmt -: -: -Debug -for -Hir -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -self -. -kind -. -fmt -( -f -) -} -} -impl -core -: -: -fmt -: -: -Display -for -Hir -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -crate -: -: -hir -: -: -print -: -: -Printer -: -: -new -( -) -. -print -( -self -f -) -} -} -# -[ -derive -( -Clone -Eq -PartialEq -) -] -pub -struct -Literal -( -pub -Box -< -[ -u8 -] -> -) -; -impl -core -: -: -fmt -: -: -Debug -for -Literal -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -crate -: -: -debug -: -: -Bytes -( -& -self -. -0 -) -. -fmt -( -f -) -} -} -# -[ -derive -( -Clone -Eq -PartialEq -) -] -pub -enum -Class -{ -Unicode -( -ClassUnicode -) -Bytes -( -ClassBytes -) -} -impl -Class -{ -pub -fn -case_fold_simple -( -& -mut -self -) -{ -match -* -self -{ -Class -: -: -Unicode -( -ref -mut -x -) -= -> -x -. -case_fold_simple -( -) -Class -: -: -Bytes -( -ref -mut -x -) -= -> -x -. -case_fold_simple -( -) -} -} -pub -fn -try_case_fold_simple -( -& -mut -self -) -- -> -core -: -: -result -: -: -Result -< -( -) -CaseFoldError -> -{ -match -* -self -{ -Class -: -: -Unicode -( -ref -mut -x -) -= -> -x -. -try_case_fold_simple -( -) -? -Class -: -: -Bytes -( -ref -mut -x -) -= -> -x -. -case_fold_simple -( -) -} -Ok -( -( -) -) -} -pub -fn -negate -( -& -mut -self -) -{ -match -* -self -{ -Class -: -: -Unicode -( -ref -mut -x -) -= -> -x -. -negate -( -) -Class -: -: -Bytes -( -ref -mut -x -) -= -> -x -. -negate -( -) -} -} -pub -fn -is_utf8 -( -& -self -) -- -> -bool -{ -match -* -self -{ -Class -: -: -Unicode -( -_ -) -= -> -true -Class -: -: -Bytes -( -ref -x -) -= -> -x -. -is_ascii -( -) -} -} -pub -fn -minimum_len -( -& -self -) -- -> -Option -< -usize -> -{ -match -* -self -{ -Class -: -: -Unicode -( -ref -x -) -= -> -x -. -minimum_len -( -) -Class -: -: -Bytes -( -ref -x -) -= -> -x -. -minimum_len -( -) -} -} -pub -fn -maximum_len -( -& -self -) -- -> -Option -< -usize -> -{ -match -* -self -{ -Class -: -: -Unicode -( -ref -x -) -= -> -x -. -maximum_len -( -) -Class -: -: -Bytes -( -ref -x -) -= -> -x -. -maximum_len -( -) -} -} -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -match -* -self -{ -Class -: -: -Unicode -( -ref -x -) -= -> -x -. -ranges -( -) -. -is_empty -( -) -Class -: -: -Bytes -( -ref -x -) -= -> -x -. -ranges -( -) -. -is_empty -( -) -} -} -pub -fn -literal -( -& -self -) -- -> -Option -< -Vec -< -u8 -> -> -{ -match -* -self -{ -Class -: -: -Unicode -( -ref -x -) -= -> -x -. -literal -( -) -Class -: -: -Bytes -( -ref -x -) -= -> -x -. -literal -( -) -} -} -} -impl -core -: -: -fmt -: -: -Debug -for -Class -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- -> -core -: -: -fmt -: -: -Result -{ -use -crate -: -: -debug -: -: -Byte -; -let -mut -fmter -= -f -. -debug_set -( -) -; -match -* -self -{ -Class -: -: -Unicode -( -ref -cls -) -= -> -{ -for -r -in -cls -. -ranges -( -) -. -iter -( -) -{ -fmter -. -entry -( -& -( -r -. -start -. -. -= -r -. -end -) -) -; -} -} -Class -: -: -Bytes -( -ref -cls -) -= -> -{ -for -r -in -cls -. -ranges -( -) -. -iter -( -) -{ -fmter -. -entry -( -& -( -Byte -( -r -. -start -) -. -. -= -Byte -( -r -. -end -) -) -) -; -} -} -} -fmter -. -finish -( -) -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -ClassUnicode -{ -set -: -IntervalSet -< -ClassUnicodeRange -> -} -impl -ClassUnicode -{ -pub -fn -new -< -I -> -( -ranges -: -I -) -- -> -ClassUnicode -where -I -: -IntoIterator -< -Item -= -ClassUnicodeRange -> -{ -ClassUnicode -{ -set -: -IntervalSet -: -: -new -( -ranges -) -} -} -pub -fn -empty -( -) -- -> -ClassUnicode -{ -ClassUnicode -: -: -new -( -vec -! -[ -] -) -} -pub -fn -push -( -& -mut -self -range -: -ClassUnicodeRange -) -{ -self -. -set -. -push -( -range -) -; -} -pub -fn -iter -( -& -self -) -- -> -ClassUnicodeIter -< -' -_ -> -{ -ClassUnicodeIter -( -self -. -set -. -iter -( -) -) -} -pub -fn -ranges -( -& -self -) -- -> -& -[ -ClassUnicodeRange -] -{ -self -. -set -. -intervals -( -) -} -pub -fn -case_fold_simple -( -& -mut -self -) -{ -self -. -set -. -case_fold_simple -( -) -. -expect -( -" -unicode -- -case -feature -must -be -enabled -" -) -; -} -pub -fn -try_case_fold_simple -( -& -mut -self -) -- -> -core -: -: -result -: -: -Result -< -( -) -CaseFoldError -> -{ -self -. -set -. -case_fold_simple -( -) -} -pub -fn -negate -( -& -mut -self -) -{ -self -. -set -. -negate -( -) -; -} -pub -fn -union -( -& -mut -self -other -: -& -ClassUnicode -) -{ -self -. -set -. -union -( -& -other -. -set -) -; -} -pub -fn -intersect -( -& -mut -self -other -: -& -ClassUnicode -) -{ -self -. -set -. -intersect -( -& -other -. -set -) -; -} -pub -fn -difference -( -& -mut -self -other -: -& -ClassUnicode -) -{ -self -. -set -. -difference -( -& -other -. -set -) -; -} -pub -fn -symmetric_difference -( -& -mut -self -other -: -& -ClassUnicode -) -{ -self -. -set -. -symmetric_difference -( -& -other -. -set -) -; -} -pub -fn -is_ascii -( -& -self -) -- -> -bool -{ -self -. -set -. -intervals -( -) -. -last -( -) -. -map_or -( -true -| -r -| -r -. -end -< -= -' -\ -x7F -' -) -} -pub -fn -minimum_len -( -& -self -) -- -> -Option -< -usize -> -{ -let -first -= -self -. -ranges -( -) -. -get -( -0 -) -? -; -Some -( -first -. -start -. -len_utf8 -( -) -) -} -pub -fn -maximum_len -( -& -self -) -- -> -Option -< -usize -> -{ -let -last -= -self -. -ranges -( -) -. -last -( -) -? -; -Some -( -last -. -end -. -len_utf8 -( -) -) -} -pub -fn -literal -( -& -self -) -- -> -Option -< -Vec -< -u8 -> -> -{ -let -rs -= -self -. -ranges -( -) -; -if -rs -. -len -( -) -= -= -1 -& -& -rs -[ -0 -] -. -start -= -= -rs -[ -0 -] -. -end -{ -Some -( -rs -[ -0 -] -. -start -. -encode_utf8 -( -& -mut -[ -0 -; -4 -] -) -. -to_string -( -) -. -into_bytes -( -) -) -} -else -{ -None -} -} -pub -fn -to_byte_class -( -& -self -) -- -> -Option -< -ClassBytes -> -{ -if -! -self -. -is_ascii -( -) -{ -return -None -; -} -Some -( -ClassBytes -: -: -new -( -self -. -ranges -( -) -. -iter -( -) -. -map -( -| -r -| -{ -ClassBytesRange -{ -start -: -u8 -: -: -try_from -( -r -. -start -) -. -unwrap -( -) -end -: -u8 -: -: -try_from -( -r -. -end -) -. -unwrap -( -) -} -} -) -) -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -ClassUnicodeIter -< -' -a -> -( -IntervalSetIter -< -' -a -ClassUnicodeRange -> -) -; -impl -< -' -a -> -Iterator -for -ClassUnicodeIter -< -' -a -> -{ -type -Item -= -& -' -a -ClassUnicodeRange -; -fn -next -( -& -mut -self -) -- -> -Option -< -& -' -a -ClassUnicodeRange -> -{ -self -. -0 -. -next -( -) -} -} -# -[ -derive -( -Clone -Copy -Default -Eq -PartialEq -PartialOrd -Ord -) -] -pub -struct -ClassUnicodeRange -{ -start -: -char -end -: -char -} -impl -core -: -: -fmt -: -: -Debug -for -ClassUnicodeRange -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -let -start -= -if -! -self -. -start -. -is_whitespace -( -) -& -& -! -self -. -start -. -is_control -( -) -{ -self -. -start -. -to_string -( -) -} -else -{ -format -! -( -" -0x -{ -: -X -} -" -u32 -: -: -from -( -self -. -start -) -) -} -; -let -end -= -if -! -self -. -end -. -is_whitespace -( -) -& -& -! -self -. -end -. -is_control -( -) -{ -self -. -end -. -to_string -( -) -} -else -{ -format -! -( -" -0x -{ -: -X -} -" -u32 -: -: -from -( -self -. -end -) -) -} -; -f -. -debug_struct -( -" -ClassUnicodeRange -" -) -. -field -( -" -start -" -& -start -) -. -field -( -" -end -" -& -end -) -. -finish -( -) -} -} -impl -Interval -for -ClassUnicodeRange -{ -type -Bound -= -char -; -# -[ -inline -] -fn -lower -( -& -self -) -- -> -char -{ -self -. -start -} -# -[ -inline -] -fn -upper -( -& -self -) -- -> -char -{ -self -. -end -} -# -[ -inline -] -fn -set_lower -( -& -mut -self -bound -: -char -) -{ -self -. -start -= -bound -; -} -# -[ -inline -] -fn -set_upper -( -& -mut -self -bound -: -char -) -{ -self -. -end -= -bound -; -} -fn -case_fold_simple -( -& -self -ranges -: -& -mut -Vec -< -ClassUnicodeRange -> -) -- -> -Result -< -( -) -unicode -: -: -CaseFoldError -> -{ -let -mut -folder -= -unicode -: -: -SimpleCaseFolder -: -: -new -( -) -? -; -if -! -folder -. -overlaps -( -self -. -start -self -. -end -) -{ -return -Ok -( -( -) -) -; -} -let -( -start -end -) -= -( -u32 -: -: -from -( -self -. -start -) -u32 -: -: -from -( -self -. -end -) -) -; -for -cp -in -( -start -. -. -= -end -) -. -filter_map -( -char -: -: -from_u32 -) -{ -for -& -cp_folded -in -folder -. -mapping -( -cp -) -{ -ranges -. -push -( -ClassUnicodeRange -: -: -new -( -cp_folded -cp_folded -) -) -; -} -} -Ok -( -( -) -) -} -} -impl -ClassUnicodeRange -{ -pub -fn -new -( -start -: -char -end -: -char -) -- -> -ClassUnicodeRange -{ -ClassUnicodeRange -: -: -create -( -start -end -) -} -pub -fn -start -( -& -self -) -- -> -char -{ -self -. -start -} -pub -fn -end -( -& -self -) -- -> -char -{ -self -. -end -} -pub -fn -len -( -& -self -) -- -> -usize -{ -let -diff -= -1 -+ -u32 -: -: -from -( -self -. -end -) -- -u32 -: -: -from -( -self -. -start -) -; -usize -: -: -try_from -( -diff -) -. -expect -( -" -char -class -len -fits -in -usize -" -) -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -ClassBytes -{ -set -: -IntervalSet -< -ClassBytesRange -> -} -impl -ClassBytes -{ -pub -fn -new -< -I -> -( -ranges -: -I -) -- -> -ClassBytes -where -I -: -IntoIterator -< -Item -= -ClassBytesRange -> -{ -ClassBytes -{ -set -: -IntervalSet -: -: -new -( -ranges -) -} -} -pub -fn -empty -( -) -- -> -ClassBytes -{ -ClassBytes -: -: -new -( -vec -! -[ -] -) -} -pub -fn -push -( -& -mut -self -range -: -ClassBytesRange -) -{ -self -. -set -. -push -( -range -) -; -} -pub -fn -iter -( -& -self -) -- -> -ClassBytesIter -< -' -_ -> -{ -ClassBytesIter -( -self -. -set -. -iter -( -) -) -} -pub -fn -ranges -( -& -self -) -- -> -& -[ -ClassBytesRange -] -{ -self -. -set -. -intervals -( -) -} -pub -fn -case_fold_simple -( -& -mut -self -) -{ -self -. -set -. -case_fold_simple -( -) -. -expect -( -" -ASCII -case -folding -never -fails -" -) -; -} -pub -fn -negate -( -& -mut -self -) -{ -self -. -set -. -negate -( -) -; -} -pub -fn -union -( -& -mut -self -other -: -& -ClassBytes -) -{ -self -. -set -. -union -( -& -other -. -set -) -; -} -pub -fn -intersect -( -& -mut -self -other -: -& -ClassBytes -) -{ -self -. -set -. -intersect -( -& -other -. -set -) -; -} -pub -fn -difference -( -& -mut -self -other -: -& -ClassBytes -) -{ -self -. -set -. -difference -( -& -other -. -set -) -; -} -pub -fn -symmetric_difference -( -& -mut -self -other -: -& -ClassBytes -) -{ -self -. -set -. -symmetric_difference -( -& -other -. -set -) -; -} -pub -fn -is_ascii -( -& -self -) -- -> -bool -{ -self -. -set -. -intervals -( -) -. -last -( -) -. -map_or -( -true -| -r -| -r -. -end -< -= -0x7F -) -} -pub -fn -minimum_len -( -& -self -) -- -> -Option -< -usize -> -{ -if -self -. -ranges -( -) -. -is_empty -( -) -{ -None -} -else -{ -Some -( -1 -) -} -} -pub -fn -maximum_len -( -& -self -) -- -> -Option -< -usize -> -{ -if -self -. -ranges -( -) -. -is_empty -( -) -{ -None -} -else -{ -Some -( -1 -) -} -} -pub -fn -literal -( -& -self -) -- -> -Option -< -Vec -< -u8 -> -> -{ -let -rs -= -self -. -ranges -( -) -; -if -rs -. -len -( -) -= -= -1 -& -& -rs -[ -0 -] -. -start -= -= -rs -[ -0 -] -. -end -{ -Some -( -vec -! -[ -rs -[ -0 -] -. -start -] -) -} -else -{ -None -} -} -pub -fn -to_unicode_class -( -& -self -) -- -> -Option -< -ClassUnicode -> -{ -if -! -self -. -is_ascii -( -) -{ -return -None -; -} -Some -( -ClassUnicode -: -: -new -( -self -. -ranges -( -) -. -iter -( -) -. -map -( -| -r -| -{ -ClassUnicodeRange -{ -start -: -char -: -: -from -( -r -. -start -) -end -: -char -: -: -from -( -r -. -end -) -} -} -) -) -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -ClassBytesIter -< -' -a -> -( -IntervalSetIter -< -' -a -ClassBytesRange -> -) -; -impl -< -' -a -> -Iterator -for -ClassBytesIter -< -' -a -> -{ -type -Item -= -& -' -a -ClassBytesRange -; -fn -next -( -& -mut -self -) -- -> -Option -< -& -' -a -ClassBytesRange -> -{ -self -. -0 -. -next -( -) -} -} -# -[ -derive -( -Clone -Copy -Default -Eq -PartialEq -PartialOrd -Ord -) -] -pub -struct -ClassBytesRange -{ -start -: -u8 -end -: -u8 -} -impl -Interval -for -ClassBytesRange -{ -type -Bound -= -u8 -; -# -[ -inline -] -fn -lower -( -& -self -) -- -> -u8 -{ -self -. -start -} -# -[ -inline -] -fn -upper -( -& -self -) -- -> -u8 -{ -self -. -end -} -# -[ -inline -] -fn -set_lower -( -& -mut -self -bound -: -u8 -) -{ -self -. -start -= -bound -; -} -# -[ -inline -] -fn -set_upper -( -& -mut -self -bound -: -u8 -) -{ -self -. -end -= -bound -; -} -fn -case_fold_simple -( -& -self -ranges -: -& -mut -Vec -< -ClassBytesRange -> -) -- -> -Result -< -( -) -unicode -: -: -CaseFoldError -> -{ -if -! -ClassBytesRange -: -: -new -( -b -' -a -' -b -' -z -' -) -. -is_intersection_empty -( -self -) -{ -let -lower -= -cmp -: -: -max -( -self -. -start -b -' -a -' -) -; -let -upper -= -cmp -: -: -min -( -self -. -end -b -' -z -' -) -; -ranges -. -push -( -ClassBytesRange -: -: -new -( -lower -- -32 -upper -- -32 -) -) -; -} -if -! -ClassBytesRange -: -: -new -( -b -' -A -' -b -' -Z -' -) -. -is_intersection_empty -( -self -) -{ -let -lower -= -cmp -: -: -max -( -self -. -start -b -' -A -' -) -; -let -upper -= -cmp -: -: -min -( -self -. -end -b -' -Z -' -) -; -ranges -. -push -( -ClassBytesRange -: -: -new -( -lower -+ -32 -upper -+ -32 -) -) -; -} -Ok -( -( -) -) -} -} -impl -ClassBytesRange -{ -pub -fn -new -( -start -: -u8 -end -: -u8 -) -- -> -ClassBytesRange -{ -ClassBytesRange -: -: -create -( -start -end -) -} -pub -fn -start -( -& -self -) -- -> -u8 -{ -self -. -start -} -pub -fn -end -( -& -self -) -- -> -u8 -{ -self -. -end -} -pub -fn -len -( -& -self -) -- -> -usize -{ -usize -: -: -from -( -self -. -end -. -checked_sub -( -self -. -start -) -. -unwrap -( -) -) -. -checked_add -( -1 -) -. -unwrap -( -) -} -} -impl -core -: -: -fmt -: -: -Debug -for -ClassBytesRange -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -f -. -debug_struct -( -" -ClassBytesRange -" -) -. -field -( -" -start -" -& -crate -: -: -debug -: -: -Byte -( -self -. -start -) -) -. -field -( -" -end -" -& -crate -: -: -debug -: -: -Byte -( -self -. -end -) -) -. -finish -( -) -} -} -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -Look -{ -Start -= -1 -< -< -0 -End -= -1 -< -< -1 -StartLF -= -1 -< -< -2 -EndLF -= -1 -< -< -3 -StartCRLF -= -1 -< -< -4 -EndCRLF -= -1 -< -< -5 -WordAscii -= -1 -< -< -6 -WordAsciiNegate -= -1 -< -< -7 -WordUnicode -= -1 -< -< -8 -WordUnicodeNegate -= -1 -< -< -9 -} -impl -Look -{ -# -[ -inline -] -pub -const -fn -reversed -( -self -) -- -> -Look -{ -match -self -{ -Look -: -: -Start -= -> -Look -: -: -End -Look -: -: -End -= -> -Look -: -: -Start -Look -: -: -StartLF -= -> -Look -: -: -EndLF -Look -: -: -EndLF -= -> -Look -: -: -StartLF -Look -: -: -StartCRLF -= -> -Look -: -: -EndCRLF -Look -: -: -EndCRLF -= -> -Look -: -: -StartCRLF -Look -: -: -WordAscii -= -> -Look -: -: -WordAscii -Look -: -: -WordAsciiNegate -= -> -Look -: -: -WordAsciiNegate -Look -: -: -WordUnicode -= -> -Look -: -: -WordUnicode -Look -: -: -WordUnicodeNegate -= -> -Look -: -: -WordUnicodeNegate -} -} -# -[ -inline -] -pub -const -fn -as_repr -( -self -) -- -> -u16 -{ -self -as -u16 -} -# -[ -inline -] -pub -const -fn -from_repr -( -repr -: -u16 -) -- -> -Option -< -Look -> -{ -match -repr -{ -0b00_0000_0001 -= -> -Some -( -Look -: -: -Start -) -0b00_0000_0010 -= -> -Some -( -Look -: -: -End -) -0b00_0000_0100 -= -> -Some -( -Look -: -: -StartLF -) -0b00_0000_1000 -= -> -Some -( -Look -: -: -EndLF -) -0b00_0001_0000 -= -> -Some -( -Look -: -: -StartCRLF -) -0b00_0010_0000 -= -> -Some -( -Look -: -: -EndCRLF -) -0b00_0100_0000 -= -> -Some -( -Look -: -: -WordAscii -) -0b00_1000_0000 -= -> -Some -( -Look -: -: -WordAsciiNegate -) -0b01_0000_0000 -= -> -Some -( -Look -: -: -WordUnicode -) -0b10_0000_0000 -= -> -Some -( -Look -: -: -WordUnicodeNegate -) -_ -= -> -None -} -} -# -[ -inline -] -pub -const -fn -as_char -( -self -) -- -> -char -{ -match -self -{ -Look -: -: -Start -= -> -' -A -' -Look -: -: -End -= -> -' -z -' -Look -: -: -StartLF -= -> -' -^ -' -Look -: -: -EndLF -= -> -' -' -Look -: -: -StartCRLF -= -> -' -r -' -Look -: -: -EndCRLF -= -> -' -R -' -Look -: -: -WordAscii -= -> -' -b -' -Look -: -: -WordAsciiNegate -= -> -' -B -' -Look -: -: -WordUnicode -= -> -' -' -Look -: -: -WordUnicodeNegate -= -> -' -' -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -Capture -{ -pub -index -: -u32 -pub -name -: -Option -< -Box -< -str -> -> -pub -sub -: -Box -< -Hir -> -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -Repetition -{ -pub -min -: -u32 -pub -max -: -Option -< -u32 -> -pub -greedy -: -bool -pub -sub -: -Box -< -Hir -> -} -impl -Repetition -{ -pub -fn -with -( -& -self -sub -: -Hir -) -- -> -Repetition -{ -Repetition -{ -min -: -self -. -min -max -: -self -. -max -greedy -: -self -. -greedy -sub -: -Box -: -: -new -( -sub -) -} -} -} -# -[ -non_exhaustive -] -# -[ -derive -( -Clone -Copy -Debug -Eq -PartialEq -) -] -pub -enum -Dot -{ -AnyChar -AnyByte -AnyCharExcept -( -char -) -AnyCharExceptLF -AnyCharExceptCRLF -AnyByteExcept -( -u8 -) -AnyByteExceptLF -AnyByteExceptCRLF -} -impl -Drop -for -Hir -{ -fn -drop -( -& -mut -self -) -{ -use -core -: -: -mem -; -match -* -self -. -kind -( -) -{ -HirKind -: -: -Empty -| -HirKind -: -: -Literal -( -_ -) -| -HirKind -: -: -Class -( -_ -) -| -HirKind -: -: -Look -( -_ -) -= -> -return -HirKind -: -: -Capture -( -ref -x -) -if -x -. -sub -. -kind -. -subs -( -) -. -is_empty -( -) -= -> -return -HirKind -: -: -Repetition -( -ref -x -) -if -x -. -sub -. -kind -. -subs -( -) -. -is_empty -( -) -= -> -{ -return -} -HirKind -: -: -Concat -( -ref -x -) -if -x -. -is_empty -( -) -= -> -return -HirKind -: -: -Alternation -( -ref -x -) -if -x -. -is_empty -( -) -= -> -return -_ -= -> -{ -} -} -let -mut -stack -= -vec -! -[ -mem -: -: -replace -( -self -Hir -: -: -empty -( -) -) -] -; -while -let -Some -( -mut -expr -) -= -stack -. -pop -( -) -{ -match -expr -. -kind -{ -HirKind -: -: -Empty -| -HirKind -: -: -Literal -( -_ -) -| -HirKind -: -: -Class -( -_ -) -| -HirKind -: -: -Look -( -_ -) -= -> -{ -} -HirKind -: -: -Capture -( -ref -mut -x -) -= -> -{ -stack -. -push -( -mem -: -: -replace -( -& -mut -x -. -sub -Hir -: -: -empty -( -) -) -) -; -} -HirKind -: -: -Repetition -( -ref -mut -x -) -= -> -{ -stack -. -push -( -mem -: -: -replace -( -& -mut -x -. -sub -Hir -: -: -empty -( -) -) -) -; -} -HirKind -: -: -Concat -( -ref -mut -x -) -= -> -{ -stack -. -extend -( -x -. -drain -( -. -. -) -) -; -} -HirKind -: -: -Alternation -( -ref -mut -x -) -= -> -{ -stack -. -extend -( -x -. -drain -( -. -. -) -) -; -} -} -} -} -} -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -pub -struct -Properties -( -Box -< -PropertiesI -> -) -; -# -[ -derive -( -Clone -Debug -Eq -PartialEq -) -] -struct -PropertiesI -{ -minimum_len -: -Option -< -usize -> -maximum_len -: -Option -< -usize -> -look_set -: -LookSet -look_set_prefix -: -LookSet -look_set_suffix -: -LookSet -look_set_prefix_any -: -LookSet -look_set_suffix_any -: -LookSet -utf8 -: -bool -explicit_captures_len -: -usize -static_explicit_captures_len -: -Option -< -usize -> -literal -: -bool -alternation_literal -: -bool -} -impl -Properties -{ -# -[ -inline -] -pub -fn -minimum_len -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -0 -. -minimum_len -} -# -[ -inline -] -pub -fn -maximum_len -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -0 -. -maximum_len -} -# -[ -inline -] -pub -fn -look_set -( -& -self -) -- -> -LookSet -{ -self -. -0 -. -look_set -} -# -[ -inline -] -pub -fn -look_set_prefix -( -& -self -) -- -> -LookSet -{ -self -. -0 -. -look_set_prefix -} -# -[ -inline -] -pub -fn -look_set_prefix_any -( -& -self -) -- -> -LookSet -{ -self -. -0 -. -look_set_prefix_any -} -# -[ -inline -] -pub -fn -look_set_suffix -( -& -self -) -- -> -LookSet -{ -self -. -0 -. -look_set_suffix -} -# -[ -inline -] -pub -fn -look_set_suffix_any -( -& -self -) -- -> -LookSet -{ -self -. -0 -. -look_set_suffix_any -} -# -[ -inline -] -pub -fn -is_utf8 -( -& -self -) -- -> -bool -{ -self -. -0 -. -utf8 -} -# -[ -inline -] -pub -fn -explicit_captures_len -( -& -self -) -- -> -usize -{ -self -. -0 -. -explicit_captures_len -} -# -[ -inline -] -pub -fn -static_explicit_captures_len -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -0 -. -static_explicit_captures_len -} -# -[ -inline -] -pub -fn -is_literal -( -& -self -) -- -> -bool -{ -self -. -0 -. -literal -} -# -[ -inline -] -pub -fn -is_alternation_literal -( -& -self -) -- -> -bool -{ -self -. -0 +; +info . -alternation_literal -} -# -[ -inline -] -pub -fn -memory_usage -( -& -self -) -- -> -usize -{ -core -: -: -mem -: -: -size_of -: -: -< -PropertiesI -> +set_literal ( +false ) -} -pub -fn -union -< -I -P -> +; +info +. +set_alternation_literal ( -props -: -I +true ) -- -> -Properties -where -I -: -IntoIterator -< -Item -= -P -> -P -: -core -: -: -borrow -: -: -Borrow -< -Properties -> +; +for +e +in +& +exprs { let -mut -it +x = -props +info . -into_iter +is_always_utf8 ( ) +& +& +e . -peekable +is_always_utf8 ( ) ; -let -fix -= -if -it +info . -peek +set_always_utf8 ( +x ) +; +let +x += +info . -is_none +is_all_assertions ( ) -{ -LookSet -: -: -empty +& +& +e +. +is_all_assertions ( ) -} -else -{ -LookSet -: -: -full +; +info +. +set_all_assertions ( +x ) -} ; let -static_explicit_captures_len +x = -it +info . -peek +is_anchored_start ( ) +& +& +e . -and_then -( -| -p -| -p -. -borrow +is_anchored_start ( ) +; +info . -static_explicit_captures_len +set_anchored_start ( -) +x ) ; let -mut -props +x = -PropertiesI -{ -minimum_len -: -None -maximum_len -: -None -look_set -: -LookSet -: -: -empty -( -) -look_set_prefix -: -fix -look_set_suffix -: -fix -look_set_prefix_any -: -LookSet -: -: -empty +info +. +is_anchored_end ( ) -look_set_suffix_any -: -LookSet -: -: -empty +& +& +e +. +is_anchored_end ( ) -utf8 -: -true -explicit_captures_len -: -0 -static_explicit_captures_len -literal -: -false -alternation_literal -: -true -} ; -let -( -mut -min_poisoned -mut -max_poisoned -) -= +info +. +set_anchored_end ( -false -false +x ) ; -for -prop -in -it -{ let -p +x = -prop +info . -borrow +is_line_anchored_start ( ) -; -props -. -look_set -. -set_union -( -p +& +& +e . -look_set +is_line_anchored_start ( ) -) ; -props -. -look_set_prefix -. -set_intersect -( -p +info . -look_set_prefix +set_line_anchored_start ( -) +x ) ; -props -. -look_set_suffix +let +x += +info . -set_intersect +is_line_anchored_end ( -p +) +& +& +e . -look_set_suffix +is_line_anchored_end ( ) -) ; -props -. -look_set_prefix_any -. -set_union -( -p +info . -look_set_prefix_any +set_line_anchored_end ( -) +x ) ; -props -. -look_set_suffix_any +let +x += +info . -set_union +is_any_anchored_start ( -p +) +| +| +e . -look_set_suffix_any +is_any_anchored_start ( ) -) ; -props -. -utf8 -= -props +info . -utf8 -& -& -p -. -is_utf8 +set_any_anchored_start ( +x ) ; -props -. -explicit_captures_len +let +x = -props +info . -explicit_captures_len -. -saturating_add +is_any_anchored_end ( -p +) +| +| +e . -explicit_captures_len +is_any_anchored_end ( ) -) ; -if -props +info . -static_explicit_captures_len -! +set_any_anchored_end +( +x +) +; +let +x = -p +info . -static_explicit_captures_len +is_match_empty ( ) -{ -props +| +| +e . -static_explicit_captures_len -= -None +is_match_empty +( +) ; -} -props -. -alternation_literal -= -props -. -alternation_literal -& -& -p +info . -is_literal +set_match_empty ( +x ) ; -if -! -min_poisoned -{ -if let -Some -( -xmin -) +x = -p +info . -minimum_len +is_alternation_literal ( ) -{ -if -props -. -minimum_len +& +& +e . -map_or +is_literal ( -true -| -pmin -| -xmin -< -pmin ) -{ -props +; +info . -minimum_len -= -Some +set_alternation_literal ( -xmin +x ) ; } -} -else +Hir { -props -. -minimum_len -= -None -; -min_poisoned -= -true -; +kind +: +HirKind +: +: +Alternation +( +exprs +) +info } } -if -! -max_poisoned +} +} +pub +fn +dot +( +bytes +: +bool +) +- +> +Hir { if +bytes +{ let -Some -( -xmax -) +mut +cls = -p -. -maximum_len +ClassBytes +: +: +empty ( ) -{ -if -props -. -maximum_len +; +cls . -map_or +push ( -true -| -pmax -| -xmax -> -pmax -) -{ -props -. -maximum_len -= -Some +ClassBytesRange +: +: +new ( -xmax +b +' +\ +0 +' +b +' +\ +x09 +' +) ) ; -} -} -else -{ -props +cls . -maximum_len -= -None -; -max_poisoned -= -true -; -} -} -} -Properties +push ( -Box +ClassBytesRange : : new ( -props +b +' +\ +x0B +' +b +' +\ +xFF +' +) +) +; +Hir +: +: +class +( +Class +: +: +Bytes +( +cls ) ) } -} -impl -Properties +else { -fn +let +mut +cls += +ClassUnicode +: +: empty ( ) -- -> -Properties -{ -let -inner -= -PropertiesI -{ -minimum_len +; +cls +. +push +( +ClassUnicodeRange : -Some +: +new ( +' +\ 0 +' +' +\ +x09 +' ) -maximum_len +) +; +cls +. +push +( +ClassUnicodeRange : -Some +: +new ( -0 +' +\ +x0B +' +' +\ +u +{ +10FFFF +} +' ) -look_set +) +; +Hir +: : -LookSet +class +( +Class : : -empty +Unicode ( +cls ) -look_set_prefix +) +} +} +pub +fn +any +( +bytes : -LookSet +bool +) +- +> +Hir +{ +if +bytes +{ +let +mut +cls += +ClassBytes : : empty ( ) -look_set_suffix -: -LookSet +; +cls +. +push +( +ClassBytesRange : : -empty +new ( +b +' +\ +0 +' +b +' +\ +xFF +' +) ) -look_set_prefix_any +; +Hir : -LookSet : +class +( +Class : -empty +: +Bytes ( +cls ) -look_set_suffix_any -: -LookSet +) +} +else +{ +let +mut +cls += +ClassUnicode : : empty ( ) -utf8 -: -true -explicit_captures_len +; +cls +. +push +( +ClassUnicodeRange : -0 -static_explicit_captures_len : -Some +new ( +' +\ 0 +' +' +\ +u +{ +10FFFF +} +' ) -literal +) +; +Hir : -false -alternation_literal : -false -} -; -Properties +class ( -Box +Class : : -new +Unicode ( -inner +cls ) ) } +} +pub fn -literal +is_always_utf8 ( -lit -: & -Literal +self ) - > -Properties -{ -let -inner -= -PropertiesI +bool { -minimum_len -: -Some -( -lit +self . -0 +info . -len +is_always_utf8 ( ) -) -maximum_len -: -Some +} +pub +fn +is_all_assertions ( -lit +& +self +) +- +> +bool +{ +self . -0 +info . -len +is_all_assertions ( ) +} +pub +fn +is_anchored_start +( +& +self ) -look_set -: -LookSet -: -: -empty +- +> +bool +{ +self +. +info +. +is_anchored_start ( ) -look_set_prefix -: -LookSet -: -: -empty +} +pub +fn +is_anchored_end ( +& +self ) -look_set_suffix -: -LookSet -: -: -empty +- +> +bool +{ +self +. +info +. +is_anchored_end ( ) -look_set_prefix_any -: -LookSet -: -: -empty +} +pub +fn +is_line_anchored_start ( +& +self ) -look_set_suffix_any -: -LookSet -: -: -empty +- +> +bool +{ +self +. +info +. +is_line_anchored_start ( ) -utf8 -: -core -: -: -str -: -: -from_utf8 +} +pub +fn +is_line_anchored_end ( & -lit -. -0 +self ) +- +> +bool +{ +self . -is_ok -( -) -explicit_captures_len -: -0 -static_explicit_captures_len -: -Some +info +. +is_line_anchored_end ( -0 ) -literal -: -true -alternation_literal -: -true } -; -Properties -( -Box -: -: -new +pub +fn +is_any_anchored_start ( -inner +& +self ) +- +> +bool +{ +self +. +info +. +is_any_anchored_start +( ) } +pub fn -class +is_any_anchored_end ( -class -: & -Class +self ) - > -Properties -{ -let -inner -= -PropertiesI +bool { -minimum_len -: -class +self . -minimum_len -( -) -maximum_len -: -class +info . -maximum_len +is_any_anchored_end ( ) -look_set -: -LookSet -: -: -empty +} +pub +fn +is_match_empty ( +& +self ) -look_set_prefix -: -LookSet -: -: -empty +- +> +bool +{ +self +. +info +. +is_match_empty ( ) -look_set_suffix -: -LookSet -: -: -empty +} +pub +fn +is_literal ( +& +self ) -look_set_prefix_any -: -LookSet -: -: -empty +- +> +bool +{ +self +. +info +. +is_literal ( ) -look_set_suffix_any -: -LookSet -: -: -empty +} +pub +fn +is_alternation_literal ( +& +self ) -utf8 -: -class +- +> +bool +{ +self +. +info . -is_utf8 +is_alternation_literal ( ) -explicit_captures_len -: -0 -static_explicit_captures_len -: -Some +} +} +impl +HirKind +{ +pub +fn +is_empty ( -0 +& +self ) -literal +- +> +bool +{ +match +* +self +{ +HirKind : -false -alternation_literal : +Empty += +> +true +_ += +> false } -; -Properties -( -Box -: -: -new -( -inner -) -) } +pub fn -look +has_subexprs ( -look -: -Look +& +self ) - > -Properties +bool { -let -inner -= -PropertiesI +match +* +self { -minimum_len -: -Some -( -0 -) -maximum_len +HirKind : -Some -( -0 -) -look_set : -LookSet +Empty +| +HirKind : : -singleton +Literal ( -look +_ ) -look_set_prefix -: -LookSet +| +HirKind : : -singleton +Class ( -look +_ ) -look_set_suffix -: -LookSet +| +HirKind : : -singleton +Anchor ( -look +_ ) -look_set_prefix_any -: -LookSet +| +HirKind : : -singleton +WordBoundary ( -look +_ ) -look_set_suffix_any -: -LookSet += +> +false +HirKind : : -singleton +Group ( -look +_ ) -utf8 -: -true -explicit_captures_len +| +HirKind : -0 -static_explicit_captures_len : -Some +Repetition ( -0 +_ ) -literal +| +HirKind : -false -alternation_literal : -false -} -; -Properties +Concat ( -Box +_ +) +| +HirKind : : -new +Alternation ( -inner -) +_ ) += +> +true } -fn -repetition -( -rep +} +} +impl +fmt : -& -Repetition -) -- -> -Properties +: +Display +for +Hir { -let -p -= -rep -. -sub -. -properties -( -) -; -let -minimum_len -= -p -. -minimum_len -( -) -. -map +fn +fmt ( -| -child_min -| -{ -let -rep_min -= -usize -: +& +self +f : -try_from -( -rep -. -min -) -. -unwrap_or -( -usize +& +mut +fmt : : -MAX -) -; -child_min -. -saturating_mul -( -rep_min -) -} +Formatter +< +' +_ +> ) -; -let -maximum_len -= -rep -. -max -. -and_then -( -| -rep_max -| -{ -let -rep_max -= -usize +- +> +fmt : : -try_from -( -rep_max -) -. -ok -( -) -? -; -let -child_max -= -p -. -maximum_len -( -) -? -; -child_max -. -checked_mul -( -rep_max -) -} -) -; -let -mut -inner -= -PropertiesI +Result { -minimum_len -maximum_len -look_set +use +crate : -p -. -look_set -( -) -look_set_prefix : -LookSet +hir : : -empty -( -) -look_set_suffix +print : -LookSet : +Printer +; +Printer : -empty -( -) -look_set_prefix_any : -p -. -look_set_prefix_any +new ( ) -look_set_suffix_any -: -p . -look_set_suffix_any +print ( +self +f ) -utf8 -: -p -. -is_utf8 +} +} +# +[ +derive ( +Clone +Debug +Eq +PartialEq ) -explicit_captures_len -: -p -. -explicit_captures_len +] +pub +enum +Literal +{ +Unicode ( +char ) -static_explicit_captures_len -: -p -. -static_explicit_captures_len +Byte ( +u8 ) -literal -: -false -alternation_literal -: -false } -; -if -rep -. -min -> -0 +impl +Literal { -inner -. -look_set_prefix -= -p -. -look_set_prefix +pub +fn +is_unicode ( +& +self ) -; -inner -. -look_set_suffix -= -p -. -look_set_suffix +- +> +bool +{ +match +* +self +{ +Literal +: +: +Unicode ( +_ ) -; -} -if -rep -. -min -= = -0 -& -& -inner -. -static_explicit_captures_len -. -map_or -( -false -| -len -| -len > -0 +true +Literal +: +: +Byte +( +b ) -{ if -rep -. -max +b +< = +0x7F = -Some +> +true +Literal +: +: +Byte ( -0 +_ ) -{ -inner -. -static_explicit_captures_len = -Some -( -0 -) -; +> +false } -else -{ -inner -. -static_explicit_captures_len -= -None -; } } -Properties +# +[ +derive ( -Box -: -: -new +Clone +Debug +Eq +PartialEq +) +] +pub +enum +Class +{ +Unicode ( -inner +ClassUnicode ) +Bytes +( +ClassBytes ) } +impl +Class +{ +pub fn -capture +case_fold_simple ( -capture -: & -Capture +mut +self ) -- -> -Properties { -let -p +match +* +self +{ +Class +: +: +Unicode +( +ref +mut +x +) = -capture -. -sub +> +x . -properties +case_fold_simple ( ) -; -Properties -( -Box +Class : : -new +Bytes ( -PropertiesI -{ -explicit_captures_len -: -p +ref +mut +x +) += +> +x . -explicit_captures_len +case_fold_simple ( ) -. -saturating_add +} +} +pub +fn +negate ( -1 +& +mut +self ) -static_explicit_captures_len +{ +match +* +self +{ +Class : -p -. -static_explicit_captures_len +: +Unicode ( +ref +mut +x ) += +> +x . -map -( -| -len -| -len -. -saturating_add +negate ( -1 ) -) -literal +Class : -false -alternation_literal : -false -. -. -* -p -. -0 +Bytes +( +ref +mut +x +) += +> +x . -clone +negate ( ) } -) -) } +pub fn -concat +is_always_utf8 ( -concat -: & -[ -Hir -] +self ) - > -Properties +bool { -let -mut -props -= -PropertiesI +match +* +self { -minimum_len +Class : -Some -( -0 -) -maximum_len : -Some +Unicode ( -0 +_ ) -look_set -: -LookSet += +> +true +Class : : -empty +Bytes ( +ref +x ) -look_set_prefix -: -LookSet -: -: -empty += +> +x +. +is_all_ascii ( ) -look_set_suffix -: -LookSet -: -: -empty +} +} +} +# +[ +derive ( +Clone +Debug +Eq +PartialEq ) -look_set_prefix_any -: -LookSet -: +] +pub +struct +ClassUnicode +{ +set : -empty +IntervalSet +< +ClassUnicodeRange +> +} +impl +ClassUnicode +{ +pub +fn +new +< +I +> ( +ranges +: +I ) -look_set_suffix_any +- +> +ClassUnicode +where +I +: +IntoIterator +< +Item += +ClassUnicodeRange +> +{ +ClassUnicode +{ +set : -LookSet +IntervalSet : : +new +( +ranges +) +} +} +pub +fn empty ( ) -utf8 -: -true -explicit_captures_len +- +> +ClassUnicode +{ +ClassUnicode : -0 -static_explicit_captures_len : -Some +new ( -0 +vec +! +[ +] ) -literal -: -true -alternation_literal -: -true } -; -for -x -in -concat -. -iter +pub +fn +push ( +& +mut +self +range +: +ClassUnicodeRange ) { -let -p -= -x +self +. +set . -properties +push ( +range ) ; -props -. -look_set -. -set_union +} +pub +fn +iter ( -p +& +self +) +- +> +ClassUnicodeIter +< +' +_ +> +{ +ClassUnicodeIter +( +self . -look_set +set +. +iter ( ) ) -; -props -. -utf8 -= -props -. -utf8 +} +pub +fn +ranges +( & +self +) +- +> & -p +[ +ClassUnicodeRange +] +{ +self +. +set . -is_utf8 +intervals ( ) -; -props -. -explicit_captures_len -= -props +} +pub +fn +case_fold_simple +( +& +mut +self +) +{ +self . -explicit_captures_len +set . -saturating_add +case_fold_simple ( -p +) . -explicit_captures_len +expect ( -) +" +unicode +- +case +feature +must +be +enabled +" ) ; -props -. -static_explicit_captures_len -= -p +} +pub +fn +try_case_fold_simple +( +& +mut +self +) +- +> +result +: +: +Result +< +( +) +CaseFoldError +> +{ +self . -static_explicit_captures_len -( -) +set . -and_then -( -| -len1 -| -{ -Some -( +case_fold_simple ( -len1 -props -. -static_explicit_captures_len -? -) ) } -) -. -and_then -( -| +pub +fn +negate ( -len1 -len2 +& +mut +self ) -| -Some -( -len1 +{ +self . -saturating_add +set +. +negate ( -len2 -) -) ) ; -props -. -literal -= -props -. -literal +} +pub +fn +union +( & +mut +self +other +: & -p -. -is_literal -( +ClassUnicode ) -; -props +{ +self . -alternation_literal -= -props +set . -alternation_literal -& +union +( & -p +other . -is_alternation_literal -( +set ) ; -if -let -Some +} +pub +fn +intersect ( -minimum_len +& +mut +self +other +: +& +ClassUnicode ) -= -props -. -minimum_len { -match -p +self +. +set . -minimum_len +intersect ( -) -{ -None -= -> -props +& +other . -minimum_len -= -None -Some +set +) +; +} +pub +fn +difference ( -len +& +mut +self +other +: +& +ClassUnicode ) -= -> { -props +self . -minimum_len -= -Some -( -minimum_len +set . -saturating_add +difference ( -len -) +& +other +. +set ) ; } -} -} -if -let -Some +pub +fn +symmetric_difference ( -maximum_len +& +mut +self +other +: +& +ClassUnicode ) -= -props -. -maximum_len { -match -p +self . -maximum_len +set +. +symmetric_difference ( -) -{ -None -= -> -props +& +other . -maximum_len -= -None -Some +set +) +; +} +pub +fn +is_all_ascii ( -len +& +self ) -= +- > +bool { -props -. -maximum_len -= -maximum_len +self . -checked_add -( -len -) -} -} -} -} -let -mut -it -= -concat +set . -iter -( -) -; -while -let -Some +intervals ( -x ) -= -it . -next +last ( ) -{ -props -. -look_set_prefix . -set_union +map_or ( -x +true +| +r +| +r . -properties -( +end +< += +' +\ +x7F +' ) -. -look_set_prefix +} +} +# +[ +derive ( +Debug ) +] +pub +struct +ClassUnicodeIter +< +' +a +> +( +IntervalSetIter +< +' +a +ClassUnicodeRange +> ) ; -props -. -look_set_prefix_any -. -set_union -( -x -. -properties +impl +< +' +a +> +Iterator +for +ClassUnicodeIter +< +' +a +> +{ +type +Item += +& +' +a +ClassUnicodeRange +; +fn +next ( +& +mut +self ) +- +> +Option +< +& +' +a +ClassUnicodeRange +> +{ +self . -look_set_prefix_any -( -) -) -; -if -x +0 . -properties +next ( ) -. -maximum_len +} +} +# +[ +derive ( +Clone +Copy +Default +Eq +PartialEq +PartialOrd +Ord ) -. -map_or +] +pub +struct +ClassUnicodeRange +{ +start +: +char +end +: +char +} +impl +fmt +: +: +Debug +for +ClassUnicodeRange +{ +fn +fmt ( -true -| -x -| -x +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ > -0 ) +- +> +fmt +: +: +Result { -break -; -} -} let -mut -it +start = -concat +if +! +self . -iter -( -) +start . -rev -( -) -; -while -let -Some +is_whitespace ( -x ) -= -it +& +& +! +self . -next +start +. +is_control ( ) { -props -. -look_set_suffix +self . -set_union -( -x +start . -properties +to_string ( ) -. -look_set_suffix +} +else +{ +format +! ( +" +0x +{ +: +X +} +" +self +. +start +as +u32 ) -) +} ; -props -. -look_set_suffix_any +let +end += +if +! +self . -set_union -( -x +end . -properties +is_whitespace ( ) +& +& +! +self . -look_set_suffix_any -( -) -) -; -if -x +end . -properties +is_control ( ) +{ +self . -maximum_len -( -) +end . -map_or +to_string ( -true -| -x -| -x -> -0 ) -{ -break -; -} } -Properties +else +{ +format +! ( -Box -: +" +0x +{ : -new -( -props -) +X +} +" +self +. +end +as +u32 ) } -fn -alternation +; +f +. +debug_struct ( -alts -: -& -[ -Hir -] +" +ClassUnicodeRange +" ) -- -> -Properties -{ -Properties -: -: -union -( -alts . -iter +field ( +" +start +" +& +start ) . -map +field ( -| -hir -| -hir +" +end +" +& +end +) . -properties +finish ( ) -) -) -} } -# -[ -derive -( -Clone -Copy -Default -Eq -PartialEq -) -] -pub -struct -LookSet -{ -pub -bits -: -u16 } impl -LookSet +Interval +for +ClassUnicodeRange { +type +Bound += +char +; # [ inline ] -pub fn -empty +lower ( +& +self ) - > -LookSet -{ -LookSet +char { -bits -: -0 -} +self +. +start } # [ inline ] -pub fn -full +upper ( +& +self ) - > -LookSet -{ -LookSet +char { -bits -: -! -0 -} +self +. +end } # [ inline ] -pub fn -singleton +set_lower ( -look +& +mut +self +bound : -Look +char ) -- -> -LookSet { -LookSet -: -: -empty -( -) +self . -insert -( -look -) +start += +bound +; } # [ inline ] -pub fn -len +set_upper +( +& +mut +self +bound +: +char +) +{ +self +. +end += +bound +; +} +fn +case_fold_simple ( +& self +ranges +: +& +mut +Vec +< +ClassUnicodeRange +> ) - > -usize +Result +< +( +) +unicode +: +: +CaseFoldError +> { -usize +if +! +unicode : : -try_from +contains_simple_case_mapping +( +self +. +start +self +. +end +) +? +{ +return +Ok +( +( +) +) +; +} +let +start += +self +. +start +as +u32 +; +let +end += ( self . -bits +end +as +u32 +) . -count_ones +saturating_add +( +1 +) +; +let +mut +next_simple_cp += +None +; +for +cp +in ( +start +. +. +end ) +. +filter_map +( +char +: +: +from_u32 ) +{ +if +next_simple_cp . -unwrap +map_or ( +false +| +next +| +cp +< +next ) +{ +continue +; } -# -[ -inline -] +let +it += +match +unicode +: +: +simple_fold +( +cp +) +? +{ +Ok +( +it +) += +> +it +Err +( +next +) += +> +{ +next_simple_cp += +next +; +continue +; +} +} +; +for +cp_folded +in +it +{ +ranges +. +push +( +ClassUnicodeRange +: +: +new +( +cp_folded +cp_folded +) +) +; +} +} +Ok +( +( +) +) +} +} +impl +ClassUnicodeRange +{ pub fn -is_empty +new ( -self +start +: +char +end +: +char ) - > -bool +ClassUnicodeRange { -self -. -len +ClassUnicodeRange +: +: +create ( +start +end ) -= -= -0 } -# -[ -inline -] pub fn -contains +start ( +& self -look -: -Look ) - > -bool +char { self . -bits -& -look -. -as_repr -( -) -! -= -0 +start } -# -[ -inline -] pub fn -contains_anchor +end ( & self ) - > -bool +char { self . -contains_anchor_haystack -( -) -| -| -self -. -contains_anchor_line -( -) +end +} } # [ -inline +derive +( +Clone +Debug +Eq +PartialEq +) ] pub +struct +ClassBytes +{ +set +: +IntervalSet +< +ClassBytesRange +> +} +impl +ClassBytes +{ +pub fn -contains_anchor_haystack +new +< +I +> ( -& -self +ranges +: +I ) - > -bool -{ -self -. -contains -( -Look +ClassBytes +where +I : +IntoIterator +< +Item += +ClassBytesRange +> +{ +ClassBytes +{ +set : -Start -) -| -| -self -. -contains -( -Look +IntervalSet : : -End +new +( +ranges ) } -# -[ -inline -] +} pub fn -contains_anchor_line +empty ( -& -self ) - > -bool +ClassBytes { -self -. -contains -( -Look +ClassBytes : : -StartLF -) -| -| -self -. -contains +new ( -Look -: -: -EndLF +vec +! +[ +] ) -| -| -self -. -contains +} +pub +fn +push ( -Look -: +& +mut +self +range : -StartCRLF +ClassBytesRange ) -| -| +{ self . -contains +set +. +push ( -Look -: -: -EndCRLF +range ) +; } -# -[ -inline -] pub fn -contains_anchor_lf +iter ( & self ) - > -bool +ClassBytesIter +< +' +_ +> { -self -. -contains +ClassBytesIter ( -Look -: -: -StartLF -) -| -| self . -contains +set +. +iter ( -Look -: -: -EndLF +) ) } -# -[ -inline -] pub fn -contains_anchor_crlf +ranges ( & self ) - > -bool +& +[ +ClassBytesRange +] { self . -contains -( -Look -: -: -StartCRLF -) -| -| -self +set . -contains +intervals ( -Look -: -: -EndCRLF ) } -# -[ -inline -] pub fn -contains_word +case_fold_simple ( +& +mut self ) -- -> -bool { self . -contains_word_unicode +set +. +case_fold_simple ( ) -| -| -self . -contains_word_ascii +expect ( +" +ASCII +case +folding +never +fails +" ) +; } -# -[ -inline -] pub fn -contains_word_unicode -( -self -) -- -> -bool -{ -self -. -contains +negate ( -Look -: -: -WordUnicode +& +mut +self ) -| -| +{ self . -contains +set +. +negate ( -Look -: -: -WordUnicodeNegate ) +; } -# -[ -inline -] pub fn -contains_word_ascii +union ( +& +mut self +other +: +& +ClassBytes ) -- -> -bool { self . -contains -( -Look -: -: -WordAscii -) -| -| -self +set . -contains +union ( -Look -: -: -WordAsciiNegate +& +other +. +set ) +; } -# -[ -inline -] pub fn -iter +intersect ( +& +mut self +other +: +& +ClassBytes ) -- -> -LookSetIter { -LookSetIter -{ -set -: self +. +set +. +intersect +( +& +other +. +set +) +; } -} -# -[ -inline -] pub fn -insert +difference ( +& +mut self -look +other : -Look +& +ClassBytes ) -- -> -LookSet -{ -LookSet { -bits -: self . -bits -| -look +set . -as_repr +difference ( +& +other +. +set ) +; } -} -# -[ -inline -] pub fn -set_insert +symmetric_difference ( & mut self -look +other : -Look +& +ClassBytes ) { -* -self -= self . -insert +set +. +symmetric_difference ( -look +& +other +. +set ) ; } -# -[ -inline -] pub fn -remove +is_all_ascii ( +& self -look -: -Look ) - > -LookSet -{ -LookSet +bool { -bits -: self . -bits -& -! -look +set +. +intervals +( +) +. +last +( +) . -as_repr +map_or ( +true +| +r +| +r +. +end +< += +0x7F ) } } # [ -inline +derive +( +Debug +) ] pub +struct +ClassBytesIter +< +' +a +> +( +IntervalSetIter +< +' +a +ClassBytesRange +> +) +; +impl +< +' +a +> +Iterator +for +ClassBytesIter +< +' +a +> +{ +type +Item += +& +' +a +ClassBytesRange +; fn -set_remove +next ( & mut self -look -: -Look ) +- +> +Option +< +& +' +a +ClassBytesRange +> { -* -self -= self . -remove +0 +. +next ( -look ) -; +} } # [ -inline -] -pub -fn -subtract +derive ( -self -other -: -LookSet +Clone +Copy +Default +Eq +PartialEq +PartialOrd +Ord ) -- -> -LookSet -{ -LookSet +] +pub +struct +ClassBytesRange { -bits +start : -self -. -bits -& -! -other -. -bits -} +u8 +end +: +u8 } +impl +Interval +for +ClassBytesRange +{ +type +Bound += +u8 +; # [ inline ] -pub fn -set_subtract +lower ( & -mut self -other -: -LookSet ) -{ -* -self -= +- +> +u8 +{ self . -subtract -( -other -) -; +start } # [ inline ] -pub fn -union +upper ( +& self -other -: -LookSet ) - > -LookSet -{ -LookSet +u8 { -bits -: self . -bits -| -other -. -bits -} +end } # [ inline ] -pub fn -set_union +set_lower ( & mut self -other +bound : -LookSet +u8 ) { -* -self -= self . -union -( -other -) +start += +bound ; } # [ inline ] -pub fn -intersect +set_upper ( +& +mut self -other +bound : -LookSet +u8 ) -- -> -LookSet { -LookSet -{ -bits -: self . -bits -& -other -. -bits -} +end += +bound +; } -# -[ -inline -] -pub fn -set_intersect +case_fold_simple ( & -mut self -other +ranges : -LookSet +& +mut +Vec +< +ClassBytesRange +> +) +- +> +Result +< +( ) +unicode +: +: +CaseFoldError +> { -* +if +! +ClassBytesRange +: +: +new +( +b +' +a +' +b +' +z +' +) +. +is_intersection_empty +( self +) +{ +let +lower = +cmp +: +: +max +( self . -intersect +start +b +' +a +' +) +; +let +upper += +cmp +: +: +min ( -other +self +. +end +b +' +z +' ) ; -} -# -[ -inline -] -pub -fn -read_repr +ranges +. +push ( -slice +ClassBytesRange : -& -[ -u8 -] -) +: +new +( +lower - -> -LookSet +32 +upper +- +32 +) +) +; +} +if +! +ClassBytesRange +: +: +new +( +b +' +A +' +b +' +Z +' +) +. +is_intersection_empty +( +self +) { let -bits +lower = -u16 +cmp : : -from_ne_bytes +max ( -slice -[ +self . +start +b +' +A +' +) +; +let +upper += +cmp +: +: +min +( +self . -2 -] +end +b +' +Z +' +) +; +ranges . -try_into +push +( +ClassBytesRange +: +: +new +( +lower ++ +32 +upper ++ +32 +) +) +; +} +Ok +( +( +) +) +} +} +impl +ClassBytesRange +{ +pub +fn +new +( +start +: +u8 +end +: +u8 +) +- +> +ClassBytesRange +{ +ClassBytesRange +: +: +create ( +start +end ) -. -unwrap +} +pub +fn +start ( +& +self ) -) -; -LookSet +- +> +u8 { -bits -} +self +. +start } -# -[ -inline -] pub fn -write_repr +end ( -self -slice -: & -mut -[ -u8 -] +self ) +- +> +u8 { -let -raw -= self . -bits -. -to_ne_bytes -( -) -; -slice -[ -0 -] -= -raw -[ -0 -] -; -slice -[ -1 -] -= -raw -[ -1 -] -; +end } } impl -core -: -: fmt : : Debug for -LookSet +ClassBytesRange { fn fmt @@ -9792,73 +5226,263 @@ f : & mut -core -: -: fmt : : Formatter +< +' +_ +> ) - > -core -: -: fmt : : Result { +let +mut +debug += +f +. +debug_struct +( +" +ClassBytesRange +" +) +; if self . -is_empty +start +< += +0x7F +{ +debug +. +field ( +" +start +" +& +( +self +. +start +as +char ) +) +; +} +else { -return -write -! +debug +. +field ( -f " +start " +& +self +. +start ) ; } -for -look -in +if self . -iter +end +< += +0x7F +{ +debug +. +field +( +" +end +" +& ( +self +. +end +as +char +) ) +; +} +else { -write -! +debug +. +field ( -f " -{ -} +end " -look +& +self +. +end +) +; +} +debug . -as_char +finish ( ) +} +} +# +[ +derive +( +Clone +Debug +Eq +PartialEq ) -? -; +] +pub +enum +Anchor +{ +StartLine +EndLine +StartText +EndText } -Ok +# +[ +derive +( +Clone +Debug +Eq +PartialEq +) +] +pub +enum +WordBoundary +{ +Unicode +UnicodeNegate +Ascii +AsciiNegate +} +impl +WordBoundary +{ +pub +fn +is_negated +( +& +self +) +- +> +bool +{ +match +* +self +{ +WordBoundary +: +: +Unicode +| +WordBoundary +: +: +Ascii += +> +false +WordBoundary +: +: +UnicodeNegate +| +WordBoundary +: +: +AsciiNegate += +> +true +} +} +} +# +[ +derive ( +Clone +Debug +Eq +PartialEq +) +] +pub +struct +Group +{ +pub +kind +: +GroupKind +pub +hir +: +Box +< +Hir +> +} +# +[ +derive ( +Clone +Debug +Eq +PartialEq ) +] +pub +enum +GroupKind +{ +CaptureIndex +( +u32 ) +CaptureName +{ +name +: +String +index +: +u32 } +NonCapturing } # [ @@ -9866,282 +5490,203 @@ derive ( Clone Debug +Eq +PartialEq ) ] pub struct -LookSetIter +Repetition { -set +pub +kind +: +RepetitionKind +pub +greedy +: +bool +pub +hir : -LookSet +Box +< +Hir +> } impl -Iterator -for -LookSetIter +Repetition { -type -Item -= -Look -; -# -[ -inline -] +pub fn -next +is_match_empty ( & -mut self ) - > -Option -< -Look -> +bool { -if +match self . -set -. -is_empty -( -) +kind { -return -None -; -} -let -repr -= -u16 +RepetitionKind : : -try_from -( -self -. -set -. -bits -. -trailing_zeros -( -) -) -. -unwrap -( -) -; -let -look +ZeroOrOne = -Look +> +true +RepetitionKind : : -from_repr -( -1 -< -< -repr -) -? -; -self -. -set +ZeroOrMore = -self -. -set -. -remove -( -look -) -; -Some -( -look -) -} -} -fn -class_chars -( -hirs -: -& -[ -Hir -] -) -- -> -Option -< -Class > -{ -let -mut -cls +true +RepetitionKind +: +: +OneOrMore = -ClassUnicode +> +false +RepetitionKind : : -new +Range ( -vec -! -[ -] -) -; -for -hir -in -hirs -. -iter +RepetitionRange +: +: +Exactly ( +m ) -{ -match -* -hir -. -kind -( ) -{ -HirKind += +> +m += += +0 +RepetitionKind : : -Class +Range ( -Class +RepetitionRange : : -Unicode +AtLeast ( -ref -cls2 +m ) ) = > -{ -cls -. -union -( -cls2 -) -; -} -HirKind +m += += +0 +RepetitionKind : : -Class +Range ( -Class +RepetitionRange : : -Bytes +Bounded ( -ref -cls2 +m +_ ) ) = > -{ -cls -. -union -( -& -cls2 -. -to_unicode_class +m += += +0 +} +} +} +# +[ +derive ( +Clone +Debug +Eq +PartialEq ) -? +] +pub +enum +RepetitionKind +{ +ZeroOrOne +ZeroOrMore +OneOrMore +Range +( +RepetitionRange ) -; -} -_ -= -> -return -None -} -; } -Some +# +[ +derive ( -Class -: -: -Unicode +Clone +Debug +Eq +PartialEq +) +] +pub +enum +RepetitionRange +{ +Exactly ( -cls +u32 ) +AtLeast +( +u32 +) +Bounded +( +u32 +u32 ) } +impl +Drop +for +Hir +{ fn -class_bytes +drop ( -hirs -: & -[ -Hir -] +mut +self ) -- -> -Option -< -Class -> { -let -mut -cls -= -ClassBytes +use +std : : -new -( -vec -! -[ -] -) +mem ; -for -hir -in -hirs -. -iter -( -) -{ match * -hir +self . kind ( @@ -10150,647 +5695,544 @@ kind HirKind : : -Class -( -Class +Empty +| +HirKind : : -Unicode -( -ref -cls2 -) -) -= -> -{ -cls -. -union -( -& -cls2 -. -to_byte_class +Literal ( +_ ) -? -) -; -} +| HirKind : : Class ( -Class +_ +) +| +HirKind : : -Bytes +Anchor ( -ref -cls2 -) +_ ) -= -> -{ -cls -. -union +| +HirKind +: +: +WordBoundary ( -cls2 -) -; -} _ +) = > return -None -} -; -} -Some -( -Class +HirKind : : -Bytes -( -cls -) -) -} -fn -singleton_chars +Group ( -hirs -: -& -[ -Hir -] +ref +x ) -- -> -Option -< -Vec -< -char -> -> -{ -let -mut -singletons -= -vec +if ! -[ -] -; -for -hir -in -hirs +x . -iter -( -) -{ -let -literal -= -match -* hir . kind +. +has_subexprs ( ) -{ += +> +return HirKind : : -Literal -( -Literal +Repetition ( ref -bytes +x ) +if +! +x +. +hir +. +kind +. +has_subexprs +( ) = > -bytes -_ -= -> return -None -} -; -let -ch -= -match -crate -: -: -debug +HirKind : : -utf8_decode +Concat ( -literal +ref +x ) -{ -None -= -> -return -None -Some -( -Err +if +x +. +is_empty ( -_ -) ) = > return -None -Some -( -Ok +HirKind +: +: +Alternation ( -ch -) +ref +x ) -= -> -ch -} -; if -literal +x . -len +is_empty ( ) -! = -ch -. -len_utf8 -( -) -{ -return -None -; -} -singletons -. -push -( -ch -) -; -} -Some -( -singletons -) -} -fn -singleton_bytes -( -hirs -: -& -[ -Hir -] -) -- -> -Option -< -Vec -< -u8 > +return +_ += > { +} +} let mut -singletons +stack = vec ! [ +mem +: +: +replace +( +self +Hir +: +: +empty +( +) +) ] ; -for -hir -in -hirs +while +let +Some +( +mut +expr +) += +stack . -iter +pop ( ) { -let -literal -= match -* -hir +expr . kind -( -) { HirKind : : +Empty +| +HirKind +: +: Literal ( -Literal +_ +) +| +HirKind +: +: +Class ( -ref -bytes +_ ) +| +HirKind +: +: +Anchor +( +_ ) -= -> -bytes +| +HirKind +: +: +WordBoundary +( _ +) = > -return -None +{ } -; -if -literal -. -len +HirKind +: +: +Group ( +ref +mut +x ) -! = -1 +> { -return -None -; -} -singletons +stack . push ( -literal -[ -0 -] -) -; -} -Some +mem +: +: +replace +( +& +mut +x +. +hir +Hir +: +: +empty ( -singletons ) +) +) +; } -fn -lift_common_prefix -( -hirs +HirKind : -Vec -< -Hir -> +: +Repetition +( +ref +mut +x ) -- -> -Result -< -Hir -Vec -< -Hir -> += > { -if -hirs +stack . -len +push ( -) -< -= -1 -{ -return -Err +mem +: +: +replace ( -hirs -) -; -} -let +& mut -prefix -= -match -hirs -[ -0 -] +x . -kind +hir +Hir +: +: +empty ( ) -{ +) +) +; +} HirKind : : Concat ( ref -xs +mut +x ) = > -& -* -* -xs -_ -= -> -return -Err +{ +stack +. +extend ( -hirs -) -} -; -if -prefix +x . -is_empty +drain ( +. +. ) -{ -return -Err -( -hirs ) ; } -for -h -in -hirs -. -iter +HirKind +: +: +Alternation ( +ref +mut +x ) += +> +{ +stack . -skip +extend ( -1 -) -{ -let -concat -= -match -h +x . -kind +drain +( +. +. +) +) +; +} +} +} +} +} +# +[ +derive ( +Clone +Debug +Eq +PartialEq ) +] +struct +HirInfo { -HirKind +bools +: +u16 +} +macro_rules +! +define_bool +{ +( +bit : +expr +is_fn_name : -Concat -( -ref -xs +ident +set_fn_name +: +ident ) = > -xs -_ -= -> -return -Err +{ +fn +is_fn_name ( -hirs +& +self ) -} -; -let -common_len -= -prefix +- +> +bool +{ +self . -iter +bools +& ( +0b1 +< +< +bit ) -. -zip -( -concat -. -iter +> +0 +} +fn +set_fn_name ( +& +mut +self +yes +: +bool ) -) +{ +if +yes +{ +self . -take_while -( +bools | -( -x -y -) -| -x = -= -y -) +1 +< +< +bit +; +} +else +{ +self . -count +bools +& += +! ( +1 +< +< +bit ) ; -prefix -= -& -prefix -[ -. -. -common_len -] +} +} +} ; -if -prefix -. -is_empty -( -) +} +impl +HirInfo { -return -Err +fn +new ( -hirs ) -; +- +> +HirInfo +{ +HirInfo +{ +bools +: +0 } } -let -len -= -prefix -. -len +define_bool +! ( +0 +is_always_utf8 +set_always_utf8 ) ; -assert_ne +define_bool ! ( -0 -len +1 +is_all_assertions +set_all_assertions ) ; -let -mut -prefix_concat -= -vec +define_bool ! -[ -] +( +2 +is_anchored_start +set_anchored_start +) ; -let -mut -suffix_alts -= -vec +define_bool ! -[ -] -; -for -h -in -hirs -{ -let -mut -concat -= -match -h -. -into_kind ( +3 +is_anchored_end +set_anchored_end ) -{ -HirKind -: -: -Concat +; +define_bool +! ( -xs +4 +is_line_anchored_start +set_line_anchored_start ) -= -> -xs -_ -= -> -unreachable +; +define_bool ! ( +5 +is_line_anchored_end +set_line_anchored_end ) -} ; -suffix_alts -. -push -( -Hir -: -: -concat -( -concat -. -split_off +define_bool +! ( -len -) -) +6 +is_any_anchored_start +set_any_anchored_start ) ; -if -prefix_concat -. -is_empty +define_bool +! ( +7 +is_any_anchored_end +set_any_anchored_end ) -{ -prefix_concat -= -concat -; -} -} -let -mut -concat -= -prefix_concat ; -concat -. -push -( -Hir -: -: -alternation +define_bool +! ( -suffix_alts -) +8 +is_match_empty +set_match_empty ) ; -Ok -( -Hir -: -: -concat +define_bool +! ( -concat +9 +is_literal +set_literal ) +; +define_bool +! +( +10 +is_alternation_literal +set_alternation_literal ) +; } # [ @@ -19755,27 +15197,58 @@ f ( b ' -n -' -b -' -t +n +' +b +' +t +' +) +] +) +; +assert_eq +! +( +expected +bsymdifference +( +& +cls1 +& +cls2 +) +) +; +} +# +[ +test +] +# +[ +should_panic +] +fn +hir_byte_literal_non_ascii +( +) +{ +Hir +: +: +literal +( +Literal +: +: +Byte +( +b +' +a ' ) -] -) -; -assert_eq -! -( -expected -bsymdifference -( -& -cls1 -& -cls2 -) ) ; } @@ -19835,17 +15308,17 @@ expr Hir : : -capture +group ( -Capture +Group { -index +kind : -1 -name +GroupKind : -None -sub +: +NonCapturing +hir : Box : @@ -19866,19 +15339,16 @@ repetition ( Repetition { -min +kind : -0 -max +RepetitionKind : -Some -( -1 -) +: +ZeroOrOne greedy : true -sub +hir : Box : @@ -19907,12 +15377,12 @@ vec expr ] ) -props +info : -Properties +HirInfo : : -empty +new ( ) } @@ -19934,12 +15404,12 @@ vec expr ] ) -props +info : -Properties +HirInfo : : -empty +new ( ) } @@ -19949,20 +15419,13 @@ assert ! ( ! -matches -! -( -* expr . kind +. +is_empty ( ) -HirKind -: -: -Empty -) ) ; } @@ -19979,7 +15442,7 @@ new . stack_size ( -16 +1 < < 10 @@ -20003,240 +15466,4 @@ unwrap ) ; } -# -[ -test -] -fn -look_set_iter -( -) -{ -let -set -= -LookSet -: -: -empty -( -) -; -assert_eq -! -( -0 -set -. -iter -( -) -. -count -( -) -) -; -let -set -= -LookSet -: -: -full -( -) -; -assert_eq -! -( -10 -set -. -iter -( -) -. -count -( -) -) -; -let -set -= -LookSet -: -: -empty -( -) -. -insert -( -Look -: -: -StartLF -) -. -insert -( -Look -: -: -WordUnicode -) -; -assert_eq -! -( -2 -set -. -iter -( -) -. -count -( -) -) -; -let -set -= -LookSet -: -: -empty -( -) -. -insert -( -Look -: -: -StartLF -) -; -assert_eq -! -( -1 -set -. -iter -( -) -. -count -( -) -) -; -let -set -= -LookSet -: -: -empty -( -) -. -insert -( -Look -: -: -WordAsciiNegate -) -; -assert_eq -! -( -1 -set -. -iter -( -) -. -count -( -) -) -; -} -# -[ -test -] -fn -look_set_debug -( -) -{ -let -res -= -format -! -( -" -{ -: -? -} -" -LookSet -: -: -empty -( -) -) -; -assert_eq -! -( -" -" -res -) -; -let -res -= -format -! -( -" -{ -: -? -} -" -LookSet -: -: -full -( -) -) -; -assert_eq -! -( -" -Az -^ -rRbB -" -res -) -; -} } diff --git a/third_party/rust/regex-syntax/src/hir/print.rs b/third_party/rust/regex-syntax/src/hir/print.rs index fd91e33996e30..283b01e50c345 100644 --- a/third_party/rust/regex-syntax/src/hir/print.rs +++ b/third_party/rust/regex-syntax/src/hir/print.rs @@ -1,5 +1,5 @@ use -core +std : : fmt @@ -8,12 +8,9 @@ use crate : : -{ hir : : -{ -self visitor : : @@ -21,11 +18,25 @@ visitor self Visitor } +; +use +crate +: +: +hir +: +: +{ +self Hir HirKind } +; +use +crate +: +: is_meta_character -} ; # [ @@ -279,30 +290,27 @@ HirKind : : Empty -= -> -{ -self -. -wtr -. -write_str -( -r -" -( -? +| +HirKind : +: +Repetition +( +_ ) -" +| +HirKind +: +: +Concat +( +_ ) -? -; -} +| HirKind : : -Repetition +Alternation ( _ ) @@ -319,94 +327,16 @@ hir : : Literal -( -ref -bytes -) -) -= -> -{ -let -result -= -core -: -: -str : : -from_utf8 -( -bytes -) -; -let -len -= -result -. -map_or -( -bytes -. -len -( -) -| -s -| -s -. -chars -( -) -. -count -( -) -) -; -if -len -> -1 -{ -self -. -wtr -. -write_str -( -r -" +Unicode ( -? -: -" +c ) -? -; -} -match -result -{ -Ok -( -string ) = > { -for -c -in -string -. -chars -( -) -{ self . write_literal_char @@ -416,24 +346,25 @@ c ? ; } -} -Err +HirKind +: +: +Literal ( -_ +hir +: +: +Literal +: +: +Byte +( +b +) ) = > { -for -& -b -in -bytes -. -iter -( -) -{ self . write_literal_byte @@ -443,28 +374,6 @@ b ? ; } -} -} -if -len -> -1 -{ -self -. -wtr -. -write_str -( -r -" -) -" -) -? -; -} -} HirKind : : @@ -485,35 +394,6 @@ cls = > { -if -cls -. -ranges -( -) -. -is_empty -( -) -{ -return -self -. -wtr -. -write_str -( -" -[ -a -& -& -b -] -" -) -; -} self . wtr @@ -563,60 +443,6 @@ start ; } else -if -u32 -: -: -from -( -range -. -start -( -) -) -+ -1 -= -= -u32 -: -: -from -( -range -. -end -( -) -) -{ -self -. -write_literal_char -( -range -. -start -( -) -) -? -; -self -. -write_literal_char -( -range -. -end -( -) -) -? -; -} -else { self . @@ -689,18 +515,6 @@ cls = > { -if -cls -. -ranges -( -) -. -is_empty -( -) -{ -return self . wtr @@ -708,28 +522,11 @@ wtr write_str ( " -[ -a -& -& -b -] -" -) -; -} -self -. -wtr -. -write_str -( -" -( -? -- -u -: +( +? +- +u +: [ " ) @@ -772,48 +569,6 @@ start ; } else -if -range -. -start -( -) -+ -1 -= -= -range -. -end -( -) -{ -self -. -write_literal_class_byte -( -range -. -start -( -) -) -? -; -self -. -write_literal_class_byte -( -range -. -end -( -) -) -? -; -} -else { self . @@ -870,24 +625,16 @@ write_str HirKind : : -Look +Anchor ( -ref -look -) -= -> -match -* -look -{ hir : : -Look +Anchor : : -Start +StartLine +) = > { @@ -897,22 +644,31 @@ wtr . write_str ( -r " -\ -A +( +? +m +: +^ +) " ) ? ; } +HirKind +: +: +Anchor +( hir : : -Look +Anchor : : -End +EndLine +) = > { @@ -922,22 +678,30 @@ wtr . write_str ( -r " -\ -z +( +? +m +: +) " ) ? ; } +HirKind +: +: +Anchor +( hir : : -Look +Anchor : : -StartLF +StartText +) = > { @@ -947,25 +711,28 @@ wtr . write_str ( +r " -( -? -m -: -^ -) +\ +A " ) ? ; } +HirKind +: +: +Anchor +( hir : : -Look +Anchor : : -EndLF +EndText +) = > { @@ -975,24 +742,28 @@ wtr . write_str ( +r " -( -? -m -: -) +\ +z " ) ? ; } +HirKind +: +: +WordBoundary +( hir : : -Look +WordBoundary : : -StartCRLF +Unicode +) = > { @@ -1002,25 +773,28 @@ wtr . write_str ( +r " -( -? -mR -: -^ -) +\ +b " ) ? ; } +HirKind +: +: +WordBoundary +( hir : : -Look +WordBoundary : : -EndCRLF +UnicodeNegate +) = > { @@ -1030,24 +804,28 @@ wtr . write_str ( +r " -( -? -mR -: -) +\ +B " ) ? ; } +HirKind +: +: +WordBoundary +( hir : : -Look +WordBoundary : : -WordAscii +Ascii +) = > { @@ -1072,13 +850,19 @@ b ? ; } +HirKind +: +: +WordBoundary +( hir : : -Look +WordBoundary : : -WordAsciiNegate +AsciiNegate +) = > { @@ -1103,38 +887,31 @@ B ? ; } -hir -: -: -Look +HirKind : : -WordUnicode +Group +( +ref +x +) = > -{ -self -. -wtr +match +x . -write_str -( -r -" -\ -b -" -) -? -; -} +kind +{ hir : : -Look +GroupKind : : -WordUnicodeNegate +CaptureIndex +( +_ +) = > { @@ -1144,58 +921,29 @@ wtr . write_str ( -r " -\ -B +( " ) ? ; } -} -HirKind +hir : : -Capture -( -hir +GroupKind : : -Capture +CaptureName { ref name . . } -) = > { -self -. -wtr -. -write_str -( -" -( -" -) -? -; -if -let -Some -( -ref -name -) -= -* -name -{ write ! ( @@ -1203,6 +951,7 @@ self . wtr " +( ? P < @@ -1215,22 +964,13 @@ name ? ; } -} -HirKind +hir : : -Concat -( -_ -) -| -HirKind +GroupKind : : -Alternation -( -_ -) +NonCapturing = > { @@ -1240,7 +980,6 @@ wtr . write_str ( -r " ( ? @@ -1251,6 +990,7 @@ r ; } } +} Ok ( ( @@ -1307,7 +1047,31 @@ _ HirKind : : -Look +Anchor +( +_ +) +| +HirKind +: +: +WordBoundary +( +_ +) +| +HirKind +: +: +Concat +( +_ +) +| +HirKind +: +: +Alternation ( _ ) @@ -1327,22 +1091,17 @@ x > { match -( -x -. -min x . -max -) +kind { -( -0 -Some -( -1 -) -) +hir +: +: +RepetitionKind +: +: +ZeroOrOne = > { @@ -1359,10 +1118,13 @@ write_str ? ; } -( -0 -None -) +hir +: +: +RepetitionKind +: +: +ZeroOrMore = > { @@ -1379,10 +1141,13 @@ write_str ? ; } -( -1 -None -) +hir +: +: +RepetitionKind +: +: +OneOrMore = > { @@ -1399,27 +1164,32 @@ write_str ? ; } +hir +: +: +RepetitionKind +: +: +Range ( -1 -Some -( -1 -) +ref +x ) = > +match +* +x { -return -Ok -( -( -) -) -; -} +hir +: +: +RepetitionRange +: +: +Exactly ( m -None ) = > @@ -1443,18 +1213,16 @@ m ? ; } +hir +: +: +RepetitionRange +: +: +AtLeast ( m -Some -( -n ) -) -if -m -= -= -n = > { @@ -1476,21 +1244,18 @@ m ) ? ; -return -Ok -( -( -) -) -; } +hir +: +: +RepetitionRange +: +: +Bounded ( m -Some -( n ) -) = > { @@ -1517,6 +1282,7 @@ n ; } } +} if ! x @@ -1540,23 +1306,7 @@ write_str HirKind : : -Capture -( -_ -) -| -HirKind -: -: -Concat -( -_ -) -| -HirKind -: -: -Alternation +Group ( _ ) @@ -1569,7 +1319,6 @@ wtr . write_str ( -r " ) " @@ -1687,25 +1436,34 @@ fmt : Result { -if +let +c += b +as +char +; +if +c < = 0x7F +as +char & & ! -b +c . -is_ascii_control +is_control ( ) & & ! -b +c . -is_ascii_whitespace +is_whitespace ( ) { @@ -1713,17 +1471,7 @@ self . write_literal_char ( -char -: -: -try_from -( -b -) -. -unwrap -( -) +c ) } else @@ -1770,25 +1518,34 @@ fmt : Result { -if +let +c += b +as +char +; +if +c < = 0x7F +as +char & & ! -b +c . -is_ascii_control +is_control ( ) & & ! -b +c . -is_ascii_whitespace +is_whitespace ( ) { @@ -1796,17 +1553,7 @@ self . write_literal_char ( -char -: -: -try_from -( -b -) -. -unwrap -( -) +c ) } else @@ -1842,22 +1589,10 @@ mod tests { use -alloc -: -: -{ -boxed -: -: -Box -string +super : : -{ -String -ToString -} -} +Printer ; use crate @@ -1865,12 +1600,6 @@ crate : ParserBuilder ; -use -super -: -: -* -; fn roundtrip ( @@ -1915,9 +1644,9 @@ b | b . -utf8 +allow_invalid_utf8 ( -false +true ) given expected @@ -2159,22 +1888,8 @@ a " r " -a -" -) -; -roundtrip -( -r -" -[ -ab -] -" -r -" [ -ab +a ] " ) @@ -2246,11 +1961,13 @@ u ] " " +[ \ u { 0 } +] " ) ; @@ -2264,8 +1981,10 @@ r " r " +[ \ - +] " ) ; @@ -2300,32 +2019,13 @@ a " r " -a -" -) -; -roundtrip -( -r -" -( -? -- -u -) -[ -ab -] -" -r -" ( ? - u : [ -ab +a ] ) " @@ -2406,8 +2106,10 @@ r " r " +[ \ [ +] " ) ; @@ -2471,8 +2173,16 @@ u " r " +( +? +- +u +: +[ \ [ +] +) " ) ; @@ -2542,111 +2252,48 @@ _ " ) ; +} # [ -cfg +test +] +fn +print_anchor ( -feature -= +) +{ +roundtrip +( +r " -unicode -- -gencat +^ +" +r +" +\ +A " ) -] +; roundtrip ( r " -\ -P -{ -any -} " r " -[ -a -& -& -b -] +\ +z " ) ; -roundtrip_bytes +roundtrip ( r " ( ? -- -u -) -[ -^ -\ -x00 -- -\ -xFF -] -" -r -" -[ -a -& -& -b -] -" -) -; -} -# -[ -test -] -fn -print_anchor -( -) -{ -roundtrip -( -r -" -^ -" -r -" -\ -A -" -) -; -roundtrip -( -r -" -" -r -" -\ -z -" -) -; -roundtrip -( -r -" -( -? -m +m ) ^ " @@ -2917,21 +2564,8 @@ a " " a -" -) -; -roundtrip -( -" -a -{ -2 -} -" -" -a { -2 +1 } " ) @@ -2946,7 +2580,9 @@ a " " a -+ +{ +1 +} " ) ; @@ -2979,24 +2615,11 @@ a " " a -" -) -; -roundtrip -( -" -a { -2 +1 } ? " -" -a -{ -2 -} -" ) ; roundtrip @@ -3010,7 +2633,9 @@ a " " a -+ +{ +1 +} ? " ) @@ -3049,26 +2674,10 @@ a " " a -" -) -; -roundtrip -( -" -( -? -U -) -a -{ -2 -} -" -" -a { -2 +1 } +? " ) ; @@ -3086,7 +2695,9 @@ a " " a -+ +{ +1 +} ? " ) @@ -3114,99 +2725,6 @@ a " ) ; -roundtrip -( -" -a -{ -0 -} -" -" -( -? -: -) -" -) -; -roundtrip -( -" -( -? -: -ab -) -{ -0 -} -" -" -( -? -: -) -" -) -; -# -[ -cfg -( -feature -= -" -unicode -- -gencat -" -) -] -{ -roundtrip -( -r -" -\ -p -{ -any -} -{ -0 -} -" -" -( -? -: -) -" -) -; -roundtrip -( -r -" -\ -P -{ -any -} -{ -0 -} -" -" -( -? -: -) -" -) -; -} } # [ @@ -3225,10 +2743,6 @@ roundtrip " " ( -( -? -: -) ) " ) @@ -3251,10 +2765,6 @@ P < foo > -( -? -: -) ) " ) @@ -3323,7 +2833,11 @@ a ) " " +( +? +: a +) " ) ; @@ -3369,19 +2883,7 @@ roundtrip | " " -( -? -: -( -? -: -) | -( -? -: -) -) " ) ; @@ -3392,24 +2894,8 @@ roundtrip | " " -( -? -: -( -? -: -) | -( -? -: -) | -( -? -: -) -) " ) ; @@ -3421,88 +2907,28 @@ a b " " -[ -ab -] +a +| +b " ) ; roundtrip ( " -ab +a | -cd +b +| +c " " -( -? -: -( -? -: -ab -) -| -( -? -: -cd -) -) -" -) -; -roundtrip -( -" -a +a | b | c " -" -[ -a -- -c -] -" -) -; -roundtrip -( -" -ab -| -cd -| -ef -" -" -( -? -: -( -? -: -ab -) -| -( -? -: -cd -) -| -( -? -: -ef -) -) -" ) ; roundtrip @@ -3515,802 +2941,12 @@ bar quux " " -( -? -: -( -? -: foo -) | -( -? -: bar -) | -( -? -: quux -) -) -" -) -; -} -# -[ -test -] -fn -regression_repetition_concat -( -) -{ -let -expr -= -Hir -: -: -concat -( -alloc -: -: -vec -! -[ -Hir -: -: -literal -( -" -x -" -. -as_bytes -( -) -) -Hir -: -: -repetition -( -hir -: -: -Repetition -{ -min -: -1 -max -: -None -greedy -: -true -sub -: -Box -: -: -new -( -Hir -: -: -literal -( -" -ab -" -. -as_bytes -( -) -) -) -} -) -Hir -: -: -literal -( -" -y -" -. -as_bytes -( -) -) -] -) -; -assert_eq -! -( -r -" -( -? -: -x -( -? -: -ab -) -+ -y -) -" -expr -. -to_string -( -) -) -; -let -expr -= -Hir -: -: -concat -( -alloc -: -: -vec -! -[ -Hir -: -: -look -( -hir -: -: -Look -: -: -Start -) -Hir -: -: -repetition -( -hir -: -: -Repetition -{ -min -: -1 -max -: -None -greedy -: -true -sub -: -Box -: -: -new -( -Hir -: -: -concat -( -alloc -: -: -vec -! -[ -Hir -: -: -look -( -hir -: -: -Look -: -: -Start -) -Hir -: -: -look -( -hir -: -: -Look -: -: -End -) -] -) -) -} -) -Hir -: -: -look -( -hir -: -: -Look -: -: -End -) -] -) -; -assert_eq -! -( -r " -( -? -: -\ -A -\ -A -\ -z -\ -z -) -" -expr -. -to_string -( -) -) -; -} -# -[ -test -] -fn -regression_repetition_alternation -( -) -{ -let -expr -= -Hir -: -: -concat -( -alloc -: -: -vec -! -[ -Hir -: -: -literal -( -" -ab -" -. -as_bytes -( -) -) -Hir -: -: -repetition -( -hir -: -: -Repetition -{ -min -: -1 -max -: -None -greedy -: -true -sub -: -Box -: -: -new -( -Hir -: -: -alternation -( -alloc -: -: -vec -! -[ -Hir -: -: -literal -( -" -cd -" -. -as_bytes -( -) -) -Hir -: -: -literal -( -" -ef -" -. -as_bytes -( -) -) -] -) -) -} -) -Hir -: -: -literal -( -" -gh -" -. -as_bytes -( -) -) -] -) -; -assert_eq -! -( -r -" -( -? -: -( -? -: -ab -) -( -? -: -( -? -: -cd -) -| -( -? -: -ef -) -) -+ -( -? -: -gh -) -) -" -expr -. -to_string -( -) -) -; -let -expr -= -Hir -: -: -concat -( -alloc -: -: -vec -! -[ -Hir -: -: -look -( -hir -: -: -Look -: -: -Start -) -Hir -: -: -repetition -( -hir -: -: -Repetition -{ -min -: -1 -max -: -None -greedy -: -true -sub -: -Box -: -: -new -( -Hir -: -: -alternation -( -alloc -: -: -vec -! -[ -Hir -: -: -look -( -hir -: -: -Look -: -: -Start -) -Hir -: -: -look -( -hir -: -: -Look -: -: -End -) -] -) -) -} -) -Hir -: -: -look -( -hir -: -: -Look -: -: -End -) -] -) -; -assert_eq -! -( -r -" -( -? -: -\ -A -( -? -: -\ -A -| -\ -z -) -\ -z -) -" -expr -. -to_string -( -) -) -; -} -# -[ -test -] -fn -regression_alternation_concat -( -) -{ -let -expr -= -Hir -: -: -concat -( -alloc -: -: -vec -! -[ -Hir -: -: -literal -( -" -ab -" -. -as_bytes -( -) -) -Hir -: -: -alternation -( -alloc -: -: -vec -! -[ -Hir -: -: -literal -( -" -mn -" -. -as_bytes -( -) -) -Hir -: -: -literal -( -" -xy -" -. -as_bytes -( -) -) -] -) -] -) -; -assert_eq -! -( -r -" -( -? -: -( -? -: -ab -) -( -? -: -( -? -: -mn -) -| -( -? -: -xy -) -) -) -" -expr -. -to_string -( -) -) -; -let -expr -= -Hir -: -: -concat -( -alloc -: -: -vec -! -[ -Hir -: -: -look -( -hir -: -: -Look -: -: -Start -) -Hir -: -: -alternation -( -alloc -: -: -vec -! -[ -Hir -: -: -look -( -hir -: -: -Look -: -: -Start -) -Hir -: -: -look -( -hir -: -: -Look -: -: -End -) -] -) -] -) -; -assert_eq -! -( -r -" -( -? -: -\ -A -( -? -: -\ -A -| -\ -z -) -) -" -expr -. -to_string -( -) ) ; } diff --git a/third_party/rust/regex-syntax/src/hir/translate.rs b/third_party/rust/regex-syntax/src/hir/translate.rs index 07f6da9e0fd49..835813ac66f88 100644 --- a/third_party/rust/regex-syntax/src/hir/translate.rs +++ b/third_party/rust/regex-syntax/src/hir/translate.rs @@ -1,5 +1,5 @@ use -core +std : : cell @@ -11,30 +11,15 @@ RefCell } ; use -alloc +std : : -{ -boxed -: -: -Box -string -: -: -ToString -vec -vec -: -: -Vec -} +result ; use crate : : -{ ast : : @@ -44,10 +29,11 @@ Ast Span Visitor } -either +; +use +crate : : -Either hir : : @@ -56,8 +42,12 @@ self Error ErrorKind Hir -HirKind } +; +use +crate +: +: unicode : : @@ -65,7 +55,6 @@ unicode self ClassQuery } -} ; type Result @@ -73,9 +62,6 @@ Result T > = -core -: -: result : : @@ -97,12 +83,9 @@ pub struct TranslatorBuilder { -utf8 +allow_invalid_utf8 : bool -line_terminator -: -u8 flags : Flags @@ -142,16 +125,9 @@ TranslatorBuilder { TranslatorBuilder { -utf8 +allow_invalid_utf8 : -true -line_terminator -: -b -' -\ -n -' +false flags : Flags @@ -198,21 +174,16 @@ self . flags ) -utf8 +allow_invalid_utf8 : self . -utf8 -line_terminator -: -self -. -line_terminator +allow_invalid_utf8 } } pub fn -utf8 +allow_invalid_utf8 ( & mut @@ -229,7 +200,7 @@ TranslatorBuilder { self . -utf8 +allow_invalid_utf8 = yes ; @@ -237,31 +208,6 @@ self } pub fn -line_terminator -( -& -mut -self -byte -: -u8 -) -- -> -& -mut -TranslatorBuilder -{ -self -. -line_terminator -= -byte -; -self -} -pub -fn case_insensitive ( & @@ -376,44 +322,6 @@ self } pub fn -crlf -( -& -mut -self -yes -: -bool -) -- -> -& -mut -TranslatorBuilder -{ -self -. -flags -. -crlf -= -if -yes -{ -Some -( -true -) -} -else -{ -None -} -; -self -} -pub -fn swap_greed ( & @@ -516,12 +424,9 @@ Cell < Flags > -utf8 +allow_invalid_utf8 : bool -line_terminator -: -u8 } impl Translator @@ -601,13 +506,6 @@ Expr ( Hir ) -Literal -( -Vec -< -u8 -> -) ClassUnicode ( hir @@ -622,7 +520,6 @@ hir : ClassBytes ) -Repetition Group { old_flags @@ -631,7 +528,6 @@ Flags } Concat Alternation -AlternationBranch } impl HirFrame @@ -658,22 +554,6 @@ expr = > expr -HirFrame -: -: -Literal -( -lit -) -= -> -Hir -: -: -literal -( -lit -) _ = > @@ -801,49 +681,6 @@ self } } fn -unwrap_repetition -( -self -) -{ -match -self -{ -HirFrame -: -: -Repetition -= -> -{ -} -_ -= -> -{ -panic -! -( -" -tried -to -unwrap -repetition -from -HirFrame -got -: -{ -: -? -} -" -self -) -} -} -} -fn unwrap_group ( self @@ -891,50 +728,6 @@ self } } } -fn -unwrap_alternation_pipe -( -self -) -{ -match -self -{ -HirFrame -: -: -AlternationBranch -= -> -{ -} -_ -= -> -{ -panic -! -( -" -tried -to -unwrap -alt -pipe -from -HirFrame -got -: -{ -: -? -} -" -self -) -} -} -} } impl < @@ -1126,24 +919,6 @@ cls Ast : : -Repetition -( -_ -) -= -> -self -. -push -( -HirFrame -: -: -Repetition -) -Ast -: -: Group ( ref @@ -1280,16 +1055,6 @@ HirFrame Alternation ) ; -self -. -push -( -HirFrame -: -: -AlternationBranch -) -; } _ = @@ -1406,128 +1171,32 @@ x = > { -match self . -ast_literal_to_scalar +push ( -x -) -? -{ -Either +HirFrame : : -Right +Expr ( -byte -) -= -> self . -push_byte +hir_literal ( -byte +x +) +? +) ) -Either +; +} +Ast : : -Left +Dot ( -ch -) -= -> -{ -if -! -self -. -flags -( -) -. -unicode -( -) -& -& -ch -. -len_utf8 -( -) -> -1 -{ -return -Err -( -self -. -error -( -x -. -span -ErrorKind -: -: -UnicodeNotAllowed -) -) -; -} -match -self -. -case_fold_char -( -x -. -span -ch -) -? -{ -None -= -> -self -. -push_char -( -ch -) -Some -( -expr -) -= -> -self -. -push -( -HirFrame -: -: -Expr -( -expr -) -) -} -} -} -} -Ast -: -: -Dot -( -span +span ) = > @@ -1670,7 +1339,6 @@ hir_perl_byte_class ( x ) -? ; let hcls @@ -1833,6 +1501,35 @@ cls ) ? ; +if +cls +. +ranges +( +) +. +is_empty +( +) +{ +return +Err +( +self +. +error +( +ast +. +span +ErrorKind +: +: +EmptyClassNotAllowed +) +) +; +} let expr = @@ -1904,6 +1601,35 @@ cls ) ? ; +if +cls +. +ranges +( +) +. +is_empty +( +) +{ +return +Err +( +self +. +error +( +ast +. +span +ErrorKind +: +: +EmptyClassNotAllowed +) +) +; +} let expr = @@ -1969,20 +1695,6 @@ unwrap_expr ; self . -pop -( -) -. -unwrap -( -) -. -unwrap_repetition -( -) -; -self -. push ( HirFrame @@ -2070,7 +1782,7 @@ Expr ( self . -hir_capture +hir_group ( x expr @@ -2102,30 +1814,31 @@ while let Some ( +HirFrame +: +: +Expr +( expr ) +) = self . -pop_concat_expr +pop ( ) { if ! -matches -! -( -* expr . kind ( ) -HirKind -: -: -Empty +. +is_empty +( ) { exprs @@ -2186,29 +1899,21 @@ while let Some ( +HirFrame +: +: +Expr +( expr ) -= -self -. -pop_alt_expr -( ) -{ += self . pop ( ) -. -unwrap -( -) -. -unwrap_alternation_pipe -( -) -; +{ exprs . push @@ -2251,37 +1956,6 @@ Ok ) } fn -visit_alternation_in -( -& -mut -self -) -- -> -Result -< -( -) -> -{ -self -. -push -( -HirFrame -: -: -AlternationBranch -) -; -Ok -( -( -) -) -} -fn visit_class_set_item_pre ( & @@ -3025,7 +2699,6 @@ hir_perl_byte_class ( x ) -? ; let mut @@ -3965,752 +3638,502 @@ frame ; } fn -push_char +pop ( & self -ch -: -char ) +- +> +Option +< +HirFrame +> { -let -mut -buf -= -[ -0 -; -4 -] -; -let -bytes -= -ch +self . -encode_utf8 +trans ( -& -mut -buf ) . -as_bytes +stack +. +borrow_mut ( ) -; -let -mut -stack -= -self -. -trans -( -) -. -stack . -borrow_mut +pop ( ) -; -if -let -Some +} +fn +error ( -HirFrame +& +self +span : +Span +kind : -Literal -( -ref -mut -literal -) -) -= -stack -. -last_mut -( +ErrorKind ) +- +> +Error { -literal -. -extend_from_slice -( -bytes -) -; -} -else +Error { -stack -. -push -( -HirFrame -: +kind +pattern : -Literal -( -bytes +self +. +pattern . -to_vec +to_string ( ) -) -) -; +span } } fn -push_byte +flags ( & self -byte -: -u8 ) +- +> +Flags { -let -mut -stack -= self . trans ( ) . -stack +flags . -borrow_mut +get ( ) -; -if -let -Some +} +fn +set_flags ( -HirFrame +& +self +ast_flags +: +& +ast : : -Literal -( -ref -mut -literal -) -) -= -stack -. -last_mut -( +Flags ) +- +> +Flags { -literal +let +old_flags += +self . -push +flags ( -byte ) ; -} -else -{ -stack -. -push -( -HirFrame +let +mut +new_flags += +Flags : : -Literal +from_ast ( -vec -! -[ -byte -] -) +ast_flags ) ; -} -} -fn -pop +new_flags +. +merge ( & -self +old_flags ) -- -> -Option -< -HirFrame -> -{ +; self . trans ( ) . -stack -. -borrow_mut -( -) +flags . -pop +set ( +new_flags ) +; +old_flags } fn -pop_concat_expr +hir_literal ( & self +lit +: +& +ast +: +: +Literal ) - > -Option +Result < Hir > { let -frame +ch = +match self . -pop +literal_to_char ( +lit ) ? -; -match -frame { -HirFrame -: -: -Concat -= -> -None -HirFrame +byte +hir : : -Expr -( -expr -) -= -> -Some -( -expr -) -HirFrame +Literal : : -Literal +Byte ( -lit +_ ) = > -Some +return +Ok ( Hir : : literal ( -lit +byte ) ) -HirFrame +hir : : -ClassUnicode +Literal +: +: +Unicode ( -_ +ch ) = > -{ -unreachable -! +ch +} +; +if +self +. +flags ( -" -expected -expr -or -concat -got -Unicode -class -" ) -} -HirFrame -: -: -ClassBytes +. +case_insensitive ( -_ ) -= -> { -unreachable -! +self +. +hir_from_char_case_insensitive ( -" -expected -expr -or -concat -got -byte -class -" -) -} -HirFrame -: -: -Repetition -= -> -{ -unreachable -! -( -" -expected -expr -or -concat -got -repetition -" -) -} -HirFrame -: -: -Group -{ -. +lit . -} -= -> -{ -unreachable -! -( -" -expected -expr -or -concat -got -group -" -) -} -HirFrame -: -: -Alternation -= -> -{ -unreachable -! -( -" -expected -expr -or -concat -got -alt -marker -" +span +ch ) } -HirFrame -: -: -AlternationBranch -= -> +else { -unreachable -! +self +. +hir_from_char ( -" -expected -expr -or -concat -got -alt -branch -marker -" +lit +. +span +ch ) } } -} fn -pop_alt_expr +literal_to_char ( & self +lit +: +& +ast +: +: +Literal ) - > -Option +Result < -Hir +hir +: +: +Literal > { -let -frame -= +if self . -pop +flags +( +) +. +unicode ( ) -? -; -match -frame { -HirFrame +return +Ok +( +hir : : -Alternation -= -> -None -HirFrame +Literal : : -Expr +Unicode ( -expr +lit +. +c ) -= -> -Some -( -expr ) -HirFrame -: -: -Literal -( +; +} +let +byte += +match lit +. +byte +( ) +{ +None = > -Some +return +Ok ( -Hir +hir : : -literal +Literal +: +: +Unicode ( lit +. +c ) ) -HirFrame -: -: -ClassUnicode +Some ( -_ +byte ) = > +byte +} +; +if +byte +< += +0x7F { -unreachable -! +return +Ok ( -" -expected -expr -or -alt -got +hir +: +: +Literal +: +: Unicode -class -" +( +byte +as +char +) ) +; } -HirFrame -: -: -ClassBytes +if +! +self +. +trans ( -_ ) -= -> +. +allow_invalid_utf8 { -unreachable -! +return +Err ( -" -expected -expr -or -alt -got -byte -class -" +self +. +error +( +lit +. +span +ErrorKind +: +: +InvalidUtf8 ) +) +; } -HirFrame +Ok +( +hir : : -Repetition -= -> -{ -unreachable -! +Literal +: +: +Byte ( -" -expected -expr -or -alt -got -repetition -" +byte +) ) } -HirFrame +fn +hir_from_char +( +& +self +span : +Span +c : -Group -{ -. -. -} -= -> -{ -unreachable -! -( -" -expected -expr -or -alt -got -group -" +char ) -} -HirFrame -: -: -Concat -= +- > -{ -unreachable -! -( -" -expected -expr -or -alt -got -concat -marker -" -) -} -HirFrame -: -: -AlternationBranch -= +Result +< +Hir > { -unreachable +if ! -( -" -expected -expr -or -alt -got -alt -branch -marker -" -) -} -} -} -fn -error -( -& -self -span -: -Span -kind -: -ErrorKind -) -- -> -Error -{ -Error -{ -kind -pattern -: self . -pattern -. -to_string -( -) -span -} -} -fn flags ( -& -self -) -- -> -Flags -{ -self -. -trans -( ) . -flags -. -get +unicode ( ) -} -fn -set_flags -( & -self -ast_flags -: & -ast -: -: -Flags +c +. +len_utf8 +( ) -- > -Flags +1 { -let -old_flags -= +return +Err +( self . -flags +error ( +span +ErrorKind +: +: +UnicodeNotAllowed +) ) ; -let -mut -new_flags -= -Flags +} +Ok +( +Hir : : -from_ast +literal ( -ast_flags -) -; -new_flags -. -merge +hir +: +: +Literal +: +: +Unicode ( -& -old_flags +c ) -; -self -. -trans -( ) -. -flags -. -set -( -new_flags ) -; -old_flags } fn -ast_literal_to_scalar +hir_from_char_case_insensitive ( & self -lit -: -& -ast +span : +Span +c : -Literal +char ) - > Result < -Either -< -char -u8 -> +Hir > { if @@ -4724,244 +4147,63 @@ unicode ( ) { -return -Ok -( -Either +let +map += +unicode : : -Left +contains_simple_case_mapping ( -lit -. +c c ) -) -; -} -let -byte -= -match -lit . -byte +map_err ( -) +| +_ +| { -None -= -> -return -Ok +self +. +error ( -Either +span +ErrorKind : : -Left -( -lit -. -c -) -) -Some -( -byte +UnicodeCaseUnavailable ) -= -> -byte } +) +? ; if -byte -< -= -0x7F +! +map { return -Ok +self +. +hir_from_char ( -Either +span +c +) +; +} +let +mut +cls += +hir : : -Left -( -char +ClassUnicode : : -try_from -( -byte -) -. -unwrap -( -) -) -) -; -} -if -self -. -trans -( -) -. -utf8 -{ -return -Err -( -self -. -error -( -lit -. -span -ErrorKind -: -: -InvalidUtf8 -) -) -; -} -Ok -( -Either -: -: -Right -( -byte -) -) -} -fn -case_fold_char -( -& -self -span -: -Span -c -: -char -) -- -> -Result -< -Option -< -Hir -> -> -{ -if -! -self -. -flags -( -) -. -case_insensitive -( -) -{ -return -Ok -( -None -) -; -} -if -self -. -flags -( -) -. -unicode -( -) -{ -let -map -= -unicode -: -: -SimpleCaseFolder -: -: -new -( -) -. -map -( -| -f -| -f -. -overlaps -( -c -c -) -) -. -map_err -( -| -_ -| -{ -self -. -error -( -span -ErrorKind -: -: -UnicodeCaseUnavailable -) -} -) -? -; -if -! -map -{ -return -Ok -( -None -) -; -} -let -mut -cls -= -hir -: -: -ClassUnicode -: -: -new +new ( vec ! @@ -5008,8 +4250,6 @@ UnicodeCaseUnavailable ; Ok ( -Some -( Hir : : @@ -5027,7 +4267,6 @@ cls ) ) ) -) } else { @@ -5086,9 +4325,12 @@ _ = > return -Ok +self +. +hir_from_char ( -None +span +c ) } let @@ -5114,55 +4356,12 @@ ClassBytesRange : new ( -/ -/ -OK -because -' -c -. -len_utf8 -( -) -= -= -1 -' -which -in -turn -implies -/ -/ -that -' c -' -is -ASCII -. +as u8 -: -: -try_from -( c -) -. -unwrap -( -) +as u8 -: -: -try_from -( -c -) -. -unwrap -( -) ) ] ) @@ -5175,8 +4374,6 @@ case_fold_simple ; Ok ( -Some -( Hir : : @@ -5194,7 +4391,6 @@ cls ) ) ) -) } } fn @@ -5214,54 +4410,31 @@ Hir > { let -( -utf8 -lineterm -flags -) +unicode = -( -self -. -trans -( -) -. -utf8 self . -trans +flags ( ) . -line_terminator -self -. -flags +unicode ( ) -) ; if -utf8 +! +unicode & & -( ! -flags +self . -unicode +trans ( ) -| -| -! -lineterm . -is_ascii -( -) -) +allow_invalid_utf8 { return Err @@ -5279,152 +4452,39 @@ InvalidUtf8 ) ; } -let -dot -= +Ok +( if -flags +self . -dot_matches_new_line +flags ( ) -{ -if -flags . -unicode +dot_matches_new_line ( ) { -hir +Hir : : -Dot -: -: -AnyChar -} -else -{ -hir -: -: -Dot -: -: -AnyByte -} -} -else -{ -if -flags -. -unicode -( -) -{ -if -flags -. -crlf +any ( -) -{ -hir -: -: -Dot -: -: -AnyCharExceptCRLF -} -else -{ -if ! -lineterm -. -is_ascii -( -) -{ -return -Err -( -self -. -error -( -span -ErrorKind -: -: -InvalidLineTerminator -) -) -; -} -hir -: -: -Dot -: -: -AnyCharExcept -( -char -: -: -from -( -lineterm -) -) -} -} -else -{ -if -flags -. -crlf -( +unicode ) -{ -hir -: -: -Dot -: -: -AnyByteExceptCRLF } else { -hir -: -: -Dot -: -: -AnyByteExcept -( -lineterm -) -} -} -} -; -Ok -( Hir : : dot ( -dot +! +unicode ) +} ) } fn @@ -5473,19 +4533,6 @@ multi_line ( ) ; -let -crlf -= -self -. -flags -( -) -. -crlf -( -) -; Ok ( match @@ -5505,42 +4552,28 @@ StartLine Hir : : -look +anchor ( if multi_line { -if -crlf -{ -hir -: -: -Look -: -: -StartCRLF -} -else -{ hir : : -Look +Anchor : : -StartLF -} +StartLine } else { hir : : -Look +Anchor : : -Start +StartText } ) ast @@ -5555,42 +4588,28 @@ EndLine Hir : : -look +anchor ( if multi_line { -if -crlf -{ -hir -: -: -Look -: -: -EndCRLF -} -else -{ hir : : -Look +Anchor : : -EndLF -} +EndLine } else { hir : : -Look +Anchor : : -End +EndText } ) ast @@ -5602,19 +4621,21 @@ AssertionKind StartText = > +{ Hir : : -look +anchor ( hir : : -Look +Anchor : : -Start +StartText ) +} ast : : @@ -5627,15 +4648,15 @@ EndText Hir : : -look +anchor ( hir : : -Look +Anchor : : -End +EndText ) ast : @@ -5646,10 +4667,11 @@ AssertionKind WordBoundary = > +{ Hir : : -look +word_boundary ( if unicode @@ -5657,22 +4679,23 @@ unicode hir : : -Look +WordBoundary : : -WordUnicode +Unicode } else { hir : : -Look +WordBoundary : : -WordAscii +Ascii } ) +} ast : : @@ -5682,10 +4705,11 @@ AssertionKind NotWordBoundary = > +{ Hir : : -look +word_boundary ( if unicode @@ -5693,27 +4717,56 @@ unicode hir : : -Look +WordBoundary : : -WordUnicodeNegate +UnicodeNegate } else { +if +! +self +. +trans +( +) +. +allow_invalid_utf8 +{ +return +Err +( +self +. +error +( +asst +. +span +ErrorKind +: +: +InvalidUtf8 +) +) +; +} hir : : -Look +WordBoundary : : -WordAsciiNegate +AsciiNegate } ) } +} ) } fn -hir_capture +hir_group ( & self @@ -5733,10 +4786,7 @@ Hir Hir { let -( -index -name -) +kind = match group @@ -5751,14 +4801,22 @@ GroupKind : CaptureIndex ( -index +idx ) = > +{ +hir +: +: +GroupKind +: +: +CaptureIndex ( -index -None +idx ) +} ast : : @@ -5766,34 +4824,36 @@ GroupKind : : CaptureName -{ +( ref -name -. -. -} +capname +) = > { -( -name -. -index -Some -( +hir +: +: +GroupKind +: +: +CaptureName +{ name +: +capname . name . clone ( ) +index +: +capname . -into_boxed_str -( -) -) -) +index +} } ast : @@ -5807,23 +4867,27 @@ _ ) = > -return -expr +hir +: +: +GroupKind +: +: +NonCapturing } ; Hir : : -capture +group ( hir : : -Capture +Group { -index -name -sub +kind +hir : Box : @@ -5856,10 +4920,7 @@ Hir Hir { let -( -min -max -) +kind = match rep @@ -5877,14 +4938,14 @@ RepetitionKind ZeroOrOne = > -( -0 -Some -( -1 -) -) -ast +hir +: +: +RepetitionKind +: +: +ZeroOrOne +ast : : RepetitionKind @@ -5893,10 +4954,13 @@ RepetitionKind ZeroOrMore = > -( -0 -None -) +hir +: +: +RepetitionKind +: +: +ZeroOrMore ast : : @@ -5906,10 +4970,13 @@ RepetitionKind OneOrMore = > -( -1 -None -) +hir +: +: +RepetitionKind +: +: +OneOrMore ast : : @@ -5932,9 +4999,21 @@ m = > { +hir +: +: +RepetitionKind +: +: +Range ( -m -Some +hir +: +: +RepetitionRange +: +: +Exactly ( m ) @@ -5962,9 +5041,24 @@ m = > { +hir +: +: +RepetitionKind +: +: +Range +( +hir +: +: +RepetitionRange +: +: +AtLeast ( m -None +) ) } ast @@ -5989,14 +5083,29 @@ n ) = > +{ +hir +: +: +RepetitionKind +: +: +Range ( -m -Some +hir +: +: +RepetitionRange +: +: +Bounded ( +m n ) ) } +} ; let greedy @@ -6034,10 +5143,9 @@ hir : Repetition { -min -max +kind greedy -sub +hir : Box : @@ -6221,6 +5329,40 @@ class ) ? ; +if +class +. +ranges +( +) +. +is_empty +( +) +{ +let +err += +self +. +error +( +ast_class +. +span +ErrorKind +: +: +EmptyClassNotAllowed +) +; +return +Err +( +err +) +; +} } result } @@ -6259,7 +5401,7 @@ ClassUnicode : new ( -ascii_class_as_chars +ascii_class ( & ast @@ -6267,9 +5409,14 @@ ast kind ) . +iter +( +) +. map ( | +& ( s e @@ -6354,9 +5501,14 @@ ast kind ) . +iter +( +) +. map ( | +& ( s e @@ -6371,7 +5523,11 @@ ClassBytesRange new ( s +as +u8 e +as +u8 ) ) ) @@ -6532,13 +5688,10 @@ ClassPerl ) - > -Result -< hir : : ClassBytes -> { use crate @@ -6632,45 +5785,7 @@ negate ) ; } -if -self -. -trans -( -) -. -utf8 -& -& -! -class -. -is_ascii -( -) -{ -return -Err -( -self -. -error -( -ast_class -. -span -ErrorKind -: -: -InvalidUtf8 -) -) -; -} -Ok -( class -) } fn convert_unicode_class_error @@ -6683,10 +5798,7 @@ span Span result : -core -: -: -result +unicode : : Result @@ -6695,10 +5807,6 @@ hir : : ClassUnicode -unicode -: -: -Error > ) - @@ -6943,19 +6051,20 @@ negate ; } if +! self . trans ( ) . -utf8 +allow_invalid_utf8 & & ! class . -is_ascii +is_all_ascii ( ) { @@ -7008,16 +6117,19 @@ u8 match self . -ast_literal_to_scalar +literal_to_char ( ast ) ? { -Either +hir +: +: +Literal : : -Right +Byte ( byte ) @@ -7027,46 +6139,32 @@ Ok ( byte ) -Either +hir +: +: +Literal : : -Left +Unicode ( ch ) = > { -let -cp -= -u32 -: -: -from -( -ch -) -; if -cp +ch < = 0x7F +as +char { Ok ( +ch +as u8 -: -: -try_from -( -cp -) -. -unwrap -( -) ) } else @@ -7134,12 +6232,6 @@ Option < bool > -crlf -: -Option -< -bool -> } impl Flags @@ -7363,35 +6455,6 @@ ast Flag : : -CRLF -) -= -> -{ -flags -. -crlf -= -Some -( -enable -) -; -} -ast -: -: -FlagsItemKind -: -: -Flag -( -ast -: -: -Flag -: -: IgnoreWhitespace ) = @@ -7504,24 +6567,6 @@ previous unicode ; } -if -self -. -crlf -. -is_none -( -) -{ -self -. -crlf -= -previous -. -crlf -; -} } fn case_insensitive @@ -7617,26 +6662,7 @@ unwrap_or ( true ) -} -fn -crlf -( -& -self -) -- -> -bool -{ -self -. -crlf -. -unwrap_or -( -false -) -} +} } fn hir_ascii_class_bytes @@ -7669,6 +6695,14 @@ ascii_class kind ) . +iter +( +) +. +cloned +( +) +. map ( | @@ -7686,7 +6720,11 @@ ClassBytesRange new ( s +as +u8 e +as +u8 ) ) . @@ -7718,16 +6756,15 @@ ClassAsciiKind ) - > -impl -Iterator -< -Item -= +& +' +static +[ ( -u8 -u8 +char +char ) -> +] { use crate @@ -7741,19 +6778,6 @@ ClassAsciiKind : * ; -let -slice -: -& -' -static -[ -( -u8 -u8 -) -] -= match * kind @@ -7764,31 +6788,25 @@ Alnum & [ ( -b ' 0 ' -b ' 9 ' ) ( -b ' A ' -b ' Z ' ) ( -b ' a ' -b ' z ' @@ -7800,21 +6818,17 @@ Alpha & [ ( -b ' A ' -b ' Z ' ) ( -b ' a ' -b ' z ' @@ -7826,12 +6840,10 @@ Ascii & [ ( -b ' \ x00 ' -b ' \ x7F @@ -7844,22 +6856,18 @@ Blank & [ ( -b ' \ t ' -b ' \ t ' ) ( -b ' ' -b ' ' ) @@ -7870,24 +6878,20 @@ Cntrl & [ ( -b ' \ x00 ' -b ' \ x1F ' ) ( -b ' \ x7F ' -b ' \ x7F @@ -7900,11 +6904,9 @@ Digit & [ ( -b ' 0 ' -b ' 9 ' @@ -7916,11 +6918,9 @@ Graph & [ ( -b ' ! ' -b ' ~ ' @@ -7932,11 +6932,9 @@ Lower & [ ( -b ' a ' -b ' z ' @@ -7948,10 +6946,8 @@ Print & [ ( -b ' ' -b ' ~ ' @@ -7963,39 +6959,31 @@ Punct & [ ( -b ' ! ' -b ' / ' ) ( -b ' : ' -b ' ' ) ( -b ' [ ' -b ' ' ) ( -b ' { ' -b ' ~ ' @@ -8007,70 +6995,58 @@ Space & [ ( -b ' \ t ' -b ' \ t ' ) ( -b ' \ n ' -b ' \ n ' ) ( -b ' \ x0B ' -b ' \ x0B ' ) ( -b ' \ x0C ' -b ' \ x0C ' ) ( -b ' \ r ' -b ' \ r ' ) ( -b ' ' -b ' ' ) @@ -8081,11 +7057,9 @@ Upper & [ ( -b ' A ' -b ' Z ' @@ -8097,41 +7071,33 @@ Word & [ ( -b ' 0 ' -b ' 9 ' ) ( -b ' A ' -b ' Z ' ) ( -b ' _ ' -b ' _ ' ) ( -b ' a ' -b ' z ' @@ -8143,102 +7109,31 @@ Xdigit & [ ( -b ' 0 ' -b ' 9 ' ) ( -b ' A ' -b ' F ' ) ( -b ' a ' -b ' f ' ) ] } -; -slice -. -iter -( -) -. -copied -( -) -} -fn -ascii_class_as_chars -( -kind -: -& -ast -: -: -ClassAsciiKind -) -- -> -impl -Iterator -< -Item -= -( -char -char -) -> -{ -ascii_class -( -kind -) -. -map -( -| -( -s -e -) -| -( -char -: -: -from -( -s -) -char -: -: -from -( -e -) -) -) } # [ @@ -8254,20 +7149,32 @@ use crate : : -{ ast : : -{ -self parse : : ParserBuilder +; +use +crate +: +: +ast +: +: +{ +self Ast Position Span } +; +use +crate +: +: hir : : @@ -8275,9 +7182,12 @@ hir self Hir HirKind -Look -Properties } +; +use +crate +: +: unicode : : @@ -8285,13 +7195,15 @@ unicode self ClassQuery } -} ; use super : : -* +{ +ascii_class +TranslatorBuilder +} ; # [ @@ -8463,9 +7375,9 @@ new ( ) . -utf8 +allow_invalid_utf8 ( -true +false ) . build @@ -8508,9 +7420,9 @@ new ( ) . -utf8 +allow_invalid_utf8 ( -true +false ) . build @@ -8550,9 +7462,9 @@ new ( ) . -utf8 +allow_invalid_utf8 ( -false +true ) . build @@ -8574,76 +7486,79 @@ unwrap ) } fn -props +hir_lit ( -pattern +s : & str ) - > -Properties +Hir { -t -( -pattern -) -. -properties -( -) +match +s . -clone +len ( ) -} -fn -props_bytes -( -pattern +{ +0 += +> +Hir : -& -str +: +empty +( ) -- +_ += > -Properties { -t_bytes -( -pattern -) +let +lits += +s . -properties +chars ( ) . -clone +map ( -) -} -fn -hir_lit -( -s +hir : -& -str +: +Literal +: +: +Unicode ) -- -> -Hir -{ -hir_blit +. +map ( -s +Hir +: +: +literal +) . -as_bytes +collect ( ) +; +Hir +: +: +concat +( +lits ) } +} +} fn hir_blit ( @@ -8658,18 +7573,98 @@ u8 > Hir { +match +s +. +len +( +) +{ +0 += +> +Hir +: +: +empty +( +) +1 += +> Hir : : literal ( +hir +: +: +Literal +: +: +Byte +( +s +[ +0 +] +) +) +_ += +> +{ +let +lits += s +. +iter +( +) +. +cloned +( +) +. +map +( +hir +: +: +Literal +: +: +Byte +) +. +map +( +Hir +: +: +literal +) +. +collect +( +) +; +Hir +: +: +concat +( +lits ) } +} +} fn -hir_capture +hir_group ( -index +i : u32 expr @@ -8683,18 +7678,26 @@ Hir Hir : : -capture +group ( hir : : -Capture +Group { -index -name +kind +: +hir +: +: +GroupKind : -None -sub +: +CaptureIndex +( +i +) +hir : Box : @@ -8707,9 +7710,9 @@ expr ) } fn -hir_capture_name +hir_group_name ( -index +i : u32 name @@ -8727,25 +7730,77 @@ Hir Hir : : -capture +group ( hir : : -Capture +Group +{ +kind +: +hir +: +: +GroupKind +: +: +CaptureName { -index name : -Some -( name . -into +to_string ( ) +index +: +i +} +hir +: +Box +: +: +new +( +expr +) +} +) +} +fn +hir_group_nocap +( +expr +: +Hir ) -sub +- +> +Hir +{ +Hir +: +: +group +( +hir +: +: +Group +{ +kind +: +hir +: +: +GroupKind +: +: +NonCapturing +hir : Box : @@ -8781,17 +7836,17 @@ hir : Repetition { -min +kind : -0 -max +hir : -Some -( -1 -) +: +RepetitionKind +: +: +ZeroOrOne greedy -sub +hir : Box : @@ -8827,14 +7882,17 @@ hir : Repetition { -min +kind : -0 -max +hir : -None +: +RepetitionKind +: +: +ZeroOrMore greedy -sub +hir : Box : @@ -8870,14 +7928,17 @@ hir : Repetition { -min +kind : -1 -max +hir : -None +: +RepetitionKind +: +: +OneOrMore greedy -sub +hir : Box : @@ -8895,15 +7956,12 @@ hir_range greedy : bool -min +range : -u32 -max +hir : -Option -< -u32 -> +: +RepetitionRange expr : Hir @@ -8922,10 +7980,20 @@ hir : Repetition { -min -max +kind +: +hir +: +: +RepetitionKind +: +: +Range +( +range +) greedy -sub +hir : Box : @@ -9072,49 +8140,43 @@ unwrap ) } fn -hir_ascii_uclass +hir_uclass ( -kind +ranges : & -ast -: -: -ClassAsciiKind +[ +( +char +char +) +] ) - > Hir { -Hir -: -: -class -( -hir -: -: -Class -: +let +ranges : -Unicode -( +Vec +< hir : : -ClassUnicode -: -: -new -( -ascii_class_as_chars +ClassUnicodeRange +> += +ranges +. +iter ( -kind ) . map ( | +& ( s e @@ -9132,25 +8194,11 @@ s e ) ) -) -) -) -} -fn -hir_ascii_bclass +. +collect ( -kind -: -& -ast -: -: -ClassAsciiKind ) -- -> -Hir -{ +; Hir : : @@ -9162,24 +8210,59 @@ hir Class : : -Bytes +Unicode ( hir : : -ClassBytes +ClassUnicode : : new ( -ascii_class +ranges +) +) +) +} +fn +hir_bclass +( +ranges +: +& +[ +( +u8 +u8 +) +] +) +- +> +Hir +{ +let +ranges +: +Vec +< +hir +: +: +ClassBytesRange +> += +ranges +. +iter ( -kind ) . map ( | +& ( s e @@ -9197,12 +8280,39 @@ s e ) ) +. +collect +( +) +; +Hir +: +: +class +( +hir +: +: +Class +: +: +Bytes +( +hir +: +: +ClassBytes +: +: +new +( +ranges ) ) ) } fn -hir_uclass +hir_bclass_from_char ( ranges : @@ -9218,44 +8328,102 @@ char > Hir { -Hir +let +ranges +: +Vec +< +hir : : -class +ClassBytesRange +> += +ranges +. +iter ( -uclass +) +. +map ( -ranges +| +& +( +s +e ) +| +{ +assert +! +( +s +as +u32 +< += +0x7F ) -} -fn -hir_bclass +; +assert +! ( -ranges +e +as +u32 +< += +0x7F +) +; +hir : -& -[ +: +ClassBytesRange +: +: +new ( +s +as u8 +e +as u8 ) -] +} ) -- -> -Hir -{ +. +collect +( +) +; Hir : : class ( -bclass +hir +: +: +Class +: +: +Bytes +( +hir +: +: +ClassBytes +: +: +new ( ranges ) ) +) } fn hir_case_fold @@ -9380,289 +8548,52 @@ expr ) } } -fn -uclass -( -ranges -: -& +# [ +allow ( -char -char +dead_code ) ] +fn +hir_union +( +expr1 +: +Hir +expr2 +: +Hir ) - > +Hir +{ +use +crate +: +: hir : : Class -{ -let -ranges -: -Vec -< -hir : : -ClassUnicodeRange -> -= -ranges +{ +Bytes +Unicode +} +; +match +( +expr1 . -iter +into_kind ( ) +expr2 . -map -( -| -& -( -s -e -) -| -hir -: -: -ClassUnicodeRange -: -: -new -( -s -e -) -) -. -collect -( -) -; -hir -: -: -Class -: -: -Unicode -( -hir -: -: -ClassUnicode -: -: -new -( -ranges -) -) -} -fn -bclass -( -ranges -: -& -[ -( -u8 -u8 -) -] -) -- -> -hir -: -: -Class -{ -let -ranges -: -Vec -< -hir -: -: -ClassBytesRange -> -= -ranges -. -iter -( -) -. -map -( -| -& -( -s -e -) -| -hir -: -: -ClassBytesRange -: -: -new -( -s -e -) -) -. -collect -( -) -; -hir -: -: -Class -: -: -Bytes -( -hir -: -: -ClassBytes -: -: -new -( -ranges -) -) -} -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] -fn -class_case_fold -( -mut -cls -: -hir -: -: -Class -) -- -> -Hir -{ -cls -. -case_fold_simple -( -) -; -Hir -: -: -class -( -cls -) -} -fn -class_negate -( -mut -cls -: -hir -: -: -Class -) -- -> -Hir -{ -cls -. -negate -( -) -; -Hir -: -: -class -( -cls -) -} -# -[ -allow -( -dead_code -) -] -fn -hir_union -( -expr1 -: -Hir -expr2 -: -Hir -) -- -> -Hir -{ -use -crate -: -: -hir -: -: -Class -: -: -{ -Bytes -Unicode -} -; -match -( -expr1 -. -into_kind -( -) -expr2 -. -into_kind +into_kind ( ) ) @@ -9958,14 +8889,36 @@ exprs } } fn -hir_look +hir_anchor +( +anchor +: +hir +: +: +Anchor +) +- +> +Hir +{ +Hir +: +: +anchor +( +anchor +) +} +fn +hir_word ( -look +wb : hir : : -Look +WordBoundary ) - > @@ -9974,9 +8927,9 @@ Hir Hir : : -look +word_boundary ( -look +wb ) } # @@ -10034,7 +8987,7 @@ t ) " ) -hir_capture +hir_group ( 1 Hir @@ -10058,6 +9011,8 @@ t ) " ) +hir_group_nocap +( Hir : : @@ -10065,6 +9020,7 @@ empty ( ) ) +) ; assert_eq ! @@ -10081,7 +9037,7 @@ wat ) " ) -hir_capture_name +hir_group_name ( 1 " @@ -10144,7 +9100,7 @@ hir_alt vec ! [ -hir_capture +hir_group ( 1 Hir @@ -10154,7 +9110,7 @@ empty ( ) ) -hir_capture +hir_group ( 2 Hir @@ -10180,7 +9136,7 @@ b ) " ) -hir_capture +hir_group ( 1 hir_alt @@ -10217,7 +9173,7 @@ a ) " ) -hir_capture +hir_group ( 1 hir_alt @@ -10256,7 +9212,7 @@ c ) " ) -hir_capture +hir_group ( 1 hir_alt @@ -10299,7 +9255,7 @@ t ) " ) -hir_capture +hir_group ( 1 hir_alt @@ -10702,6 +9658,8 @@ a ) " ) +hir_group_nocap +( hir_uclass ( & @@ -10725,6 +9683,7 @@ a ] ) ) +) ; # [ @@ -11467,60 +10426,6 @@ t " ( ? -R -) -. -" -) -hir_uclass -( -& -[ -( -' -\ -0 -' -' -\ -t -' -) -( -' -\ -x0B -' -' -\ -x0C -' -) -( -' -\ -x0E -' -' -\ -u -{ -10FFFF -} -' -) -] -) -) -; -assert_eq -! -( -t -( -" -( -? s ) . @@ -11550,92 +10455,11 @@ u assert_eq ! ( -t -( -" -( -? -Rs -) -. -" -) -hir_uclass -( -& -[ -( -' -\ -0 -' -' -\ -u -{ -10FFFF -} -' -) -] -) -) -; -assert_eq -! -( -t_bytes -( -" -( -? -- -u -) -. -" -) -hir_bclass -( -& -[ -( -b -' -\ -0 -' -b -' -\ -t -' -) -( -b -' -\ -x0B -' -b -' -\ -xFF -' -) -] -) -) -; -assert_eq -! -( t_bytes ( " ( ? -R - u ) @@ -11667,18 +10491,6 @@ x0B b ' \ -x0C -' -) -( -b -' -\ -x0E -' -b -' -\ xFF ' ) @@ -11724,41 +10536,6 @@ xFF assert_eq ! ( -t_bytes -( -" -( -? -Rs -- -u -) -. -" -) -hir_bclass -( -& -[ -( -b -' -\ -0 -' -b -' -\ -xFF -' -) -] -) -) -; -assert_eq -! -( t_err ( " @@ -11818,7 +10595,7 @@ t_err " ( ? -R +s - u ) @@ -11865,144 +10642,54 @@ new } ) ; +} +# +[ +test +] +fn +assertions +( +) +{ assert_eq ! ( -t_err +t ( " -( -? -s -- -u -) -. +^ " ) -TestError -{ -kind -: -hir -: -: -ErrorKind -: -: -InvalidUtf8 -span -: -Span -: -: -new +hir_anchor ( -Position +hir : : -new -( -6 -1 -7 -) -Position +Anchor : : -new -( -7 -1 -8 -) +StartText ) -} ) ; assert_eq ! ( -t_err +t ( " -( -? -Rs -- -u -) -. " ) -TestError -{ -kind -: +hir_anchor +( hir : : -ErrorKind -: -: -InvalidUtf8 -span -: -Span +Anchor : : -new -( -Position -: -: -new -( -7 -1 -8 -) -Position -: -: -new -( -8 -1 -9 -) -) -} -) -; -} -# -[ -test -] -fn -assertions -( -) -{ -assert_eq -! -( -t -( -" -^ -" -) -hir_look -( -hir -: -: -Look -: -: -Start +EndText ) ) ; @@ -12011,18 +10698,21 @@ assert_eq ( t ( +r " +\ +A " ) -hir_look +hir_anchor ( hir : : -Look +Anchor : : -End +StartText ) ) ; @@ -12034,18 +10724,18 @@ t r " \ -A +z " ) -hir_look +hir_anchor ( hir : : -Look +Anchor : : -Start +EndText ) ) ; @@ -12054,21 +10744,23 @@ assert_eq ( t ( -r " -\ -z +( +? +m +) +^ " ) -hir_look +hir_anchor ( hir : : -Look +Anchor : : -End +StartLine ) ) ; @@ -12082,18 +10774,17 @@ t ? m ) -^ " ) -hir_look +hir_anchor ( hir : : -Look +Anchor : : -StartLF +EndLine ) ) ; @@ -12102,22 +10793,25 @@ assert_eq ( t ( +r " ( ? m ) +\ +A " ) -hir_look +hir_anchor ( hir : : -Look +Anchor : : -EndLF +StartText ) ) ; @@ -12133,18 +10827,18 @@ r m ) \ -A +z " ) -hir_look +hir_anchor ( hir : : -Look +Anchor : : -Start +EndText ) ) ; @@ -12155,23 +10849,19 @@ t ( r " -( -? -m -) \ -z +b " ) -hir_look +hir_word ( hir : : -Look +WordBoundary : : -End +Unicode ) ) ; @@ -12183,18 +10873,18 @@ t r " \ -b +B " ) -hir_look +hir_word ( hir : : -Look +WordBoundary : : -WordUnicode +UnicodeNegate ) ) ; @@ -12205,26 +10895,31 @@ t ( r " +( +? +- +u +) \ -B +b " ) -hir_look +hir_word ( hir : : -Look +WordBoundary : : -WordUnicodeNegate +Ascii ) ) ; assert_eq ! ( -t +t_bytes ( r " @@ -12234,25 +10929,25 @@ r u ) \ -b +B " ) -hir_look +hir_word ( hir : : -Look +WordBoundary : : -WordAscii +AsciiNegate ) ) ; assert_eq ! ( -t +t_err ( r " @@ -12265,16 +10960,44 @@ u B " ) -hir_look -( +TestError +{ +kind +: hir : : -Look +ErrorKind +: +: +InvalidUtf8 +span +: +Span +: +: +new +( +Position +: +: +new +( +5 +1 +6 +) +Position : : -WordAsciiNegate +new +( +7 +1 +8 +) ) +} ) ; } @@ -12298,7 +11021,7 @@ a ) " ) -hir_capture +hir_group ( 1 hir_lit @@ -12329,7 +11052,7 @@ hir_cat vec ! [ -hir_capture +hir_group ( 1 hir_lit @@ -12339,7 +11062,7 @@ a " ) ) -hir_capture +hir_group ( 2 hir_lit @@ -12373,7 +11096,7 @@ hir_alt vec ! [ -hir_capture +hir_group ( 1 hir_lit @@ -12383,7 +11106,7 @@ a " ) ) -hir_capture +hir_group ( 2 hir_lit @@ -12412,7 +11135,7 @@ foo ) " ) -hir_capture_name +hir_group_name ( 1 " @@ -12443,7 +11166,7 @@ a ) " ) -hir_capture_name +hir_group_name ( 1 " @@ -12487,7 +11210,7 @@ hir_cat vec ! [ -hir_capture_name +hir_group_name ( 1 " @@ -12500,7 +11223,7 @@ a " ) ) -hir_capture_name +hir_group_name ( 2 " @@ -12529,6 +11252,8 @@ t ) " ) +hir_group_nocap +( Hir : : @@ -12536,6 +11261,7 @@ empty ( ) ) +) ; assert_eq ! @@ -12550,6 +11276,8 @@ a ) " ) +hir_group_nocap +( hir_lit ( " @@ -12557,6 +11285,7 @@ a " ) ) +) ; assert_eq ! @@ -12579,13 +11308,16 @@ hir_cat vec ! [ +hir_group_nocap +( hir_lit ( " a " ) -hir_capture +) +hir_group ( 1 hir_lit @@ -12623,7 +11355,7 @@ hir_cat vec ! [ -hir_capture +hir_group ( 1 hir_lit @@ -12633,13 +11365,16 @@ a " ) ) +hir_group_nocap +( hir_lit ( " b " ) -hir_capture +) +hir_group ( 2 hir_lit @@ -12680,7 +11415,7 @@ hir_cat vec ! [ -hir_capture +hir_group ( 1 hir_lit @@ -12690,7 +11425,7 @@ a " ) ) -hir_capture_name +hir_group_name ( 2 " @@ -12703,7 +11438,7 @@ b " ) ) -hir_capture +hir_group ( 3 hir_lit @@ -12727,7 +11462,7 @@ t ) " ) -hir_capture +hir_group ( 1 Hir @@ -12753,7 +11488,7 @@ i ) " ) -hir_capture +hir_group ( 1 Hir @@ -12779,7 +11514,7 @@ x ) " ) -hir_capture +hir_group ( 1 Hir @@ -12807,10 +11542,10 @@ x ) " ) -hir_capture +hir_group ( 1 -hir_capture +hir_group ( 2 Hir @@ -12829,94 +11564,75 @@ empty test ] fn -line_anchors +flags ( ) { -assert_eq -! -( -t +# +[ +cfg ( +feature += " -^ +unicode +- +case " ) -hir_look -( -hir -: -: -Look -: -: -Start -) -) -; +] assert_eq ! ( t ( " -" -) -hir_look ( -hir -: -: -Look -: +? +i : -End +a ) +a +" ) -; -assert_eq +hir_cat +( +vec ! +[ +hir_group_nocap ( -t +hir_uclass ( -r -" -\ +& +[ +( +' A -" +' +' +A +' ) -hir_look ( -hir -: -: -Look -: -: -Start +' +a +' +' +a +' +) +] ) ) -; -assert_eq -! -( -t +hir_lit ( -r " -\ -z +a " ) -hir_look -( -hir -: -: -Look -: -: -End +] ) ) ; @@ -12925,101 +11641,57 @@ assert_eq ( t ( -r " ( ? -m +i +- +u +: +a ) -\ -A " ) -hir_look +hir_cat ( -hir -: -: -Look -: -: -Start -) -) -; -assert_eq +vec ! +[ +hir_group_nocap ( -t +hir_bclass ( -r -" +& +[ ( -? -m -) -\ -z -" -) -hir_look -( -hir -: -: -Look -: -: -End -) +b +' +A +' +b +' +A +' ) -; -assert_eq -! -( -t ( -" -( -? -m -) -^ -" +b +' +a +' +b +' +a +' ) -hir_look -( -hir -: -: -Look -: -: -StartLF +] ) ) -; -assert_eq -! -( -t +hir_lit ( " -( -? -m -) " ) -hir_look -( -hir -: -: -Look -: -: -EndLF +] ) ) ; @@ -13028,128 +11700,62 @@ assert_eq ( t ( -r " ( ? -R -) -\ -A -" -) -hir_look -( -hir -: : -Look -: -: -Start -) -) -; -assert_eq -! -( -t -( -r -" ( ? -R -) -\ -z -" -) -hir_look -( -hir -: -: -Look -: -: -End -) +i +- +u ) -; -assert_eq -! -( -t -( -" -( -? -R +a ) -^ +b " ) -hir_look +hir_cat ( -hir -: -: -Look -: -: -Start -) -) -; -assert_eq +vec ! +[ +hir_group_nocap ( -t +hir_bclass ( -" +& +[ ( -? -R -) -" +b +' +A +' +b +' +A +' ) -hir_look ( -hir -: -: -Look -: -: -End +b +' +a +' +b +' +a +' ) +] ) -; -assert_eq -! -( -t +) +hir_lit ( -r " -( -? -Rm -) -\ -A +b " ) -hir_look -( -hir -: -: -Look -: -: -Start +] ) ) ; @@ -13158,87 +11764,64 @@ assert_eq ( t ( -r " ( +( ? -Rm +i +- +u ) -\ -z +a +) +b " ) -hir_look +hir_cat ( -hir -: -: -Look -: -: -End -) -) -; -assert_eq +vec ! +[ +hir_group ( -t +1 +hir_bclass ( -" +& +[ ( -? -Rm -) -^ -" +b +' +A +' +b +' +A +' ) -hir_look ( -hir -: -: -Look -: -: -StartCRLF +b +' +a +' +b +' +a +' ) +] ) -; -assert_eq -! -( -t +) +hir_lit ( " -( -? -Rm -) +b " ) -hir_look -( -hir -: -: -Look -: -: -EndCRLF +] ) ) ; -} -# -[ -test -] -fn -flags -( -) -{ # [ cfg @@ -13261,182 +11844,15 @@ t ( ? i -: -a -) -a -" -) -hir_cat -( -vec -! -[ -hir_uclass -( -& -[ -( -' -A -' -' -A -' -) -( -' -a -' -' -a -' -) -] ) -hir_lit -( -" -a -" -) -] -) -) -; -assert_eq -! -( -t -( -" ( ? -i - -u -: -a -) -" -) -hir_cat -( -vec -! -[ -hir_bclass -( -& -[ -( -b -' -A -' -b -' -A -' -) -( -b -' -a -' -b -' -a -' -) -] -) -hir_lit -( -" -" -) -] -) -) -; -assert_eq -! -( -t -( -" -( -? -: -( -? i -- -u -) -a -) -b -" -) -hir_cat -( -vec -! -[ -hir_bclass -( -& -[ -( -b -' -A -' -b -' -A -' -) -( -b -' -a -' -b -' +: a -' -) -] -) -hir_lit -( -" -b -" -) -] -) -) -; -assert_eq -! -( -t -( -" -( -( -? -i -- -u ) a -) -b " ) hir_cat @@ -13444,89 +11860,14 @@ hir_cat vec ! [ -hir_capture -( -1 -hir_bclass -( -& -[ -( -b -' -A -' -b -' -A -' -) +hir_group_nocap ( -b -' -a -' -b -' -a -' -) -] -) -) hir_lit ( " -b -" -) -] -) -) -; -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] -assert_eq -! -( -t -( -" -( -? -i -) -( -? -- -i -: -a -) a " ) -hir_cat -( -vec -! -[ -hir_lit -( -" -a -" ) hir_uclass ( @@ -13608,15 +11949,15 @@ a ) ] ) -hir_look +hir_anchor ( hir : : -Look +Anchor : : -StartLF +StartLine ) ] ) @@ -13684,15 +12025,15 @@ a ) ] ) -hir_look +hir_anchor ( hir : : -Look +Anchor : : -StartLF +StartLine ) hir_uclass ( @@ -13716,15 +12057,15 @@ a ) ] ) -hir_look +hir_anchor ( hir : : -Look +Anchor : : -Start +StartText ) ] ) @@ -13843,6 +12184,8 @@ hir_cat vec ! [ +hir_group_nocap +( hir_cat ( vec @@ -13878,6 +12221,7 @@ a ) ] ) +) hir_lit ( " @@ -13930,6 +12274,8 @@ hir_cat vec ! [ +hir_group_nocap +( hir_cat ( vec @@ -13965,6 +12311,7 @@ a ) ] ) +) hir_uclass ( & @@ -14221,11 +12568,16 @@ a hir_range ( true -1 -Some -( -1 -) +hir +: +: +RepetitionRange +: +: +Exactly +( +1 +) hir_lit ( " @@ -14250,8 +12602,16 @@ a hir_range ( true +hir +: +: +RepetitionRange +: +: +AtLeast +( 1 -None +) hir_lit ( " @@ -14277,9 +12637,15 @@ a hir_range ( true -1 -Some +hir +: +: +RepetitionRange +: +: +Bounded ( +1 2 ) hir_lit @@ -14307,8 +12673,13 @@ a hir_range ( false -1 -Some +hir +: +: +RepetitionRange +: +: +Exactly ( 1 ) @@ -14337,8 +12708,16 @@ a hir_range ( false +hir +: +: +RepetitionRange +: +: +AtLeast +( 1 -None +) hir_lit ( " @@ -14365,9 +12744,15 @@ a hir_range ( false -1 -Some +hir +: +: +RepetitionRange +: +: +Bounded ( +1 2 ) hir_lit @@ -14429,15 +12814,28 @@ ab hir_quest ( true -hir_capture +hir_group ( 1 +hir_cat +( +vec +! +[ hir_lit ( " -ab +a +" +) +hir_lit +( +" +b " ) +] +) ) ) ) @@ -14489,70 +12887,6 @@ cat_alt ( ) { -let -a -= -| -| -hir_look -( -hir -: -: -Look -: -: -Start -) -; -let -b -= -| -| -hir_look -( -hir -: -: -Look -: -: -End -) -; -let -c -= -| -| -hir_look -( -hir -: -: -Look -: -: -WordUnicode -) -; -let -d -= -| -| -hir_look -( -hir -: -: -Look -: -: -WordUnicodeNegate -) -; assert_eq ! ( @@ -14560,11 +12894,11 @@ t ( " ( -^ +ab ) " ) -hir_capture +hir_group ( 1 hir_cat @@ -14572,11 +12906,17 @@ hir_cat vec ! [ -a +hir_lit ( +" +a +" ) -b +hir_lit ( +" +b +" ) ] ) @@ -14589,8 +12929,9 @@ assert_eq t ( " -^ +a | +b " ) hir_alt @@ -14598,11 +12939,17 @@ hir_alt vec ! [ -a +hir_lit ( +" +a +" ) -b +hir_lit ( +" +b +" ) ] ) @@ -14613,13 +12960,12 @@ assert_eq ( t ( -r " -^ -| +a | -\ b +| +c " ) hir_alt @@ -14627,14 +12973,23 @@ hir_alt vec ! [ -a +hir_lit ( +" +a +" ) -b +hir_lit ( +" +b +" ) -c +hir_lit ( +" +c +" ) ] ) @@ -14645,17 +13000,12 @@ assert_eq ( t ( -r " -^ +ab | -\ -b +bc | -\ -b -\ -B +cd " ) hir_alt @@ -14663,46 +13013,63 @@ hir_alt vec ! [ -hir_cat +hir_lit ( -vec -! -[ -a +" +ab +" +) +hir_lit ( +" +bc +" ) -b +hir_lit ( +" +cd +" ) ] ) -hir_cat -( -vec +) +; +assert_eq ! -[ -b ( -) -c +t ( +" +( +a +| +b ) -] +" ) -hir_cat +hir_group +( +1 +hir_alt ( vec ! [ -c +hir_lit ( +" +a +" ) -d +hir_lit ( +" +b +" ) ] ) -] ) ) ; @@ -14713,12 +13080,15 @@ t ( " ( -^ +a | +b +| +c ) " ) -hir_capture +hir_group ( 1 hir_alt @@ -14726,11 +13096,23 @@ hir_alt vec ! [ -a +hir_lit ( +" +a +" ) +hir_lit +( +" b +" +) +hir_lit ( +" +c +" ) ] ) @@ -14742,18 +13124,17 @@ assert_eq ( t ( -r " ( -^ +ab | +bc | -\ -b +cd ) " ) -hir_capture +hir_group ( 1 hir_alt @@ -14761,86 +13142,23 @@ hir_alt vec ! [ -a -( -) -b -( -) -c -( -) -] -) -) -) -; -assert_eq -! -( -t +hir_lit ( -r " -( -^ -| -\ -b -| -\ -b -\ -B -) +ab " ) -hir_capture -( -1 -hir_alt -( -vec -! -[ -hir_cat -( -vec -! -[ -a -( -) -b -( -) -] -) -hir_cat -( -vec -! -[ -b -( -) -c -( -) -] -) -hir_cat -( -vec -! -[ -c +hir_lit ( +" +bc +" ) -d +hir_lit ( -) -] +" +cd +" ) ] ) @@ -14852,26 +13170,21 @@ assert_eq ( t ( -r " ( -^ +ab | ( -\ -b +bc | ( -\ -b -\ -B +cd ) ) ) " ) -hir_capture +hir_group ( 1 hir_alt @@ -14879,20 +13192,13 @@ hir_alt vec ! [ -hir_cat -( -vec -! -[ -a -( -) -b +hir_lit ( +" +ab +" ) -] -) -hir_capture +hir_group ( 2 hir_alt @@ -14900,34 +13206,20 @@ hir_alt vec ! [ -hir_cat -( -vec -! -[ -b -( -) -c +hir_lit ( +" +bc +" ) -] -) -hir_capture +hir_group ( 3 -hir_cat -( -vec -! -[ -c -( -) -d +hir_lit ( -) -] +" +cd +" ) ) ] @@ -14944,7 +13236,7 @@ d test ] fn -cat_class_flattened +class_ascii ( ) { @@ -14953,110 +13245,59 @@ assert_eq ( t ( -r " [ -a -- -z -] -| [ -A -- -Z +: +alnum +: +] ] " ) hir_uclass ( -& -[ -( -' -A -' -' -Z -' -) +ascii_class ( -' -a -' -' -z -' +& +ast +: +: +ClassAsciiKind +: +: +Alnum ) -] ) ) ; -# -[ -cfg -( -feature -= -" -unicode -- -gencat -" -) -] assert_eq ! ( t ( -r " -( -? -x -) -\ -p -{ -Lowercase_Letter -} -| -\ -p -{ -Uppercase_Letter -} -| -\ -p -{ -Titlecase_Letter -} -| -\ -p -{ -Modifier_Letter -} -| -\ -p -{ -Other_Letter -} +[ +[ +: +alpha +: +] +] " ) -hir_uclass_query +hir_uclass ( -ClassQuery +ascii_class +( +& +ast : : -Binary -( -" -letter -" +ClassAsciiKind +: +: +Alpha ) ) ) @@ -15064,178 +13305,34 @@ letter assert_eq ! ( -t_bytes +t ( -r " [ +[ +: +ascii +: ] -| +] +" +) +hir_uclass ( -? -- -u -: -[ -\ -x90 -- -\ -xFF -] -) -| -[ -] -" -) -hir_alt -( -vec -! -[ -hir_uclass -( -& -[ -( -' -' -' -' -) -( -' -' -' -' -) -] -) -hir_bclass -( -& -[ -( -b -' -\ -x90 -' -b -' -\ -xFF -' -) -] -) -hir_uclass +ascii_class ( & -[ -( -' -' -' -' -) -( -' -' -' -' -) -] -) -] -) -) -; -assert_eq -! -( -t_bytes -( -r -" -[ -a -- -z -] -| -( -? -- -u +ast : -[ -\ -x90 -- -\ -xFF -] -) -| -[ -A -- -Z -] -" -) -hir_bclass -( -& -[ -( -b -' -A -' -b -' -Z -' -) -( -b -' -a -' -b -' -z -' -) -( -b -' -\ -x90 -' -b -' -\ -xFF -' +: +ClassAsciiKind +: +: +Ascii ) -] ) ) ; -} -# -[ -test -] -fn -class_ascii -( -) -{ assert_eq ! ( @@ -15245,13 +13342,15 @@ t [ [ : -alnum +blank : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15260,7 +13359,8 @@ ast ClassAsciiKind : : -Alnum +Blank +) ) ) ; @@ -15273,13 +13373,15 @@ t [ [ : -alpha +cntrl : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15288,7 +13390,8 @@ ast ClassAsciiKind : : -Alpha +Cntrl +) ) ) ; @@ -15301,13 +13404,15 @@ t [ [ : -ascii +digit : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15316,7 +13421,8 @@ ast ClassAsciiKind : : -Ascii +Digit +) ) ) ; @@ -15329,13 +13435,15 @@ t [ [ : -blank +graph : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15344,7 +13452,8 @@ ast ClassAsciiKind : : -Blank +Graph +) ) ) ; @@ -15357,13 +13466,15 @@ t [ [ : -cntrl +lower : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15372,7 +13483,8 @@ ast ClassAsciiKind : : -Cntrl +Lower +) ) ) ; @@ -15385,13 +13497,15 @@ t [ [ : -digit +print : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15400,7 +13514,8 @@ ast ClassAsciiKind : : -Digit +Print +) ) ) ; @@ -15413,13 +13528,15 @@ t [ [ : -graph +punct : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15428,7 +13545,8 @@ ast ClassAsciiKind : : -Graph +Punct +) ) ) ; @@ -15441,13 +13559,15 @@ t [ [ : -lower +space : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15456,7 +13576,8 @@ ast ClassAsciiKind : : -Lower +Space +) ) ) ; @@ -15469,13 +13590,15 @@ t [ [ : -print +upper : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15484,7 +13607,8 @@ ast ClassAsciiKind : : -Print +Upper +) ) ) ; @@ -15497,13 +13621,15 @@ t [ [ : -punct +word : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15512,7 +13638,8 @@ ast ClassAsciiKind : : -Punct +Word +) ) ) ; @@ -15525,13 +13652,15 @@ t [ [ : -space +xdigit : ] ] " ) -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15540,7 +13669,8 @@ ast ClassAsciiKind : : -Space +Xdigit +) ) ) ; @@ -15553,100 +13683,18 @@ t [ [ : -upper +^ +lower : ] ] " ) -hir_ascii_uclass -( -& -ast -: -: -ClassAsciiKind -: -: -Upper -) -) -; -assert_eq -! -( -t -( -" -[ -[ -: -word -: -] -] -" -) -hir_ascii_uclass -( -& -ast -: -: -ClassAsciiKind -: -: -Word -) -) -; -assert_eq -! -( -t -( -" -[ -[ -: -xdigit -: -] -] -" -) -hir_ascii_uclass -( -& -ast -: -: -ClassAsciiKind -: -: -Xdigit -) -) -; -assert_eq -! -( -t -( -" -[ -[ -: -^ -lower -: -] -] -" -) -hir_negate -( -hir_ascii_uclass +hir_negate +( +hir_uclass +( +ascii_class ( & ast @@ -15659,6 +13707,7 @@ Lower ) ) ) +) ; # [ @@ -15768,7 +13817,9 @@ lower ] " ) -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -15780,6 +13831,7 @@ ClassAsciiKind Lower ) ) +) ; assert_eq ! @@ -15804,7 +13856,9 @@ lower ) hir_case_fold ( -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -15817,6 +13871,7 @@ Lower ) ) ) +) ; assert_eq ! @@ -15974,7 +14029,9 @@ ascii ) hir_union ( -hir_ascii_uclass +hir_uclass +( +ascii_class ( & ast @@ -15985,6 +14042,7 @@ ClassAsciiKind : Alnum ) +) hir_uclass ( & @@ -16038,7 +14096,9 @@ ascii ) hir_union ( -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16049,6 +14109,7 @@ ClassAsciiKind : Alnum ) +) hir_bclass ( & @@ -16081,7 +14142,7 @@ perl ) ] fn -class_perl_unicode +class_perl ( ) { @@ -16469,16 +14530,6 @@ hir_uclass_perl_word ) ) ; -} -# -[ -test -] -fn -class_perl_ascii -( -) -{ assert_eq ! ( @@ -16495,7 +14546,9 @@ u d " ) -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16507,6 +14560,7 @@ ClassAsciiKind Digit ) ) +) ; assert_eq ! @@ -16524,7 +14578,9 @@ u s " ) -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16536,6 +14592,7 @@ ClassAsciiKind Space ) ) +) ; assert_eq ! @@ -16553,7 +14610,9 @@ u w " ) -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16565,6 +14624,7 @@ ClassAsciiKind Word ) ) +) ; assert_eq ! @@ -16583,7 +14643,9 @@ u d " ) -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16595,6 +14657,7 @@ ClassAsciiKind Digit ) ) +) ; assert_eq ! @@ -16613,7 +14676,9 @@ u s " ) -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16625,6 +14690,7 @@ ClassAsciiKind Space ) ) +) ; assert_eq ! @@ -16643,7 +14709,9 @@ u w " ) -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16655,11 +14723,12 @@ ClassAsciiKind Word ) ) +) ; assert_eq ! ( -t_bytes +t ( r " @@ -16674,7 +14743,9 @@ D ) hir_negate ( -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16687,11 +14758,12 @@ Digit ) ) ) +) ; assert_eq ! ( -t_bytes +t ( r " @@ -16706,7 +14778,9 @@ S ) hir_negate ( -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16719,11 +14793,12 @@ Space ) ) ) +) ; assert_eq ! ( -t_bytes +t ( r " @@ -16738,7 +14813,9 @@ W ) hir_negate ( -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16751,11 +14828,12 @@ Word ) ) ) +) ; assert_eq ! ( -t_bytes +t ( r " @@ -16771,7 +14849,9 @@ D ) hir_negate ( -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16784,11 +14864,12 @@ Digit ) ) ) +) ; assert_eq ! ( -t_bytes +t ( r " @@ -16804,7 +14885,9 @@ S ) hir_negate ( -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16817,11 +14900,12 @@ Space ) ) ) +) ; assert_eq ! ( -t_bytes +t ( r " @@ -16837,7 +14921,9 @@ W ) hir_negate ( -hir_ascii_bclass +hir_bclass_from_char +( +ascii_class ( & ast @@ -16850,7 +14936,34 @@ Word ) ) ) +) ; +} +# +[ +test +] +# +[ +cfg +( +not +( +feature += +" +unicode +- +perl +" +) +) +] +fn +class_perl_word_disabled +( +) +{ assert_eq ! ( @@ -16858,13 +14971,8 @@ t_err ( r " -( -? -- -u -) \ -D +w " ) TestError @@ -16877,7 +14985,7 @@ hir ErrorKind : : -InvalidUtf8 +UnicodePerlClassNotFound span : Span @@ -16890,23 +14998,62 @@ Position : new ( -5 +0 +1 1 -6 ) Position : : new ( -7 +2 1 -8 +3 ) ) } ) ; +} +# +[ +test +] +# +[ +cfg +( +all +( +not +( +feature += +" +unicode +- +perl +" +) +not +( +feature += +" +unicode +- +bool +" +) +) +) +] +fn +class_perl_space_disabled +( +) +{ assert_eq ! ( @@ -16914,13 +15061,8 @@ t_err ( r " -( -? -- -u -) \ -S +s " ) TestError @@ -16933,7 +15075,7 @@ hir ErrorKind : : -InvalidUtf8 +UnicodePerlClassNotFound span : Span @@ -16946,79 +15088,62 @@ Position : new ( -5 +0 +1 1 -6 ) Position : : new ( -7 +2 1 -8 +3 ) ) } ) ; -assert_eq -! -( -t_err +} +# +[ +test +] +# +[ +cfg ( -r -" +all ( -? +not +( +feature += +" +unicode - -u -) -\ -W +perl " ) -TestError -{ -kind -: -hir -: -: -ErrorKind -: -: -InvalidUtf8 -span -: -Span -: -: -new -( -Position -: -: -new +not ( -5 -1 -6 +feature += +" +unicode +- +gencat +" ) -Position -: -: -new -( -7 -1 -8 ) ) -} +] +fn +class_perl_digit_disabled +( ) -; +{ assert_eq ! ( @@ -17026,14 +15151,8 @@ t_err ( r " -( -? -i -- -u -) \ -D +d " ) TestError @@ -17046,7 +15165,7 @@ hir ErrorKind : : -InvalidUtf8 +UnicodePerlClassNotFound span : Span @@ -17059,417 +15178,214 @@ Position : new ( -6 +0 +1 1 -7 ) Position : : new ( -8 +2 1 -9 +3 ) ) } ) ; +} +# +[ +test +] +# +[ +cfg +( +feature += +" +unicode +- +gencat +" +) +] +fn +class_unicode_gencat +( +) +{ assert_eq ! ( -t_err +t ( r " -( -? -i -- -u -) \ -S +pZ " ) -TestError -{ -kind -: -hir -: -: -ErrorKind -: -: -InvalidUtf8 -span -: -Span -: -: -new -( -Position -: -: -new +hir_uclass_query ( -6 -1 -7 -) -Position +ClassQuery : : -new +Binary ( -8 -1 -9 +" +Z +" ) ) -} ) ; assert_eq ! ( -t_err +t ( r " -( -? -i -- -u -) \ -W +pz " ) -TestError -{ -kind -: -hir -: -: -ErrorKind -: -: -InvalidUtf8 -span -: -Span -: -: -new -( -Position -: -: -new +hir_uclass_query ( -6 -1 -7 -) -Position +ClassQuery : : -new +Binary ( -8 -1 -9 +" +Z +" ) ) -} ) ; +assert_eq +! +( +t +( +r +" +\ +p +{ +Separator } -# -[ -test -] -# -[ -cfg +" +) +hir_uclass_query ( -not +ClassQuery +: +: +Binary ( -feature -= " -unicode -- -perl +Z " ) ) -] -fn -class_perl_word_disabled -( ) -{ +; assert_eq ! ( -t_err +t ( r " \ -w +p +{ +se +PaRa +ToR +} " ) -TestError -{ -kind -: -hir -: -: -ErrorKind -: -: -UnicodePerlClassNotFound -span -: -Span -: -: -new -( -Position -: -: -new +hir_uclass_query ( -0 -1 -1 -) -Position +ClassQuery : : -new -( -2 -1 -3 -) -) -} -) -; -} -# -[ -test -] -# -[ -cfg -( -all -( -not -( -feature -= -" -unicode -- -perl -" -) -not +Binary ( -feature -= " -unicode -- -bool +Z " ) ) ) -] -fn -class_perl_space_disabled -( -) -{ +; assert_eq ! ( -t_err +t ( r " \ -s -" -) -TestError +p { -kind -: -hir -: -: -ErrorKind -: -: -UnicodePerlClassNotFound -span -: -Span -: -: -new -( -Position -: -: -new -( -0 -1 -1 -) -Position -: +gc : -new -( -2 -1 -3 -) -) -} -) -; +Separator } -# -[ -test -] -# -[ -cfg -( -all -( -not -( -feature -= -" -unicode -- -perl " ) -not +hir_uclass_query +( +ClassQuery +: +: +Binary ( -feature -= " -unicode -- -gencat +Z " ) ) ) -] -fn -class_perl_digit_disabled -( -) -{ +; assert_eq ! ( -t_err +t ( r " \ -d +p +{ +gc += +Separator +} " ) -TestError -{ -kind -: -hir -: -: -ErrorKind -: -: -UnicodePerlClassNotFound -span -: -Span -: -: -new -( -Position -: -: -new +hir_uclass_query ( -0 -1 -1 -) -Position +ClassQuery : : -new -( -2 -1 -3 -) -) -} -) -; -} -# -[ -test -] -# -[ -cfg +Binary ( -feature -= " -unicode -- -gencat +Z " ) -] -fn -class_unicode_gencat -( ) -{ +) +; assert_eq ! ( @@ -17478,7 +15394,10 @@ t r " \ -pZ +p +{ +Other +} " ) hir_uclass_query @@ -17489,7 +15408,7 @@ ClassQuery Binary ( " -Z +Other " ) ) @@ -17503,7 +15422,7 @@ t r " \ -pz +pC " ) hir_uclass_query @@ -17514,7 +15433,7 @@ ClassQuery Binary ( " -Z +Other " ) ) @@ -17528,12 +15447,11 @@ t r " \ -p -{ -Separator -} +PZ " ) +hir_negate +( hir_uclass_query ( ClassQuery @@ -17547,6 +15465,7 @@ Z ) ) ) +) ; assert_eq ! @@ -17556,185 +15475,14 @@ t r " \ -p +P { -se -PaRa -ToR +separator } " ) -hir_uclass_query -( -ClassQuery -: -: -Binary -( -" -Z -" -) -) -) -; -assert_eq -! -( -t -( -r -" -\ -p -{ -gc -: -Separator -} -" -) -hir_uclass_query -( -ClassQuery -: -: -Binary -( -" -Z -" -) -) -) -; -assert_eq -! -( -t -( -r -" -\ -p -{ -gc -= -Separator -} -" -) -hir_uclass_query -( -ClassQuery -: -: -Binary -( -" -Z -" -) -) -) -; -assert_eq -! -( -t -( -r -" -\ -p -{ -Other -} -" -) -hir_uclass_query -( -ClassQuery -: -: -Binary -( -" -Other -" -) -) -) -; -assert_eq -! -( -t -( -r -" -\ -pC -" -) -hir_uclass_query -( -ClassQuery -: -: -Binary -( -" -Other -" -) -) -) -; -assert_eq -! -( -t -( -r -" -\ -PZ -" -) -hir_negate -( -hir_uclass_query -( -ClassQuery -: -: -Binary -( -" -Z -" -) -) -) -) -; -assert_eq -! -( -t -( -r -" -\ -P -{ -separator -} -" -) -hir_negate -( +hir_negate +( hir_uclass_query ( ClassQuery @@ -18871,7 +16619,7 @@ class_unicode_any_empty assert_eq ! ( -t +t_err ( r " @@ -18882,13 +16630,45 @@ any } " ) -hir_uclass +TestError +{ +kind +: +hir +: +: +ErrorKind +: +: +EmptyClassNotAllowed +span +: +Span +: +: +new ( -& -[ -] +Position +: +: +new +( +0 +1 +1 +) +Position +: +: +new +( +7 +1 +8 ) ) +} +) ; } # @@ -18995,25 +16775,6 @@ a ] " ) -hir_lit -( -" -a -" -) -) -; -assert_eq -! -( -t -( -" -[ -ab -] -" -) hir_uclass ( & @@ -19023,7 +16784,7 @@ hir_uclass a ' ' -b +a ' ) ] @@ -19044,9 +16805,9 @@ a ] " ) -class_negate +hir_negate ( -uclass +hir_uclass ( & [ @@ -19981,9 +17742,9 @@ a ] " ) -class_negate +hir_negate ( -uclass +hir_uclass ( & [ @@ -20014,9 +17775,9 @@ x00 ] " ) -class_negate +hir_negate ( -uclass +hir_uclass ( & [ @@ -20052,9 +17813,9 @@ a ] " ) -class_negate +hir_negate ( -bclass +hir_bclass ( & [ @@ -20924,7 +18685,7 @@ bool assert_eq ! ( -t +t_err ( r " @@ -20937,19 +18698,51 @@ S ] " ) -hir_uclass -( -& -[ -] -) -) -; -# -[ -cfg -( -any +TestError +{ +kind +: +hir +: +: +ErrorKind +: +: +EmptyClassNotAllowed +span +: +Span +: +: +new +( +Position +: +: +new +( +0 +1 +1 +) +Position +: +: +new +( +7 +1 +8 +) +) +} +) +; +# +[ +cfg +( +any ( feature = @@ -20971,7 +18764,7 @@ bool assert_eq ! ( -t_bytes +t_err ( r " @@ -20989,12 +18782,44 @@ S ] " ) -hir_bclass +TestError +{ +kind +: +hir +: +: +ErrorKind +: +: +EmptyClassNotAllowed +span +: +Span +: +: +new ( -& -[ -] +Position +: +: +new +( +5 +1 +6 +) +Position +: +: +new +( +12 +1 +13 +) ) +} ) ; } @@ -21670,1197 +19495,7 @@ feature unicode - age -" -feature -= -" -unicode -- -case -" -feature -= -" -unicode -- -gencat -" -feature -= -" -unicode -- -script -" -) -) -] -assert_eq -! -( -t -( -r -" -( -? -i -) -[ -^ -\ -p -{ -age -: -3 -. -0 -} -\ -pZ -\ -p -{ -Greek -} -] -" -) -hir_negate -( -hir_case_fold -( -hir_union -( -hir_uclass_query -( -ClassQuery -: -: -ByValue -{ -property_name -: -" -age -" -property_value -: -" -3 -. -0 -" -} -) -hir_union -( -hir_uclass_query -( -ClassQuery -: -: -Binary -( -" -greek -" -) -) -hir_uclass_query -( -ClassQuery -: -: -Binary -( -" -separator -" -) -) -) -) -) -) -) -; -} -# -[ -test -] -fn -class_bracketed_nested -( -) -{ -assert_eq -! -( -t -( -r -" -[ -a -[ -^ -c -] -] -" -) -class_negate -( -uclass -( -& -[ -( -' -c -' -' -c -' -) -] -) -) -) -; -assert_eq -! -( -t -( -r -" -[ -a -- -b -[ -^ -c -] -] -" -) -class_negate -( -uclass -( -& -[ -( -' -c -' -' -c -' -) -] -) -) -) -; -assert_eq -! -( -t -( -r -" -[ -a -- -c -[ -^ -c -] -] -" -) -class_negate -( -uclass -( -& -[ -] -) -) -) -; -assert_eq -! -( -t -( -r -" -[ -^ -a -[ -^ -c -] -] -" -) -hir_uclass -( -& -[ -( -' -c -' -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -r -" -[ -^ -a -- -b -[ -^ -c -] -] -" -) -hir_uclass -( -& -[ -( -' -c -' -' -c -' -) -] -) -) -; -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] -assert_eq -! -( -t -( -r -" -( -? -i -) -[ -a -[ -^ -c -] -] -" -) -hir_negate -( -class_case_fold -( -uclass -( -& -[ -( -' -c -' -' -c -' -) -] -) -) -) -) -; -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] -assert_eq -! -( -t -( -r -" -( -? -i -) -[ -a -- -b -[ -^ -c -] -] -" -) -hir_negate -( -class_case_fold -( -uclass -( -& -[ -( -' -c -' -' -c -' -) -] -) -) -) -) -; -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] -assert_eq -! -( -t -( -r -" -( -? -i -) -[ -^ -a -[ -^ -c -] -] -" -) -hir_uclass -( -& -[ -( -' -C -' -' -C -' -) -( -' -c -' -' -c -' -) -] -) -) -; -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] -assert_eq -! -( -t -( -r -" -( -? -i -) -[ -^ -a -- -b -[ -^ -c -] -] -" -) -hir_uclass -( -& -[ -( -' -C -' -' -C -' -) -( -' -c -' -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -r -" -[ -^ -a -- -c -[ -^ -c -] -] -" -) -hir_uclass -( -& -[ -] -) -) -; -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] -assert_eq -! -( -t -( -r -" -( -? -i -) -[ -^ -a -- -c -[ -^ -c -] -] -" -) -hir_uclass -( -& -[ -] -) -) -; -} -# -[ -test -] -fn -class_bracketed_intersect -( -) -{ -assert_eq -! -( -t -( -" -[ -abc -& -& -b -- -c -] -" -) -hir_uclass -( -& -[ -( -' -b -' -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -" -[ -abc -& -& -[ -b -- -c -] -] -" -) -hir_uclass -( -& -[ -( -' -b -' -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -" -[ -[ -abc -] -& -& -[ -b -- -c -] -] -" -) -hir_uclass -( -& -[ -( -' -b -' -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -" -[ -a -- -z -& -& -b -- -y -& -& -c -- -x -] -" -) -hir_uclass -( -& -[ -( -' -c -' -' -x -' -) -] -) -) -; -assert_eq -! -( -t -( -" -[ -c -- -da -- -b -& -& -a -- -d -] -" -) -hir_uclass -( -& -[ -( -' -a -' -' -d -' -) -] -) -) -; -assert_eq -! -( -t -( -" -[ -a -- -d -& -& -c -- -da -- -b -] -" -) -hir_uclass -( -& -[ -( -' -a -' -' -d -' -) -] -) -) -; -assert_eq -! -( -t -( -r -" -[ -a -- -z -& -& -a -- -c -] -" -) -hir_uclass -( -& -[ -( -' -a -' -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -r -" -[ -[ -a -- -z -& -& -a -- -c -] -] -" -) -hir_uclass -( -& -[ -( -' -a -' -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -r -" -[ -^ -[ -a -- -z -& -& -a -- -c -] -] -" -) -hir_negate -( -hir_uclass -( -& -[ -( -' -a -' -' -c -' -) -] -) -) -) -; -assert_eq -! -( -t -( -" -( -? -- -u -) -[ -abc -& -& -b -- -c -] -" -) -hir_bclass -( -& -[ -( -b -' -b -' -b -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -" -( -? -- -u -) -[ -abc -& -& -[ -b -- -c -] -] -" -) -hir_bclass -( -& -[ -( -b -' -b -' -b -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -" -( -? -- -u -) -[ -[ -abc -] -& -& -[ -b -- -c -] -] -" -) -hir_bclass -( -& -[ -( -b -' -b -' -b -' -c -' -) -] -) -) -; -assert_eq -! -( -t -( -" -( -? -- -u -) -[ -a -- -z -& -& -b -- -y -& -& -c -- -x -] -" -) -hir_bclass -( -& -[ -( -b -' -c -' -b -' -x -' -) -] -) -) -; -assert_eq -! -( -t -( -" -( -? -- -u -) -[ -c -- -da -- -b -& -& -a -- -d -] -" -) -hir_bclass -( -& -[ -( -b -' -a -' -b -' -d -' -) -] -) -) -; -assert_eq -! -( -t -( -" -( -? -- -u -) -[ -a -- -d -& -& -c -- -da -- -b -] -" -) -hir_bclass -( -& -[ -( -b -' -a -' -b -' -d -' -) -] -) -) -; -# -[ -cfg -( +" feature = " @@ -22868,6 +19503,21 @@ unicode - case " +feature += +" +unicode +- +gencat +" +feature += +" +unicode +- +script +" +) ) ] assert_eq @@ -22875,76 +19525,119 @@ assert_eq ( t ( +r " ( ? i ) [ -abc -& -& -b -- -c +^ +\ +p +{ +age +: +3 +. +0 +} +\ +pZ +\ +p +{ +Greek +} ] " ) +hir_negate +( hir_case_fold ( -hir_uclass +hir_union ( -& -[ +hir_uclass_query ( -' -b -' -' -c -' +ClassQuery +: +: +ByValue +{ +property_name +: +" +age +" +property_value +: +" +3 +. +0 +" +} +) +hir_union +( +hir_uclass_query +( +ClassQuery +: +: +Binary +( +" +greek +" +) +) +hir_uclass_query +( +ClassQuery +: +: +Binary +( +" +separator +" +) +) +) ) -] ) ) ) ; +} # [ -cfg +test +] +fn +class_bracketed_nested ( -feature -= -" -unicode -- -case -" ) -] +{ assert_eq ! ( t ( +r " -( -? -i -) [ -abc -& -& +a [ -b -- +^ c ] ] " ) -hir_case_fold +hir_negate ( hir_uclass ( @@ -22952,7 +19645,7 @@ hir_uclass [ ( ' -b +c ' ' c @@ -22963,44 +19656,25 @@ c ) ) ; -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] assert_eq ! ( t ( +r " -( -? -i -) -[ -[ -abc -] -& -& [ -b +a - +b +[ +^ c ] ] " ) -hir_case_fold +hir_negate ( hir_uclass ( @@ -23008,7 +19682,7 @@ hir_uclass [ ( ' -b +c ' ' c @@ -23019,48 +19693,52 @@ c ) ) ; -# -[ -cfg +assert_eq +! ( -feature -= +t +( +r " -unicode +[ +a - -case +c +[ +^ +c +] +] " ) +hir_negate +( +hir_uclass +( +& +[ ] +) +) +) +; assert_eq ! ( t ( +r " -( -? -i -) [ +^ a -- -z -& -& -b -- -y -& -& +[ +^ c -- -x +] ] " ) -hir_case_fold -( hir_uclass ( & @@ -23070,69 +19748,47 @@ hir_uclass c ' ' -x +c ' ) ] ) ) -) ; -# -[ -cfg -( -feature -= -" -unicode -- -case -" -) -] assert_eq ! ( t ( +r " -( -? -i -) [ -c -- -da -- -b -& -& +^ a - -d +b +[ +^ +c +] ] " ) -hir_case_fold -( hir_uclass ( & [ ( ' -a +c ' ' -d +c ' ) ] ) ) -) ; # [ @@ -23152,6 +19808,7 @@ assert_eq ( t ( +r " ( ? @@ -23159,18 +19816,15 @@ i ) [ a -- -d -& -& +[ +^ c -- -da -- -b +] ] " ) +hir_negate +( hir_case_fold ( hir_uclass @@ -23179,96 +19833,65 @@ hir_uclass [ ( ' -a +c ' ' -d +c ' ) ] ) ) ) +) ; -assert_eq -! -( -t +# +[ +cfg ( +feature += " -( -? -i -- -u -) -[ -abc -& -& -b +unicode - -c -] +case " ) -hir_case_fold -( -hir_bclass -( -& -[ -( -b -' -b -' -b -' -c -' -) ] -) -) -) -; assert_eq ! ( t ( +r " ( ? i -- -u ) [ -abc -& -& -[ -b +a - +b +[ +^ c ] ] " ) +hir_negate +( hir_case_fold ( -hir_bclass +hir_uclass ( & [ ( -b ' -b +c ' -b ' c ' @@ -23277,45 +19900,58 @@ c ) ) ) +) ; +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] assert_eq ! ( t ( +r " ( ? i -- -u ) [ +^ +a [ -abc -] -& -& -[ -b -- +^ c ] ] " ) -hir_case_fold -( -hir_bclass +hir_uclass ( & [ ( -b ' -b +C +' +' +C +' +) +( +' +c ' -b ' c ' @@ -23323,165 +19959,225 @@ c ] ) ) -) ; +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] assert_eq ! ( t ( +r " ( ? i -- -u ) [ +^ a - -z -& -& b -- -y -& -& +[ +^ c -- -x +] ] " ) -hir_case_fold -( -hir_bclass +hir_uclass ( & [ ( -b +' +C +' +' +C +' +) +( ' c ' -b ' -x +c ' ) ] ) ) -) ; assert_eq ! ( -t +t_err ( +r " -( -? -i -- -u -) [ -c -- -da -- -b -& -& +^ a - -d +c +[ +^ +c +] ] " ) -hir_case_fold -( -hir_bclass +TestError +{ +kind +: +hir +: +: +ErrorKind +: +: +EmptyClassNotAllowed +span +: +Span +: +: +new ( -& -[ +Position +: +: +new ( -b -' -a -' -b -' -d -' +0 +1 +1 ) -] +Position +: +: +new +( +10 +1 +11 ) ) +} ) ; +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] assert_eq ! ( -t +t_err ( +r " ( ? i -- -u ) [ +^ a - -d -& -& c -- -da -- -b +[ +^ +c +] ] " ) -hir_case_fold -( -hir_bclass +TestError +{ +kind +: +hir +: +: +ErrorKind +: +: +EmptyClassNotAllowed +span +: +Span +: +: +new ( -& -[ +Position +: +: +new ( -b -' -a -' -b -' -d -' +4 +1 +5 ) -] +Position +: +: +new +( +14 +1 +15 ) ) +} ) ; +} +# +[ +test +] +fn +class_bracketed_intersect +( +) +{ assert_eq ! ( t ( -r " [ -\ -^ +abc & & -^ +b +- +c ] " ) @@ -23491,10 +20187,10 @@ hir_uclass [ ( ' -^ +b ' ' -^ +c ' ) ] @@ -23506,13 +20202,15 @@ assert_eq ( t ( -r " [ -] +abc & & -\ +[ +b +- +c ] ] " @@ -23523,10 +20221,10 @@ hir_uclass [ ( ' -] +b ' ' -] +c ' ) ] @@ -23538,13 +20236,18 @@ assert_eq ( t ( -r " [ -- +[ +abc +] & & +[ +b - +c +] ] " ) @@ -23554,10 +20257,10 @@ hir_uclass [ ( ' -- +b ' ' -- +c ' ) ] @@ -23569,14 +20272,21 @@ assert_eq ( t ( -r " [ -\ +a +- +z & & +b +- +y & & +c +- +x ] " ) @@ -23586,10 +20296,10 @@ hir_uclass [ ( ' -& +c ' ' -& +x ' ) ] @@ -23601,15 +20311,18 @@ assert_eq ( t ( -r " [ -\ -& -& +c +- +da +- +b & -\ & +a +- +d ] " ) @@ -23619,10 +20332,10 @@ hir_uclass [ ( ' -& +a ' ' -& +d ' ) ] @@ -23634,21 +20347,18 @@ assert_eq ( t ( -r " [ a - -w +d & & -[ -^ c - -g -] -z +da +- +b ] " ) @@ -23661,44 +20371,13 @@ hir_uclass a ' ' -b -' -) -( -' -h -' -' -w +d ' ) ] ) ) ; -} -# -[ -test -] -fn -class_bracketed_intersect_negate -( -) -{ -# -[ -cfg -( -feature -= -" -unicode -- -perl -" -) -] assert_eq ! ( @@ -23707,30 +20386,30 @@ t r " [ -^ -\ -w +a +- +z & & -\ -d +a +- +c ] " ) -hir_negate -( -hir_uclass_query +hir_uclass ( -ClassQuery -: -: -Binary +& +[ ( -" -digit -" -) +' +a +' +' +c +' ) +] ) ) ; @@ -23742,7 +20421,6 @@ t r " [ -^ [ a - @@ -23756,8 +20434,6 @@ c ] " ) -hir_negate -( hir_uclass ( & @@ -23773,21 +20449,7 @@ c ] ) ) -) ; -# -[ -cfg -( -feature -= -" -unicode -- -perl -" -) -] assert_eq ! ( @@ -23798,146 +20460,122 @@ r [ ^ [ -\ -w +a +- +z & & -\ -d +a +- +c ] ] " ) hir_negate ( -hir_uclass_query +hir_uclass ( -ClassQuery -: -: -Binary +& +[ ( -" -digit -" +' +a +' +' +c +' ) +] ) ) ) ; -# -[ -cfg -( -feature -= -" -unicode -- -perl -" -) -] assert_eq ! ( t ( -r " +( +? +- +u +) [ -^ -[ -^ -\ -w +abc & & -\ -d -] +b +- +c ] " ) -hir_uclass_query +hir_bclass ( -ClassQuery -: -: -Binary +& +[ ( -" -digit -" +b +' +b +' +b +' +c +' ) +] ) ) ; -# -[ -cfg -( -feature -= -" -unicode -- -perl -" -) -] assert_eq ! ( t ( -r " +( +? +- +u +) [ -[ -[ -^ -\ -w -] +abc & & [ -^ -\ -d -] +b +- +c ] ] " ) -hir_negate +hir_bclass ( -hir_uclass_perl_word +& +[ ( +b +' +b +' +b +' +c +' ) +] ) ) ; -# -[ -cfg -( -feature -= -" -unicode -- -perl -" -) -] assert_eq ! ( -t_bytes +t ( -r " ( ? @@ -23945,38 +20583,42 @@ r u ) [ -^ -\ -w +[ +abc +] & & -\ -d +[ +b +- +c +] ] " ) -hir_negate -( -hir_ascii_bclass +hir_bclass ( & -ast -: -: -ClassAsciiKind -: -: -Digit +[ +( +b +' +b +' +b +' +c +' ) +] ) ) ; assert_eq ! ( -t_bytes +t ( -r " ( ? @@ -23984,22 +20626,22 @@ r u ) [ -^ -[ a - z & & -a +b - +y +& +& c -] +- +x ] " ) -hir_negate -( hir_bclass ( & @@ -24007,24 +20649,22 @@ hir_bclass ( b ' -a +c ' b ' -c +x ' ) ] ) ) -) ; assert_eq ! ( -t_bytes +t ( -r " ( ? @@ -24032,40 +20672,42 @@ r u ) [ -^ -[ -\ -w +c +- +da +- +b & & -\ +a +- d ] -] " ) -hir_negate -( -hir_ascii_bclass +hir_bclass ( & -ast -: -: -ClassAsciiKind -: -: -Digit +[ +( +b +' +a +' +b +' +d +' ) +] ) ) ; assert_eq ! ( -t_bytes +t ( -r " ( ? @@ -24073,88 +20715,89 @@ r u ) [ -^ -[ -^ -\ -w +a +- +d & & -\ -d -] +c +- +da +- +b ] " ) -hir_ascii_bclass +hir_bclass ( & -ast -: -: -ClassAsciiKind -: -: -Digit +[ +( +b +' +a +' +b +' +d +' +) +] +) ) +; +# +[ +cfg +( +feature += +" +unicode +- +case +" ) -; +] assert_eq ! ( -t_bytes +t ( -r " ( ? -- -u +i ) [ -[ -[ -^ -\ -w -] +abc & & -[ -^ -\ -d -] -] +b +- +c ] " ) -hir_negate +hir_case_fold ( -hir_ascii_bclass +hir_uclass ( & -ast -: -: -ClassAsciiKind -: -: -Word +[ +( +' +b +' +' +c +' ) +] ) ) -; -} -# -[ -test -] -fn -class_bracketed_difference -( ) -{ +; # [ cfg @@ -24164,7 +20807,7 @@ feature " unicode - -gencat +case " ) ] @@ -24173,47 +20816,35 @@ assert_eq ( t ( -r " +( +? +i +) [ -\ -pL -- -- +abc +& +& [ -: -ascii -: +b +- +c ] ] " ) -hir_difference -( -hir_uclass_query -( -ClassQuery -: -: -Binary +hir_case_fold ( -" -letter -" -) -) hir_uclass ( & [ ( ' -\ -0 +b ' ' -\ -x7F +c ' ) ] @@ -24221,62 +20852,62 @@ x7F ) ) ; +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] assert_eq ! ( t ( -r " ( ? -- -u +i ) [ [ -: -alpha -: +abc ] -- -- +& +& [ -: -lower -: +b +- +c ] ] " ) -hir_bclass +hir_case_fold +( +hir_uclass ( & [ ( -b -' -A ' b ' -Z +' +c ' ) ] ) ) -; -} -# -[ -test -] -fn -class_bracketed_symmetric_difference -( ) -{ +; # [ cfg @@ -24286,7 +20917,7 @@ feature " unicode - -script +case " ) ] @@ -24295,103 +20926,142 @@ assert_eq ( t ( -r " +( +? +i +) [ -\ -p -{ -sc -: -Greek -} -~ -~ -\ -p -{ -scx -: -Greek -} +a +- +z +& +& +b +- +y +& +& +c +- +x ] " ) +hir_case_fold +( hir_uclass ( & [ ( ' -\ -u -{ -0342 -} +c ' ' -\ -u -{ -0342 -} +x ' ) +] +) +) +) +; +# +[ +cfg ( -' -\ -u -{ -0345 -} -' -' -\ -u -{ -0345 -} -' +feature += +" +unicode +- +case +" +) +] +assert_eq +! +( +t +( +" +( +? +i +) +[ +c +- +da +- +b +& +& +a +- +d +] +" ) +hir_case_fold +( +hir_uclass +( +& +[ ( ' -\ -u -{ -1DC0 -} +a ' ' -\ -u -{ -1DC1 -} +d ' ) ] ) ) +) ; +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] assert_eq ! ( t ( -r " +( +? +i +) [ a - -g -~ -~ +d +& +& c - -j +da +- +b ] " ) +hir_case_fold +( hir_uclass ( & @@ -24401,45 +21071,38 @@ hir_uclass a ' ' -b -' -) -( -' -h -' -' -j +d ' ) ] ) ) +) ; assert_eq ! ( t ( -r " ( ? +i - u ) [ -a +abc +& +& +b - -g -~ -~ c -- -j ] " ) +hir_case_fold +( hir_bclass ( & @@ -24447,59 +21110,107 @@ hir_bclass ( b ' -a -' b ' b ' +c +' +) +] +) +) +) +; +assert_eq +! +( +t +( +" +( +? +i +- +u +) +[ +abc +& +& +[ +b +- +c +] +] +" ) +hir_case_fold +( +hir_bclass +( +& +[ ( b ' -h +b ' b ' -j +c ' ) ] ) ) -; -} -# -[ -test -] -fn -ignore_whitespace -( ) -{ +; assert_eq ! ( t ( -r " ( ? -x +i +- +u ) -\ -12 -3 +[ +[ +abc +] +& +& +[ +b +- +c +] +] " ) -hir_lit +hir_case_fold ( -" -\ -n3 -" +hir_bclass +( +& +[ +( +b +' +b +' +b +' +c +' +) +] +) ) ) ; @@ -24508,24 +21219,48 @@ assert_eq ( t ( -r " ( ? -x +i +- +u ) -\ +[ +a +- +z +& +& +b +- +y +& +& +c +- x -{ -53 -} +] " ) -hir_lit +hir_case_fold ( -" -S -" +hir_bclass +( +& +[ +( +b +' +c +' +b +' +x +' +) +] +) ) ) ; @@ -24534,32 +21269,45 @@ assert_eq ( t ( -r " ( ? -x +i +- +u ) -\ -x -# -comment -{ -# -comment -53 -# -comment -} -# -comment +[ +c +- +da +- +b +& +& +a +- +d +] " ) -hir_lit -( -" -S -" +hir_case_fold +( +hir_bclass +( +& +[ +( +b +' +a +' +b +' +d +' +) +] +) ) ) ; @@ -24568,22 +21316,45 @@ assert_eq ( t ( -r " ( ? -x +i +- +u ) -\ -x -53 +[ +a +- +d +& +& +c +- +da +- +b +] " ) -hir_lit +hir_case_fold ( -" -S -" +hir_bclass +( +& +[ +( +b +' +a +' +b +' +d +' +) +] +) ) ) ; @@ -24594,24 +21365,28 @@ t ( r " -( -? -x -) +[ \ -x -# -comment -53 -# -comment +^ +& +& +^ +] " ) -hir_lit +hir_uclass ( -" -S -" +& +[ +( +' +^ +' +' +^ +' +) +] ) ) ; @@ -24622,36 +21397,62 @@ t ( r " -( -? -x -) +[ +] +& +& \ -x5 -3 +] +] " ) -hir_lit +hir_uclass ( -" -S -" +& +[ +( +' +] +' +' +] +' +) +] ) ) ; -# -[ -cfg +assert_eq +! ( -feature -= +t +( +r " -unicode +[ - -gencat +& +& +- +] " ) +hir_uclass +( +& +[ +( +' +- +' +' +- +' +) ] +) +) +; assert_eq ! ( @@ -24659,36 +21460,28 @@ t ( r " -( -? -x -) +[ \ -p -# -comment -{ -# -comment -Separator -# -comment -} -# -comment +& +& +& +& +] " ) -hir_uclass_query +hir_uclass ( -ClassQuery -: -: -Binary +& +[ ( -" -separator -" +' +& +' +' +& +' ) +] ) ) ; @@ -24699,43 +21492,29 @@ t ( r " -( -? -x -) -a -# -comment -{ -# -comment -5 -# -comment -# -comment -10 -# -comment -} -# -comment +[ +\ +& +& +& +\ +& +] " ) -hir_range -( -true -5 -Some +hir_uclass ( -10 -) -hir_lit +& +[ ( -" -a -" +' +& +' +' +& +' ) +] ) ) ; @@ -24746,22 +21525,43 @@ t ( r " -( -? -x -) +[ a -\ -# -hi -there +- +w +& +& +[ +^ +c +- +g +] +z +] " ) -hir_lit +hir_uclass ( -" +& +[ +( +' a -" +' +' +b +' +) +( +' +h +' +' +w +' +) +] ) ) ; @@ -24771,245 +21571,260 @@ a test ] fn -analysis_is_utf8 +class_bracketed_intersect_negate ( ) { -assert +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +assert_eq ! ( -props_bytes +t ( r " -a +[ +^ +\ +w +& +& +\ +d +] " ) -. -is_utf8 +hir_negate ( -) -) -; -assert -! +hir_uclass_query ( -props_bytes +ClassQuery +: +: +Binary ( -r " -ab +digit " ) -. -is_utf8 -( +) ) ) ; -assert +assert_eq ! ( -props_bytes +t ( r " -( -? +[ +^ +[ +a - -u -) +z +& +& a +- +c +] +] " ) -. -is_utf8 -( -) -) -; -assert -! +hir_negate ( -props_bytes +hir_uclass ( -r -" +& +[ ( -? -- -u +' +a +' +' +c +' ) -ab -" +] ) -. -is_utf8 -( ) ) ; -assert -! -( -props_bytes +# +[ +cfg ( -r +feature += " -\ -xFF +unicode +- +perl " ) -. -is_utf8 -( -) -) -; -assert +] +assert_eq ! ( -props_bytes +t ( r " +[ +^ +[ \ -xFF +w +& +& \ -xFF +d +] +] " ) -. -is_utf8 +hir_negate ( -) -) -; -assert -! +hir_uclass_query ( -props_bytes +ClassQuery +: +: +Binary ( -r " -[ -^ -a -] +digit " ) -. -is_utf8 -( +) ) ) ; -assert +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +assert_eq ! ( -props_bytes +t ( r " [ ^ -a -] [ ^ -a +\ +w +& +& +\ +d +] ] " ) -. -is_utf8 -( -) -) -; -assert -! +hir_uclass_query ( -props_bytes +ClassQuery +: +: +Binary ( -r " -\ -b +digit " ) -. -is_utf8 -( ) ) ; -assert -! -( -props_bytes +# +[ +cfg ( -r +feature += " -\ -B +unicode +- +perl " ) -. -is_utf8 -( -) -) -; -assert +] +assert_eq ! ( -props_bytes +t ( r " -( -? -- -u -) +[ +[ +[ +^ \ -b +w +] +& +& +[ +^ +\ +d +] +] +] " ) -. -is_utf8 +hir_negate +( +hir_uclass_perl_word ( ) ) +) ; -assert -! -( -props_bytes +# +[ +cfg ( -r +feature += " -( -? +unicode - -u -) -\ -B +perl " ) -. -is_utf8 -( -) -) -; -assert +] +assert_eq ! ( -! -props_bytes +t_bytes ( r " @@ -25018,46 +21833,40 @@ r - u ) +[ +^ \ -xFF +w +& +& +\ +d +] " ) -. -is_utf8 -( -) -) -; -assert -! +hir_negate ( -! -props_bytes +hir_bclass_from_char ( -r -" +ascii_class ( -? -- -u +& +ast +: +: +ClassAsciiKind +: +: +Digit ) -\ -xFF -\ -xFF -" ) -. -is_utf8 -( ) ) ; -assert +assert_eq ! ( -! -props_bytes +t_bytes ( r " @@ -25068,21 +21877,44 @@ u ) [ ^ +[ +a +- +z +& +& a +- +c +] ] " ) -. -is_utf8 +hir_negate +( +hir_bclass ( +& +[ +( +b +' +a +' +b +' +c +' +) +] +) ) ) ; -assert +assert_eq ! ( -! -props_bytes +t_bytes ( r " @@ -25093,302 +21925,447 @@ u ) [ ^ -a -] [ -^ -a +\ +w +& +& +\ +d ] -" -) -. -is_utf8 -( -) -) -; -} -# -[ -test ] -fn -analysis_captures_len -( -) -{ -assert_eq -! -( -0 -props -( -r -" -a " ) -. -explicit_captures_len -( -) -) -; -assert_eq -! +hir_negate ( -0 -props +hir_bclass_from_char ( -r -" +ascii_class ( -? +& +ast : -a +: +ClassAsciiKind +: +: +Digit ) -" ) -. -explicit_captures_len -( ) ) ; assert_eq ! ( -0 -props +t_bytes ( r " ( ? -i - u -: -a ) +[ +^ +[ +^ +\ +w +& +& +\ +d +] +] " ) -. -explicit_captures_len +hir_bclass_from_char +( +ascii_class ( +& +ast +: +: +ClassAsciiKind +: +: +Digit +) ) ) ; assert_eq ! ( -0 -props +t_bytes ( r " ( ? -i - u ) -a +[ +[ +[ +^ +\ +w +] +& +& +[ +^ +\ +d +] +] +] " ) -. -explicit_captures_len +hir_negate +( +hir_bclass_from_char +( +ascii_class ( +& +ast +: +: +ClassAsciiKind +: +: +Word +) +) ) ) ; -assert_eq -! +} +# +[ +test +] +fn +class_bracketed_difference ( -1 -props +) +{ +# +[ +cfg ( -r +feature += " -( -a -) +unicode +- +gencat " ) -. -explicit_captures_len -( -) -) -; +] assert_eq ! ( -1 -props +t ( r " -( -? -P -< -foo -> -a -) +[ +\ +pL +- +- +[ +: +ascii +: +] +] " ) -. -explicit_captures_len +hir_difference ( -) -) -; -assert_eq -! +hir_uclass_query ( -1 -props +ClassQuery +: +: +Binary ( -r " -( -) +letter " ) -. -explicit_captures_len -( -) ) -; -assert_eq -! -( -1 -props +hir_uclass ( -r -" +& +[ ( +' +\ +0 +' +' +\ +x7F +' ) -a -" +] ) -. -explicit_captures_len -( ) ) ; assert_eq ! ( -1 -props +t ( r " ( -a +? +- +u ) -+ +[ +[ +: +alpha +: +] +- +- +[ +: +lower +: +] +] " ) -. -explicit_captures_len +hir_bclass ( +& +[ +( +b +' +A +' +b +' +Z +' +) +] ) ) ; -assert_eq -! -( -2 -props -( -r -" +} +# +[ +test +] +fn +class_bracketed_symmetric_difference ( -a ) +{ +# +[ +cfg ( -b -) +feature += +" +unicode +- +script " ) -. -explicit_captures_len -( -) -) -; +] assert_eq ! ( -2 -props +t ( r " -( -a +[ +\ +p +{ +sc +: +Greek +} +~ +~ +\ +p +{ +scx +: +Greek +} +] +" ) -| +hir_uclass ( -b +& +[ +( +' +\ +u +{ +0342 +} +' +' +\ +u +{ +0342 +} +' ) -" +( +' +\ +u +{ +0345 +} +' +' +\ +u +{ +0345 +} +' ) -. -explicit_captures_len ( +' +\ +u +{ +1DC0 +} +' +' +\ +u +{ +1DC1 +} +' +) +] ) ) ; assert_eq ! ( -2 -props +t ( r " +[ +a +- +g +~ +~ +c +- +j +] +" +) +hir_uclass ( +& +[ ( +' a +' +' +b +' ) -) -" -) -. -explicit_captures_len ( +' +h +' +' +j +' +) +] ) ) ; assert_eq ! ( -1 -props +t ( r " ( +? +- +u +) +[ +a +- +g +~ +~ +c +- +j +] +" +) +hir_bclass +( +& [ +( +b +' a -& -& +' b -] -) -" +' +b +' ) -. -explicit_captures_len ( +b +' +h +' +b +' +j +' +) +] ) ) ; @@ -25398,54 +22375,31 @@ explicit_captures_len test ] fn -analysis_static_captures_len +ignore_whitespace ( ) { -let -len -= -| -pattern -| -props -( -pattern -) -. -static_explicit_captures_len -( -) -; assert_eq ! ( -Some -( -0 -) -len +t ( r " -" -) -) -; -assert_eq -! -( -Some ( -0 +? +x ) -len +\ +12 +3 +" +) +hir_lit ( -r " -foo -| -bar +\ +n3 " ) ) @@ -25453,33 +22407,25 @@ bar assert_eq ! ( -None -len +t ( r " ( -foo +? +x ) -| -bar +\ +x +{ +53 +} " ) -) -; -assert_eq -! -( -None -len +hir_lit ( -r " -foo -| -( -bar -) +S " ) ) @@ -25487,47 +22433,33 @@ bar assert_eq ! ( -Some -( -1 -) -len +t ( r " ( -foo -| -bar +? +x ) +\ +x +# +comment +{ +# +comment +53 +# +comment +} +# +comment " ) -) -; -assert_eq -! -( -Some -( -1 -) -len +hir_lit ( -r " -( -a -| -b -| -c -| -d -| -e -| -f -) +S " ) ) @@ -25535,37 +22467,23 @@ f assert_eq ! ( -Some -( -1 -) -len +t ( r " ( -a -) -| -( -b -) -| -( -c -) -| -( -d +? +x ) -| -( -e +\ +x +53 +" ) -| +hir_lit ( -f -) +" +S " ) ) @@ -25573,34 +22491,27 @@ f assert_eq ! ( -Some -( -2 -) -len +t ( r " ( -a -) -( -b -) -| -( -c -) -( -d +? +x ) -| -( -e +\ +x +# +comment +53 +# +comment +" ) +hir_lit ( -f -) +" +S " ) ) @@ -25608,490 +22519,499 @@ f assert_eq ! ( -Some -( -6 -) -len +t ( r " ( -a -) -( -b +? +x ) -( -c +\ +x5 +3 +" ) +hir_lit ( -d +" +S +" ) -( -e ) +; +# +[ +cfg ( -f -) +feature += +" +unicode +- +gencat " ) -) -; +] assert_eq ! ( -Some -( -3 -) -len +t ( r " ( -a -) -( -b -) -( -extra +? +x ) -| -( -a +\ +p +# +comment +{ +# +comment +Separator +# +comment +} +# +comment +" ) +hir_uclass_query ( -b -) +ClassQuery +: +: +Binary ( -) +" +separator " ) ) +) ; assert_eq ! ( -Some -( -3 -) -len +t ( r " ( -a +? +x ) -( -b +a +# +comment +{ +# +comment +5 +# +comment +# +comment +10 +# +comment +} +# +comment +" ) +hir_range ( -( -? +true +hir : -extra -) -? +: +RepetitionRange +: +: +Bounded +( +5 +10 ) +hir_lit +( +" +a " ) ) +) ; assert_eq ! ( -None -len +t ( r " ( -a +? +x ) -( -b +a +\ +# +hi +there +" ) +hir_lit ( -extra -) -? +" +a " ) ) ; -assert_eq -! -( -Some +} +# +[ +test +] +fn +analysis_is_always_utf8 ( -1 ) -len +{ +assert +! +( +t_bytes ( r " -( -foo +a +" ) -| +. +is_always_utf8 ( -bar -) -" ) ) ; -assert_eq +assert ! ( -Some -( -2 -) -len +t_bytes ( r " -( -foo +ab +" ) +. +is_always_utf8 ( -bar -) -" ) ) ; -assert_eq +assert ! ( -Some -( -2 -) -len +t_bytes ( r " ( -foo -) -+ -( -bar +? +- +u ) +a " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -None -len +t_bytes ( r " ( -foo -) -* -( -bar +? +- +u ) +ab " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -Some -( -0 -) -len +t_bytes ( r " -( -foo -) -? -{ -0 -} +\ +xFF " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -None -len +t_bytes ( r " -( -foo -) -? -{ -1 -} +\ +xFF +\ +xFF " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -Some -( -1 -) -len +t_bytes ( r " -( -foo -) -{ -1 -} +[ +^ +a +] " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -Some -( -1 -) -len +t_bytes ( r " -( -foo -) -{ -1 -} +[ +^ +a +] +[ +^ +a +] " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -Some -( -1 -) -len +t_bytes ( r " -( -foo -) -{ -1 -} -? +\ +b " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -None -len +t_bytes ( r " -( -foo -) -{ -1 -} -? -? +\ +B " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -None -len +t_bytes ( r " ( -foo +? +- +u ) -{ -0 -} +\ +b " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -Some -( -1 -) -len +! +t_bytes ( r " ( -foo -) -( ? -: -bar +- +u ) +\ +xFF " ) +. +is_always_utf8 +( +) ) ; -assert_eq +assert ! ( -Some -( -2 -) -len +! +t_bytes ( r " ( -foo -( ? -: -bar +- +u ) -+ +\ +xFF +\ +xFF +" ) +. +is_always_utf8 ( -? -: -baz -( -boo -) -) -" ) ) ; -assert_eq +assert ! ( -Some -( -2 -) -len +! +t_bytes ( r " ( ? -P -< -bar -> -foo +- +u ) -( -? -: -bar +[ +^ +a +] +" ) +. +is_always_utf8 ( -bal -| -loon -) -" ) ) ; -assert_eq +assert ! ( -Some -( -2 -) -len +! +t_bytes ( r -# " -< ( -a +? +- +u ) [ ^ -> +a ] -+ -href -= -" -( [ ^ -" +a ] -+ -) " -| -< +) +. +is_always_utf8 ( -img ) -[ -^ -> -] -+ -src -= -" +) +; +assert +! ( -[ -^ +! +t_bytes +( +r " -] -+ +( +? +- +u ) +\ +B " -" -# +) +. +is_always_utf8 +( ) ) ; @@ -26105,10 +23025,10 @@ analysis_is_all_assertions ( ) { -let -p -= -props +assert +! +( +t ( r " @@ -26116,956 +23036,1159 @@ r b " ) +. +is_all_assertions +( +) +) +; +assert +! +( +t +( +r +" +\ +B +" +) +. +is_all_assertions +( +) +) +; +assert +! +( +t +( +r +" +^ +" +) +. +is_all_assertions +( +) +) ; assert ! ( -! -p -. -look_set +t ( +r +" +" ) . -is_empty +is_all_assertions ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t ( +r +" +\ +A +" ) -Some +. +is_all_assertions ( -0 ) ) ; -let -p -= -props +assert +! +( +t ( r " \ -B +z " ) +. +is_all_assertions +( +) +) ; assert ! ( -! -p -. -look_set +t ( +r +" +^ +\ +z +\ +A +\ +b +\ +B +" ) . -is_empty +is_all_assertions ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t ( +r +" +| +^ +| +\ +z +| +\ +A +| +\ +b +| +\ +B +" ) -Some +. +is_all_assertions ( -0 ) ) ; -let -p -= -props +assert +! +( +t ( r " ^ +| +^ " ) +. +is_all_assertions +( +) +) ; assert ! ( -! -p -. -look_set +t +( +r +" +( +( +\ +b +) ++ ( ) +) +* +^ +" +) . -is_empty +is_all_assertions ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +! +t ( +r +" +^ +a +" ) -Some +. +is_all_assertions ( -0 ) ) ; -let -p -= -props +} +# +[ +test +] +fn +analysis_is_anchored ( -r -" -" ) -; +{ assert ! ( -! -p -. -look_set +t ( +r +" +^ +" ) . -is_empty +is_anchored_start ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t ( +r +" +" ) -Some +. +is_anchored_end ( -0 ) ) ; -let -p -= -props +assert +! +( +t ( r " -\ -A +^ " ) +. +is_line_anchored_start +( +) +) ; assert ! ( -! -p -. -look_set +t ( +r +" +" ) . -is_empty +is_line_anchored_end ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t ( +r +" +^ +^ +" ) -Some +. +is_anchored_start ( -0 ) ) ; -let -p -= -props +assert +! +( +t ( r " -\ -z " ) +. +is_anchored_end +( +) +) ; assert ! ( -! -p -. -look_set +t ( +r +" +^ +^ +" ) . -is_empty +is_line_anchored_start ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t ( +r +" +" ) -Some +. +is_line_anchored_end ( -0 ) ) ; -let -p -= -props +assert +! +( +t ( r " ^ -\ -z -\ -A -\ -b -\ -B " ) +. +is_anchored_start +( +) +) ; assert ! ( -! -p -. -look_set +t ( +r +" +^ +" ) . -is_empty +is_anchored_end ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t ( +r +" +^ +" ) -Some +. +is_line_anchored_start ( -0 ) ) ; -let -p -= -props +assert +! +( +t ( r " -| ^ -| -\ -z -| -\ -A -| -\ -b -| -\ -B " ) +. +is_line_anchored_end +( +) +) ; assert ! ( -! -p -. -look_set +t ( +r +" +^ +foo +" ) . -is_empty +is_anchored_start ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t ( +r +" +foo +" ) -Some +. +is_anchored_end ( -0 ) ) ; -let -p -= -props +assert +! +( +t ( r " ^ -| -^ +foo " ) +. +is_line_anchored_start +( +) +) ; assert ! ( -! -p -. -look_set +t ( +r +" +foo +" ) . -is_empty +is_line_anchored_end ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t ( +r +" +^ +foo +| +^ +bar +" ) -Some +. +is_anchored_start ( -0 ) ) ; -let -p -= -props +assert +! +( +t ( r " -( -( -\ -b +foo +| +bar +" ) -+ +. +is_anchored_end ( ) ) -* -^ -" -) ; assert ! ( -! -p -. -look_set +t ( +r +" +^ +foo +| +^ +bar +" ) . -is_empty +is_line_anchored_start ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t ( +r +" +foo +| +bar +" ) -Some +. +is_line_anchored_end ( -0 ) ) ; -let -p -= -props +assert +! +( +t ( r " ^ -a +( +foo +| +bar +) " ) +. +is_anchored_start +( +) +) ; assert ! ( -! -p -. -look_set +t ( +r +" +( +foo +| +bar +) +" ) . -is_empty +is_anchored_end ( ) ) ; -assert_eq +assert ! ( -p -. -minimum_len +t +( +r +" +^ ( +foo +| +bar ) -Some +" +) +. +is_line_anchored_start ( -1 ) ) ; -} -# -[ -test -] -fn -analysis_look_set_prefix_any +assert +! ( -) -{ -let -p -= -props +t ( r " ( -? -- -u -) -( -? -i -: -( -? -: -\ -b +foo | -_ +bar ) -win -( -? -: -32 -| -64 -| -dows +" ) -? +. +is_line_anchored_end ( -? -: -\ -b -| -_ ) ) +; +assert +! +( +t +( +r +" +^ ++ " ) +. +is_anchored_start +( +) +) ; assert ! ( -p -. -look_set_prefix_any +t ( +r +" ++ +" ) . -contains +is_anchored_end ( -Look -: -: -WordAscii ) ) ; -} -# -[ -test -] -fn -analysis_is_anchored +assert +! ( -) -{ -let -is_start -= -| -p -| -props +t ( -p +r +" +^ ++ +" ) . -look_set_prefix +is_line_anchored_start ( ) -. -contains -( -Look -: -: -Start ) ; -let -is_end -= -| -p -| -props +assert +! ( -p -) -. -look_set_suffix +t ( +r +" ++ +" ) . -contains +is_line_anchored_end ( -Look -: -: -End +) ) ; assert ! ( -is_start +t ( r " ^ ++ ++ " ) +. +is_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " ++ ++ " ) +. +is_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " ^ -^ ++ ++ " ) +. +is_line_anchored_start +( +) ) ; assert ! ( -props +t ( r " ++ ++ " ) . -look_set_suffix +is_line_anchored_end ( ) -. -contains -( -Look -: -: -End -) ) ; assert ! ( -is_start +t ( r " +( ^ +) ++ " ) +. +is_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " -^ +( +) ++ " ) +. +is_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " +( ^ -foo +) ++ " ) +. +is_line_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " -foo +( +) ++ " ) +. +is_line_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " ^ -foo -| -^ -bar " ) +. +is_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " -foo -| -bar +^ " ) +. +is_anchored_start +( +) ) ; assert ! ( -is_start +t ( r " ^ -( -foo -| -bar -) " ) +. +is_line_anchored_end +( +) ) ; assert ! ( -is_end +t ( r " -( -foo -| -bar -) +^ " ) +. +is_line_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " ^ -+ +| +^ " ) +. +is_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " -+ +^ +| +^ " ) +. +is_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " ^ -+ -+ +| +^ " ) +. +is_line_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " -+ -+ +^ +| +^ " ) +. +is_line_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " -( +\ +b ^ -) -+ " ) +. +is_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " -( -) -+ +\ +b " ) +. +is_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " +\ +b ^ " ) +. +is_line_anchored_start +( +) ) ; assert ! ( -is_start +t ( r " -^ +\ +b " ) +. +is_line_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " ^ -| +( +? +m +: ^ +) " ) +. +is_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " -^ -| -^ +( +? +m +: +) " ) +. +is_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " -\ -b ^ +( +? +m +: +^ +) " ) +. +is_line_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " -\ -b +( +? +m +: +) " ) +. +is_line_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " -^ ( ? m : ^ ) +^ " ) +. +is_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " @@ -27076,12 +24199,16 @@ m ) " ) +. +is_anchored_end +( +) ) ; assert ! ( -is_start +t ( r " @@ -27094,12 +24221,16 @@ m ^ " ) +. +is_line_anchored_start +( +) ) ; assert ! ( -is_end +t ( r " @@ -27110,13 +24241,17 @@ m ) " ) +. +is_line_anchored_end +( +) ) ; assert ! ( ! -is_start +t ( r " @@ -27127,13 +24262,17 @@ m ^ " ) +. +is_anchored_start +( +) ) ; assert ! ( ! -is_end +t ( r " @@ -27143,13 +24282,17 @@ m ) " ) +. +is_anchored_end +( +) ) ; assert ! ( ! -is_start +t ( r " @@ -27163,13 +24306,17 @@ m ^ " ) +. +is_anchored_start +( +) ) ; assert ! ( ! -is_end +t ( r " @@ -27183,13 +24330,17 @@ m ^ " ) +. +is_anchored_end +( +) ) ; assert ! ( ! -is_start +t ( r " @@ -27203,13 +24354,17 @@ m ) " ) +. +is_anchored_start +( +) ) ; assert ! ( ! -is_end +t ( r " @@ -27223,13 +24378,17 @@ m ) " ) +. +is_anchored_end +( +) ) ; assert ! ( ! -is_start +t ( r " @@ -27237,26 +24396,34 @@ a ^ " ) +. +is_anchored_start +( +) ) ; assert ! ( ! -is_start +t ( r " a " ) +. +is_anchored_start +( +) ) ; assert ! ( ! -is_end +t ( r " @@ -27264,287 +24431,244 @@ a ^ " ) +. +is_line_anchored_start +( +) ) ; assert ! ( ! -is_end +t ( r " a " ) +. +is_line_anchored_start +( +) ) ; assert ! ( ! -is_start +t ( r " +a ^ -foo -| -bar " ) +. +is_anchored_end +( +) ) ; assert ! ( ! -is_end +t ( r " -foo -| -bar +a " ) +. +is_anchored_end +( +) ) ; assert ! ( ! -is_start +t ( r " +a ^ -* " ) +. +is_line_anchored_end +( +) ) ; assert ! ( ! -is_end +t ( r " -* +a " ) +. +is_line_anchored_end +( +) ) ; assert ! ( ! -is_start +t ( r " ^ -* -+ +foo +| +bar " ) +. +is_anchored_start +( +) ) ; assert ! ( ! -is_end +t ( r " -* -+ +foo +| +bar " ) +. +is_anchored_end +( +) ) ; assert ! ( ! -is_start +t ( r " ^ -+ -* +foo +| +bar " ) +. +is_line_anchored_start +( +) ) ; assert ! ( ! -is_end +t ( r " -+ -* +foo +| +bar " ) +. +is_line_anchored_end +( +) ) ; assert ! ( ! -is_start +t ( r " -( ^ -) * " ) +. +is_anchored_start +( +) ) ; assert ! ( ! -is_end +t ( r " -( -) * " ) -) -; -} -# -[ -test -] -fn -analysis_is_any_anchored -( -) -{ -let -is_start -= -| -p -| -props -( -p -) -. -look_set -( -) -. -contains -( -Look -: -: -Start -) -; -let -is_end -= -| -p -| -props -( -p -) . -look_set +is_anchored_end ( ) -. -contains -( -Look -: -: -End ) ; assert ! ( -is_start +! +t ( r " ^ +* " ) -) -; -assert -! -( -is_end +. +is_line_anchored_start ( -r -" -" ) ) ; assert ! ( -is_start -( -r -" -\ -A -" -) -) -; -assert ! -( -is_end +t ( r " -\ -z +* " ) -) -; -assert -! -( -! -is_start -( -r -" +. +is_line_anchored_end ( -? -m -) -^ -" ) ) ; @@ -27552,27 +24676,18 @@ assert ! ( ! -is_end +t ( r " -( -? -m -) +^ +* ++ " ) -) -; -assert -! -( -! -is_start +. +is_anchored_start ( -r -" -" ) ) ; @@ -27580,263 +24695,223 @@ assert ! ( ! -is_end +t ( r " -^ -" -) -) -; -} -# -[ -test -] -fn -analysis_can_empty -( -) -{ -let -assert_empty -= -| -p -| -assert_eq -! -( -Some -( -0 -) -props_bytes -( -p +* ++ +" ) . -minimum_len +is_anchored_end ( ) ) ; -assert_empty +assert +! +( +! +t ( r " +^ +* ++ " ) -; -assert_empty -( -r -" +. +is_line_anchored_start ( ) -" ) ; -assert_empty +assert +! +( +! +t ( r " -( -) * ++ " ) -; -assert_empty -( -r -" +. +is_line_anchored_end ( ) -+ -" ) ; -assert_empty +assert +! +( +! +t ( r " +^ ++ +* +" +) +. +is_anchored_start ( ) -? -" ) ; -assert_empty +assert +! +( +! +t ( r " -a ++ * " ) -; -assert_empty +. +is_anchored_end ( -r -" -a -? -" +) ) ; -assert_empty +assert +! +( +! +t ( r " -a -{ -0 -} +^ ++ +* " ) -; -assert_empty +. +is_line_anchored_start ( -r -" -a -{ -0 -} -" +) ) ; -assert_empty +assert +! +( +! +t ( r " -a -{ -0 -1 -} ++ +* " ) -; -assert_empty +. +is_line_anchored_end ( -r -" -a -{ -0 -10 -} -" +) ) ; -# -[ -cfg +assert +! ( -feature -= -" -unicode -- -gencat -" -) -] -assert_empty +! +t ( r " -\ -pL +( +^ +) * " ) -; -assert_empty +. +is_anchored_start ( -r -" -a -* -| -b -" +) ) ; -assert_empty +assert +! +( +! +t ( r " -b -| -a +( +) * " ) -; -assert_empty +. +is_anchored_end ( -r -" -a -| -" +) ) ; -assert_empty +assert +! +( +! +t ( r " -| -a +( +^ +) +* " ) -; -assert_empty +. +is_line_anchored_start ( -r -" -a -| -| -b -" +) ) ; -assert_empty +assert +! +( +! +t ( r " -a -* -a -? ( -abcd ) * " ) -; -assert_empty +. +is_line_anchored_end ( -r -" -^ -" +) ) ; -assert_empty +} +# +[ +test +] +fn +analysis_is_line_anchored ( -r -" -" ) -; -assert_empty +{ +assert +! +( +t ( r " @@ -27845,10 +24920,23 @@ r m ) ^ +( +foo +| +bar +) " ) +. +is_line_anchored_start +( +) +) ; -assert_empty +assert +! +( +t ( r " @@ -27856,225 +24944,194 @@ r ? m ) +( +foo +| +bar +) " ) -; -assert_empty +. +is_line_anchored_end ( -r -" -\ -A -" +) ) ; -assert_empty +assert +! +( +t ( r " -\ -z +( +? +m +) +^ +foo +| +^ +bar " ) -; -assert_empty +. +is_line_anchored_start ( -r -" -\ -B -" +) ) ; -assert_empty +assert +! +( +t ( r " ( ? -- -u +m ) -\ -B +foo +| +bar " ) -; -assert_empty +. +is_line_anchored_end ( -r -" -\ -b -" +) ) ; -assert_empty +assert +! +( +t ( r " ( ? -- -u +m ) -\ -b +^ " ) -; -let -assert_non_empty -= -| -p -| -assert_ne -! -( -Some -( -0 -) -props_bytes -( -p -) . -minimum_len +is_line_anchored_start ( ) ) ; -assert_non_empty +assert +! ( -r -" -a -+ -" -) -; -assert_non_empty +t ( r " -a -{ -1 -} +( +? +m +) " ) -; -assert_non_empty +. +is_line_anchored_end ( -r -" -a -{ -1 -} -" +) ) ; -assert_non_empty +assert +! +( +t ( r " -a -{ -1 -2 -} +( +? +m +: +^ +) +| +^ " ) -; -assert_non_empty +. +is_line_anchored_start ( -r -" -a -{ -1 -10 -} -" +) ) ; -assert_non_empty +assert +! +( +t ( r " -b +( +? +m +: +^ +) | -a +^ " ) +. +is_line_anchored_end +( +) +) ; -assert_non_empty +assert +! +( +t ( r " -a -* -a -+ +^ +| ( -abcd +? +m +: +^ ) -* " ) -; -# -[ -cfg +. +is_line_anchored_start ( -feature -= -" -unicode -- -gencat -" ) -] -assert_non_empty -( -r -" -\ -P -{ -any -} -" ) ; -assert_non_empty +assert +! +( +t ( r " -[ -a -- -- -a -] +^ +| +( +? +m +: +^ +) " ) -; -assert_non_empty +. +is_line_anchored_end ( -r -" -[ -a -& -& -b -] -" +) ) ; } @@ -28083,22 +25140,22 @@ b test ] fn -analysis_is_literal +analysis_is_any_anchored ( ) { assert ! ( -props +t ( r " -a +^ " ) . -is_literal +is_any_anchored_start ( ) ) @@ -28106,15 +25163,14 @@ is_literal assert ! ( -props +t ( r " -ab " ) . -is_literal +is_any_anchored_end ( ) ) @@ -28122,15 +25178,16 @@ is_literal assert ! ( -props +t ( r " -abc +\ +A " ) . -is_literal +is_any_anchored_start ( ) ) @@ -28138,19 +25195,16 @@ is_literal assert ! ( -props +t ( r " -( -? -m -) -abc +\ +z " ) . -is_literal +is_any_anchored_end ( ) ) @@ -28158,19 +25212,20 @@ is_literal assert ! ( -props +! +t ( r " ( ? -: -a +m ) +^ " ) . -is_literal +is_any_anchored_start ( ) ) @@ -28178,20 +25233,19 @@ is_literal assert ! ( -props +! +t ( r " -foo ( ? -: -a +m ) " ) . -is_literal +is_any_anchored_end ( ) ) @@ -28199,20 +25253,15 @@ is_literal assert ! ( -props +! +t ( r " -( -? -: -a -) -foo " ) . -is_literal +is_any_anchored_start ( ) ) @@ -28220,33 +25269,41 @@ is_literal assert ! ( -props +! +t ( r " -[ -a -] +^ " ) . -is_literal +is_any_anchored_end ( ) ) ; +} +# +[ +test +] +fn +analysis_is_match_empty +( +) +{ assert ! ( -! -props +t ( r " " ) . -is_literal +is_match_empty ( ) ) @@ -28254,16 +25311,16 @@ is_literal assert ! ( -! -props +t ( r " -^ +( +) " ) . -is_literal +is_match_empty ( ) ) @@ -28271,18 +25328,17 @@ is_literal assert ! ( -! -props +t ( r " -a -| -b +( +) +* " ) . -is_literal +is_match_empty ( ) ) @@ -28290,18 +25346,17 @@ is_literal assert ! ( -! -props +t ( r " ( -a ) ++ " ) . -is_literal +is_match_empty ( ) ) @@ -28309,17 +25364,17 @@ is_literal assert ! ( -! -props +t ( r " -a -+ +( +) +? " ) . -is_literal +is_match_empty ( ) ) @@ -28327,19 +25382,16 @@ is_literal assert ! ( -! -props +t ( r " -foo -( a -) +* " ) . -is_literal +is_match_empty ( ) ) @@ -28347,19 +25399,16 @@ is_literal assert ! ( -! -props +t ( r " -( a -) -foo +? " ) . -is_literal +is_match_empty ( ) ) @@ -28367,44 +25416,37 @@ is_literal assert ! ( -! -props +t ( r " -[ -ab -] +a +{ +0 +} " ) . -is_literal +is_match_empty ( ) ) ; -} -# -[ -test -] -fn -analysis_is_alternation_literal -( -) -{ assert ! ( -props +t ( r " a +{ +0 +} " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28412,15 +25454,19 @@ is_alternation_literal assert ! ( -props +t ( r " -ab +a +{ +0 +1 +} " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28428,35 +25474,50 @@ is_alternation_literal assert ! ( -props +t ( r " -abc +a +{ +0 +10 +} " ) . -is_alternation_literal +is_match_empty ( ) ) ; +# +[ +cfg +( +feature += +" +unicode +- +gencat +" +) +] assert ! ( -props +t ( r " -( -? -m -) -abc +\ +pL +* " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28464,17 +25525,18 @@ is_alternation_literal assert ! ( -props +t ( r " -foo +a +* | -bar +b " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28482,19 +25544,18 @@ is_alternation_literal assert ! ( -props +t ( r " -foo -| -bar +b | -baz +a +* " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28502,17 +25563,16 @@ is_alternation_literal assert ! ( -props +t ( r " -[ a -] +| " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28520,21 +25580,16 @@ is_alternation_literal assert ! ( -props +t ( r " -( -? -: -ab -) | -cd +a " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28542,21 +25597,18 @@ is_alternation_literal assert ! ( -props +t ( r " -ab +a | -( -? -: -cd -) +| +b " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28564,15 +25616,22 @@ is_alternation_literal assert ! ( -! -props +t ( r " +a +* +a +? +( +abcd +) +* " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28580,8 +25639,7 @@ is_alternation_literal assert ! ( -! -props +t ( r " @@ -28589,7 +25647,7 @@ r " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28597,18 +25655,14 @@ is_alternation_literal assert ! ( -! -props +t ( r " -( -a -) " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28616,17 +25670,19 @@ is_alternation_literal assert ! ( -! -props +t ( r " -a -+ +( +? +m +) +^ " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28634,19 +25690,18 @@ is_alternation_literal assert ! ( -! -props +t ( r " -foo ( -a +? +m ) " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28654,19 +25709,16 @@ is_alternation_literal assert ! ( -! -props +t ( r " -( -a -) -foo +\ +A " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28674,18 +25726,16 @@ is_alternation_literal assert ! ( -! -props +t ( r " -[ -ab -] +\ +z " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28693,20 +25743,16 @@ is_alternation_literal assert ! ( -! -props +t ( r " -[ -ab -] -| -b +\ +B " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28714,20 +25760,21 @@ is_alternation_literal assert ! ( -! -props +t_bytes ( r " -a -| -[ -ab -] +( +? +- +u +) +\ +B " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28735,20 +25782,16 @@ is_alternation_literal assert ! ( -! -props +t ( r " -( -a -) -| +\ b " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28756,20 +25799,21 @@ is_alternation_literal assert ! ( -! -props +t ( r " -a -| ( -b +? +- +u ) +\ +b " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28778,17 +25822,16 @@ assert ! ( ! -props +t ( r " a -| -b ++ " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28797,19 +25840,18 @@ assert ! ( ! -props +t ( r " a -| -b -| -c +{ +1 +} " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28818,19 +25860,18 @@ assert ! ( ! -props +t ( r " -[ a -] -| -b +{ +1 +} " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28839,19 +25880,19 @@ assert ! ( ! -props +t ( r " a -| -[ -b -] +{ +1 +2 +} " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28860,21 +25901,19 @@ assert ! ( ! -props +t ( r " -( -? -: a -) -| -b +{ +1 +10 +} " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28883,21 +25922,17 @@ assert ! ( ! -props +t ( r " -a -| -( -? -: b -) +| +a " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28906,23 +25941,22 @@ assert ! ( ! -props +t ( r " +a +* +a ++ ( -? -: -z -| -xx +abcd ) -| -xx +* " ) . -is_alternation_literal +is_match_empty ( ) ) @@ -28933,11 +25967,11 @@ is_alternation_literal test ] fn -smart_repetition +analysis_is_literal ( ) { -assert_eq +assert ! ( t @@ -28945,282 +25979,211 @@ t r " a -{ -0 -} " ) -Hir -: -: -empty +. +is_literal ( ) ) ; -assert_eq +assert ! ( t ( r " -a -{ -1 -} +ab " ) -hir_lit +. +is_literal ( -" -a -" ) ) ; -assert_eq +assert ! ( t ( r " -\ -B -{ -32111 -} +abc " ) -hir_look +. +is_literal ( -hir -: -: -Look -: -: -WordUnicodeNegate ) ) ; -} -# -[ -test -] -fn -smart_concat -( -) -{ -assert_eq +assert ! ( t ( +r " +( +? +m +) +abc " ) -Hir -: -: -empty +. +is_literal ( ) ) ; -assert_eq +assert ! ( +! t ( +r " -( -? -: -) " ) -Hir -: -: -empty +. +is_literal ( ) ) ; -assert_eq +assert ! ( +! t ( +r " -abc +^ " ) -hir_lit +. +is_literal ( -" -abc -" ) ) ; -assert_eq +assert ! ( +! t ( +r " -( -? -: -foo -) -( -? -: -bar -) +a +| +b " ) -hir_lit +. +is_literal ( -" -foobar -" ) ) ; -assert_eq +assert ! ( +! t ( +r " -quux -( -? -: -foo -) ( -? -: -bar +a ) -baz " ) -hir_lit +. +is_literal ( -" -quuxfoobarbaz -" ) ) ; -assert_eq +assert ! ( +! t ( +r " -foo +a ++ +" +) +. +is_literal ( -? -: -bar -^ -baz ) -quux -" ) -hir_cat +; +assert +! ( -vec ! -[ -hir_lit +t ( +r " -foobar -" -) -hir_look +foo ( -hir -: -: -Look -: -: -Start +a ) -hir_lit -( -" -bazquux " ) -] +. +is_literal +( ) ) ; -assert_eq +assert ! ( +! t ( -" -foo -( -? -: -ba -( -? -: r -^ -b -) -az -) -quux " -) -hir_cat ( -vec -! -[ -hir_lit -( -" -foobar +a +) +foo " ) -hir_look +. +is_literal ( -hir -: -: -Look -: -: -Start ) -hir_lit +) +; +assert +! +( +! +t ( +r " -bazquux +[ +a +] " ) -] +. +is_literal +( ) ) ; @@ -29230,515 +26193,364 @@ bazquux test ] fn -smart_alternation +analysis_is_alternation_literal ( ) { -assert_eq +assert ! ( t ( +r +" +a " -( -? -: -foo ) -| +. +is_alternation_literal ( -? -: -bar ) -" ) -hir_alt -( -vec +; +assert ! -[ -hir_lit ( -" -foo -" -) -hir_lit +t ( +r " -bar +ab " ) -] +. +is_alternation_literal +( ) ) ; -assert_eq +assert ! ( t ( +r " -quux -| -( -? -: abc -| -def -| -xyz -) -| -baz " ) -hir_alt +. +is_alternation_literal ( -vec +) +) +; +assert ! -[ -hir_lit ( -" -quux -" -) -hir_lit +t ( +r " +( +? +m +) abc " ) -hir_lit +. +is_alternation_literal ( -" -def -" ) -hir_lit -( -" -xyz -" ) -hir_lit +; +assert +! +( +t ( +r " -baz +a +| +b " ) -] +. +is_alternation_literal +( ) ) ; -assert_eq +assert ! ( t ( +r " -quux -| -( -? -: -abc -| -( -? -: -def -| -mno -) +a | -xyz -) +b | -baz +c " ) -hir_alt +. +is_alternation_literal ( -vec +) +) +; +assert ! -[ -hir_lit ( -" -quux -" -) -hir_lit +t ( +r " -abc +foo +| +bar " ) -hir_lit +. +is_alternation_literal ( -" -def -" ) -hir_lit -( -" -mno -" ) -hir_lit +; +assert +! ( -" -xyz -" -) -hir_lit +t ( +r " +foo +| +bar +| baz " ) -] +. +is_alternation_literal +( ) ) ; -assert_eq +assert ! ( +! t ( +r " -a -| -b -| -c -| -d -| -e -| -f -| -x -| -y -| -z " ) -hir_uclass -( -& -[ -( -' -a -' -' -f -' -) +. +is_alternation_literal ( -' -x -' -' -z -' -) -] ) ) ; -assert_eq +assert ! ( +! t ( +r " -[ -A -- -Z -] -foo -| -[ -A -- -Z -] -quux +^ " ) -hir_cat -( -vec -! -[ -hir_uclass -( -& -[ +. +is_alternation_literal ( -' -A -' -' -Z -' ) -] ) -hir_alt +; +assert +! ( -vec ! -[ -hir_lit +t ( +r " -foo -" -) -hir_lit ( -" -quux -" +a ) -] +" ) -] +. +is_alternation_literal +( ) ) ; -assert_eq +assert ! ( +! t ( +r " -[ -A -- -Z -] -[ -A -- -Z -] -| -[ -A -- -Z -] -quux +a ++ " ) -hir_cat -( -vec -! -[ -hir_uclass -( -& -[ +. +is_alternation_literal ( -' -A -' -' -Z -' ) -] ) -hir_alt +; +assert +! ( -vec ! -[ -hir_uclass +t ( -& -[ +r +" +foo ( -' -A -' -' -Z -' -) -] +a ) -hir_lit -( -" -quux " ) -] -) -] +. +is_alternation_literal +( ) ) ; -assert_eq +assert ! ( +! t ( +r " -[ -A -- -Z -] -[ -A -- -Z -] -| -[ -A -- -Z -] -[ -A -- -Z -] -quux +( +a +) +foo " ) -hir_cat +. +is_alternation_literal ( -vec +) +) +; +assert ! -[ -hir_uclass ( -& -[ +! +t ( -' -A -' -' -Z -' -) +r +" +[ +a ] +" ) -hir_uclass -( -& -[ +. +is_alternation_literal ( -' -A -' -' -Z -' ) -] ) -hir_alt -( -vec +; +assert ! -[ -Hir -: -: -empty ( -) -hir_lit +! +t ( +r " -quux -" -) +[ +a ] +| +b +" ) -] +. +is_alternation_literal +( ) ) ; -assert_eq +assert ! ( +! t ( +r " -[ -A -- -Z -] -foo +a | [ -A -- -Z +b ] -foobar " ) -hir_cat -( -vec -! -[ -hir_uclass -( -& -[ +. +is_alternation_literal ( -' -A -' -' -Z -' ) -] ) -hir_alt +; +assert +! ( -vec ! -[ -hir_lit +t ( +r " -foo +( +a +) +| +b " ) -hir_lit +. +is_alternation_literal ( +) +) +; +assert +! +( +! +t +( +r " -foobar -" +a +| +( +b ) -] +" ) -] +. +is_alternation_literal +( ) ) ; diff --git a/third_party/rust/regex-syntax/src/hir/visitor.rs b/third_party/rust/regex-syntax/src/hir/visitor.rs index ded1da6842c29..41e537abb4a43 100644 --- a/third_party/rust/regex-syntax/src/hir/visitor.rs +++ b/third_party/rust/regex-syntax/src/hir/visitor.rs @@ -1,16 +1,4 @@ use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use crate : : @@ -144,31 +132,6 @@ Ok ) ) } -fn -visit_concat_in -( -& -mut -self -) -- -> -Result -< -( -) -Self -: -: -Err -> -{ -Ok -( -( -) -) -} } pub fn @@ -255,7 +218,7 @@ hir : Repetition ) -Capture +Group ( & ' @@ -263,7 +226,7 @@ a hir : : -Capture +Group ) Concat { @@ -499,9 +462,8 @@ pop frame ) { -match -x -{ +if +let Frame : : @@ -511,7 +473,7 @@ Alternation . } = -> +x { visitor . @@ -521,31 +483,6 @@ visit_alternation_in ? ; } -Frame -: -: -Concat -{ -. -. -} -= -> -{ -visitor -. -visit_concat_in -( -) -? -; -} -_ -= -> -{ -} -} hir = x @@ -635,7 +572,7 @@ x HirKind : : -Capture +Group ( ref x @@ -647,7 +584,7 @@ Some Frame : : -Capture +Group ( x ) @@ -806,7 +743,7 @@ None Frame : : -Capture +Group ( _ ) @@ -956,20 +893,20 @@ rep & rep . -sub +hir Frame : : -Capture +Group ( -capture +group ) = > & -capture +group . -sub +hir Frame : : diff --git a/third_party/rust/regex-syntax/src/lib.rs b/third_party/rust/regex-syntax/src/lib.rs index 3915f58cd91fb..d0943031def86 100644 --- a/third_party/rust/regex-syntax/src/lib.rs +++ b/third_party/rust/regex-syntax/src/lib.rs @@ -1,26 +1,9 @@ # ! [ -no_std -] -# -! -[ -forbid -( -unsafe_code -) -] -# -! -[ deny ( missing_docs -rustdoc -: -: -broken_intra_doc_links ) ] # @@ -34,95 +17,52 @@ missing_debug_implementations # ! [ -allow -( -renamed_and_removed_lints -) -] -# -! -[ -allow -( -mutable_borrow_reservation_conflict -) -] -# -! -[ -cfg_attr -( -docsrs -feature -( -doc_auto_cfg -) -) -] -# -[ -cfg -( -any +forbid ( -test -feature -= -" -std -" -) +unsafe_code ) ] -extern -crate -std -; -extern -crate -alloc -; pub use crate : : -{ error : : +{ Error +Result +} +; +pub +use +crate +: +: parser : : { -parse Parser ParserBuilder } -unicode -: -: -UnicodeWordError -} ; +pub use -alloc +crate : : -string +unicode : : -String +UnicodeWordError ; pub mod ast ; mod -debug -; -mod either ; mod @@ -136,9 +76,6 @@ mod parser ; mod -rank -; -mod unicode ; mod @@ -340,91 +277,6 @@ false } pub fn -is_escapeable_character -( -c -: -char -) -- -> -bool -{ -if -is_meta_character -( -c -) -{ -return -true -; -} -if -! -c -. -is_ascii -( -) -{ -return -false -; -} -match -c -{ -' -0 -' -. -. -= -' -9 -' -| -' -A -' -. -. -= -' -Z -' -| -' -a -' -. -. -= -' -z -' -= -> -false -' -< -' -| -' -> -' -= -> -false -_ -= -> -true -} -} -pub -fn is_word_character ( c @@ -463,7 +315,7 @@ char ) - > -core +std : : result @@ -558,15 +410,6 @@ mod tests { use -alloc -: -: -string -: -: -ToString -; -use super : : diff --git a/third_party/rust/regex-syntax/src/parser.rs b/third_party/rust/regex-syntax/src/parser.rs index 120d062e7e264..d9d698ce15be2 100644 --- a/third_party/rust/regex-syntax/src/parser.rs +++ b/third_party/rust/regex-syntax/src/parser.rs @@ -2,44 +2,20 @@ use crate : : -{ ast -hir -Error -} ; -pub -fn -parse -( -pattern -: -& -str -) -- -> -Result -< -hir +use +crate : : -Hir -Error -> -{ -Parser +hir +; +use +crate : : -new -( -) -. -parse -( -pattern -) -} +Result +; # [ derive @@ -182,7 +158,7 @@ self } pub fn -utf8 +allow_invalid_utf8 ( & mut @@ -201,7 +177,7 @@ self . hir . -utf8 +allow_invalid_utf8 ( yes ) @@ -322,62 +298,6 @@ self } pub fn -crlf -( -& -mut -self -yes -: -bool -) -- -> -& -mut -ParserBuilder -{ -self -. -hir -. -crlf -( -yes -) -; -self -} -pub -fn -line_terminator -( -& -mut -self -byte -: -u8 -) -- -> -& -mut -ParserBuilder -{ -self -. -hir -. -line_terminator -( -byte -) -; -self -} -pub -fn swap_greed ( & @@ -507,7 +427,6 @@ hir : : Hir -Error > { let diff --git a/third_party/rust/regex-syntax/src/unicode.rs b/third_party/rust/regex-syntax/src/unicode.rs index 05f6b6e0cbd13..060066affb435 100644 --- a/third_party/rust/regex-syntax/src/unicode.rs +++ b/third_party/rust/regex-syntax/src/unicode.rs @@ -1,20 +1,20 @@ use -alloc +std : : -{ -string +error +; +use +std : : -{ -String -ToString -} -vec +fmt +; +use +std : : -Vec -} +result ; use crate @@ -22,6 +22,22 @@ crate : hir ; +pub +type +Result +< +T +> += +result +: +: +Result +< +T +Error +> +; type Range = @@ -57,6 +73,22 @@ dead_code ] PerlClassNotFound } +pub +type +FoldResult +< +T +> += +result +: +: +Result +< +T +CaseFoldError +> +; # [ derive @@ -72,21 +104,7 @@ CaseFoldError ) ) ; -# -[ -cfg -( -feature -= -" -std -" -) -] impl -std -: -: error : : @@ -96,9 +114,6 @@ CaseFoldError { } impl -core -: -: fmt : : @@ -115,9 +130,6 @@ f : & mut -core -: -: fmt : : @@ -129,9 +141,6 @@ _ ) - > -core -: -: fmt : : @@ -182,21 +191,7 @@ UnicodeWordError ) ) ; -# -[ -cfg -( -feature -= -" -std -" -) -] impl -std -: -: error : : @@ -206,9 +201,6 @@ UnicodeWordError { } impl -core -: -: fmt : : @@ -225,9 +217,6 @@ f : & mut -core -: -: fmt : : @@ -239,9 +228,6 @@ _ ) - > -core -: -: fmt : : @@ -279,57 +265,35 @@ enabled ) } } -# -[ -derive -( -Debug -) -] pub -struct -SimpleCaseFolder -{ -table -: -& -' -static -[ +fn +simple_fold ( +c +: char -& -' -static -[ -char -] ) -] -last +- +> +FoldResult +< +result : +: +Result +< +impl +Iterator +< +Item += +char +> Option < char > -next -: -usize -} -impl -SimpleCaseFolder -{ -pub -fn -new -( -) -- > -Result -< -SimpleCaseFolder -CaseFoldError > { # @@ -348,8 +312,62 @@ case ) ) ] +fn +imp +( +_ +: +char +) +- +> +FoldResult +< +result +: +: +Result +< +impl +Iterator +< +Item += +char +> +Option +< +char +> +> +> { +use +std +: +: +option +: +: +IntoIter +; Err +: +: +< +result +: +: +Result +< +IntoIter +< +char +> +_ +> +_ +> ( CaseFoldError ( @@ -371,13 +389,37 @@ case " ) ] -{ -Ok +fn +imp ( -SimpleCaseFolder -{ -table +c +: +char +) +- +> +FoldResult +< +result : +: +Result +< +impl +Iterator +< +Item += +char +> +Option +< +char +> +> +> +{ +use crate : : @@ -388,220 +430,161 @@ case_folding_simple : : CASE_FOLDING_SIMPLE -last -: -None -next -: -0 -} -) -} -} -pub -fn -mapping +; +Ok +( +CASE_FOLDING_SIMPLE +. +binary_search_by_key ( & -mut -self c -: -char -) -- -> +| & -' -static -[ -char -] -{ -if -let -Some ( -last +c1 +_ +) +| +c1 ) -= -self . -last -{ -assert -! +map ( -last -< -c -" -got -codepoint -U -+ -{ -: -X -} -which -occurs -before -\ -last -codepoint -U -+ -{ -: -X -} -" -u32 -: -: -from +| +i +| +CASE_FOLDING_SIMPLE +[ +i +] +. +1 +. +iter ( -c ) -u32 -: -: -from +. +copied ( -last ) ) -; -} -self . -last -= -Some +map_err ( -c -) -; +| +i +| +{ if -self -. -next +i > = -self -. -table +CASE_FOLDING_SIMPLE . len ( ) { -return -& -[ -] -; +None } -let +else +{ +Some ( -k -v -) -= -self -. -table +CASE_FOLDING_SIMPLE [ -self -. -next +i ] -; -if -k -= -= -c -{ -self . -next -+ -= -1 -; -return -v -; +0 +) } -match -self -. -get +} +) +) +} +imp ( c ) -{ -Err +} +pub +fn +contains_simple_case_mapping ( -i +start +: +char +end +: +char ) -= +- +> +FoldResult +< +bool > { -self -. -next -= -i -; -& +# [ +cfg +( +not +( +feature += +" +unicode +- +case +" +) +) ] -} -Ok +fn +imp ( -i +_ +: +char +_ +: +char ) -= +- +> +FoldResult +< +bool > { -assert -! +Err +( +CaseFoldError +( ( -i -> -self -. -next ) -; -self -. -next -= -i -+ -1 -; -self -. -table +) +) +} +# [ -i +cfg +( +feature += +" +unicode +- +case +" +) ] -. -1 -} -} -} -pub fn -overlaps +imp ( -& -self start : char @@ -611,10 +594,25 @@ char ) - > +FoldResult +< bool +> { use -core +crate +: +: +unicode_tables +: +: +case_folding_simple +: +: +CASE_FOLDING_SIMPLE +; +use +std : : cmp @@ -631,9 +629,9 @@ start end ) ; -self -. -table +Ok +( +CASE_FOLDING_SIMPLE . binary_search_by ( @@ -686,43 +684,14 @@ Less is_ok ( ) -} -fn -get -( -& -self -c -: -char ) -- -> -Result -< -usize -usize -> -{ -self -. -table -. -binary_search_by_key -( -& -c -| -& +} +imp ( -c1 -_ -) -| -c1 +start +end ) } -} # [ derive @@ -787,7 +756,6 @@ self Result < CanonicalClassQuery -Error > { match @@ -1082,7 +1050,6 @@ str Result < CanonicalClassQuery -Error > { let @@ -1100,22 +1067,6 @@ norm " cf " -& -& -norm -! -= -" -sc -" -& -& -norm -! -= -" -lc -" { if let @@ -1277,7 +1228,6 @@ hir : : ClassUnicode -Error > { use @@ -1472,7 +1422,6 @@ hir : : ClassUnicode -Error > { # @@ -1503,7 +1452,6 @@ hir : : ClassUnicode -Error > { Err @@ -1539,7 +1487,6 @@ hir : : ClassUnicode -Error > { use @@ -1579,7 +1526,6 @@ hir : : ClassUnicode -Error > { # @@ -1620,7 +1566,6 @@ hir : : ClassUnicode -Error > { Err @@ -1669,7 +1614,6 @@ hir : : ClassUnicode -Error > { use @@ -1717,7 +1661,6 @@ hir : : ClassUnicode -Error > { use @@ -1757,7 +1700,6 @@ hir : : ClassUnicode -Error > { # @@ -1798,7 +1740,6 @@ hir : : ClassUnicode -Error > { Err @@ -1847,7 +1788,6 @@ hir : : ClassUnicode -Error > { use @@ -1895,7 +1835,6 @@ hir : : ClassUnicode -Error > { use @@ -2007,6 +1946,9 @@ char ) - > +result +: +: Result < bool @@ -2038,6 +1980,9 @@ char ) - > +result +: +: Result < bool @@ -2075,6 +2020,9 @@ char ) - > +result +: +: Result < bool @@ -2085,8 +2033,12 @@ use crate : : -{ is_word_byte +; +use +crate +: +: unicode_tables : : @@ -2094,21 +2046,30 @@ perl_word : : PERL_WORD -} ; -if -u8 +use +std : : -try_from -( +cmp +: +: +Ordering +; +if c -) -. -map_or -( -false +< += +0x7F +as +char +& +& is_word_byte +( +c +as +u8 ) { return @@ -2132,15 +2093,6 @@ end ) | { -use -core -: -: -cmp -: -: -Ordering -; if start < @@ -2227,7 +2179,6 @@ Option static str > -Error > { Ok @@ -2315,7 +2266,6 @@ Option static str > -Error > { let @@ -2361,7 +2311,6 @@ Option static str > -Error > { # @@ -2437,7 +2386,6 @@ Option static str > -Error > { Err @@ -2518,7 +2466,6 @@ Option static str > -Error > { use @@ -2646,7 +2593,6 @@ Option < PropertyValues > -Error > { # @@ -2721,7 +2667,6 @@ Option < PropertyValues > -Error > { Err @@ -2801,7 +2746,6 @@ Option < PropertyValues > -Error > { use @@ -2945,7 +2889,6 @@ Item = Range > -Error > { # @@ -2983,11 +2926,10 @@ Item = Range > -Error > { use -core +std : : option @@ -3044,7 +2986,6 @@ Item = Range > -Error > { use @@ -3416,7 +3357,6 @@ hir : : ClassUnicode -Error > { # @@ -3453,7 +3393,6 @@ hir : : ClassUnicode -Error > { Err @@ -3495,7 +3434,6 @@ hir : : ClassUnicode -Error > { use @@ -3654,7 +3592,6 @@ hir : : ClassUnicode -Error > { # @@ -3691,7 +3628,6 @@ hir : : ClassUnicode -Error > { Err @@ -3733,7 +3669,6 @@ hir : : ClassUnicode -Error > { use @@ -3790,7 +3725,6 @@ hir : : ClassUnicode -Error > { # @@ -3827,7 +3761,6 @@ hir : : ClassUnicode -Error > { Err @@ -3869,7 +3802,6 @@ hir : : ClassUnicode -Error > { use @@ -3926,7 +3858,6 @@ hir : : ClassUnicode -Error > { # @@ -3963,7 +3894,6 @@ hir : : ClassUnicode -Error > { Err @@ -4005,7 +3935,6 @@ hir : : ClassUnicode -Error > { use @@ -4085,7 +4014,6 @@ hir : : ClassUnicode -Error > { # @@ -4122,7 +4050,6 @@ hir : : ClassUnicode -Error > { Err @@ -4164,7 +4091,6 @@ hir : : ClassUnicode -Error > { use @@ -4221,7 +4147,6 @@ hir : : ClassUnicode -Error > { # @@ -4258,7 +4183,6 @@ hir : : ClassUnicode -Error > { Err @@ -4300,7 +4224,6 @@ hir : : ClassUnicode -Error > { use @@ -4357,7 +4280,6 @@ hir : : ClassUnicode -Error > { # @@ -4394,7 +4316,6 @@ hir : : ClassUnicode -Error > { Err @@ -4436,7 +4357,6 @@ hir : : ClassUnicode -Error > { use @@ -4843,25 +4763,73 @@ slice [ . . -next_write -] -} -# -[ -cfg +next_write +] +} +# +[ +cfg +( +test +) +] +mod +tests +{ +use +super +: +: +{ +contains_simple_case_mapping +simple_fold +symbolic_name_normalize +symbolic_name_normalize_bytes +} +; +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] +fn +simple_fold_ok +( +c +: +char +) +- +> +impl +Iterator +< +Item += +char +> +{ +simple_fold +( +c +) +. +unwrap +( +) +. +unwrap ( -test ) -] -mod -tests -{ -use -super -: -: -* -; +} # [ cfg @@ -4876,7 +4844,7 @@ case ) ] fn -simple_fold_ok +simple_fold_err ( c : @@ -4884,37 +4852,45 @@ char ) - > -impl -Iterator +Option < -Item -= char > { -SimpleCaseFolder -: -: -new +match +simple_fold ( +c ) . unwrap ( ) -. -mapping +{ +Ok ( -c +_ ) -. -iter += +> +unreachable +! ( +" +simple_fold +returned +Ok +iterator +" ) -. -copied +Err ( +next ) += +> +next +} } # [ @@ -4943,22 +4919,15 @@ char > bool { -SimpleCaseFolder -: -: -new +contains_simple_case_mapping ( +start +end ) . unwrap ( ) -. -overlaps -( -start -end -) } # [ @@ -5005,9 +4974,6 @@ assert_eq ! ( xs -alloc -: -: vec ! [ @@ -5042,9 +5008,6 @@ assert_eq ! ( xs -alloc -: -: vec ! [ @@ -5078,9 +5041,6 @@ assert_eq ! ( xs -alloc -: -: vec ! [ @@ -5139,9 +5099,6 @@ assert_eq ! ( xs -alloc -: -: vec ! [ @@ -5174,9 +5131,6 @@ assert_eq ! ( xs -alloc -: -: vec ! [ @@ -5195,6 +5149,149 @@ test [ cfg ( +feature += +" +unicode +- +case +" +) +] +fn +simple_fold_empty +( +) +{ +assert_eq +! +( +Some +( +' +A +' +) +simple_fold_err +( +' +? +' +) +) +; +assert_eq +! +( +Some +( +' +A +' +) +simple_fold_err +( +' +' +) +) +; +assert_eq +! +( +Some +( +' +a +' +) +simple_fold_err +( +' +[ +' +) +) +; +assert_eq +! +( +Some +( +' +' +) +simple_fold_err +( +' +' +) +) +; +} +# +[ +test +] +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] +fn +simple_fold_max +( +) +{ +assert_eq +! +( +None +simple_fold_err +( +' +\ +u +{ +10FFFE +} +' +) +) +; +assert_eq +! +( +None +simple_fold_err +( +' +\ +u +{ +10FFFF +} +' +) +) +; +} +# +[ +test +] +# +[ +cfg +( not ( feature @@ -5215,11 +5312,11 @@ simple_fold_disabled assert ! ( -SimpleCaseFolder -: -: -new +simple_fold ( +' +a +' ) . is_err @@ -5382,6 +5479,50 @@ test [ cfg ( +not +( +feature += +" +unicode +- +case +" +) +) +] +fn +range_contains_disabled +( +) +{ +assert +! +( +contains_simple_case_mapping +( +' +a +' +' +a +' +) +. +is_err +( +) +) +; +} +# +[ +test +] +# +[ +cfg +( feature = " diff --git a/third_party/rust/regex-syntax/src/utf8.rs b/third_party/rust/regex-syntax/src/utf8.rs index 54fa428f09b94..5e8f264c5f849 100644 --- a/third_party/rust/regex-syntax/src/utf8.rs +++ b/third_party/rust/regex-syntax/src/utf8.rs @@ -1,28 +1,37 @@ +# +! +[ +deny +( +missing_docs +) +] use -core +std : : -{ char +; +use +std +: +: fmt +; +use +std +: +: iter : : FusedIterator -slice -} ; use -alloc -: -: -{ -vec -vec +std : : -Vec -} +slice ; const MAX_UTF8_BYTES @@ -1005,20 +1014,12 @@ it . push ( -u32 -: -: -from -( start -) +as u32 -: -: -from -( end -) +as +u32 ) ; it @@ -1057,20 +1058,12 @@ self . push ( -u32 -: -: -from -( start -) +as u32 -: -: -from -( end -) +as +u32 ) ; } @@ -1682,49 +1675,23 @@ is_ascii ( ) { -let -start -= -u8 +Some +( +Utf8Range : : -try_from +new ( self . start -) -. -unwrap -( -) -; -let -end -= +as u8 -: -: -try_from -( self . end -) -. -unwrap -( -) -; -Some -( -Utf8Range -: -: -new -( -start -end +as +u8 ) ) } @@ -1916,24 +1883,12 @@ mod tests { use -core +std : : char ; use -alloc -: -: -{ -vec -vec -: -: -Vec -} -; -use crate : : @@ -2056,20 +2011,12 @@ bytes ? } " -u32 -: -: -from -( start -) +as u32 -: -: -from -( end -) +as +u32 r cp buf @@ -2721,10 +2668,6 @@ dst 0 ] = -u8 -: -: -try_from ( cp > @@ -2733,10 +2676,8 @@ cp & 0x0F ) -. -unwrap -( -) +as +u8 | TAG_THREE_B ; @@ -2745,10 +2686,6 @@ dst 1 ] = -u8 -: -: -try_from ( cp > @@ -2757,10 +2694,8 @@ cp & 0x3F ) -. -unwrap -( -) +as +u8 | TAG_CONT ; @@ -2769,19 +2704,13 @@ dst 2 ] = -u8 -: -: -try_from ( cp & 0x3F ) -. -unwrap -( -) +as +u8 | TAG_CONT ; diff --git a/third_party/rust/regex-syntax/test b/third_party/rust/regex-syntax/test index 957b4d9c9d38b..a8c024cab3d11 100644 --- a/third_party/rust/regex-syntax/test +++ b/third_party/rust/regex-syntax/test @@ -8,48 +8,6 @@ set - e # -cd -to -the -directory -containing -this -crate -' -s -Cargo -. -toml -so -that -we -don -' -t -need -# -to -pass -- -- -manifest -- -path -to -every -cargo -command -. -cd -" -( -dirname -" -0 -" -) -" -# This is a @@ -83,7 +41,6 @@ test features = ( -std unicode unicode - @@ -124,6 +81,8 @@ echo = = = += += FEATURE : f @@ -131,50 +90,6 @@ f = = " -# -We -only -run -library -tests -because -I -couldn -' -t -figure -out -how -to -easily -# -make -doc -tests -run -in -' -no_std -' -mode -. -In -particular -without -the -Error -# -trait -using -' -? -' -in -doc -tests -seems -tricky -. cargo test - @@ -186,9 +101,6 @@ default features - - -lib -- -- features " f diff --git a/third_party/rust/regex/.cargo-checksum.json b/third_party/rust/regex/.cargo-checksum.json index 38e7f7468519b..68cffa66789f0 100644 --- a/third_party/rust/regex/.cargo-checksum.json +++ b/third_party/rust/regex/.cargo-checksum.json @@ -11,1832 +11,207 @@ md " : " -920271ea6fdc901f01e8535d732370509714326874a4073ab75cd0c9d899fc14 +47b22859157339150c957dd72be9cf87aee341ebb3711efac5930efb10436368 " " Cargo . -toml -" -: -" -2913e983f1b366ef6be4ac7da62d3e2c8e4847cfea4257d5618a90e67363d26e -" -" -Cross -. -toml -" -: -" -4a11d6c63ecc919016b59fa0fe23674eb05682fb91ffbe677a4a7077e9e684ff -" -" -HACKING -. -md -" -: -" -17818f7a17723608f6bdbe6388ad0a913d4f96f76a16649aaf4e274b1fa0ea97 -" -" -LICENSE -- -APACHE -" -: -" -a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 -" -" -LICENSE -- -MIT -" -: -" -6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb -" -" -README -. -md -" -: -" -932f36c0fc3ac869fcca51018e6c87c75278665d42e51d22834fa52ceec2c95c -" -" -UNICODE -. -md -" -: -" -845fca1982e82e190109a784952579fce54faea120b702b7efd61164a12f601f -" -" -record -/ -README -. -md -" -: -" -02e6f85f8a43f18540e4a52a75d1001494df7aceac3873e9a13e3ceba190206d -" -" -record -/ -compile -- -test -/ -2023 -- -04 -- -19_1 -. -7 -. -3 -. -csv -" -: -" -460059ba2f10456175ff92bd75d4a365b14a1843e2b46e7b285d58da59e6d3ca -" -" -record -/ -compile -- -test -/ -2023 -- -04 -- -20_master -. -csv -" -: -" -6b94df278e4ed82a3fd0d4bfe92a4614714e00435e983c7649ee9f54925f906e -" -" -record -/ -compile -- -test -/ -2023 -- -07 -- -05 -. -csv -" -: -" -cf00b4981b8c12980113810dba40e2063a8400354ad4dab16f7c212ff0b5db74 -" -" -record -/ -compile -- -test -/ -README -. -md -" -: -" -ba2b606993edd8d705ad1677ec954862614e52b028407e1908bb5dfb07767f2d -" -" -record -/ -old -- -bench -- -log -/ -01 -- -lazy -- -dfa -/ -dynamic -" -: -" -dec9f74b8835403c71edc0c2d93bbdde0f5a0e37d46585e416c80496d5b14497 -" -" -record -/ -old -- -bench -- -log -/ -01 -- -lazy -- -dfa -/ -dynamic -- -no -- -lazy -- -dfa -" -: -" -c0ce02bef9ada8cd55672f0a9c3c5fc64f71e08bfb2b45978082a140b4fc111f -" -" -record -/ -old -- -bench -- -log -/ -01 -- -lazy -- -dfa -/ -native -" -: -" -9de61ff787e36f5c6f1eaec68b8bb0583e57b0aad23712afe8c0048988c761b8 -" -" -record -/ -old -- -bench -- -log -/ -01 -- -lazy -- -dfa -/ -nfa -" -: -" -38c0be44a00b2caef17101bc425410fec2958e4df6da25d2ba5b6664f8bccad9 -" -" -record -/ -old -- -bench -- -log -/ -01 -- -lazy -- -dfa -/ -pcre -" -: -" -3b38026c24e4ca487ff62de83cc093ccb46b918f4875663249ff84ce27636942 -" -" -record -/ -old -- -bench -- -log -/ -02 -- -set -/ -dynamic -" -: -" -8ef5c00f0ac42e5f008e4b6337669527b48fba38df94c50d3e683c6aac66a48c -" -" -record -/ -old -- -bench -- -log -/ -03 -- -bytes -/ -onig -" -: -" -f32347a6e0f25f46ad1b0aa736c29eca47c25f90d32c8823ea0d14204859a35b -" -" -record -/ -old -- -bench -- -log -/ -03 -- -bytes -/ -pcre -" -: -" -b90982575c0ad55617b2ce50c2e9853d090502bf07e1eb19edf9009d3c9f2987 -" -" -record -/ -old -- -bench -- -log -/ -03 -- -bytes -/ -rust -" -: -" -b1e70e5ae48a9c726d8cd8a98019c0efe5a1095563c61cf0ac75e24de32461b4 -" -" -record -/ -old -- -bench -- -log -/ -03 -- -bytes -/ -rust -- -bytes -" -: -" -fbf0e6cb8102c7ca8e59bd459bb0ae7f1feaf8103def70b8d4793c59e68e8736 -" -" -record -/ -old -- -bench -- -log -/ -04 -/ -onig -" -: -" -4e34e2ede0a806b8ee540e63e4babee38049e5a8ab3be99c4f5d8b02bbc653fd -" -" -record -/ -old -- -bench -- -log -/ -04 -/ -pcre1 -- -jit -" -: -" -736c4941e991ef94f76379cf2187d0ea2a41b052cf80c94d0dd0c9ea758a6491 -" -" -record -/ -old -- -bench -- -log -/ -04 -/ -pcre2 -- -jit -" -: -" -00e7bbf7749904fca8dff9b441d15bbe670f37b427e385ddf740f7a49de3b1fb -" -" -record -/ -old -- -bench -- -log -/ -04 -/ -re2 -" -: -" -b8b8595f6b68da127b56dc7c61a9fd15548251fda1be9d2c50c2d48382e887b6 -" -" -record -/ -old -- -bench -- -log -/ -04 -/ -rust -" -: -" -c5a6b918e815294f0c4e3d37267c444d49692ff131c5a08f7462c24d0721fcec -" -" -record -/ -old -- -bench -- -log -/ -04 -/ -tcl -" -: -" -c4d8d12b8cf48ff2017549e95e49dc95a90ea15483834cd70d2d7d7c237bbd32 -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -onig -" -: -" -70a4da9aafaefa6493cd09d3a529dd5d2d9eacf390bb093681bc7be28a1f926c -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -onig -- -vs -- -rust -" -: -" -b942a79735b7330241437776c15b18f4db3eff01d3e6c35494f4a8732e74a23a -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -pcre1 -" -: -" -b29b7efbe79b55ce0aaf24bbbecc376a865fa219a68d96124e3d95951cdb47f4 -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -pcre1 -- -vs -- -rust -" -: -" -a458e5c62f0500898e08757753c10981551649656432ec096f0c82b414ef8d82 -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -pcre2 -" -: -" -faa93937c3490cfdff88c32dc04e57f2ae881923b87781e5fe876535fd690770 -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -pcre2 -- -vs -- -rust -" -: -" -bf9faa6a679dd98e9452e52c0941d2eb84dcf0b6632c15507f8334ed7bc309da -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -re2 -" -: -" -692866b28e1bc368c7a59f519b8dfe1da50a135946ce153298a0ab228a5ee59d -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -re2 -- -vs -- -rust -" -: -" -55e4cb14c397574751aebe38068c429a4580a5e309857b2715047944903dca58 -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -rust -" -: -" -aac6acda9f63e51613712d0a33bb7fb46dfc7adc425f76b9b71195be8c8a42e7 -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -tcl -" -: -" -f03e39eccd3252162cc6099bb0426014df669d299ba0ef79e89b8401886a5172 -" -" -record -/ -old -- -bench -- -log -/ -05 -/ -tcl -- -vs -- -rust -" -: -" -ae6ac4668573bf5488cc235c5da16ad9358d07b7644207d9bcea88ba6f5514a6 -" -" -record -/ -old -- -bench -- -log -/ -06 -/ -dphobos -- -dmd -" -: -" -473328306be335a0320c690d9c2dbefdf7f2f5a80e4ca69443c7ed2e81bb093f -" -" -record -/ -old -- -bench -- -log -/ -06 -/ -dphobos -- -dmd -- -ct -" -: -" -60341c736382a6db21d9889369ea4617c521acbf30d4b3bf38bcd17f4f85b9b1 -" -" -record -/ -old -- -bench -- -log -/ -06 -/ -dphobos -- -ldc -" -: -" -ae60c2bed84afb89ae43615f26de4cc5d0042e179089b639507378518eed3252 -" -" -record -/ -old -- -bench -- -log -/ -06 -/ -dphobos -- -ldc -- -ct -" -: -" -a157ef450793b73de3a816fab1d93a6d11e90a817082bae5e3da02a66fcc833f -" -" -record -/ -old -- -bench -- -log -/ -06 -/ -pcre1 -" -: -" -ad10fd7db732e8670dd3d4eedb05f48f547b4782495aaadff8ec25a6ea1992a0 -" -" -record -/ -old -- -bench -- -log -/ -06 -/ -pcre2 -" -: -" -f789a73bd41a0bc401bdebe7f10a03a8aa587de48643d88507d16181a8fa39d3 -" -" -record -/ -old -- -bench -- -log -/ -06 -/ -re2 -" -: -" -203c273a110d71f5edf722630202a6142c39d6b7a9951686adf8b9c20c5db278 -" -" -record -/ -old -- -bench -- -log -/ -06 -/ -rust -" -: -" -6a642a16cd279c99ef5a580a25fb3a63ac6239cd73df9261c02912fa08145753 -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -boost -" -: -" -255bc652c4d9e9d20aa9b22d8d86e952e7ec6c8b9fcde0c3d6e38c967e04d40e -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -dphobos -- -dmd -" -: -" -fb3ac60037050858611145ca3e71412164688dcdec52c022787d33304e022260 -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -dphobos -- -dmd -- -ct -" -: -" -40a5088441f8ffe3dae0abaf31c105cedfbe3b56c06772f075947d504976d2ed -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -oniguruma -" -: -" -ae0cd60adb15845eb9ef706111d4ee0e6ad5a58f0276b787d68bd7d637f8f7c6 -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -pcre1 -" -: -" -a812d065ec248249f9bb3d6d970f15c18d342f6b443265ad4b07fa91b73575cc -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -pcre2 -" -: -" -88230663eccd0b382cf5be81ce1ae6cfa3fa835a65a31c1eba4369d2e8de5d27 -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -re2 -" -: -" -e330ef21ce44351afc3c43821d862e9c625877606569f3af0ddbadcd7b21c602 -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -rust -" -: -" -d8c6bd5c46f5df9d0ac222f7be7793527a8137d273c8826b3715c67e16209aac -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -rust -- -bytes -" -: -" -e21d02fa2ef1e5ed7204920b33ed24c9fb620e068ed47ed6879b72e76369a27e -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -stdcpp -" -: -" -9df02d89dc8232c700b8cf8bc6f1ece3ca7af84ab52e67a660039d6c9168aed4 -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -stdcpp -- -libcxx -" -: -" -f90849a0b5dc11dc0280ad97886e92e1d91c080403ad7a4ecd638a26fe5e8c5e -" -" -record -/ -old -- -bench -- -log -/ -07 -/ -tcl -" -: -" -7f6e347bb507f9c00ff664d3e627c0a9cf842b416eeb2af9f3b6cccd041c58e4 -" -" -record -/ -old -- -bench -- -log -/ -08 -- -new -- -memmem -/ -rust -- -after -- -01 -" -: -" -646c7d50aea9c560a35eb60116f301f4fb8d4b03fd5814d8b24adffd070332e3 -" -" -record -/ -old -- -bench -- -log -/ -08 -- -new -- -memmem -/ -rust -- -after -- -02 -" -: -" -14e7fb6c6faa85a8f90617528cef79ae382aeba07c2e5c253c68445902b060ba -" -" -record -/ -old -- -bench -- -log -/ -08 -- -new -- -memmem -/ -rust -- -before -- -01 -" -: -" -7e3b58de0f502c1a1bf6d27e0e85c654b1189716f7374cec4ed4dd365b13101f -" -" -record -/ -old -- -bench -- -log -/ -08 -- -new -- -memmem -/ -rust -- -before -- -02 -" -: -" -ab6d09529eeeca7ff0da945d59701dbbcfdec5e05581bb9bf154779d12a35e53 -" -" -record -/ -old -- -bench -- -log -/ -09 -- -new -- -baseline -/ -pcre2 -" -: -" -28df8e2762f267d1ea628906a6e4bbc21f99e6a445bd322c86d0ca483b21b5b3 -" -" -record -/ -old -- -bench -- -log -/ -09 -- -new -- -baseline -/ -re2 -" -: -" -421437193cc3f159c178479f98bde8dbe27883ec7757b1ddd8d745862f5899ff -" -" -record -/ -old -- -bench -- -log -/ -09 -- -new -- -baseline -/ -rust -" -: -" -6f932a769171b6cdb717c9d01e44a70762ef660c4045b9d2bb3797a9bdf65405 -" -" -record -/ -old -- -bench -- -log -/ -09 -- -new -- -baseline -/ -rust -- -bytes -" -: -" -9c5acd5c1eeac9acfe76d03588041f9b6d65b4351085c3510888ceeb83e8a7b5 -" -" -record -/ -old -- -bench -- -log -/ -10 -- -last -- -frontier -/ -rust -- -after -- -literal -. -log -" -: -" -02baef9b3b49acbbff43e81f48ea5a9287e30ff4fc298a3f3b48991d8374aabf -" -" -record -/ -old -- -bench -- -log -/ -10 -- -last -- -frontier -/ -rust -- -before -- -literal -. -log -" -: -" -e5a3bcc2b9e93cf3cb27bc9e6305b3bc03215751bbeef2a70fb25577d6b42874 -" -" -record -/ -old -- -bench -- -log -/ -10 -- -last -- -frontier -/ -rust -- -bytes -- -after -- -literal -. -log -" -: -" -29834c7a5396ac61acedd07c0b7ca60716865ec3e70f35fbaa7826a2309a79d9 -" -" -record -/ -old -- -bench -- -log -/ -10 -- -last -- -frontier -/ -rust -- -bytes -- -before -- -literal -. -log -" -: -" -4e7468a3e8629814bd4af91e2a8eb42d0899d352b5dff3058b801aa637046be2 -" -" -record -/ -old -- -bench -- -log -/ -11 -- -regex -- -1 -. -7 -. -3 -/ -rust +lock " : " -d7cc18a62070ea7a999e1ba2458f26cf94595f1af276c2b3e96cee638eccf3f0 +3445929e595d109e2f37d349ffad3dd6cb76e7203a029cf1955838d0438d68a4 " " -record -/ -old -- -bench -- -log -/ -11 -- -regex -- -1 -. -7 +Cargo . -3 -/ -rust -- -bytes +toml " : " -64c7458020139bd7a03d1cb0927b741e6972377b686626563acb86fbc66414ca +0abdf3ce883520254d94a04dcf831fb6f0b75bfda7bcf9c8500ca9a2d1f8ff44 " " -record -/ -old -- -bench -- -log -/ -12 -- -regex -- -1 -. -8 +HACKING . -1 -/ -rust +md " : " -a538c42e77e20956e81fb5a4e2e1e7d3fdf60da019d7e3df52d93f57367a3fbd +17818f7a17723608f6bdbe6388ad0a913d4f96f76a16649aaf4e274b1fa0ea97 " " -record -/ -old -- -bench -- -log -/ -12 -- -regex -- -1 -. -8 -. -1 -/ -rust +LICENSE - -bytes +APACHE " : " -fbb00fdf8f039ce312f5346a67dddaa5e129280a93a90d7aaf6b5a9a71d2f212 +a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 " " -record -/ -old -- -bench -- -log -/ -13 -- -regex +LICENSE - -1 -. -9 -. -0 -/ -rust +MIT " : " -0ef62700ba3fc24887af74b7942490c90b4cd2814b8fda200f7376e43391bfce +6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb " " -record -/ -old -- -bench -- -log -/ -13 -- -regex -- -1 +PERFORMANCE . -9 -. -0 -/ -rust -- -bytes +md " : " -676d501d4667f0a945c88ebb56839176dd3a5a6b45af7708b1e870bf26d12603 +0d5ef3866386918dfdefb1aa9a28cfe33cb3c8ceeb79f3f8ba5b88253dd95991 " " -record -/ -old -- -bench -- -log -/ README . md " : " -d359f536fb4b8c1af9af3465a027c3522f62c3871aad44645a955b650d7deec0 -" -" -record -/ -old -- -bench -- -log -/ -old -/ -01 -- -before -" -: -" -c2ea2750fca8ac1742003fe2106e9422d49e92967d3fe0267f24b7ec830b07e3 -" -" -record -/ -old -- -bench -- -log -/ -old -/ -02 -- -new -- -syntax -- -crate -" -: -" -27fd8b3d35cf08d434035ff7d9f2e9e3c94a167e45ba655567c73ae96830f1d8 -" -" -record -/ -old -- -bench -- -log -/ -old -/ -03 -- -new -- -syntax -- -crate -" -: -" -d942a2b95c3a2d8f85f3f17934f258bdc84baa33e91986e8a6810ca8d6e9cc50 -" -" -record -/ -old -- -bench -- -log -/ -old -/ -04 -- -fixed -- -benchmark -" -: -" -0da29ef39ac07ece411c151ab479a76944946aba992547b15d90ec2d5484e85c -" -" -record -/ -old -- -bench -- -log -/ -old -/ -05 -- -thread -- -caching -" -: -" -e364d87131e43187d6757426839789d1b6b47b3f3af21280daa9193d5ab19f64 +f69204a0f446047d8f4d1f3d84b75f235adb5c26477f3a37b671411bc954d14c " " -record -/ -old -- -bench -- -log -/ -old -/ -06 -- -major -- -dynamic +UNICODE +. +md " : " -3bc2b8fd2714ae9f19b2e4f4219654982522daf01b5d3055b4aec0458afeaf13 +a8a8399540eed000d19420135a527f400247a04572e44d124c786b870f518776 " " -record +examples / -old +regexdna - -bench -- -log -/ -old -/ -06 -- -major -- -macro +input +. +txt " : " -d5617ed23e71d5298ed4d629eee257e401c352fd1c91a2048dfeb1677527d4e7 +156a49710bb3e1ed4bc2bbb0af0f383b747b3d0281453cfff39c296124c598f8 " " -record -/ -old -- -bench -- -log -/ -old +examples / -07 +regexdna - -prefix -- -improvements +output +. +txt " : " -9277d1392c85a38db215a9b69e3b0cd4a9901f8f1c72c706ca262e5f099b8819 +35e85b19b70a893d752fd43e54e1e9da08bac43559191cea85b33387c24c4cc1 " " -record +examples / -old +shootout - -bench -- -log -/ -old -/ -08 +regex - -case +dna - -fixes +bytes +. +rs " : " -f97cd3675cf5c967e4ca8841f2368e9eadf538b542bfe3035d31492afc5934bf +fa2daedb4e0a05f64f33f4af62fbb0176db998e3676f8637ab684b725367a7b4 " " -record -/ -old -- -bench -- -log +examples / -old -/ -09 +shootout - -before +regex - -compiler +dna - -rewrite +cheat +. +rs " : " -b928686819dbd9aeaa6639b01b63a48428653f2f676a4e15d61cddec421e0389 +1f871a6eaaf8372299fa3c762051112fa89a14235b03f734fc50ebd51ecaee72 " " -record +examples / -old +shootout - -bench -- -log -/ -old -/ -10 +regex - -compiler +dna - -rewrite +replace +. +rs " : " -697b295ee377a5cb287d403593bfb8c078270b4e19e8d61d0b95b06ee7c903ab +32ffdf13ac6c4ce3fc32116a048e9cc682aa34cdb8e5beaf565a22addbdcd9ab " " -record -/ -old -- -bench -- -log +examples / -old -/ -11 -- -compiler +shootout - -rewrite -" -: -" -3f0ba494a0d82e7419285a9686474dc7763d4da0dd3faaa3bec3f624bbede481 -" -" -record -/ -old +regex - -bench +dna - -log -/ -old -/ -12 +single - -executor +cheat +. +rs " : " -962e182f9a1cfddb8c0cd2d8c4681febef1430082c9a38e5373c9117b853e65e +809f75bf1e1917a53623eb6f1a3ce3b7d2ed98a6a1dbc0bd4853bec49a0c6f94 " " -record +examples / -old -- -bench +shootout - -log -/ -old -/ -12 +regex - -executor +dna - -bytes +single +. +rs " : " -e01a1e878b44c80724e9bf09bb11210eeb8f01518ac7f0e3e7f2ee241281e500 +1ab14f5703cd4be2e75a2e792e0ba1d322b9e4b14535d396805a4316d577f5bb " " -record +examples / -old +shootout - -bench -- -log -/ -old -/ -13 -- -cache -- -byte -- -range +regex - -suffixes +dna +. +rs " : " -1d67d58a39f9177a79c26f3c6c2a1caaf51f085ce137711ab9ba74071c14680c +20ea46ab63f91e3ac6a64e997eadd436a9cbc2f1bdade28e4512052f0e25bc34 " " rustfmt @@ -1850,285 +225,275 @@ toml " src / -builders +backtrack . rs " : " -67b4f07ba91794c1e076d092a55f9377301ef5fa8f0dcef13699842583c14865 +52987d80448f3d7f5d4e3545ddfc09f1f30de7602d9b5489961db4b215a377fd " " src / -bytes +compile . rs " : " -6a576b7cec3bc120b9a444f9d12378ac3f4c4f6443e44e4befce6c9c356d8d78 +79a59be2d2db650b5a322e15e9bf1d3227944410bc780fc6089da8f4d2609b77 " " src / -error +dfa . rs " : " -4ac8361e900627a87a2ac78e5d475be17c455fe6850d1515bf5b874837c4ae25 +10273980d1f08aaff495e11efa240249a2b2c08a4db7c49c8d6759bc65a3b174 " " src / -find_byte +error . rs " : " -e17cd3b765467685946707840b92ea4e37d3c11081fbf316174a15858cd4bd99 +71c85db839514f26ee024a689061743ea94a34eb7a3291e6c2b69b45a9682d09 " " src / -lib +exec . rs " : " -93cb2a92745dd656b00746b45bdec726cf0cdb0016384ba25ca816b870ca83c8 +21495ab6813598204a444aeea3a0121674081389fd0f07fc3443eb8858b1c677 " " src / -pattern +expand . rs " : " -5f37755a7c16902d861377645f57a20314961f86298d4b35ae6e1058ca4e9801 +71220309a3bac797f55129f49e79c03e96efec894ea338c735b78695367e04ca " " src / -regex -/ -bytes +find_byte . rs " : " -a32de892ae0eb5a68c54a83b0540b1d595e8263b4efe9f521e4ac7cd0f2efa6d +b387247b77e3269f057c3399aefe5a815032c3af918c876f80eb4b282e4eb95e " " src / -regex -/ -mod +freqs . rs " : " -c220b6dd7a5e1945f8e743d1dcd796c5f782c91b0c34eb9915c588174a517fe8 +255555f3d95b08a5bb3bc2f38d5a06cc100a39c0f0127fe4f50c33afa1cadc65 " " src / -regex -/ -string +input . rs " : " -4f7fea1a54c099fe79769e1e97ab9d4e4c5a569c48dbcab6db2b35a597953a04 +13f49c1bce2fadd04a45b421d374cd0f8b72bef83f7e8fda958962aaccbe799a " " src / -regexset -/ -bytes +lib . rs " : " -6290dd81f47fb6cdbaa358be2340398a2a640320373d334e4c977bf30b5a9220 +982fadba415c4c5b93f4d7d4a73a23ec88e2d96daaa03b679d14490ea0f63197 " " src / -regexset +literal / -mod +imp . rs " : " -c220b6dd7a5e1945f8e743d1dcd796c5f782c91b0c34eb9915c588174a517fe8 +b7f63a861c299bea4baaab17353a420ee339c2cf76d3858c95f39342bd4463e7 " " src / -regexset +literal / -string +mod . rs " : " -977bc167c48c7c99187599c5071ca197e61a56359d32a26b9dbc1b58a5ef1c4d +533f1d68af088e9485170145e27518368e541a0337fdb44f63249ebf97310300 " " -test +src +/ +pattern +. +rs " : " -c0122c20a2c9b7ba6e9a8aaeb2b7d9910315ef31063539949f28d9501ef3193c +993d8b6b4bcea5e02bee3c76e17c356a5a47f8fc53c5555edfd1ebb71c0878bf " " -testdata +src / -README +pikevm . -md +rs " : " -c0514501526560d7f6171eb6d982ad61b4527760cb38a4bfbe8e28036ff37b95 +6c0eaa7e878c945ac4c3c545c98f5706ad04846fc432a5086c8ee78eb030dfa7 " " -testdata +src / -anchored +pool . -toml +rs " : " -7a1b5cd81deed2099796a451bf764a3f9bd21f0d60c0fa46accd3a35666866f2 +942e991ae31ef349bd76efd78b2a712c01166dec965bf93742977ed0870d5a10 " " -testdata +src / -bytes +prog . -toml +rs " : " -1d84179165fd25f3b94bd2bfbeb43fc8a162041f7bf98b717e0f85cef7fb652b +bebb3e50745bbc05d6c8240d972ba55a1818c51b1161dc1c21f3fe13c11d4884 " " -testdata +src / -crazy +re_builder . -toml +rs " : " -a146e2d2e23f1a57168979d9b1fc193c2ba38dca66294b61140d6d2a2958ec86 +943344bf6e2fc90902ee04b11b741c32418ac6814b21b7982cc0a3a817713f3e " " -testdata +src / -crlf +re_bytes . -toml +rs " : " -d19cf22756434d145dd20946c00af01c102a556a252070405c3c8294129d9ece +63ee1db1637a3764addb10e27248129acffaf78bb0a69624add4d9d6f1e97040 " " -testdata +src / -earliest +re_set . -toml +rs " : " -d561e643623ee1889b5b049fdcf3c7cb71b0c746d7eb822ddbd09d0acda2620b +7921ac4a919b7a5deffe82d099a9ccaf5487aebd890dfb7a661e602c6ad3f1a9 " " -testdata +src / -empty +re_trait . -toml +rs " : " -738dbe92fbd8971385a1cf3affb0e956e5b692c858b9b48439d718f10801c08e +d237121b6f6b606836c72305cbcb3bbdbc54d1f6827d19a19cd0fbb4372e0145 " " -testdata +src / -expensive +re_unicode . -toml +rs " : " -5ce2f60209c99cdd2cdcb9d3069d1d5ca13d5e08a85e913efe57267b2f5f0e9d +4ca66d6e835df7c0f570c8cde52667ef90ba1687d5285f12fedef2e38ae925b4 " " -testdata +src / -flags +sparse . -toml +rs " : " -9a7e001808195c84f2a7d3e18bc0a82c7386e60f03a616e99af00c3f7f2c3fd4 +0da3ddb7972109869248a764dbb10254555f4bb51c375e89fb3fab9cafa47320 " " -testdata +src / -fowler +testdata / -basic -. -toml +LICENSE " : " -a82c7e233451cd7cfe0c3d817f3a1ab44478bb81ae62432efdd515fa8370275e +58cf078acc03da3e280a938c2bd9943f554fc9b6ced89ad93ba35ca436872899 " " -testdata -/ -fowler +src / -dat +testdata / README " : " -e53d6c37b5931cb26dc9ae4c40358eea63f7a469c4db6ca816c072a8ced6a61a +45f869e37f798905c773bfbe0ef19a5fb7e585cbf0b7c21b5b5a784e8cec3c14 " " -testdata -/ -fowler +src / -dat +testdata / basic . @@ -2136,14 +501,12 @@ dat " : " -b1126dda59075c08f574987090273c9977790115f1e1941d0708c0b82b256905 +b5b33aa89d48a61cd67cb1fbfd8f70e62c83e30b86256f9f915a5190dd38ff06 " " -testdata -/ -fowler +src / -dat +testdata / nullsubexpr . @@ -2151,14 +514,12 @@ dat " : " -e5cd4145dffa8bc66f2d39079950b2bb7bae21a521514b83b557b92f4a871a9e +496ac0278eec3b6d9170faace14554569032dd3d909618364d9326156de39ecf " " -testdata -/ -fowler +src / -dat +testdata / repetition . @@ -2166,484 +527,399 @@ dat " : " -2b8b2b191229a804fba49e6b888d8194bf488f7744057b550da9d95a2aa6617a -" -" -testdata -/ -fowler -/ -nullsubexpr -. -toml -" -: -" -cd812e7e8fa0469253b34f0db93b5883c9d8b9740fc4f7825a38e7df880a4eed +1f7959063015b284b18a4a2c1c8b416d438a2d6c4b1a362da43406b865f50e69 " " -testdata -/ -fowler +src / -repetition +utf8 . -toml +rs " : " -8c09164f064b3db81309c53483863bdcec493781644de162416e9f485e772615 +f85a356ff5d5b19e417b73ce1dd84581b21d283f6dddd195547c30af9c60bd1a " " -testdata -/ -iter -. -toml +test " : " -6875460302974a5b3073a7304a865c45aba9653c54afea2c4d26e1ea248a81f7 +0d62fdca7da12fc19ea5306b5de1d83e68d9365a029c043d524334da138b0304 " " -testdata +tests / -leftmost -- -all +api . -toml +rs " : " -903bfbeff888b7664296f4d5aa367ce53d1dafe249ab0a3359223ae94d596396 +7b2a0ef75e99b9776094967bd66e9cdeaa8e11359f5f0a12bd08ef0e8d0c11fc " " -testdata +tests / -line -- -terminator +api_str . -toml +rs " : " -3255c305687eaa8b39939855ce8e0379bdc0e70d7b0cd818856f65fb44a48c0f +2ae38c04e7e8fac008b609a820d0b1561ba75f39b0edc0987d6d3d06132da77f " " -testdata +tests / -misc +bytes . -toml +rs " : " -32c9591655c6fb118dfefcb4de49a04820a63cb960533dfc2538cdaabf4f4047 +edc50f526c5fee43df89d639ef18b237e4eb91e9d533bfc43f3cbab7417d38ba " " -testdata +tests / -multiline +consistent . -toml +rs " : " -eb07cf5427e6ddbcf61f4cc64c2d74ff41b5ef75ef857959651b20196f3cd157 +d69435154c09478076497216e43081a835ac65147181a4fbddad7bff469605b2 " " -testdata +tests / -no -- -unicode +crates_regex . -toml +rs " : " -d209da04506900fd5f69e48170cddaad0702355ac6176c3a75ab3ff96974457c +91a59d470e0700b4bcb3ff735d06799f3107b8ef4875a2e9904607b164be0326 " " -testdata +tests / -overlapping +crazy . -toml +rs " : " -5d96497a7233566d40b05ba22047e483fa8662e45515a9be86da45cf6c28703a +c0d56380dff19bdd5d7a3eb731d0e2dc564e169a1b73c81e1879b1e87f5f5f77 " " -testdata +tests / -regex -- -lite +flags . -toml +rs " : " -fecca7cc8c9cea2e1f84f846a89fd9b3ca7011c83698211a2eeda8924deb900c +05caace2c81a99d2168037f3a38035d4dffe9f85ef3ebd7ef18b1bc6612f1ea8 " " -testdata +tests / -regression +fowler . -toml +rs " : " -6af7b4ac5eb257af52bcf9647f0f7ecb02e87ce5e57306825f2b5ac800151758 +d78cf914de40b1e125cc92b65ccb444d462586bd07b5e05de4e4a1b5de16aa76 " " -testdata +tests / -set +macros . -toml +rs " : " -dfd265dc1aee80026e881616840df0236ae9abf12467d7ec0e141a52c236128c +6db70c16fc90df13e6b30d2b606f8b6dd4dc976697967f6ee001b15aab6d0b19 " " -testdata +tests / -substring +macros_bytes . -toml +rs " : " -48122d9f3477ed81f95e3ad42c06e9bb25f849b66994601a75ceae0693b81866 +a049f528a93173a1bb176cd46932dce1880679f4a1752e099be920f0e4546fd0 " " -testdata +tests / -unicode +macros_str . -toml +rs " : " -7e4b013039b0cdd85fa73f32d15d096182fe901643d4e40c0910087a736cd46d +e585b1461374c45a2eca44ca045bc3c1fe984b2b4212e432b0c695b420e708b7 " " -testdata +tests / -utf8 +misc . -toml +rs " : " -2eabce0582bcacb2073e08bbe7ca413f096d14d06e917b107949691e24f84b20 +395f52793fa022e4cdda78675b6a6fba1a3106b4b99c834c39f7801574054bd1 " " -testdata +tests / -word -- -boundary +multiline . -toml +rs " : " -51bc1c498ab825420340a2dd3e6623de4054937ba6d5020ff8cd14b1c1e45271 +1b1a3326ed976437c1357f01d81833ece7ea244f38826246eab55cacd5d0862a " " tests / -fuzz -/ -mod +noparse . rs " : " -7b01a803e1c0b5a45c062d493723553f263c57e269eade1475eb789694635d5c +12b6be0eff3d80779d33c6459396c74c0f6ebf4ddc9f1d33c3e747ea9e3bf268 " " tests / -fuzz -/ -testdata -/ -crash -- -7eb3351f0965e5d6c1cb98aa8585949ef96531ff +regression +. +rs " : " -be4f42497ac9358eb020bf17cd8fdb9743691824e01d744504613ea2bfb2f663 +1c965fefb8c7a2b1dfdab3e3fdeebaf47846555c50c8005e5537f96a52a3e252 " " tests / -fuzz -/ -testdata -/ -crash -- -8760b19b25d74e3603d4c643e9c7404fdd3631f9 +regression_fuzz +. +rs " : " -19df9a1e1b5a3c0f31cc038b9f2991b161d8577b4a0c8b2fc391cdfecdb6dd85 +a504ec563e0d23bd2039493b7b1767fe1f831d7d668f6f4b2ecd124fc7899bcd " " tests / -fuzz -/ -testdata -/ -crash -- -cd33b13df59ea9d74503986f9d32a270dd43cc04 +replace +. +rs " : " -2fde1668e9e3e60943c28d97c01c90dd3d3882f48475f060ccaf961c228069e8 +66f97532e40697934e2a77605b9002dfd22c46b6033ccb755e7660d855229f41 " " tests / -fuzz -/ -testdata -/ -minimized -- -from -- -8760b19b25d74e3603d4c643e9c7404fdd3631f9 +searcher +. +rs " : " -c9e00f7a31453708560900aa51e358dd5551df494439860594be97bb1fb933ba +ce35e47b0a276a7e8c9060c6a0b225ffba163aebc61fbc15555a6897fa0e552c " " tests / -fuzz -/ -testdata -/ -slow -- -unit -- -3ab758ea520027fefd3f00e1384d9aeef155739e +set +. +rs " : " -4433011f7af46e855e843635cf24a49713bd5705f67176ed928f04d24eda1857 +f1e2af6baeeaed3cc99ed347ff516fe7b2eb0027ef64b891502e1486598eaf8a " " tests / -fuzz -/ -testdata -/ -slow -- -unit -- -5345fccadf3812c53c3ccc7af5aa2741b7b2106c +shortest_match +. +rs " : " -95782a847fc64e9cccdf76e9540b0d16ce80db5d05157a88b958b763f9b8479b +a2c94390c0d61bc24796b4c1288c924e90c8c9c6156fdebb858175177a194a42 " " tests / -fuzz -/ -testdata -/ -slow -- -unit -- -6bd643eec330166e4ada91da2d3f284268481085 +suffix_reverse +. +rs " : " -8ddff12288f6f20cc9d65db76bd8187834f64f844aad48a340d082555ad5cb56 +b95f89397404871227d9efe6df23b9ded147f183db81597e608f693955c668b5 " " tests / -fuzz -/ -testdata -/ -slow -- -unit -- -93c73a43581f205f9aaffd9c17e52b34b17becd0 +test_backtrack +. +rs " : " -eea6919a75fde163634b890e2253a0918cf0ba092357fa617f368bbfa131ba30 +b70c5e5f1241efd76dd9f9dd4a4df8a7b38113bd407d1f5f56867f1176177a59 " " tests / -fuzz -/ -testdata -/ -slow -- -unit -- -9ca9cc9929fee1fcbb847a78384effb8b98ea18a +test_backtrack_bytes +. +rs " : " -a806f73b900046977267acceb83b105bac7ee21ede2edc2927afe1e1f0149f00 +b8a111d4b4109c8bba7e2afb650572c495a14d357fb1f743c1076fb001f704b5 " " tests / -fuzz -/ -testdata -/ -slow -- -unit -- -b8a052f4254802edbe5f569b6ce6e9b6c927e9d6 +test_backtrack_utf8bytes +. +rs " : " -9540cf58241cde3bc0db8364e0ccff67ff1ff9721c85b0d2ca27354c0cbf2650 +c0c279785d18beac2b4e178e7bf6c14ed235d65f00ca467cfd9c333d79487649 " " tests / -lib +test_crates_regex . rs " : " -33a37711d8677994f87b19be40b24a323d41de18fb161c850b4ccea9fe4c4156 +fd9525c2eef0e2f8cb7f787bc2b721bcd0b5d84f3bca49adfe48d657a99c721a " " tests / -misc +test_default . rs " : " -5ac5858325451e1d70f308ca0bcead5a354d095a7473800c11065231c319c456 +c2dfa0298896f86f1be2abf6b0c347a7ca12f95aeac92bf614dc3b86bdfff269 " " tests / -regression +test_default_bytes . rs " : " -3490aac99fdbf3f0949ba1f338d5184a84b505ebd96d0b6d6145c610587aa60b +831d3e6bfb882feb15f700e30304bd34328f888fb4c15c7169371e25024ce9a7 " " tests / -regression_fuzz +test_nfa . rs " : " -57e0bcba0fdfa7797865e35ae547cd7fe1c6132b80a7bfdfb06eb053a568b00d +f119fc43a018249c39c813d57096b0654ff69f337345f2bbd9b0e61cc9137285 " " tests / -replace +test_nfa_bytes . rs " : " -78ff9bf7f78783ad83a78041bb7ee0705c7efc85b4d12301581d0ce5b2a59325 +89eae3bef6a1d0bcea6b5de5be35ad72f613f2ceb8b58fe82a6c6ef2ccdc07d0 " " tests / -searcher +test_nfa_utf8bytes . rs " : " -04152e5c86431deec0c196d2564a11bc4ec36f14c77e8c16a2f9d1cbc9fc574e +7d830b4aa401887d7cf098b62fed4cd8017ef8b61f625c7c9a2159a6b4cfeb71 " " tests / -suite_bytes +unicode . rs " : " -7697b04e5b181aa78b3654bd2dbe1c792d9626197573ed8c649f1da8b481817d +1af9db7f09a6b0113b8a64733e06c8415fef720b2fdef227ae398d94332287cd " " tests / -suite_bytes_set +word_boundary . rs " : " -d970168fab57a9edc60ff26a2bb7d0cc714d4298e4ee9eadba9da44a6569f2bb +7081317ddcec1e82dd4a2090a571c6abf2ff4bbfa8cd10395e1eb3f386157fae " " tests / -suite_string +word_boundary_ascii . rs " : " -1be0cf8922171f8323f99e8ecedbbf1846d339620d0dc2fd490901cbbbd2622e +cd0be5b5b485de0ba7994b42e2864585556c3d2d8bf5eab05b58931d9aaf4b87 " " tests / -suite_string_set +word_boundary_unicode . rs " : " -22743107206d913521f9adb728482aed3a9625ff7b15a83df057bbf1f7050e03 +75dbcc35d3abc0f9795c2ea99e216dc227b0a5b58e9ca5eef767815ff0513921 " } " @@ -2651,6 +927,6 @@ package " : " -12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29 +48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733 " } diff --git a/third_party/rust/regex/CHANGELOG.md b/third_party/rust/regex/CHANGELOG.md index 771db8c70864b..b3705179b46a7 100644 --- a/third_party/rust/regex/CHANGELOG.md +++ b/third_party/rust/regex/CHANGELOG.md @@ -1,4238 +1,5 @@ 1 . -9 -. -4 -( -2023 -- -08 -- -26 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -patch -release -that -fixes -a -bug -where -RegexSet -: -: -is_match -( -. -. -) -could -incorrectly -return -false -( -even -when -RegexSet -: -: -matches -( -. -. -) -. -matched_any -( -) -returns -true -) -. -Bug -fixes -: -* -[ -BUG -# -1070 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -1070 -) -: -Fix -a -bug -where -a -prefilter -was -incorrectly -configured -for -a -RegexSet -. -1 -. -9 -. -3 -( -2023 -- -08 -- -05 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -patch -release -that -fixes -a -bug -where -some -searches -could -result -in -incorrect -match -offsets -being -reported -. -It -is -difficult -to -characterize -the -types -of -regexes -susceptible -to -this -bug -. -They -generally -involve -patterns -that -contain -no -prefix -or -suffix -literals -but -have -an -inner -literal -along -with -a -regex -prefix -that -can -conditionally -match -. -Bug -fixes -: -* -[ -BUG -# -1060 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -1060 -) -: -Fix -a -bug -with -the -reverse -inner -literal -optimization -reporting -incorrect -match -offsets -. -1 -. -9 -. -2 -( -2023 -- -08 -- -05 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -patch -release -that -fixes -another -memory -usage -regression -. -This -particular -regression -occurred -only -when -using -a -RegexSet -. -In -some -cases -much -more -heap -memory -( -by -one -or -two -orders -of -magnitude -) -was -allocated -than -in -versions -prior -to -1 -. -9 -. -0 -. -Bug -fixes -: -* -[ -BUG -# -1059 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -1059 -) -: -Fix -a -memory -usage -regression -when -using -a -RegexSet -. -1 -. -9 -. -1 -( -2023 -- -07 -- -07 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -patch -release -which -fixes -a -memory -usage -regression -. -In -the -regex -1 -. -9 -release -one -of -the -internal -engines -used -a -more -aggressive -allocation -strategy -than -what -was -done -previously -. -This -patch -release -reverts -to -the -prior -on -- -demand -strategy -. -Bug -fixes -: -* -[ -BUG -# -1027 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -1027 -) -: -Change -the -allocation -strategy -for -the -backtracker -to -be -less -aggressive -. -1 -. -9 -. -0 -( -2023 -- -07 -- -05 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -release -marks -the -end -of -a -[ -years -long -rewrite -of -the -regex -crate -internals -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -656 -) -. -Since -this -is -such -a -big -release -please -report -any -issues -or -regressions -you -find -. -We -would -also -love -to -hear -about -improvements -as -well -. -In -addition -to -many -internal -improvements -that -should -hopefully -result -in -" -my -regex -searches -are -faster -" -there -have -also -been -a -few -API -additions -: -* -A -new -Captures -: -: -extract -method -for -quickly -accessing -the -substrings -that -match -each -capture -group -in -a -regex -. -* -A -new -inline -flag -R -which -enables -CRLF -mode -. -This -makes -. -match -any -Unicode -scalar -value -except -for -\ -r -and -\ -n -and -also -makes -( -? -m -: -^ -) -and -( -? -m -: -) -match -after -and -before -both -\ -r -and -\ -n -respectively -but -never -between -a -\ -r -and -\ -n -. -* -RegexBuilder -: -: -line_terminator -was -added -to -further -customize -the -line -terminator -used -by -( -? -m -: -^ -) -and -( -? -m -: -) -to -be -any -arbitrary -byte -. -* -The -std -Cargo -feature -is -now -actually -optional -. -That -is -the -regex -crate -can -be -used -without -the -standard -library -. -* -Because -regex -1 -. -9 -may -make -binary -size -and -compile -times -even -worse -a -new -experimental -crate -called -regex -- -lite -has -been -published -. -It -prioritizes -binary -size -and -compile -times -over -functionality -( -like -Unicode -) -and -performance -. -It -shares -no -code -with -the -regex -crate -. -New -features -: -* -[ -FEATURE -# -244 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -244 -) -: -One -can -opt -into -CRLF -mode -via -the -R -flag -. -e -. -g -. -( -? -mR -: -) -matches -just -before -\ -r -\ -n -. -* -[ -FEATURE -# -259 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -259 -) -: -Multi -- -pattern -searches -with -offsets -can -be -done -with -regex -- -automata -0 -. -3 -. -* -[ -FEATURE -# -476 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -476 -) -: -std -is -now -an -optional -feature -. -regex -may -be -used -with -only -alloc -. -* -[ -FEATURE -# -644 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -644 -) -: -RegexBuilder -: -: -line_terminator -configures -how -( -? -m -: -^ -) -and -( -? -m -: -) -behave -. -* -[ -FEATURE -# -675 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -675 -) -: -Anchored -search -APIs -are -now -available -in -regex -- -automata -0 -. -3 -. -* -[ -FEATURE -# -824 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -824 -) -: -Add -new -Captures -: -: -extract -method -for -easier -capture -group -access -. -* -[ -FEATURE -# -961 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -961 -) -: -Add -regex -- -lite -crate -with -smaller -binary -sizes -and -faster -compile -times -. -* -[ -FEATURE -# -1022 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -pull -/ -1022 -) -: -Add -TryFrom -implementations -for -the -Regex -type -. -Performance -improvements -: -* -[ -PERF -# -68 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -68 -) -: -Added -a -one -- -pass -DFA -engine -for -faster -capture -group -matching -. -* -[ -PERF -# -510 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -510 -) -: -Inner -literals -are -now -used -to -accelerate -searches -e -. -g -. -\ -w -+ -\ -w -+ -will -scan -for -. -* -[ -PERF -# -787 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -787 -) -[ -PERF -# -891 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -891 -) -: -Makes -literal -optimizations -apply -to -regexes -of -the -form -\ -b -( -foo -| -bar -| -quux -) -\ -b -. -( -There -are -many -more -performance -improvements -as -well -but -not -all -of -them -have -specific -issues -devoted -to -them -. -) -Bug -fixes -: -* -[ -BUG -# -429 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -) -: -Fix -matching -bugs -related -to -\ -B -and -inconsistencies -across -internal -engines -. -* -[ -BUG -# -517 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -517 -) -: -Fix -matching -bug -with -capture -groups -. -* -[ -BUG -# -579 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -579 -) -: -Fix -matching -bug -with -word -boundaries -. -* -[ -BUG -# -779 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -779 -) -: -Fix -bug -where -some -regexes -like -( -re -) -+ -were -not -equivalent -to -( -re -) -( -re -) -* -. -* -[ -BUG -# -850 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -850 -) -: -Fix -matching -bug -inconsistency -between -NFA -and -DFA -engines -. -* -[ -BUG -# -921 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -921 -) -: -Fix -matching -bug -where -literal -extraction -got -confused -by -. -* -[ -BUG -# -976 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -976 -) -: -Add -documentation -to -replacement -routines -about -dealing -with -fallibility -. -* -[ -BUG -# -1002 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -1002 -) -: -Use -corpus -rejection -in -fuzz -testing -. -1 -. -8 -. -4 -( -2023 -- -06 -- -05 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -patch -release -that -fixes -a -bug -where -( -? -- -u -: -\ -B -) -was -allowed -in -Unicode -regexes -despite -the -fact -that -the -current -matching -engines -can -report -match -offsets -between -the -code -units -of -a -single -UTF -- -8 -encoded -codepoint -. -That -in -turn -means -that -match -offsets -that -split -a -codepoint -could -be -reported -which -in -turn -results -in -panicking -when -one -uses -them -to -slice -a -& -str -. -This -bug -occurred -in -the -transition -to -regex -1 -. -8 -because -the -underlying -syntactical -error -that -prevented -this -regex -from -compiling -was -intentionally -removed -. -That -' -s -because -( -? -- -u -: -\ -B -) -will -be -permitted -in -Unicode -regexes -in -regex -1 -. -9 -but -the -matching -engines -will -guarantee -to -never -report -match -offsets -that -split -a -codepoint -. -When -the -underlying -syntactical -error -was -removed -no -code -was -added -to -ensure -that -( -? -- -u -: -\ -B -) -didn -' -t -compile -in -the -regex -1 -. -8 -transition -release -. -This -release -regex -1 -. -8 -. -4 -adds -that -code -such -that -Regex -: -: -new -( -r -" -( -? -- -u -: -\ -B -) -" -) -returns -to -the -regex -< -1 -. -8 -behavior -of -not -compiling -. -( -A -bytes -: -: -Regex -can -still -of -course -compile -it -. -) -Bug -fixes -: -* -[ -BUG -# -1006 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -1006 -) -: -Fix -a -bug -where -( -? -- -u -: -\ -B -) -was -allowed -in -Unicode -regexes -and -in -turn -could -lead -to -match -offsets -that -split -a -codepoint -in -& -str -. -1 -. -8 -. -3 -( -2023 -- -05 -- -25 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -patch -release -that -fixes -a -bug -where -the -regex -would -report -a -match -at -every -position -even -when -it -shouldn -' -t -. -This -could -occur -in -a -very -small -subset -of -regexes -usually -an -alternation -of -simple -literals -that -have -particular -properties -. -( -See -the -issue -linked -below -for -a -more -precise -description -. -) -Bug -fixes -: -* -[ -BUG -# -999 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -999 -) -: -Fix -a -bug -where -a -match -at -every -position -is -erroneously -reported -. -1 -. -8 -. -2 -( -2023 -- -05 -- -22 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -patch -release -that -fixes -a -bug -where -regex -compilation -could -panic -in -debug -mode -for -regexes -with -large -counted -repetitions -. -For -example -a -{ -2147483516 -} -{ -2147483416 -} -{ -5 -} -resulted -in -an -integer -overflow -that -wrapped -in -release -mode -but -panicking -in -debug -mode -. -Despite -the -unintended -wrapping -arithmetic -in -release -mode -it -didn -' -t -cause -any -other -logical -bugs -since -the -errant -code -was -for -new -analysis -that -wasn -' -t -used -yet -. -Bug -fixes -: -* -[ -BUG -# -995 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -995 -) -: -Fix -a -bug -where -regex -compilation -with -large -counted -repetitions -could -panic -. -1 -. -8 -. -1 -( -2023 -- -04 -- -21 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -patch -release -that -fixes -a -bug -where -a -regex -match -could -be -reported -where -none -was -found -. -Specifically -the -bug -occurs -when -a -pattern -contains -some -literal -prefixes -that -could -be -extracted -_and_ -an -optional -word -boundary -in -the -prefix -. -Bug -fixes -: -* -[ -BUG -# -981 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -981 -) -: -Fix -a -bug -where -a -word -boundary -could -interact -with -prefix -literal -optimizations -and -lead -to -a -false -positive -match -. -1 -. -8 -. -0 -( -2023 -- -04 -- -20 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -sizeable -release -that -will -be -soon -followed -by -another -sizeable -release -. -Both -of -them -will -combined -close -over -40 -existing -issues -and -PRs -. -This -first -release -despite -its -size -essentially -represents -preparatory -work -for -the -second -release -which -will -be -even -bigger -. -Namely -this -release -: -* -Increases -the -MSRV -to -Rust -1 -. -60 -. -0 -which -was -released -about -1 -year -ago -. -* -Upgrades -its -dependency -on -aho -- -corasick -to -the -recently -released -1 -. -0 -version -. -* -Upgrades -its -dependency -on -regex -- -syntax -to -the -simultaneously -released -0 -. -7 -version -. -The -changes -to -regex -- -syntax -principally -revolve -around -a -rewrite -of -its -literal -extraction -code -and -a -number -of -simplifications -and -optimizations -to -its -high -- -level -intermediate -representation -( -HIR -) -. -The -second -release -which -will -follow -~ -shortly -after -the -release -above -will -contain -a -soup -- -to -- -nuts -rewrite -of -every -regex -engine -. -This -will -be -done -by -bringing -[ -regex -- -automata -] -( -https -: -/ -/ -github -. -com -/ -BurntSushi -/ -regex -- -automata -) -into -this -repository -and -then -changing -the -regex -crate -to -be -nothing -but -an -API -shim -layer -on -top -of -regex -- -automata -' -s -API -. -These -tandem -releases -are -the -culmination -of -about -3 -years -of -on -- -and -- -off -work -that -[ -began -in -earnest -in -March -2020 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -656 -) -. -Because -of -the -scale -of -changes -involved -in -these -releases -I -would -love -to -hear -about -your -experience -. -Especially -if -you -notice -undocumented -changes -in -behavior -or -performance -changes -( -positive -* -or -* -negative -) -. -Most -changes -in -the -first -release -are -listed -below -. -For -more -details -please -see -the -commit -log -which -reflects -a -linear -and -decently -documented -history -of -all -changes -. -New -features -: -* -[ -FEATURE -# -501 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -501 -) -: -Permit -many -more -characters -to -be -escaped -even -if -they -have -no -significance -. -More -specifically -any -ASCII -character -except -for -[ -0 -- -9A -- -Za -- -z -< -> -] -can -now -be -escaped -. -Also -a -new -routine -is_escapeable_character -has -been -added -to -regex -- -syntax -to -query -whether -a -character -is -escapeable -or -not -. -* -[ -FEATURE -# -547 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -547 -) -: -Add -Regex -: -: -captures_at -. -This -fills -a -hole -in -the -API -but -doesn -' -t -otherwise -introduce -any -new -expressive -power -. -* -[ -FEATURE -# -595 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -595 -) -: -Capture -group -names -are -now -Unicode -- -aware -. -They -can -now -begin -with -either -a -_ -or -any -" -alphabetic -" -codepoint -. -After -the -first -codepoint -subsequent -codepoints -can -be -any -sequence -of -alpha -- -numeric -codepoints -along -with -_ -. -[ -and -] -. -Note -that -replacement -syntax -has -not -changed -. -* -[ -FEATURE -# -810 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -810 -) -: -Add -Match -: -: -is_empty -and -Match -: -: -len -APIs -. -* -[ -FEATURE -# -905 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -905 -) -: -Add -an -impl -Default -for -RegexSet -with -the -default -being -the -empty -set -. -* -[ -FEATURE -# -908 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -908 -) -: -A -new -method -Regex -: -: -static_captures_len -has -been -added -which -returns -the -number -of -capture -groups -in -the -pattern -if -and -only -if -every -possible -match -always -contains -the -same -number -of -matching -groups -. -* -[ -FEATURE -# -955 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -955 -) -: -Named -captures -can -now -be -written -as -( -? -< -name -> -re -) -in -addition -to -( -? -P -< -name -> -re -) -. -* -FEATURE -: -regex -- -syntax -now -supports -empty -character -classes -. -* -FEATURE -: -regex -- -syntax -now -has -an -optional -std -feature -. -( -This -will -come -to -regex -in -the -second -release -. -) -* -FEATURE -: -The -Hir -type -in -regex -- -syntax -has -had -a -number -of -simplifications -made -to -it -. -* -FEATURE -: -regex -- -syntax -has -support -for -a -new -R -flag -for -enabling -CRLF -mode -. -This -will -be -supported -in -regex -proper -in -the -second -release -. -* -FEATURE -: -regex -- -syntax -now -has -proper -support -for -" -regex -that -never -matches -" -via -Hir -: -: -fail -( -) -. -* -FEATURE -: -The -hir -: -: -literal -module -of -regex -- -syntax -has -been -completely -re -- -worked -. -It -now -has -more -documentation -examples -and -advice -. -* -FEATURE -: -The -allow_invalid_utf8 -option -in -regex -- -syntax -has -been -renamed -to -utf8 -and -the -meaning -of -the -boolean -has -been -flipped -. -Performance -improvements -: -* -PERF -: -The -upgrade -to -aho -- -corasick -1 -. -0 -may -improve -performance -in -some -cases -. -It -' -s -difficult -to -characterize -exactly -which -patterns -this -might -impact -but -if -there -are -a -small -number -of -longish -( -> -= -4 -bytes -) -prefix -literals -then -it -might -be -faster -than -before -. -Bug -fixes -: -* -[ -BUG -# -514 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -514 -) -: -Improve -Debug -impl -for -Match -so -that -it -doesn -' -t -show -the -entire -haystack -. -* -BUGS -[ -# -516 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -516 -) -[ -# -731 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -731 -) -: -Fix -a -number -of -issues -with -printing -Hir -values -as -regex -patterns -. -* -[ -BUG -# -610 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -610 -) -: -Add -explicit -example -of -foo -| -bar -in -the -regex -syntax -docs -. -* -[ -BUG -# -625 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -625 -) -: -Clarify -that -SetMatches -: -: -len -does -not -( -regretably -) -refer -to -the -number -of -matches -in -the -set -. -* -[ -BUG -# -660 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -660 -) -: -Clarify -" -verbose -mode -" -in -regex -syntax -documentation -. -* -BUG -[ -# -738 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -738 -) -[ -# -950 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -950 -) -: -Fix -CaptureLocations -: -: -get -so -that -it -never -panics -. -* -[ -BUG -# -747 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -747 -) -: -Clarify -documentation -for -Regex -: -: -shortest_match -. -* -[ -BUG -# -835 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -835 -) -: -Fix -\ -p -{ -Sc -} -so -that -it -is -equivalent -to -\ -p -{ -Currency_Symbol -} -. -* -[ -BUG -# -846 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -846 -) -: -Add -more -clarifying -documentation -to -the -CompiledTooBig -error -variant -. -* -[ -BUG -# -854 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -854 -) -: -Clarify -that -regex -: -: -Regex -searches -as -if -the -haystack -is -a -sequence -of -Unicode -scalar -values -. -* -[ -BUG -# -884 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -884 -) -: -Replace -__Nonexhaustive -variants -with -# -[ -non_exhaustive -] -attribute -. -* -[ -BUG -# -893 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -pull -/ -893 -) -: -Optimize -case -folding -since -it -can -get -quite -slow -in -some -pathological -cases -. -* -[ -BUG -# -895 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -895 -) -: -Reject -( -? -- -u -: -\ -W -) -in -regex -: -: -Regex -APIs -. -* -[ -BUG -# -942 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -942 -) -: -Add -a -missing -void -keyword -to -indicate -" -no -parameters -" -in -C -API -. -* -[ -BUG -# -965 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -965 -) -: -Fix -\ -p -{ -Lc -} -so -that -it -is -equivalent -to -\ -p -{ -Cased_Letter -} -. -* -[ -BUG -# -975 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -975 -) -: -Clarify -documentation -for -\ -pX -syntax -. -1 -. -7 -. -3 -( -2023 -- -03 -- -24 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -small -release -that -fixes -a -bug -in -Regex -: -: -shortest_match_at -that -could -cause -it -to -panic -even -when -the -offset -given -is -valid -. -Bug -fixes -: -* -[ -BUG -# -969 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -969 -) -: -Fix -a -bug -in -how -the -reverse -DFA -was -called -for -Regex -: -: -shortest_match_at -. -1 -. -7 -. -2 -( -2023 -- -03 -- -21 -) -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -This -is -a -small -release -that -fixes -a -failing -test -on -FreeBSD -. -Bug -fixes -: -* -[ -BUG -# -967 -] -( -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -967 -) -: -Fix -" -no -stack -overflow -" -test -which -can -fail -due -to -the -small -stack -size -. -1 -. 7 . 1 @@ -11909,7 +7676,6 @@ over a year . -731 New features : diff --git a/third_party/rust/regex/Cargo.lock b/third_party/rust/regex/Cargo.lock new file mode 100644 index 0000000000000..c1f9abc412b07 --- /dev/null +++ b/third_party/rust/regex/Cargo.lock @@ -0,0 +1,638 @@ +# +This +file +is +automatically +generated +by +Cargo +. +# +It +is +not +intended +for +manual +editing +. +version += +3 +[ +[ +package +] +] +name += +" +aho +- +corasick +" +version += +" +0 +. +7 +. +20 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac +" +dependencies += +[ +" +memchr +" +] +[ +[ +package +] +] +name += +" +cfg +- +if +" +version += +" +1 +. +0 +. +0 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd +" +[ +[ +package +] +] +name += +" +getrandom +" +version += +" +0 +. +2 +. +8 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31 +" +dependencies += +[ +" +cfg +- +if +" +" +libc +" +" +wasi +" +] +[ +[ +package +] +] +name += +" +lazy_static +" +version += +" +1 +. +4 +. +0 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646 +" +[ +[ +package +] +] +name += +" +libc +" +version += +" +0 +. +2 +. +139 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79 +" +[ +[ +package +] +] +name += +" +memchr +" +version += +" +2 +. +5 +. +0 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d +" +[ +[ +package +] +] +name += +" +quickcheck +" +version += +" +1 +. +0 +. +3 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6 +" +dependencies += +[ +" +rand +" +] +[ +[ +package +] +] +name += +" +rand +" +version += +" +0 +. +8 +. +5 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 +" +dependencies += +[ +" +rand_core +" +] +[ +[ +package +] +] +name += +" +rand_core +" +version += +" +0 +. +6 +. +4 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c +" +dependencies += +[ +" +getrandom +" +] +[ +[ +package +] +] +name += +" +regex +" +version += +" +1 +. +7 +. +1 +" +dependencies += +[ +" +aho +- +corasick +" +" +lazy_static +" +" +memchr +" +" +quickcheck +" +" +rand +" +" +regex +- +syntax +" +] +[ +[ +package +] +] +name += +" +regex +- +syntax +" +version += +" +0 +. +6 +. +28 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848 +" +[ +[ +package +] +] +name += +" +wasi +" +version += +" +0 +. +11 +. +0 ++ +wasi +- +snapshot +- +preview1 +" +source += +" +registry ++ +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +crates +. +io +- +index +" +checksum += +" +9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423 +" diff --git a/third_party/rust/regex/Cargo.toml b/third_party/rust/regex/Cargo.toml index 65cc204ab1e89..8daa9a1e04642 100644 --- a/third_party/rust/regex/Cargo.toml +++ b/third_party/rust/regex/Cargo.toml @@ -100,18 +100,7 @@ package edition = " -2021 -" -rust -- -version -= -" -1 -. -60 -. -0 +2018 " name = @@ -123,9 +112,9 @@ version " 1 . -9 +7 . -4 +1 " authors = @@ -136,16 +125,6 @@ Rust Project Developers " -" -Andrew -Gallant -< -jamslam -gmail -. -com -> -" ] exclude = @@ -272,75 +251,57 @@ lang regex " [ -package -. -metadata -. -docs +profile . -rs +bench ] -all -- -features +debug = true -rustdoc -- -args -= -[ -" -- -- -cfg -" -" -docsrs -" -] [ profile . -bench +release ] debug = -2 +true [ profile . -dev +test ] -opt -- -level -= -3 debug = -2 +true [ -profile -. -release +lib ] -debug +doctest = -2 +false +bench += +false +[ [ -profile -. test ] -opt -- -level +] +name = -3 -debug +" +default +" +path = -2 +" +tests +/ +test_default +. +rs +" [ [ test @@ -349,98 +310,168 @@ test name = " -integration +default +- +bytes " path = " tests / -lib +test_default_bytes . rs " [ -dependencies -. -aho -- -corasick +[ +test ] -version +] +name = " -1 -. -0 -. -0 +nfa " -optional +path = -true -[ -dependencies +" +tests +/ +test_nfa . -memchr +rs +" +[ +[ +test ] -version +] +name = " -2 -. -5 -. -0 +nfa +- +utf8bytes " -optional +path = -true -[ -dependencies +" +tests +/ +test_nfa_utf8bytes . -regex -- -automata +rs +" +[ +[ +test ] -version +] +name = " -0 -. -3 -. -7 +nfa +- +bytes " -features +path = +" +tests +/ +test_nfa_bytes +. +rs +" +[ [ +test +] +] +name += " -alloc +backtrack " +path += " -syntax +tests +/ +test_backtrack +. +rs " +[ +[ +test +] +] +name += " -meta +backtrack +- +utf8bytes " +path += " -nfa +tests +/ +test_backtrack_utf8bytes +. +rs +" +[ +[ +test +] +] +name += +" +backtrack - -pikevm +bytes +" +path += +" +tests +/ +test_backtrack_bytes +. +rs " +[ +[ +test ] -default +] +name += +" +crates - -features +regex +" +path = -false +" +tests +/ +test_crates_regex +. +rs +" [ dependencies . -regex +aho - -syntax +corasick ] version = @@ -449,74 +480,44 @@ version . 7 . -5 +18 " -default -- -features +optional = -false +true [ -dev -- dependencies . -anyhow +memchr ] version = " -1 -. -0 +2 . -69 -" -[ -dev -- -dependencies +4 . -doc -- -comment -] -version -= -" 0 -. -3 " +optional += +true [ -dev -- dependencies . -env_logger +regex +- +syntax ] version = " 0 . -9 +6 . -3 -" -features -= -[ -" -atty +27 " -" -humantime -" -" -termcolor -" -] default - features @@ -527,16 +528,12 @@ dev - dependencies . -once_cell +lazy_static ] version = " 1 -. -17 -. -1 " [ dev @@ -564,19 +561,32 @@ dev - dependencies . -regex -- -test +rand ] version = " 0 . -1 +8 . -0 +3 " +features += +[ +" +getrandom +" +" +small_rng +" +] +default +- +features += +false [ features ] @@ -600,25 +610,6 @@ syntax default " ] -logging -= -[ -" -aho -- -corasick -? -/ -logging -" -" -regex -- -automata -/ -logging -" -] pattern = [ @@ -639,16 +630,6 @@ dfa " perf - -onepass -" -" -perf -- -backtrack -" -" -perf -- inline " " @@ -659,21 +640,6 @@ literal ] perf - -backtrack -= -[ -" -regex -- -automata -/ -nfa -- -backtrack -" -] -perf -- cache = [ @@ -683,54 +649,12 @@ perf dfa = [ -" -regex -- -automata -/ -hybrid -" -] -perf -- -dfa -- -full -= -[ -" -regex -- -automata -/ -dfa -- -build -" -" -regex -- -automata -/ -dfa -- -search -" ] perf - inline = [ -" -regex -- -automata -/ -perf -- -inline -" ] perf - @@ -738,73 +662,17 @@ literal = [ " -dep -: aho - corasick " " -dep -: memchr " -" -regex -- -automata -/ -perf -- -literal -" -] -perf -- -onepass -= -[ -" -regex -- -automata -/ -dfa -- -onepass -" ] std = [ -" -aho -- -corasick -? -/ -std -" -" -memchr -? -/ -std -" -" -regex -- -automata -/ -std -" -" -regex -- -syntax -/ -std -" ] unicode = @@ -847,13 +715,6 @@ segment " regex - -automata -/ -unicode -" -" -regex -- syntax / unicode @@ -867,15 +728,6 @@ age " regex - -automata -/ -unicode -- -age -" -" -regex -- syntax / unicode @@ -891,15 +743,6 @@ bool " regex - -automata -/ -unicode -- -bool -" -" -regex -- syntax / unicode @@ -915,15 +758,6 @@ case " regex - -automata -/ -unicode -- -case -" -" -regex -- syntax / unicode @@ -939,15 +773,6 @@ gencat " regex - -automata -/ -unicode -- -gencat -" -" -regex -- syntax / unicode @@ -963,26 +788,6 @@ perl " regex - -automata -/ -unicode -- -perl -" -" -regex -- -automata -/ -unicode -- -word -- -boundary -" -" -regex -- syntax / unicode @@ -998,15 +803,6 @@ script " regex - -automata -/ -unicode -- -script -" -" -regex -- syntax / unicode @@ -1022,15 +818,6 @@ segment " regex - -automata -/ -unicode -- -segment -" -" -regex -- syntax / unicode diff --git a/third_party/rust/regex/Cross.toml b/third_party/rust/regex/Cross.toml deleted file mode 100644 index f6aa52335b908..0000000000000 --- a/third_party/rust/regex/Cross.toml +++ /dev/null @@ -1,21 +0,0 @@ -[ -build -. -env -] -passthrough -= -[ -" -RUST_BACKTRACE -" -" -RUST_LOG -" -" -REGEX_TEST -" -" -REGEX_TEST_VERBOSE -" -] diff --git a/third_party/rust/regex/PERFORMANCE.md b/third_party/rust/regex/PERFORMANCE.md new file mode 100644 index 0000000000000..75f610733bfb8 --- /dev/null +++ b/third_party/rust/regex/PERFORMANCE.md @@ -0,0 +1,2732 @@ +Your +friendly +guide +to +understanding +the +performance +characteristics +of +this +crate +. +This +guide +assumes +some +familiarity +with +the +public +API +of +this +crate +which +can +be +found +here +: +https +: +/ +/ +docs +. +rs +/ +regex +# +# +Theory +vs +. +Practice +One +of +the +design +goals +of +this +crate +is +to +provide +worst +case +linear +time +behavior +with +respect +to +the +text +searched +using +finite +state +automata +. +This +means +that +* +in +theory +* +the +performance +of +this +crate +is +much +better +than +most +regex +implementations +which +typically +use +backtracking +which +has +worst +case +exponential +time +. +For +example +try +opening +a +Python +interpreter +and +typing +this +: +> +> +> +import +re +> +> +> +re +. +search +( +' +( +a +* +) +* +c +' +' +a +' +* +30 +) +. +span +( +) +I +' +ll +wait +. +At +some +point +you +' +ll +figure +out +that +it +won +' +t +terminate +any +time +soon +. +^ +C +it +. +The +promise +of +this +crate +is +that +* +this +pathological +behavior +can +' +t +happen +* +. +With +that +said +just +because +we +have +protected +ourselves +against +worst +case +exponential +behavior +doesn +' +t +mean +we +are +immune +from +large +constant +factors +or +places +where +the +current +regex +engine +isn +' +t +quite +optimal +. +This +guide +will +detail +those +cases +and +provide +guidance +on +how +to +avoid +them +among +other +bits +of +general +advice +. +# +# +Thou +Shalt +Not +Compile +Regular +Expressions +In +A +Loop +* +* +Advice +* +* +: +Use +lazy_static +to +amortize +the +cost +of +Regex +compilation +. +Don +' +t +do +it +unless +you +really +don +' +t +mind +paying +for +it +. +Compiling +a +regular +expression +in +this +crate +is +quite +expensive +. +It +is +conceivable +that +it +may +get +faster +some +day +but +I +wouldn +' +t +hold +out +hope +for +say +an +order +of +magnitude +improvement +. +In +particular +compilation +can +take +any +where +from +a +few +dozen +microseconds +to +a +few +dozen +milliseconds +. +Yes +milliseconds +. +Unicode +character +classes +in +particular +have +the +largest +impact +on +compilation +performance +. +At +the +time +of +writing +for +example +\ +pL +{ +100 +} +takes +around +44ms +to +compile +. +This +is +because +\ +pL +corresponds +to +every +letter +in +Unicode +and +compilation +must +turn +it +into +a +proper +automaton +that +decodes +a +subset +of +UTF +- +8 +which +corresponds +to +those +letters +. +Compilation +also +spends +some +cycles +shrinking +the +size +of +the +automaton +. +This +means +that +in +order +to +realize +efficient +regex +matching +one +must +* +amortize +the +cost +of +compilation +* +. +Trivially +if +a +call +to +is_match +is +inside +a +loop +then +make +sure +your +call +to +Regex +: +: +new +is +* +outside +* +that +loop +. +In +many +programming +languages +regular +expressions +can +be +conveniently +defined +and +compiled +in +a +global +scope +and +code +can +reach +out +and +use +them +as +if +they +were +global +static +variables +. +In +Rust +there +is +really +no +concept +of +life +- +before +- +main +and +therefore +one +cannot +utter +this +: +static +MY_REGEX +: +Regex += +Regex +: +: +new +( +" +. +. +. +" +) +. +unwrap +( +) +; +Unfortunately +this +would +seem +to +imply +that +one +must +pass +Regex +objects +around +to +everywhere +they +are +used +which +can +be +especially +painful +depending +on +how +your +program +is +structured +. +Thankfully +the +[ +lazy_static +] +( +https +: +/ +/ +crates +. +io +/ +crates +/ +lazy_static +) +crate +provides +an +answer +that +works +well +: +use +lazy_static +: +: +lazy_static +; +use +regex +: +: +Regex +; +fn +some_helper_function +( +text +: +& +str +) +- +> +bool +{ +lazy_static +! +{ +static +ref +MY_REGEX +: +Regex += +Regex +: +: +new +( +" +. +. +. +" +) +. +unwrap +( +) +; +} +MY_REGEX +. +is_match +( +text +) +} +In +other +words +the +lazy_static +! +macro +enables +us +to +define +a +Regex +* +as +if +* +it +were +a +global +static +value +. +What +is +actually +happening +under +the +covers +is +that +the +code +inside +the +macro +( +i +. +e +. +Regex +: +: +new +( +. +. +. +) +) +is +run +on +* +first +use +* +of +MY_REGEX +via +a +Deref +impl +. +The +implementation +is +admittedly +magical +but +it +' +s +self +contained +and +everything +works +exactly +as +you +expect +. +In +particular +MY_REGEX +can +be +used +from +multiple +threads +without +wrapping +it +in +an +Arc +or +a +Mutex +. +On +that +note +. +. +. +# +# +Using +a +regex +from +multiple +threads +* +* +Advice +* +* +: +The +performance +impact +from +using +a +Regex +from +multiple +threads +is +likely +negligible +. +If +necessary +clone +the +Regex +so +that +each +thread +gets +its +own +copy +. +Cloning +a +regex +does +not +incur +any +additional +memory +overhead +than +what +would +be +used +by +using +a +Regex +from +multiple +threads +simultaneously +. +* +Its +only +cost +is +ergonomics +. +* +It +is +supported +and +encouraged +to +define +your +regexes +using +lazy_static +! +as +if +they +were +global +static +values +and +then +use +them +to +search +text +from +multiple +threads +simultaneously +. +One +might +imagine +that +this +is +possible +because +a +Regex +represents +a +* +compiled +* +program +so +that +any +allocation +or +mutation +is +already +done +and +is +therefore +read +- +only +. +Unfortunately +this +is +not +true +. +Each +type +of +search +strategy +in +this +crate +requires +some +kind +of +mutable +scratch +space +to +use +* +during +search +* +. +For +example +when +executing +a +DFA +its +states +are +computed +lazily +and +reused +on +subsequent +searches +. +Those +states +go +into +that +mutable +scratch +space +. +The +mutable +scratch +space +is +an +implementation +detail +and +in +general +its +mutation +should +not +be +observable +from +users +of +this +crate +. +Therefore +it +uses +interior +mutability +. +This +implies +that +Regex +can +either +only +be +used +from +one +thread +or +it +must +do +some +sort +of +synchronization +. +Either +choice +is +reasonable +but +this +crate +chooses +the +latter +in +particular +because +it +is +ergonomic +and +makes +use +with +lazy_static +! +straight +forward +. +Synchronization +implies +* +some +* +amount +of +overhead +. +When +a +Regex +is +used +from +a +single +thread +this +overhead +is +negligible +. +When +a +Regex +is +used +from +multiple +threads +simultaneously +it +is +possible +for +the +overhead +of +synchronization +from +contention +to +impact +performance +. +The +specific +cases +where +contention +may +happen +is +if +you +are +calling +any +of +these +methods +repeatedly +from +multiple +threads +simultaneously +: +* +shortest_match +* +is_match +* +find +* +captures +In +particular +every +invocation +of +one +of +these +methods +must +synchronize +with +other +threads +to +retrieve +its +mutable +scratch +space +before +searching +can +start +. +If +however +you +are +using +one +of +these +methods +: +* +find_iter +* +captures_iter +Then +you +may +not +suffer +from +contention +since +the +cost +of +synchronization +is +amortized +on +* +construction +of +the +iterator +* +. +That +is +the +mutable +scratch +space +is +obtained +when +the +iterator +is +created +and +retained +throughout +its +lifetime +. +# +# +Only +ask +for +what +you +need +* +* +Advice +* +* +: +Prefer +in +this +order +: +is_match +find +captures +. +There +are +three +primary +search +methods +on +a +Regex +: +* +is_match +* +find +* +captures +In +general +these +are +ordered +from +fastest +to +slowest +. +is_match +is +fastest +because +it +doesn +' +t +actually +need +to +find +the +start +or +the +end +of +the +leftmost +- +first +match +. +It +can +quit +immediately +after +it +knows +there +is +a +match +. +For +example +given +the +regex +a ++ +and +the +haystack +aaaaa +the +search +will +quit +after +examining +the +first +byte +. +In +contrast +find +must +return +both +the +start +and +end +location +of +the +leftmost +- +first +match +. +It +can +use +the +DFA +matcher +for +this +but +must +run +it +forwards +once +to +find +the +end +of +the +match +* +and +then +run +it +backwards +* +to +find +the +start +of +the +match +. +The +two +scans +and +the +cost +of +finding +the +real +end +of +the +leftmost +- +first +match +make +this +more +expensive +than +is_match +. +captures +is +the +most +expensive +of +them +all +because +it +must +do +what +find +does +and +then +run +either +the +bounded +backtracker +or +the +Pike +VM +to +fill +in +the +capture +group +locations +. +Both +of +these +are +simulations +of +an +NFA +which +must +spend +a +lot +of +time +shuffling +states +around +. +The +DFA +limits +the +performance +hit +somewhat +by +restricting +the +amount +of +text +that +must +be +searched +via +an +NFA +simulation +. +One +other +method +not +mentioned +is +shortest_match +. +This +method +has +precisely +the +same +performance +characteristics +as +is_match +except +it +will +return +the +end +location +of +when +it +discovered +a +match +. +For +example +given +the +regex +a ++ +and +the +haystack +aaaaa +shortest_match +may +return +1 +as +opposed +to +5 +the +latter +of +which +being +the +correct +end +location +of +the +leftmost +- +first +match +. +# +# +Literals +in +your +regex +may +make +it +faster +* +* +Advice +* +* +: +Literals +can +reduce +the +work +that +the +regex +engine +needs +to +do +. +Use +them +if +you +can +especially +as +prefixes +. +In +particular +if +your +regex +starts +with +a +prefix +literal +the +prefix +is +quickly +searched +before +entering +the +( +much +slower +) +regex +engine +. +For +example +given +the +regex +foo +\ +w ++ +the +literal +foo +will +be +searched +for +using +Boyer +- +Moore +. +If +there +' +s +no +match +then +no +regex +engine +is +ever +used +. +Only +when +there +' +s +a +match +is +the +regex +engine +invoked +at +the +location +of +the +match +which +effectively +permits +the +regex +engine +to +skip +large +portions +of +a +haystack +. +If +a +regex +is +comprised +entirely +of +literals +( +possibly +more +than +one +) +then +it +' +s +possible +that +the +regex +engine +can +be +avoided +entirely +even +when +there +' +s +a +match +. +When +one +literal +is +found +Boyer +- +Moore +is +used +. +When +multiple +literals +are +found +then +an +optimized +version +of +Aho +- +Corasick +is +used +. +This +optimization +is +in +particular +extended +quite +a +bit +in +this +crate +. +Here +are +a +few +examples +of +regexes +that +get +literal +prefixes +detected +: +* +( +foo +| +bar +) +detects +foo +and +bar +* +( +a +| +b +) +c +detects +ac +and +bc +* +[ +ab +] +foo +[ +yz +] +detects +afooy +afooz +bfooy +and +bfooz +* +a +? +b +detects +a +and +b +* +a +* +b +detects +a +and +b +* +( +ab +) +{ +3 +6 +} +detects +ababab +Literals +in +anchored +regexes +can +also +be +used +for +detecting +non +- +matches +very +quickly +. +For +example +^ +foo +\ +w ++ +and +\ +w ++ +foo +may +be +able +to +detect +a +non +- +match +just +by +examining +the +first +( +or +last +) +three +bytes +of +the +haystack +. +# +# +Unicode +word +boundaries +may +prevent +the +DFA +from +being +used +* +* +Advice +* +* +: +In +most +cases +\ +b +should +work +well +. +If +not +use +( +? +- +u +: +\ +b +) +instead +of +\ +b +if +you +care +about +consistent +performance +more +than +correctness +. +It +' +s +a +sad +state +of +the +current +implementation +. +At +the +moment +the +DFA +will +try +to +interpret +Unicode +word +boundaries +as +if +they +were +ASCII +word +boundaries +. +If +the +DFA +comes +across +any +non +- +ASCII +byte +it +will +quit +and +fall +back +to +an +alternative +matching +engine +that +can +handle +Unicode +word +boundaries +correctly +. +The +alternate +matching +engine +is +generally +quite +a +bit +slower +( +perhaps +by +an +order +of +magnitude +) +. +If +necessary +this +can +be +ameliorated +in +two +ways +. +The +first +way +is +to +add +some +number +of +literal +prefixes +to +your +regular +expression +. +Even +though +the +DFA +may +not +be +used +specialized +routines +will +still +kick +in +to +find +prefix +literals +quickly +which +limits +how +much +work +the +NFA +simulation +will +need +to +do +. +The +second +way +is +to +give +up +on +Unicode +and +use +an +ASCII +word +boundary +instead +. +One +can +use +an +ASCII +word +boundary +by +disabling +Unicode +support +. +That +is +instead +of +using +\ +b +use +( +? +- +u +: +\ +b +) +. +Namely +given +the +regex +\ +b +. ++ +\ +b +it +can +be +transformed +into +a +regex +that +uses +the +DFA +with +( +? +- +u +: +\ +b +) +. ++ +( +? +- +u +: +\ +b +) +. +It +is +important +to +limit +the +scope +of +disabling +the +u +flag +since +it +might +lead +to +a +syntax +error +if +the +regex +could +match +arbitrary +bytes +. +For +example +if +one +wrote +( +? +- +u +) +\ +b +. ++ +\ +b +then +a +syntax +error +would +be +returned +because +. +matches +any +* +byte +* +when +the +Unicode +flag +is +disabled +. +The +second +way +isn +' +t +appreciably +different +than +just +using +a +Unicode +word +boundary +in +the +first +place +since +the +DFA +will +speculatively +interpret +it +as +an +ASCII +word +boundary +anyway +. +The +key +difference +is +that +if +an +ASCII +word +boundary +is +used +explicitly +then +the +DFA +won +' +t +quit +in +the +presence +of +non +- +ASCII +UTF +- +8 +bytes +. +This +results +in +giving +up +correctness +in +exchange +for +more +consistent +performance +. +N +. +B +. +When +using +bytes +: +: +Regex +Unicode +support +is +disabled +by +default +so +one +can +simply +write +\ +b +to +get +an +ASCII +word +boundary +. +# +# +Excessive +counting +can +lead +to +exponential +state +blow +up +in +the +DFA +* +* +Advice +* +* +: +Don +' +t +write +regexes +that +cause +DFA +state +blow +up +if +you +care +about +match +performance +. +Wait +didn +' +t +I +say +that +this +crate +guards +against +exponential +worst +cases +? +Well +it +turns +out +that +the +process +of +converting +an +NFA +to +a +DFA +can +lead +to +an +exponential +blow +up +in +the +number +of +states +. +This +crate +specifically +guards +against +exponential +blow +up +by +doing +two +things +: +1 +. +The +DFA +is +computed +lazily +. +That +is +a +state +in +the +DFA +only +exists +in +memory +if +it +is +visited +. +In +particular +the +lazy +DFA +guarantees +that +* +at +most +* +one +state +is +created +for +every +byte +of +input +. +This +on +its +own +guarantees +linear +time +complexity +. +2 +. +Of +course +creating +a +new +state +for +* +every +* +byte +of +input +means +that +search +will +go +incredibly +slow +because +of +very +large +constant +factors +. +On +top +of +that +creating +a +state +for +every +byte +in +a +large +haystack +could +result +in +exorbitant +memory +usage +. +To +ameliorate +this +the +DFA +bounds +the +number +of +states +it +can +store +. +Once +it +reaches +its +limit +it +flushes +its +cache +. +This +prevents +reuse +of +states +that +it +already +computed +. +If +the +cache +is +flushed +too +frequently +then +the +DFA +will +give +up +and +execution +will +fall +back +to +one +of +the +NFA +simulations +. +In +effect +this +crate +will +detect +exponential +state +blow +up +and +fall +back +to +a +search +routine +with +fixed +memory +requirements +. +This +does +however +mean +that +searching +will +be +much +slower +than +one +might +expect +. +Regexes +that +rely +on +counting +in +particular +are +strong +aggravators +of +this +behavior +. +For +example +matching +[ +01 +] +* +1 +[ +01 +] +{ +20 +} +against +a +random +sequence +of +0 +s +and +1 +s +. +In +the +future +it +may +be +possible +to +increase +the +bound +that +the +DFA +uses +which +would +allow +the +caller +to +choose +how +much +memory +they +' +re +willing +to +spend +. +# +# +Resist +the +temptation +to +" +optimize +" +regexes +* +* +Advice +* +* +: +This +ain +' +t +a +backtracking +engine +. +An +entire +book +was +written +on +how +to +optimize +Perl +- +style +regular +expressions +. +Most +of +those +techniques +are +not +applicable +for +this +library +. +For +example +there +is +no +problem +with +using +non +- +greedy +matching +or +having +lots +of +alternations +in +your +regex +. diff --git a/third_party/rust/regex/README.md b/third_party/rust/regex/README.md index a9c03b1c4fd20..6584854f1c830 100644 --- a/third_party/rust/regex/README.md +++ b/third_party/rust/regex/README.md @@ -4,64 +4,34 @@ regex = = = -This -crate -provides -routines -for -searching -strings +A +Rust +library for -matches -of -a -[ +parsing +compiling +and +executing regular -expression -] -( -aka -" -regex -" -) +expressions . -The -regex +Its syntax -supported -by -this -crate is similar to -other -regex -engines +Perl +- +style +regular +expressions but -it lacks -several +a +few features -that -are -not -known -how -to -implement -efficiently -. -This -includes -but -is -not -limited -to +like look -- around and backreferences @@ -69,63 +39,50 @@ backreferences In exchange all -regex searches +execute in -this -crate -have -worst -case -O -( -m -* -n -) +linear time -complexity -where -m -is -proportional +with +respect to the size of the -regex +regular +expression and -n -is -proportional -to -the -size +search +text +. +Much of the -string -being -searched -. +syntax +and +implementation +is +inspired +by [ -regular -expression +RE2 ] -: +( https : / / -en -. -wikipedia +github . -org +com / -wiki +google / -Regular_expression +re2 +) +. [ ! [ @@ -213,6 +170,58 @@ crates / regex ) +[ +! +[ +Rust +] +( +https +: +/ +/ +img +. +shields +. +io +/ +badge +/ +rust +- +1 +. +41 +. +1 +% +2B +- +blue +. +svg +? +maxAge += +3600 +) +] +( +https +: +/ +/ +github +. +com +/ +rust +- +lang +/ +regex +) # # # @@ -522,6 +531,35 @@ regex : Regex ; +const +TO_SEARCH +: +& +' +static +str += +" +On +2010 +- +03 +- +14 +foo +happened +. +On +2014 +- +10 +- +14 +bar +happened +. +" +; fn main ( @@ -567,113 +605,146 @@ unwrap ( ) ; -let -hay -= -" -On -2010 -- -03 -- -14 -foo -happened +for +caps +in +re . -On -2014 -- -10 -- -14 -bar -happened +captures_iter +( +TO_SEARCH +) +{ +/ +/ +Note +that +all +of +the +unwraps +are +actually +OK +for +this +regex +/ +/ +because +the +only +way +for +the +regex +to +match +is +if +all +of +the +/ +/ +capture +groups +match . -" -; -let -mut -dates -= -vec +This +is +not +true +in +general +though +! +println ! -[ -] -; -for ( -_ -[ +" year +: +{ +} month +: +{ +} day -] +: +{ +} +" +caps +. +get +( +1 ) -in -re . -captures_iter +unwrap ( -hay ) . -map +as_str ( -| -c -| -c +) +caps . -extract +get ( +2 ) +. +unwrap +( ) -{ -dates . -push +as_str ( +) +caps +. +get +( +3 +) +. +unwrap +( +) +. +as_str ( -year -month -day ) ) ; } -assert_eq -! -( -dates -vec -! -[ -( -" +} +This +example +outputs +: +text +year +: 2010 -" -" +month +: 03 -" -" +day +: 14 -" -) -( -" +year +: 2014 -" -" +month +: 10 -" -" +day +: 14 -" -) -] -) -; -} # # # @@ -783,7 +854,7 @@ recommend using the [ -once_cell +lazy_static ] ( https @@ -796,7 +867,7 @@ io / crates / -once_cell +lazy_static ) crate to @@ -813,25 +884,17 @@ For example : rust +ignore use -{ -once_cell -: -: -sync -: -: -Lazy regex : : Regex -} ; fn some_helper_function ( -haystack +text : & str @@ -840,75 +903,39 @@ str > bool { +lazy_static +! +{ static +ref RE : -Lazy -< Regex -> = -Lazy -: -: -new -( -| -| Regex : : new ( -r " . . . " ) -. -unwrap -( -) -) -; -RE -. -is_match -( -haystack -) -} -fn -main -( -) -{ -assert -! -( -some_helper_function -( -" -abc -" -) -) -; -assert -! -( -! -some_helper_function -( -" -ac -" -) +. +unwrap +( ) ; } +RE +. +is_match +( +text +) +} Specifically in this @@ -1043,52 +1070,16 @@ an & str . -The -& -[ -u8 -] -APIs -also -permit -disabling -Unicode -mode -in -the -regex -even -when -the -pattern -would -match -invalid -UTF -- -8 -. -For -example -( -? -- -u -: +By +default . -) -is -not -allowed -in -regex -: -: -Regex -but -is -allowed -in +will +match +any +* +byte +* +using regex : : @@ -1096,40 +1087,24 @@ bytes : : Regex -since -( -? -- -u -: -. -) -matches -any -byte -except -for -\ -n -. -Conversely +while . will match -the +any +* UTF - 8 -encoding -of -any +encoded Unicode scalar value -except -for -\ -n +* +using +the +main +API . This example @@ -1170,11 +1145,7 @@ r " ( ? -- -u -) -( -? +P < cstr > @@ -1201,7 +1172,7 @@ b " foo \ -xFFbar +x00bar \ x00baz \ @@ -1295,8 +1266,15 @@ vec b " foo -\ -xFFbar +" +[ +. +. +] +& +b +" +bar " [ . @@ -1334,18 +1312,6 @@ byte except for NUL -including -bytes -like -\ -xFF -which -are -not -valid -UTF -- -8 . When using @@ -1567,91 +1533,39 @@ matched # Usage : -regex -internals -as -a -library -The -[ -regex -- -automata -directory -] -( +enable +SIMD +optimizations +SIMD +optimizations +are +enabled +automatically +on +Rust +stable +1 . -/ -regex -- -automata -/ -) -contains -a -crate -that -exposes -all -of -the -internal -matching -engines -used -by -the -regex -crate +27 +and +newer . -The -idea -is -that -the -regex -crate -exposes -a -simple -API -for -99 -% -of -use -cases -but -regex -- -automata -exposes -oodles +For +nightly +versions of -customizable -behaviors -. -[ -Documentation -for -regex -- -automata -. -] -( -https -: -/ -/ -docs +Rust +this +requires +a +recent +version +with +the +SIMD +features +stabilized . -rs -/ -regex -- -automata -) # # # @@ -1734,7 +1648,6 @@ use . [ Documentation -for regex - syntax @@ -1874,48 +1787,18 @@ features = false # -Unless -you -have -a -specific -reason -not -to -it -' -s -good -sense -to -enable +regex +currently +requires +the standard -# library -support -. -It -enables -several -optimizations -and -avoids -spin -locks -. -It -# -also -shouldn -' -t -meaningfully -impact -compile -times -or -binary -size +you +must +re +- +enable +it . features = @@ -1934,16 +1817,14 @@ of regex down to -two -crates -: +a +single +crate +( regex - syntax -and -regex -- -automata +) . The full @@ -1977,8 +1858,6 @@ rs / regex / -1 -. * / # @@ -2005,11 +1884,17 @@ version is 1 . -60 +41 . -0 +1 . The +current +* +* +tentative +* +* policy is that @@ -2086,6 +1971,23 @@ version of Rust . +In +general +this +crate +will +be +conservative +with +respect +to +the +minimum +supported +version +of +Rust +. # # # diff --git a/third_party/rust/regex/UNICODE.md b/third_party/rust/regex/UNICODE.md index 66a735da3dc12..b5a5569c8f785 100644 --- a/third_party/rust/regex/UNICODE.md +++ b/third_party/rust/regex/UNICODE.md @@ -91,30 +91,6 @@ as a line boundary -by -default -. -One -can -opt -into -\ -r -\ -n -| -\ -r -| -\ -n -being -a -line -boundary -via -CRLF -mode . 2 . @@ -1950,32 +1926,6 @@ as a line boundary -by -default -. -One -can -also -opt -into -treating -\ -r -\ -n -| -\ -r -| -\ -n -as -a -line -boundary -via -CRLF -mode . This choice @@ -1998,6 +1948,34 @@ are subject to . +Ideally +it +would +be +nice +to +at +least +support +\ +r +\ +n +as +a +line +boundary +as +well +and +in +theory +this +could +be +done +efficiently +. # # RL1 diff --git a/third_party/rust/regex/examples/regexdna-input.txt b/third_party/rust/regex/examples/regexdna-input.txt new file mode 100644 index 0000000000000..9d30c6cb88abb --- /dev/null +++ b/third_party/rust/regex/examples/regexdna-input.txt @@ -0,0 +1,1683 @@ +> +ONE +Homo +sapiens +alu +GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA +TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT +AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG +GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG +CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT +GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA +GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA +TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG +AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA +GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT +AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC +AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG +GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC +CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG +AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT +TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA +TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT +GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG +TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT +CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG +CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG +TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA +CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG +AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG +GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC +TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA +TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA +GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT +GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC +ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT +TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC +CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG +CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG +GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC +CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT +GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC +GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA +GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA +GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA +GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG +AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT +CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA +GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA +AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC +GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT +ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG +GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC +GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC +GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG +TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA +AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG +GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT +CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC +TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG +ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC +GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA +ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA +CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA +CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA +ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG +CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG +AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC +CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG +AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC +CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG +CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG +CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG +CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC +ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA +AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC +TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC +ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG +CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG +AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT +AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA +TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC +CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA +TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG +CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT +GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG +GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG +CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG +GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG +GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT +AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT +GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT +CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG +GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC +TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT +CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG +ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG +CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG +AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA +CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG +CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC +ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC +GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC +GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG +GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT +TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG +CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA +GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG +CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC +GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG +CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA +CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG +CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA +ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC +CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT +GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA +AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG +ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC +TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA +GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC +GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG +TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC +AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA +ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA +GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC +AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG +TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC +CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT +GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC +CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA +GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT +TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC +ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC +TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG +GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG +TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG +GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC +GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT +ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC +GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC +GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC +CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA +ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG +AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC +TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT +CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG +TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG +CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC +GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT +GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC +CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC +TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG +CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG +AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG +AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG +AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT +GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA +TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC +AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA +AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG +CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC +TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG +GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT +CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG +CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG +GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA +AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA +GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC +TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC +CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA +GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG +CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG +AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG +ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC +ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC +AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC +GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG +GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT +CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC +GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC +CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA +GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA +GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG +GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT +CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA +AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG +CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC +CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG +GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG +GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT +TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA +ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG +CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA +ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA +GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG +TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC +GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA +GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT +GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT +GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG +TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT +TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC +TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC +GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT +CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC +TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA +GATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGG +GCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCT +GAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT +ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAG +GCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTG +CACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCA +CGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTT +CGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCC +GGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGC +TTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGG +GCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCC +AGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTG +GCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCG +CGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAG +GCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAG +ACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAG +GCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGA +AACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATC +CCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAG +TGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAA +AAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCG +GATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTA +CTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGG +AGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCG +CGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCG +GTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGT +CAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAA +AATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGG +AGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTC +CAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCT +GTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA +CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCG +TGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAA +CCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGAC +AGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCAC +TTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAA +CATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGC +CTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGA +GGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCC +GTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGA +GGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCC +CGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGC +TACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGC +CGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGC +CGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCA +CCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAA +AATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCT +GAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCA +CTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGC +TCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGA +GTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTA +GCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAAT +CGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCC +TGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAAT +CCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGC +CTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTG +GCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGG +GAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGC +GAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG +GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGG +TGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTA +ATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTG +CAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTC +AAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGG +GCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCT +CTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTC +GGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGA +TCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGC +GCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGA +GGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATAC +AAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGC +AGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCA +CTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACG +CCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCG +AGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGG +GCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTT +GAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGC +GACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAG +CACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGC +CAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCG +CGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGC +GGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGAC +TCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGC +CGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAA +CCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCC +AGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTG +AGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA +GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA +TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT +AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG +GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG +CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT +GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA +GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA +TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG +AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA +GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT +AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC +AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG +GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC +CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG +AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT +TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA +TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT +GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG +TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT +CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG +CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG +TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA +CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG +AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG +GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC +TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA +TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA +GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT +GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC +ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT +TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC +CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG +CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG +GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC +CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT +GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC +GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA +GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA +GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA +GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG +AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT +CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA +GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA +AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC +GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT +ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG +GAGGCTGAGGCAGGAGAATC +> +TWO +IUB +ambiguity +codes +cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg +tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa +NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt +cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga +gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa +HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca +tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt +tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt +acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct +tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt +gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa +accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt +RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt +tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag +cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg +ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat +actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg +YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa +KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata +aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa +aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg +gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc +tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK +tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt +ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg +ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa +BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt +aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc +tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc +cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac +aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga +tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga +aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD +gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg +ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV +taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa +ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat +gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg +gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa +tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt +tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt +taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca +cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag +aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt +cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt +ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW +attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag +ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa +attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc +tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta +aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata +cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc +gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg +attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca +BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga +DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat +tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM +tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR +tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg +taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc +aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc +DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa +VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt +agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat +gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt +tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt +catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt +tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR +aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat +aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac +acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS +tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga +aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM +acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt +RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt +RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta +tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac +gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt +YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc +ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt +ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat +gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta +KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD +aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg +gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH +taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact +VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV +NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa +MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag +cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata +ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg +tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN +aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc +actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg +tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga +gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa +BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca +aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata +aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat +YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt +aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW +cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata +tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata +tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt +MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac +taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta +tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS +RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc +agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata +NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa +gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata +aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt +ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW +cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt +tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa +RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt +tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD +gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc +tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta +ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM +tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc +ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc +BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt +gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga +acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag +gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc +taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat +acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta +tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt +catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa +tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB +atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR +ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta +ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta +cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK +SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW +VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc +BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct +NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt +tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa +ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa +cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa +VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR +atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac +aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc +tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac +RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag +gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc +tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact +attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc +atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga +cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt +NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR +ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat +cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg +aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac +agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR +tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga +ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg +ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa +tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag +taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg +tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN +YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt +ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa +tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat +ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg +attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt +atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW +YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta +gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV +MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta +tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt +ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa +aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa +BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM +tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK +StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV +cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN +atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg +atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg +ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct +gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM +tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD +BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc +agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga +HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR +tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt +aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa +catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB +aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat +tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt +cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag +DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat +gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta +tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM +atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc +KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt +tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata +tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK +taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt +NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa +HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa +ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg +tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK +cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga +ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca +HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg +gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS +BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg +gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat +KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact +cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat +tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD +taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM +gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt +aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat +acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta +RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc +attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac +KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS +KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD +gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB +aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct +aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga +ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY +tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga +aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta +tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY +MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc +cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta +caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt +ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc +acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat +tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc +gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa +atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga +aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat +NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt +taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa +aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat +ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca +DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata +tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat +aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa +ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM +ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca +RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa +aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac +aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt +aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK +tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat +atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR +BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc +gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct +cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN +RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat +taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt +aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt +gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct +gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa +aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta +gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg +ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat +MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct +SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY +aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt +VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat +HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc +agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt +gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg +agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg +tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag +gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga +VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg +tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV +MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt +actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa +WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa +tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD +KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct +BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac +attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB +VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD +aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca +tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat +tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK +tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt +VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta +tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat +ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa +tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg +WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta +tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc +tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct +MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat +tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac +atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg +aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt +aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa +aatYggtaRtatNtHcaatcaHtagVtgtattataNggaMtcttHtNagctaaaggtaga +YctMattNaMVNtcKtactBKcaHHcBttaSagaKacataYgctaKaYgttYcgacWVtt +WtSagcaacatcccHaccKtcttaacgaKttcacKtNtacHtatatRtaaatacactaBt +ttgaHaRttggttWtatYagcatYDatcggagagcWBataagRtacctataRKgtBgatg +aDatataSttagBaHtaatNtaDWcWtgtaattacagKttcNtMagtattaNgtctcgtc +ctcttBaHaKcKccgtRcaaYagSattaagtKataDatatatagtcDtaacaWHcaKttD +gaaRcgtgYttgtcatatNtatttttatggccHtgDtYHtWgttatYaacaattcaWtat +NgctcaaaSttRgctaatcaaatNatcgtttaBtNNVtgttataagcaaagattBacgtD +atttNatttaaaDcBgtaSKgacgtagataatttcHMVNttgttBtDtgtaWKaaRMcKM +tHtaVtagataWctccNNaSWtVaHatctcMgggDgtNHtDaDttatatVWttgttattt +aacctttcacaaggaSaDcggttttttatatVtctgVtaacaStDVaKactaMtttaSNa +gtgaaattaNacttSKctattcctctaSagKcaVttaagNaVcttaVaaRNaHaaHttat +gtHttgtgatMccaggtaDcgaccgtWgtWMtttaHcRtattgScctatttKtaaccaag +tYagaHgtWcHaatgccKNRtttagtMYSgaDatctgtgaWDtccMNcgHgcaaacNDaa +aRaStDWtcaaaaHKtaNBctagBtgtattaactaattttVctagaatggcWSatMaccc +ttHttaSgSgtgMRcatRVKtatctgaaaccDNatYgaaVHNgatMgHRtacttaaaRta +tStRtDtatDttYatattHggaBcttHgcgattgaKcKtttcRataMtcgaVttWacatN +catacctRataDDatVaWNcggttgaHtgtMacVtttaBHtgagVttMaataattatgtt +cttagtttgtgcDtSatttgBtcaacHattaaBagVWcgcaSYttMgcttacYKtVtatc +aYaKctgBatgcgggcYcaaaaacgNtctagKBtattatctttKtaVttatagtaYtRag +NtaYataaVtgaatatcHgcaaRataHtacacatgtaNtgtcgYatWMatttgaactacR +ctaWtWtatacaatctBatatgYtaagtatgtgtatSttactVatcttYtaBcKgRaSgg +RaaaaatgcagtaaaWgtaRgcgataatcBaataccgtatttttccatcNHtatWYgatH +SaaaDHttgctgtccHtggggcctaataatttttctatattYWtcattBtgBRcVttaVM +RSgctaatMagtYtttaaaaatBRtcBttcaaVtaacagctccSaaSttKNtHtKYcagc +agaaaccccRtttttaaDcDtaStatccaagcgctHtatcttaDRYgatDHtWcaaaBcW +gKWHttHataagHacgMNKttMKHccaYcatMVaacgttaKgYcaVaaBtacgcaacttt +MctaaHaatgtBatgagaSatgtatgSRgHgWaVWgataaatatttccKagVgataattW +aHNcYggaaatgctHtKtaDtctaaagtMaatVDVactWtSaaWaaMtaHtaSKtcBRaN +cttStggtBttacNagcatagRgtKtgcgaacaacBcgKaatgataagatgaaaattgta +ctgcgggtccHHWHaaNacaBttNKtKtcaaBatatgctaHNgtKcDWgtttatNgVDHg +accaacWctKaaggHttgaRgYaatHcaBacaatgagcaaattactgtaVaaYaDtagat +tgagNKggtggtgKtWKaatacagDRtatRaMRtgattDggtcaaYRtatttNtagaDtc +acaaSDctDtataatcgtactaHttatacaatYaacaaHttHatHtgcgatRRttNgcat +SVtacWWgaaggagtatVMaVaaattScDDKNcaYBYaDatHgtctatBagcaacaagaa +tgagaaRcataaKNaRtBDatcaaacgcattttttaaBtcSgtacaRggatgtMNaattg +gatatWtgagtattaaaVctgcaYMtatgatttttYgaHtgtcttaagWBttHttgtctt +attDtcgtatWtataataSgctaHagcDVcNtaatcaagtaBDaWaDgtttagYctaNcc +DtaKtaHcttaataacccaRKtacaVaatNgcWRaMgaattatgaBaaagattVYaHMDc +aDHtcRcgYtcttaaaWaaaVKgatacRtttRRKYgaatacaWVacVcRtatMacaBtac +tggMataaattttHggNagSctacHgtBagcgtcgtgattNtttgatSaaggMttctttc +ttNtYNagBtaaacaaatttMgaccttacataattgYtcgacBtVMctgStgMDtagtaR +ctHtatgttcatatVRNWataDKatWcgaaaaagttaaaagcacgHNacgtaatctttMR +tgacttttDacctataaacgaaatatgattagaactccSYtaBctttaataacWgaaaYa +tagatgWttcatKtNgatttttcaagHtaYgaaRaDaagtaggagcttatVtagtctttc +attaaaatcgKtattaRttacagVaDatgcatVgattgggtctttHVtagKaaRBtaHta +aggccccaaaaKatggtttaMWgtBtaaacttcactttKHtcgatctccctaYaBacMgt +cttBaBaNgcgaaacaatctagtHccHtKttcRtRVttccVctttcatacYagMVtMcag +aMaaacaataBctgYtaatRaaagattaaccatVRatHtaRagcgcaBcgDttStttttc +VtttaDtKgcaaWaaaaatSccMcVatgtKgtaKgcgatatgtagtSaaaDttatacaaa +catYaRRcVRHctKtcgacKttaaVctaDaatgttMggRcWaacttttHaDaKaDaBctg +taggcgtttaHBccatccattcNHtDaYtaataMttacggctNVaacDattgatatttta +cVttSaattacaaRtataNDgacVtgaacataVRttttaDtcaaacataYDBtttaatBa +DtttYDaDaMccMttNBttatatgagaaMgaNtattHccNataattcaHagtgaaggDga +tgtatatatgYatgaStcataaBStWacgtcccataRMaaDattggttaaattcMKtctM +acaBSactcggaatDDgatDgcWctaacaccgggaVcacWKVacggtaNatatacctMta +tgatagtgcaKagggVaDtgtaacttggagtcKatatcgMcttRaMagcattaBRaStct +YSggaHYtacaactMBaagDcaBDRaaacMYacaHaattagcattaaaHgcgctaaggSc +cKtgaaKtNaBtatDDcKBSaVtgatVYaagVtctSgMctacgttaacWaaattctSgtD +actaaStaaattgcagBBRVctaatatacctNttMcRggctttMttagacRaHcaBaacV +KgaataHttttMgYgattcYaNRgttMgcVaaacaVVcDHaatttgKtMYgtatBtVVct +WgVtatHtacaaHttcacgatagcagtaaNattBatatatttcVgaDagcggttMaagtc +ScHagaaatgcYNggcgtttttMtStggtRatctacttaaatVVtBacttHNttttaRca +aatcacagHgagagtMgatcSWaNRacagDtatactaaDKaSRtgattctccatSaaRtt +aaYctacacNtaRtaactggatgaccYtacactttaattaattgattYgttcagDtNKtt +agDttaaaaaaaBtttaaNaYWKMBaaaacVcBMtatWtgBatatgaacVtattMtYatM +NYDKNcKgDttDaVtaaaatgggatttctgtaaatWtctcWgtVVagtcgRgacttcccc +taDcacagcRcagagtgtWSatgtacatgttaaSttgtaaHcgatgggMagtgaacttat +RtttaVcaccaWaMgtactaatSSaHtcMgaaYtatcgaaggYgggcgtgaNDtgttMNg +aNDMtaattcgVttttaacatgVatgtWVMatatcaKgaaattcaBcctccWcttgaaWH +tWgHtcgNWgaRgctcBgSgaattgcaaHtgattgtgNagtDttHHgBttaaWcaaWagc +aSaHHtaaaVctRaaMagtaDaatHtDMtcVaWMtagSagcttHSattaacaaagtRacM +tRtctgttagcMtcaBatVKtKtKacgagaSNatSactgtatatcBctgagVtYactgta +aattaaaggcYgDHgtaacatSRDatMMccHatKgttaacgactKtgKagtcttcaaHRV +tccttKgtSataatttacaactggatDNgaacttcaRtVaagDcaWatcBctctHYatHa +DaaatttagYatSatccaWtttagaaatVaacBatHcatcgtacaatatcgcNYRcaata +YaRaYtgattVttgaatgaVaactcRcaNStgtgtattMtgaggtNttBaDRcgaaaagc +tNgBcWaWgtSaDcVtgVaatMKBtttcgtttctaaHctaaagYactgMtatBDtcStga +ccgtSDattYaataHctgggaYYttcggttaWaatctggtRagWMaDagtaacBccacta +cgHWMKaatgatWatcctgHcaBaSctVtcMtgtDttacctaVgatYcWaDRaaaaRtag +atcgaMagtggaRaWctctgMgcWttaagKBRtaaDaaWtctgtaagYMttactaHtaat +cttcataacggcacBtSgcgttNHtgtHccatgttttaaagtatcgaKtMttVcataYBB +aKtaMVaVgtattNDSataHcagtWMtaggtaSaaKgttgBtVtttgttatcatKcgHac +acRtctHatNVagSBgatgHtgaRaSgttRcctaacaaattDNttgacctaaYtBgaaaa +tagttattactcttttgatgtNNtVtgtatMgtcttRttcatttgatgacacttcHSaaa +ccaWWDtWagtaRDDVNacVaRatgttBccttaatHtgtaaacStcVNtcacaSRttcYa +gacagaMMttttgMcNttBcgWBtactgVtaRttctccaaYHBtaaagaBattaYacgat +ttacatctgtaaMKaRYtttttactaaVatWgctBtttDVttctggcDaHaggDaagtcg +aWcaagtagtWttHtgKtVataStccaMcWcaagataagatcactctHatgtcYgaKcat +cagatactaagNSStHcctRRNtattgtccttagttagMVgtatagactaactctVcaat +MctgtttgtgttgccttatWgtaBVtttctggMcaaKgDWtcgtaaYStgSactatttHg +atctgKagtagBtVacRaagRtMctatgggcaaaKaaaatacttcHctaRtgtDcttDat +taggaaatttcYHaRaaBttaatggcacKtgctHVcaDcaaaVDaaaVcgMttgtNagcg +taDWgtcgttaatDgKgagcSatatcSHtagtagttggtgtHaWtaHKtatagctgtVga +ttaBVaatgaataagtaatVatSttaHctttKtttgtagttaccttaatcgtagtcctgB +cgactatttVcMacHaaaggaatgDatggKtaHtgStatattaaSagctWcctccRtata +BaDYcgttgcNaagaggatRaaaYtaWgNtSMcaatttactaacatttaaWttHtatBat +tgtcgacaatNgattgcNgtMaaaKaBDattHacttggtRtttaYaacgVactBtaBaKt +gBttatgVttgtVttcaatcWcNctDBaaBgaDHacBttattNtgtDtatttVSaaacag +gatgcRatSgtaSaNtgBatagttcHBgcBBaaattaHgtDattatDaKaatBaaYaaMa +ataaataKtttYtagtBgMatNcatgtttgaNagtgttgtgKaNaSagtttgaSMaYBca +aaacDStagttVacaaaaactaaWttBaagtctgtgcgtMgtaattctcctacctcaNtt +taaccaaaaVtBcacataacaccccBcWMtatVtggaatgaWtcaaWaaaaaaaaWtDta +atatRcctDWtcctaccMtVVatKttaWaaKaaatataaagScHBagaggBaSMtaWaVt +atattactSaaaKNaactatNatccttgaYctattcaaaVgatttYHcRagattttaSat +aggttattcVtaaagaKgtattattKtRttNcggcRgtgtgtWYtaacHgKatKgatYta +cYagDtWcHBDctctgRaYKaYagcactKcacSaRtBttttBHKcMtNtcBatttatttt +tgSatVgaaagaWtcDtagDatatgMacaacRgatatatgtttgtKtNRaatatNatgYc +aHtgHataacKtgagtagtaacYttaNccaaatHcacaacaVDtagtaYtccagcattNt +acKtBtactaaagaBatVtKaaHBctgStgtBgtatgaSNtgDataaccctgtagcaBgt +gatcttaDataStgaMaccaSBBgWagtacKcgattgaDgNNaaaacacagtSatBacKD +gcgtataBKcatacactaSaatYtYcDaactHttcatRtttaatcaattataRtttgtaa +gMcgNttcatcBtYBagtNWNMtSHcattcRctttttRWgaKacKttgggagBcgttcgc +MaWHtaatactgtctctatttataVgtttaBScttttaBMaNaatMacactYtBMggtHa +cMagtaRtctgcatttaHtcaaaatttgagKtgNtactBacaHtcgtatttctMaSRagc +agttaatgtNtaaattgagagWcKtaNttagVtacgatttgaatttcgRtgtWcVatcgt +taaDVctgtttBWgaccagaaagtcSgtVtatagaBccttttcctaaattgHtatcggRa +ttttcaaggcYSKaagWaWtRactaaaacccBatMtttBaatYtaagaactSttcgaaSc +aatagtattgaccaagtgttttctaacatgtttNVaatcaaagagaaaNattaaRtttta +VaaaccgcaggNMtatattVctcaagaggaacgBgtttaacaagttcKcYaatatactaa +ccBaaaSggttcNtattctagttRtBacgScVctcaatttaatYtaaaaaaatgSaatga +tagaMBRatgRcMcgttgaWHtcaVYgaatYtaatctttYttatRaWtctgBtDcgatNa +tcKaBaDgatgtaNatWKctccgatattaacattNaaacDatgBgttctgtDtaaaMggt +gaBaSHataacgccSctaBtttaRBtcNHcDatcDcctagagtcRtaBgWttDRVHagat +tYatgtatcWtaHtttYcattWtaaagtctNgtStggRNcgcggagSSaaagaaaatYcH +DtcgctttaatgYcKBVSgtattRaYBaDaaatBgtatgaHtaaRaRgcaSWNtagatHa +acttNctBtcaccatctMcatattccaSatttgcgaDagDgtatYtaaaVDtaagtttWV +aagtagYatRttaagDcNgacKBcScagHtattatcDaDactaaaaaYgHttBcgaDttg +gataaaKSRcBMaBcgaBSttcWtgNBatRaccgattcatttataacggHVtaattcaca +agagVttaaRaatVVRKcgWtVgacctgDgYaaHaWtctttcacMagggatVgactagMa +aataKaaNWagKatagNaaWtaaaatttgaattttatttgctaaVgaHatBatcaaBWcB +gttcMatcgBaaNgttcgSNaggSaRtttgHtRtattaNttcDcatSaVttttcgaaaaa +ttgHatctaRaggSaNatMDaaatDcacgattttagaHgHaWtYgattaatHNSttatMS +gggNtcKtYatRggtttgtMWVtttaYtagcagBagHaYagttatatggtBacYcattaR +SataBatMtttaaatctHcaaaSaaaagttNSaaWcWRccRtKaagtBWtcaaattSttM +tattggaaaccttaacgttBtWatttatatWcDaatagattcctScacctaagggRaaYt +aNaatgVtBcttaaBaacaMVaaattatStYgRcctgtactatcMcVKatttcgSgatRH +MaaaHtagtaaHtVgcaaataatatcgKKtgccaatBNgaaWcVttgagttaKatagttc +aggKDatDtattgaKaVcaKtaataDataataHSaHcattagttaatRVYcNaHtaRcaa +ggtNHcgtcaaccaBaaagYtHWaaaRcKgaYaaDttgcWYtataRgaatatgtYtgcKt +aNttWacatYHctRaDtYtattcBttttatcSataYaYgttWaRagcacHMgtttHtYtt +YaatcggtatStttcgtRSattaaDaKMaatatactaNBaWgctacacYtgaYVgtgHta +aaRaaRgHtagtWattataaaSDaaWtgMattatcgaaaagtaYRSaWtSgNtBgagcRY +aMDtactaacttaWgtatctagacaagNtattHggataatYttYatcataDcgHgttBtt +ctttVttgccgaaWtaaaacgKgtatctaaaaaNtccDtaDatBMaMggaatNKtatBaa +atVtccRaHtaSacataHattgtttKVYattcataVaattWtcgtgMttcttKtgtctaa +cVtatctatatBRataactcgKatStatattcatHHRttKtccaacgtgggtgRgtgaMt +attattggctatcgtgacMtRcBDtcttgtactaatRHttttaagatcgVMDStattatY +BtttDttgtBtNttgRcMtYtgBacHaWaBaatDKctaagtgaaactaatgRaaKgatcc +aagNaaaatattaggWNtaagtatacttttKcgtcggSYtcttgRctataYcttatataa +agtatattaatttataVaacacaDHatctatttttKYVatHRactttaBHccaWagtact +BtcacgaVgcgttRtttttttSVgtSagtBaaattctgaHgactcttgMcattttagVta +agaattHctHtcaDaaNtaacRggWatagttcgtSttgaDatcNgNagctagDgatcNtt +KgttgtaDtctttRaaYStRatDtgMggactSttaDtagSaVtBDttgtDgccatcacaM +attaaaMtNacaVcgSWcVaaDatcaHaatgaattaMtatccVtctBtaattgtWattat +BRcWcaatgNNtactWYtDaKttaaatcactcagtRaaRgatggtKgcgccaaHgaggat +StattYcaNMtcaBttacttatgagDaNtaMgaaWtgtttcttctaHtMNgttatctaWW +atMtBtaaatagDVatgtBYtatcggcttaagacMRtaHScgatatYgRDtcattatSDa +HggaaataNgaWSRRaaaBaatagBattaDctttgHWNttacaataaaaaaatacggttt +gHgVtaHtWMttNtBtctagtMcgKMgHgYtataHaNagWtcaacYattaataYRgtaWK +gaBctataaccgatttaHaNBRaRaMtccggtNgacMtctcatttgcaattcWgMactta +caaDaaNtactWatVtttagccttMaatcagVaagtctVaaDaBtattaattaYtNaYtg +gattaKtaKctYaMtattYgatattataatKtVgDcttatatNBtcgttgtStttttMag +aggttaHYSttcKgtcKtDNtataagttataagSgttatDtRttattgttttSNggRtca +aKMNatgaatattgtBWtaMacctgggYgaSgaagYataagattacgagaatBtggtRcV +HtgYggaDgaYaKagWagctatagacgaaHgtWaNgacttHRatVaWacKYtgRVNgVcS +gRWctacatcKSactctgWYtBggtataagcttNRttVtgRcaWaaatDMatYattaact +ttcgaagRatSctgccttgcRKaccHtttSNVagtagHagBagttagaccaRtataBcca +taatSHatRtcHagacBWatagcaMtacaRtgtgaaBatctKRtScttccaNaatcNgta +atatWtcaMgactctBtWtaaNactHaaaaRctcgcatggctMcaaNtcagaaaaacaca +gtggggWttRttagtaagaVctVMtcgaatcttcMaaaHcaHBttcgattatgtcaDagc +YRtBtYcgacMgtDcagcgaNgttaataatagcagKYYtcgtaBtYctMaRtaRtDagaa +aacacatgYaBttgattattcgaaNttBctSataaMataWRgaHtttccgtDgaYtatgg +tDgHKgMtatttVtMtVagttaRatMattRagataaccctKctMtSttgaHagtcStcta +tttccSagatgttccacgaggYNttHRacgattcDatatDcataaaatBBttatcgaHtN +HaaatatDNaggctgaNcaaggagttBttMgRagVatBcRtaWgatgBtSgaKtcgHttt +gaatcaaDaHttcSBgHcagtVaaSttDcagccgttNBtgttHagYtattctttRWaaVt +SttcatatKaaRaaaNacaVtVctMtSDtDtRHRcgtaatgctcttaaatSacacaatcg +HattcaWcttaaaatHaaatcNctWttaNMcMtaKctVtcctaagYgatgatcYaaaRac +tctaRDaYagtaacgtDgaggaaatctcaaacatcaScttcKttNtaccatNtaNataca +tttHaaDHgcaDatMWaaBttcRggctMaagctVYcacgatcaDttatYtaatcKatWat +caatVYtNagatttgattgaYttttYgacttVtcKaRagaaaHVgDtaMatKYagagttN +atWttaccNtYtcDWgSatgaRgtMatgKtcgacaagWtacttaagtcgKtgatccttNc +ttatagMatHVggtagcgHctatagccctYttggtaattKNaacgaaYatatVctaataM +aaaYtgVtcKaYtaataacagaatHcacVagatYWHttagaaSMaatWtYtgtaaagNaa +acaVgaWtcacNWgataNttcaSagctMDaRttgNactaccgataMaaatgtttattDtc +aagacgctDHYYatggttcaagccNctccttcMctttagacBtaaWtaWVHggaaaaNat +ttaDtDtgctaaHHtMtatNtMtagtcatttgcaaaRatacagRHtatDNtgtDgaatVg +tVNtcaaatYBMaaaagcaKgtgatgatMgWWMaHttttMgMagatDtataaattaacca +actMtacataaattgRataatacgBtKtaataattRgtatDagDtcRDacctatRcagag +cSHatNtcaScNtttggacNtaaggaccgtgKNttgttNcttgaaRgYgRtNtcagttBc +ttttcHtKtgcttYaaNgYagtaaatgaatggWaMattBHtatctatSgtcYtgcHtaat +tHgaaMtHcagaaSatggtatgccaHBtYtcNattWtgtNgctttaggtttgtWatNtgH +tgcDttactttttttgcNtactKtWRaVcttcatagtgSNKaNccgaataaBttataata +YtSagctttaaatSttggctaaKSaatRccgWHgagDttaaatcatgagMtcgagtVtaD +ggaBtatttgDacataaacgtagYRagBWtgDStKDgatgaagttcattatttaKWcata +aatWRgatataRgttRacaaNKttNtKagaaYaStaactScattattaacgatttaaatg +DtaattagatHgaYataaactatggggatVHtgccgtNgatNYcaStRtagaccacWcaM +tatRagHgVactYtWHtcttcatgatWgagaKggagtatgaWtDtVtNaNtcgYYgtaaa +ctttaDtBactagtaDctatagtaatatttatatataacgHaaaRagKattSagttYtSt +> +THREE +Homo +sapiens +frequency +agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct +cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt +tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat +tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc +gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc +tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg +tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat +atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag +cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa +ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt +ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat +atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc +gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact +tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag +gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg +atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag +tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac +ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag +tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta +aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt +gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa +ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc +agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt +agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat +acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc +cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct +cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct +cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa +aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt +tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt +atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct +cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga +tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat +catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc +tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg +caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc +tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc +aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag +aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat +ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac +gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag +ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt +cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta +gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca +ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt +cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg +taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg +gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc +taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt +ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt +aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt +gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta +acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct +ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta +tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt +tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg +tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa +ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac +aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga +tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca +gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt +gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc +cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg +actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa +tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg +ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt +ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta +agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc +gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa +tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt +atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca +cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa +tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca +gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg +gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat +aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg +gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat +cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa +taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg +tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt +ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac +aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc +gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag +aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc +tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa +tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata +aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta +ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc +ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc +caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct +gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg +cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc +ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta +tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg +atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc +ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc +acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc +taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga +ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga +aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat +cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc +tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact +gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa +aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag +cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc +cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa +gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg +cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg +gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca +agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac +aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt +aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg +cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt +agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg +cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa +agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga +gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta +aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata +agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc +cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc +agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca +ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga +tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag +gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat +gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt +ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg +gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc +atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc +tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata +ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg +tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag +cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg +ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat +aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg +gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat +ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag +atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac +aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct +gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga +atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt +aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt +tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg +ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta +gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac +cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct +ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga +ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg +ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat +cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga +tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt +tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc +cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt +gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct +ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt +ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa +tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc +agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta +ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc +cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct +agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc +tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc +gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga +ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa +ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca +agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata +attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact +ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat +agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat +aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata +gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta +gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg +ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac +gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata +ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat +taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta +aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata +tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata +ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga +agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt +ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt +agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg +gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa +tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg +gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct +cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc +ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta +cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt +gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc +gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc +tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt +cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca +aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac +ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac +gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag +aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga +gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct +aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta +gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat +agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat +caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta +gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta +aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt +tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt +tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc +ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg +ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg +gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa +ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa +aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa +tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat +acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac +atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga +gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac +tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc +cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa +gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg +acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga +acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga +attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg +tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt +cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag +aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac +ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac +tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat +gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga +gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc +acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta +gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac +gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc +ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt +taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg +agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa +gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag +ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc +accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag +tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact +taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga +catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat +tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga +ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg +aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa +atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa +tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt +ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact +tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt +aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat +agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc +acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc +aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct +ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat +gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat +taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata +taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga +tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat +gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg +ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa +atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat +tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat +cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt +aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac +taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag +caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata +ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct +tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac +tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg +gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta +gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat +gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg +ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa +tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa +taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac +gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt +ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga +gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca +tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc +ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt +tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc +cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat +ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg +caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg +cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat +gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat +cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg +taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat +tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata +taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc +tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac +tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt +tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt +ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt +aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg +atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga +actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta +gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga +ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga +gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct +tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc +aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta +atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt +catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc +taaagataactctagtaaggccaactcccttcaatgctgttgccagttataatccaagag +ctgtccttttctgaaccatagcggcttctgaagcgaactagaagcaaagttggttctagc +cagacagccacataccctgtacgggtgtattactaaaactggtccggtattagttcacca +agggaggaattaggcaaaggatctaggtatgcaagtcggagtattacatccctaccctga +atccatcaataggttcctctgtactggccttcgcaatgagtattcaaggttgtacagccg +tataataataagatagtgactatgaacgggaagtaacccgctcaccttccccaaaacatt +gttatatctaagtattaaagtctgccgtagtgttaatactcgaaaataaacaactggcaa +attacaccgcacttaagccgcttttgatttatatttttccaatgcgcttttaaaaataat +tcagtcctacatactaattaagacccttaaacggagatatcacaagttaagttttaacca +tctcgactaggtggaactatagatacccaactcaatttatcattacctgtaatgttccta +gaaggattgcatttcatgtcaagacggtggagtttcacagcgaaacttcagtgtgaacag +attctgagaaatcacctaaacctattagtcagagcacccggttagaaccagttgtcaaaa +aatagagcggttgcatgagacagaagtaacgatgagatccgttgtaacgttgagacatct +ggcctatcgtcaatacagtcctcccttaaaaatatttttaaatactaggcaaacccaaca +taggttagtcctatgtgatacgccacatggtatatcattttgtaacgttacctagggata +atcaggaagtggaattacgcaaaagtagacagtgaaatgcttagggttatagtctagtcc +aaagataaaggataaagcacgtcagagaactatattagccgaatgggaatcattgttagg +agactgtggatcatgtctaaaaagcaacgcagaaacagtcatcgaaaaaatctcgttttt +gtttgaatctaaaagagctttgatgaccgatagtacctgtatactagttactgtattacg +tgtctaatgatttcggattggggtccccagaatcagacgtcattgtagacgattcaagtt +taccaatttaatttcccagctctccttggagaactatcgccaataattgcagtcactttc +cttttctgaaacgataaagccgtcagagttctctgcaacgttggacttacctgaggttct +aacccactttcggttctaatagtagttaacgacacaacgaataacctttactgtggggct +ttcacgatattttttcgcttattattaatggttacgtcataagctggtgtccaaattaag +gttaccggcttcgcagagtagttgtatccaagtataacttccctaatcataagatcgagg +tagaaaattaatgctgtctctaaccgaacagatatgtcccactatgtggtatggacgttg +ctaattacttctgaagggaaattggtcattatggatacgtgtctaccatcaggtcggacg +cagatatggttctgtcttcagttgatccaccgttctttataggataataactgacgatta +aagattatggtaaatagattaagccaattctcttcttgtcagtgaagcatccttaactga +cttgctctgcagcccctcatacatttagctattcaaagtaccggctcgtttcaaactctc +ccacctttggaagaggttgtcaacttgataagtatatcatttacagcattttttcggacg +tacctctaatgtttcattgcagaaaattagttttttctatcgcacattttgcaagtaacg +ttagagacacaattatctgcgaatgaactgctagatctgacgaccgggagcctcgcaaat +atcaaaaaagactgacatatatcaaggagtcgttgacaagtgctggtaagtcaattggtt +tatctgtcccggcgtttcgatcttaagctgaccatgcacggcagagtaatgtcactctcg +ttcttacaagtctgtctccaagggtcggcaaaaaagacccctccattctcgagcccactc +acgatatgtagggacgacaacttgtgcggcttatgaattgtctggactgcgggcgagggt +ccatatctccgaagttagaagggacatacctttagatgataagatcaattcttattgacg +aaattcatccacaacggggaacaacttcaccctagacttacgtctgaaaagacacctagc +gtcttataaaaggtcagtgccccgtttcgtaaggctggaattacctacgcaaacttaaac +ctcgcgcccttccttacgtatcgacaagatagaggctatcgcgaatgtactacggaggca +tgaatcatatactagaaccaagtgcctgtgatattaacaagatgatccgacgcgagcacc +gtaattctaggcataaaactccagcaatttgggggccgaaaacaaatgacgttagctaat +taattatatgacatgatcaaaggaggtcaatcacgcatcgagttcgacgtatattcattg +aacttcgtgcgtttgaaagaaacttttatgaaggcaaaattgatcctgtctcctatttca +tgcgtacctcctagttgataattccccgagcagtggttaggacacttttgtcggtatcaa +gttccggtctcaaaacgtaaaattctgtaatctgtatggatggtctgtgaattagttaat +ttttatgaagtcgtcgagacgcagttcctattgatttattctaaacggagatgtgcttcg +tgggactcggaagtagatctgtgtttatgattattgctactttagatgctgactgttaac +tccgtgttgtttttcaaccgtatatcacaaccgaattggatagaacctatagtttcaagt +tctgccacaaggtatcatatttacagttagtgctggttgcttctttcaaacgtggtgagt +ttgtgctatcacgtcaacggtagagctcagtggaccgagtgcgcgttcaaccctgttcca +gagagggtgtgatagcacatataccacgctcgtcgaggcgttcatgatagtttgcaagag +ccggtgttaaacacatattattattgttatccaactaatcggacctatgcataaagcatt +gtctaaacagaataattgcctatatacggtagttttagtgatttatatcttagtatcagt +tagagcttcgaactcttcaggttcctcatatttaacgttcttcgaaagcgaaaacttcta +caaacgaatgtaagcggttttccaagtagtacctataaatcacagaaagatctgtctcag +tatagttgaaatggtattcagctagtgacgtgtaccaattatcatagttcactcaagcaa +gacgctcattaacgaatatagacaagacactatatcatataataaaaaagaacatggtgc +tcgaacatagttgaattcaccatattgaaggggaatgctgacatgtaattcgctactaga +cgatcaattccctacttgtcaaagttgaactggtacgttcttggaattaaatatgattgc +gctggaccaaattgcgacttcttgagtttcagggcaaacgattgagccggaggatgtccg +tctcttacctttcttgcttatgataaacgacggtccctgtacatcactgggaattctcag +caaaaataattgggtaaatcgagactcgatgtattcggccacaaaggtgttagacgttaa +agattattcaacggggcgataataggatcataaccggtatgcaagcgcattgaaagagcc +atgagatccttatccgataaacgctgcacggtatgtgcagccttattgtcgatcacgaat +ttataaatgtagtctgggctgtaagttgaagacctaagttataatgaagtgcaataccaa +atcgattcatagtggattatcagactcaagatatctcctgataaattacagttgttaaga +tacggataaaatgagatttaagattagcagcctctaatctgtttcaatcccgttggaatg +tggtatgcgatcaaggttaagttaaaatcaagcctgtcttcagtcttgattcttgttctg +ccatcgcatgcggtctacgtgagttaatatgtagcttacgttctagcttgtgctaatctg +agtatagattcgtagaggaatattatcaagcttccacgcctcaacgtacgtgtattggtc +acacaagacactaaaagtggaagtagcgtaaactatagtctagttgttaaatgctcagtt +cttgttatattcgatatactcttggctaatttatgtctgagtatataaaattaatgatat +taacttgcatttcacggatcccttagaaaaagattttgaccgagcgcattataaacggtt +acaccgaatcaatagaagcatacccaatagctttctttgaatttattgcctgcgcaactt +ggctgactctctagatccgaataattctatatggtcgtgacgaaactagttcattactgt +ttaaaatgccaacatgtcttttgggccgataatggctctttgcaaaattactcaatgata +cgattgatcaaagcggtagttgctagtggtagcatgtaagtctatcaaatgtctgattat +ccgaaaatcttccaaaagagtccacgtaccatatctatctcatagcgacgcgaggggaac +cttatctaactatcattccatttaccgggtgactctcgatgcaggatccgattgggataa +attgcccagaaatggctcattcctgactaagggtaaggccgttctcagcaagggaacccc +gcgaatctaggcttataccatctagattgttaactacttgcctgtagttctacagccata +ctggacagttgtttctaaatgatcgggattcatgctagcactcctctgaatgcaccgcgt +aagtttaactattacgtccgtgggcagataaggatggaggctgtatgtatcttaactgtt +acctaatatggctggtaattatcaaagtaaggaccttaatgccatagcgctagcaatcgc +tttgtatactgaccatgtgccaacctctcttaatctgtaaaatataatgtcttagctaac +tgtggacgatcatgtctctgcctagagcttcgctgtatcaattcctatagccagcgtact +agtgacacaacaacaccgtgtgagaaaagatattagtccttacgtctgtctctctacagc +ttattgatgaggattgaacatggacatatagctccccctcaaaagcagatgctacctctt +tattccattctcgaacatttgccgaacttaatttcgacaaacctgaggtcacgtcttaat +ttatcggtaacgtcacgtccctttgagactggataaatatattaccaggggccaacgagc +aattgttggaggcgcttctataatacaaggtgtcttgtcaaagaaagacggcgtgcgtct +cgtgcaactcacttaaccaatattaatgtgaaacccccctctctcacatcttatgcggtg +tactgccctggtacatttcctgtacaggactccaacagtgtagattcctaagatagctgt +tggagttgcctcacgccagatcgaaaaactgaataaactagtgagctgagctgcagaaat +accgcttaattacttatgactagttcaaagggacctacgtgatgtcagacattgcaagga +agaaattaggtttgtgcgtcattttggctggactagcactccttacttcccctactattc +aaatgtcgtaaacagcatgagacaggatcgtgctgacatttaaggtctattgggaacgag +gctacctttggtcgcgcgctcgcgttctccgaatgaccgaaatgcatgagcacagtatgc +aattgcttatagatctaaggtctggtcgttgaaaccaagcacgtaggcctgggaaatcag +ttcttcctcagcaactacacaaaagcgtccaagcattagtacttgtagtaaatgtccgaa +cctatgcgctcatttgaaagtcaaaaaatatttttaagcagtaggcacctaacccgattc +ctctacttagtagctttctttgattctcagaattgactgcaatatcactgcacaattctg +tgccattactagacttctctgtattaacgtctcatcttactaacactcgcctaggacaca +tctgagagtgaagtatttcaatacatttactgaaatcttcagttctaaaatccccgaata +aggctcttatcggtttggccaacacaagaaaaaaacttcttgcaccactcaccttcatac +gcaggagcctggggaacttagtaataactatttcggcagacaaagcttataacaagttgc +cggcgcgtataatatttaaaagaccccttgagctgctcaattaaaacgctcacctggtat +aggctattagatagtgccgtcttagtaaggggcgggaattatcggataaactgatatttt +gataaaataaccgacttgttcacgacataagtcactaaggagattttatctttctccaaa +gtatatcttccttggataatttcaaagcgctgcaatttaagttctgttactagtttatgc +tgctgggaggtgaccggaaggcgtagtaatctagaggcaaattataagaagttcatcata +tcattttcgactacaaaaacaaggtgttgtatgccggcgcattgtgtaaactggacgagt +accctagatggaaaattatacgttaagccaagatttcgatgtaatgataattacctacac +atttttgctatccataggaacaagagctgttctataggctcgtggcatacgaacatttgc +tgccgctatgaatattggaagctcttcaactacagactctattcttaattgccgtcgaaa +atgggccgaatcggctattattaatactcggtttttccgaggggattgttgtcgacagtc +gtaattattattaatattgatgttggtgaggtcatttaaatacaaccttgcagacaatga +ataagggatccaatctctcatactccttttacaattgctcatgcccctatgcaaacctta +tgccgccacacctccgcaactctctcttctgaactgtaagtagcttcattactggtttga +gactatactgaagctgatgacattctaaaatggctattttcgaatgtgattcataatgtt +tatcgtttgggatggcagaatcacgttatttttgatatagcccgggtattctattgtata +gaacgtatgctacaagtcattccccgaagaagactagaagtaaacaacatgcgaccatcg +ttaagccacgcaaggctgtagctttatttcccgataacctatcttccataaatagcggac +agcaggatactgacgctcaacatcagtggttatggtctaatttttaacttttaataaggt +aacttcagcaggcatacacagtaactctttaatttataatcaaattagaagtctgacact +tcttatatttttctatcatccaacgcgatcgcccattagcttattgtgttactaataacg +tatctaaaccaatccttttcaagctactgcctatattgtcaatatatacaaacaacagga +tagtaggctgcttaaaaaatattgtcaaccgtgtacgctttacaatacccggaaatcaca +aactttgtagacaacgagtgaaatttatacactacgaagggccagcgtacaagacccatg +aattaggcgatatgtttattctgacatattggtttatccttaatctgtcgctgtaaaatg +aagccgcccccatccctgcgaattttttttcgaagattcacgactgaaatataaatacgt +ttggctatatttatgttggagggaggcaatagcctttactgttaaccgaagatttagcca +gtgagtgtgacactaaaacactggaataaatgcaggcgttcttctgggtaaaaggtttag +tcaatctcgcctataagttcatatagctctggatataattatctggcccatgcatttatc +atggcgcttggtgccctgtgtgaagccggcctctcatattgaaggtccgaagtattccat +gtacattaagatcactctctcattcatgcatcttggcttaacaaatctggttgtccaagc +tttccaggcacgtatggtacaaattcggatcgaatacttataaaaatgatatgttaaact +gtctaaaacgctcatctacaaagtaaagtgcactaaccaatagagtctcaagaccgtgta +atgctggtgcactgaatgtgtaatacggttagaagggattagttatgttacaaatccatt +gaaaacttaagaagcattgcgtgctcggagggtgcatcttttatcaagagactaacatta +ttttcaacgacgtacatgctttacaatagggtacttatcaaacgccgagaaacgcgccta +tagtgatgttatgattatgacccgatatccattggaccgaattttatgtaggttcccagc +gtactcgcgtaatatctcggtattgccataatgtaatacttgtcggtctctcccagatga +aaaagcgttacagagtatttcaatgaaaaacagcgcgcaacgtcaatacctttaggggta +acggccgctgatttcatatagatatacgataagttggtatagctctactaggtggcatcc +acaatcgttgcatttactatagctggttacaatcataatctataccgttccttacatact +accatagcgggatagcgtttttttgccgttgattgggtttaagaggatgtcagtctcatt +atatccgattcggtgggagagccgttgttttcaaatcgcacactttgtgacataatgtac +aagataacaaaactgatataagatataaactgtcaatatcaccttgacacttgaatcaaa +gtaaattaactcgcaaatataatttgactaattgggtgcagatttctcaattaataaaaa +aatggcaccggatgggcttacaagccccttatcattcacttgtatcatgatttccaagaa +caatagaatttgctagcaagtatgaacagagattcgaattgcatccacagtacgccggag +cgtttattttaatgtggatatgacgatgtactgttggcggcatttgctagtaaccggtcc +ttatttacgtagcgcacacgtaagcatgtctgggagaaatatggtggtacaatctcagag +aaagattacagtttggtttaaataggacttatcgggtcggaagtggaacttaataagcag +tacacaattgggcaacagacgtcttgcctattacaataggattacaatgcgttagatttc +agacacgttcgtgtttggctattcgtcaattccctaaatagttagacgatcaactattat +caaagtgattctttgttcatcctccattcatgtaacagatggcacactacgcataacgcc +gaggaattttaacgagatttaagagagcagttcgggcacaacccacttgactttataaca +gctcggcagcataaacggtaatatgtgacaaatttccaaacgttataagaacgtatgtgt +acttagaaaactaagtggttcatgttcaacagatgtgacgcagcaagcctaacttatcta +ttggttttgctataaaagaacaaagttacacagaatcctaagggcttgtttcacacttat +gcctagtgcttcaccatcttaaaatagcgaaaccggcacgaatcaaaccttaaaacaatg +cgcagatattggtgatggtgactccgggtatgataatggtaactgttgaccagcgcccac +ctcatcgaagtatagaaagtggttaggataaggatgagaccgaacttatttccggccata +actttagattttctacctagtacacaacatcagggcggacacgaaaccgccatcacatca +tataccaggtttaatttgcttaatgggggaagtgtcaacgaaccttcgaactttagcagg +catatggccattatatatggccccagagcagaatgctacagcagacaaaatttggattta +tgtagtttaatacctatcaaacttggtgtgaccatacttgtctaacgacagtgcacaaag +tgtaagttacaattattactactcagcagcttctgcaatgataaaatcttatcatacacg +tcacatatgataatatctacttagggggaacgggctccacaacctacatagtactcaata +cttacactattcgacaggcacaccaaacctgtacagtcccaaaagattgagtcaactttg +cagtactgcagatcacagtaatagcttagttagcgagtcaaaattagttttctacgagac +tgcacgaccgtgcaaatttccgatgtgttggctacaaatagcaacgtatgaatttgtttg +aagccacgtaaactgtacaaccttagagataagtctcaggctactaaaaacacgttgtgg +cactaacaggatcatggttgattcttacttattcggctgaccggcccaataagtaacctt +caactagaacagaataatcgggagtagtttaattcagtcaaggtgcaggtctcattgtaa +ctaacaagctctgtgtaaccaagttaaaatcgttttcttagcggattccctacttatgga +tttgagctcgtccacaatattcgatacaagaagtttgtggtccgtaacaacgaaatttta +attacgctgtgcagcctcatccaaggaattaatagaaggttgatggtaggctccgaacgc +tccatgattataatcaagtggactgtgcagtaaacgaggaaggtatcctgacgtcgtggt +gttcgtttttgttatttgtgccctatacgagtagataaaccatgaacagcacagtgtgaa +cccatggttgattttaggctaccttatttttaatttccgttacacagaaacgaattccac +aactaacatgccattaatttttcgatatcttataaaagatggtcgaaattcattcattta +ttttttttcggttctcgaaagtcaactaagctgtcgcgttttgtttctctttagaggtaa +aagtggctttgatctcctacgtttggatactagtcaaccattactccatttgatccgtga +gtatcacctgtctaacatccagcattatgactcctcggcgaagaaaagacacacttctta +gagtcgatgtgtattagctagggacacagttgtttaatacgatagtgagcccagggaggg +cagtgcgtcccccagtagatttattcagctagtgtaagtataagatatctcacccacgag +gttcaagtgatatgcagtcttagaataatacttatcctgaatttcgatattatgggtact +tcaataatccgctagcgctactttatgtctcgttggacagcaggacacatggcagtctta +aacactaaagacatcacctgaatgaatgtaatgggattacaagaatcaatgaggtattat +atacgacgtaggaaactctggatatatacagtaatctagttacgccatcgcacttcattc +ctctggaaacttagaagacatcagctgtacgtggaggaaccagacccccgtatgtagcca +aatagaaccaaagttgcttatacaaacacacccaatgacaatggaccgctggagttcgta +aactcggaacgtagtactgcacaaacccagcatttagcaataggagctacgtatgcaact +cccacgtggtaataccttcaagctatcaatatataggtgcctagctaatcgcattcgcaa +gcagtattcaagcttgtaaaccagtataataattacagaggctctatgaaacccaacttt +ccagctaaaagtcccaattaaatggttatttcgtacttttaaagtcgcccgttctgttat +tacgcgaattgattctactccaaaattaaacacaaattatcaaccgtttcatttatattt +gtcaatgcagctgtttaaaataaggctctactaaattataattaagacacttattaccag +atttctctagttaagtttgaaccagctcgactaccgcgaaagatacattcccttctctat +ttttcagttcatctatgggtcagagaagcattgaatttattctattcaccctcgtcgttc +acagcgaatcgtcagtgtgatcagtgtatgagaaatatcctaaaccgtttagtcagacca +cacgcttagaacaagtggtctaaaaagactgccctggaaggagtaagaagtatacagctg +atccggtgtatccttcagtcatctgccctatactaattacacgacgcaaggaaaaatagg +tttattttctaggcaaacccttcataggtgactccgatgtgttacgaatcatgcttgaga +atgtgctatcgttaccgacggataataacgatctccaatgaaccaaatgtagaatgtcta +ttgattacccttttactattcgacttagagataggagatagaacctcagtgtactttttt +agccgaatgggaatctttgggaggtgaatggccataaggtcgtaaatccaaccctcttaa +agtcttccatattatatcgttgttcgtggaatcgataacagatttgttgacccatagtaa +atgtatactagtttatgttgtaagtgtagattgttttccgattgccgtccaaactttatg +tcgtaattgtagaccagtaaagttgaccaaggtaagtgcccagcgatcctgcgagatcga +tcgccaatttttccagtcactgtaagtgtaggtttagataaagccgtatgagttatatca +taagggcctcggaaagcagcttcgaaccaaagttcccttataatagtagtttaactataa +aagtatatactggtctgtcgccctttcacgatttgttttaccggtttatgaagcgttacg +tcattagagcggctccaatttaaggttaacggcttccatgtgtagttgtatacaaggata +acttaaagtatctgttcagcgagctagttaagttatcctcgatagaacacaactcagagg +tcccaagatcgggtttgcaacttgctaatttattctcaaggcaaattgggaattatcgat +acctgtataccataaggtcgctcgatgtgatgcttatgtcttctggtgatcctaccttag +ttagtgctgattaacggaacattaatgtttatcgttttgagatttagccaattctctgat +tctaactcaagatgccttatctgacgtgctatgcagcccctaagtattttacattgtaat +aggacacgctcctttaaaactcgccaaaaggtcgttgtggttctctactggttaactata +taatttacagctttgttgagctagttcctctttggtttaagtcctcaatattagttggtt +cgagcgataagttggctagttaccttagtcactatattagatccgaatgttatgcttcat +ctgaagaccgccaccctccaaaatttcttttaagactcacttattgcaaggtgtaggtga +attcggctcgtttctcaagtggtgtatctgtacacgagtttccatattttcatcaacagc +caccgcacacttatgtcactctaggtattaaaagtcgctctacaaggggacgcaattaag +aaacagacatgctagtcaaaaataaacatagcgaggcaccactaattcggccgcttatca +atgggatgctctgcgcgagacgcgccagagctcagtagttagttcggacatacatttact +tcagatgatcaattagttttctacaaatgcttactctaccccgaaaaaagtcaccagact +cttacgtctctttagtatccttccgtcttatataaggtcagtcccccgtttcggtaccct +ggaatttactaagaataatgaaacagcccccaaggacgtacgtttacaaatgatagacca +gatcgcctagcttattccgacgcatgttgcatagaattgaaccaacggaatgtgagagta +actagatgagccgaccacagcacccgtttgcgtcgcagaatacgcctgatagttcggcca +cgaaatcatatgtcctttgagtattaagtatttgtaatgatcaatcgagctcaagcaagc +ttacacttcctcggatattcagggaacttagtgcctttgaaagatacgttgatcaacgaa +aaattgataatggctcatatggaatgcctacctcatagtgctgaattaacacagcactgc +ggacctaacttttcgaggtttcaagttcacgtctcaaaacctaataggctggaatatgta +gggatcctcggtgaatttgtgattgggtttgttgtagtactgaccaagtgaatattcttt +ttttctaaaagcagatctgctgccgggcactacgaaggagatctctgtgtatcattattg +cttcttgacatgatgactcttaaatcactgtgggtgtgcaaaacgatagcacaacccaat +tcgatagtacatattgttgatacttcgcactaaaccgttcatatttaaaggttgtgctcc +ttccttcgttaaatactggtgacttggtcctatctactattagctagacctctggggaac +cacgcccccgtaaaacctgtgcaagagagggggtcatacatcttagacatcgcgcctcca +ccagggaagcattgggtgattgaccaggtgtgtaacaaatatgattattcttatactaat +attagcaaagatgcataatgatttgtattaaatgtataattgaattgataagggtctttt +agtcagtgatagagtagtataaggtagacattagaactcttaaccggacgcagatttttc +ggtcttagtaagccaattagtcgacaaaacaaggtaagagcggttactagtagtacctat +aatgcactgaatcttcggtcgaagtatagttctaatgctatgcagattgtgacggcgaca +aatgttcagacttatatcatgaaacaagctcttgtaagtattgacaaatgaaaagattga +atatttttaaatacaaaatgcgcctacttattaggggaattaaccagattgaaggccaat +cctcacatgtaatgagataatagacgataaatgaaattcttgtaatagttgaactgctac +gtgatgggtattatatatgattgagatcctccaattgccgacgtcttgtcttgatgccca +aaagattgtcaacgaggagctccctcgcgtacctgtcgtccgtatcataaacgacgcgac +atgtacagcactccgaagtataagcaataataatgcgggtaatccagactagatcttttc +ggactcaatgcggtttcacggtaaacatgattaataccggagagtagtcgagcttatcag +cgatgcaagcgaattcattgtgccaggagatacgttgcagataaaaccggcaacgtatgt +caacaagttttggcgatctcgttgtttgtattcgacgaggcgcgggaacttcaagaacta +tcgtatattcaagtccattaccttttagtttcagactggtggagctgactaaagttatat +catcattttgtacactggtttagttaacgataatttcagatttaacatgaccagacgata +atcgctgtatatccagttggaatgtggtttgccagaaaggttaacttataatcaagcctc +tcttcagtcttgattcgtcgtatcccatccattgcgctatacctcagtgtatttggagct +gtagttataccgtgtgctaagatcagtagacatgacgagagcaatattatctaccttaca +agcatcaacggacgtctagtcggaacaaaagactctaaaactcgaacttcaggttaatat +actatagttctgtattcagcagttattcttatattcgatattatcttgcctattggatgt +ctgactttagtatattaatcatagtatctgccatgtaaaggtgccagtactaaatctgtt +tcacagtgcgaattataaacggttacaaccattaaagacaacaagaccctatagctttat +ttgaattttgtcaatgcgcaacttggagctcgcgatacatcccaattagtctatagggtc +gggacgattctacggcatttctggttataatgacaacatggattgtggcccgagaatcgc +tctttcattaattaagcaatcattacagtcttataagcgctacttccgagtggtagcagg +taactcgatataaggtcgcatgagccgaatagcttaaaaaacaggccaccgaacattgat +agagaataccgaccacagcgcaacctttgattactttcattaaattgtacggctcactcg +acatcaagcttaagattgcgataatgtgaactcaaatggatcagtactgaagaaccgtaa +cccacttcgcagaaagcgtacccagagaagatacgctgttacaatatacagggtgaaatt +attgcctgttcttcgtaaccatttcgccaaacttggttagaaatgatagccattcatgat +agaaataagctgaatgataccagtatctttaactatgtagtcagggggaagataacgatg +gtccatgtatgtttctgatatgtgacagtattggccgcgtaatttgctaacgaagctact +taatgcctttgagcttcatatagatttctttaatcaaaatcggcaaaaagatagtatgag +ctataatatatgctagtagagaactctggaccatcatctatatgaatactgattcgagcg +tgcaattactttagcctgcgtactactgactctacaaaacactctgagataagtttgtag +tcagtaagtcgctctctataaaccttttggatgaccattgtacagccacttatagatccc +aataaatagcacaggagacagagtttttcaatgctcgatcatttgccgatagtattttcg +tctaacctcagggcacctattatttgatacctaacctaacggccctttcacaatggagaa +atatatgacatcgggacaaacacaaatggtgggtggccaggagatatgacatggtggcgt +ctctaagaaacacggactccctctaggcaaactcacgtaaccaattttaatgtcaaacaa +aacgctcgaaaagattttgccgtgtaatgacctggtacattgactggtcaggaatacatc +actgtagttgccgtagtgtcctgttggtgttccatcaagacacatcgtataacgcaattt +acgacggacatcagatcaagttatacagattatttaagtatcacgtgtgcattgggacat +aagggatctcacacatgccttggaacatttttgctttgtgccgctttttcgctgcactac +caatccttacttaccagtatattcaaaggtcgttaacagaatgagaaaggttagggctct +aagttatcgtcgattgggatagacgagacatttgcgagcgccctccacggatacgaatct +cccatatcaatgtgaactggatgctatgcagtttagttcttacgtctcctagtggtaaaa +atcaaagtagcactcgcatagcagttattcagaacctaatacacaaaaccgtcaaacatt +ttctaattctaggtatgggccgatcataggagctaaggtgaaactcataaatgttttgtt +agatctagcatcctaaaaagatgcatatactgagtagctggcgtgcattctctcaattgt +atcctttttaactgaactagtcggtcccatttcgtgactgagatctattaaccgataaga +ttaataacactcgcattcgtatcagctcagagtgaagtttttcaataatttgactgatat +attaacttctaaaataaccctttaagcctcggatccgtttcccaatcacatcaaaaattc +ttattccaactatctacggattaacaacgtgcatggggatcgtagtaagaacttgttccg +atcactttgagtatatcaagttgacggcccggttattattgaatagaaacattcacctgc +taaattaaataccgcacatcggatacccgatttcagagggccgtcttactaagggcaggc +tttgttcggtttaactgagatgttcattattttacagtatgcttcaactaatatgtaacg +aaggacagtggatctgtctccatagtagatcttcagtcgtgaatttcataccgctcctat +ttaagttcgcgttcgagttgttgatcatggcacgtgaaagcaacccctagtattctagac +gaaaattttttctagttcatctgataatttgccaattcaaaaacaaccgctggtttcccg +gcgcattctctaaaatggaagtcgaacctagagccattatttgtcggtaacccatgagtt +ccttcttttcagaagttaatacactgtggtcctatacagaggaaaaacagcggttatata +cgatcgtggcataacaacattggatcaagatagcaatttggctacctattctaattctca +ctagattcggtattccactacaatatcggcagattaggattggatgaataatcggtgttt +aagtccggttgcgtctccaatctcctaatttttattaatattgatcttggtgacctattg +taaataaaaacttcaagactttgaataacggtgaaaagatagaagactcatttgaaaatg +gatcatccacagatccaaacattagcaagacactaatccccaactagctattctgatcgc +gatcgtgctgcagtactcctgtcacaatagtctgttcatgatctaattctttttgggctt +tgttcgatggtgattcagaatctttatccggtcgcttccctgtagctactttgtggggat +attgcccggggattatagggttgagatcgtttcctaaaagtatttaaaccaagtagactt +caactaaactacatcagaacatcgtgaagacaccatacgcggtacctttatttaccgata +acatttcttcaagaaataccggtaagcagcataatgaccctaaacagctcggggtatcgt +cgtagttttaaattttatttaggttactgctcaaggaataaaaactaactatttaattta +taataatattacaaggctcacactgattagatttgtctataagacttcgcgatcccccat +taccggattgtcttaagaataaactagataaaccatgcattttctagataaggcctttag +tctaattagatacaaaaaacacgatagttgcatccttaatttattgtgtcaaacctggaa +ccttttaattacccgcaaatcactttatgtcgagactacctctgaaatttattatctacc +taccgcatgaggacttgaaccatcttgtaggagttatgtttattagctaagattcgttta +tcctgtagcggtccatgtatattcaacaagcaaaaagcactcagaattgtttttagttga +gtcaagactgatatataaataagtttccctagttttttcgtggtgggacgatattgaatt +gaatcttaaccgaagagtttcccactctgtcgcacaataatacacgccaatatttccagc +cctgcttatgccttaatcggttactcaatctcccattgaagttcattttgatctgcatag +aagtttcgggcccagccttttttctgccaccttcctccaagctctgtagacgcactctaa +gattgatgctcacatgtattaattctacattaacataaatatataagtcatgcatcttcg +agtaaaatatctggttctccaacatgtcctggcacgtatcgttataatgcccatacatgt +agtattaaaatgattgggttaactggatattaagatcatcgaaattgtaaagtcaaatta +acaatactgtctcaagaccgtgtattcctcgtgctcggaagggctattacgcttacttcc +gttttggtatcttaatatgactttcaaaaattaagttgcagtgagtcctacctgcgtgca +tcggttagcaagagtataaaagttgtttaaacgaactacttgctttacaataccggtcgt +atatatcgccgtgaatccagaagattgtcttctttggattatcaaccgagatcctgtgga +ccgatgttttgggaccttcacagaggactccaggtagagctcgcttttgcattaatctaa +gaattgtacctctctaaaagatctaaaacagtgaatgtgtatttcatggaaaaacacaga +gaaacgtaaattactttaggccgaaaggcacatgagttattatacatatacgagatggtg +gtatacatcgaattcggggcatacactatagttgcattgtatttagctgctttaaataat +atgatattaccttccttacataagacattaccggcataccctggttttcaacttgtgggg +ctttttgacgatcgcactctcatttgatccgagtagggcggtgacccctgcttttcaaat +acaaaaatttcgctatgaaggtaatagattacttttcgctgttatgatagaaacggtaaa +tttaaaattgaaacttctagaaaagtaaagtaacgagaaatgattttgtgaataatgcgg +tcatgattgcgcaagtaagaaaaaaaggcaaaaggatgcgcggaatagaaacttatcagt +cacgggtatcttgatttcattcttcttgtcaattgccgacataggatgaaatcagattcc +aatgcaatacacagtaacccccacccttgattgtaatgtcgatttgaagttgtacgcgtc +gacgaagtggatagtatacgggccttttgtacggtgcgatcaactatgaatctcggcgag +ttagatggtcgtacaatctcacacatagaggtcacttgcctgtaatgacgaattttcggc +taggtactcgaactttattagaagtaaaaatgtgggcaaaagaaggattccattttacaa +gacgattacaatgagttacatgtctctcaacgtagtctttccctagtagtctttgaacta +tttaggtactccagaaaattttagcaaagggtttctgtgtgaatccgccattcatgttta +tgatggaacaataagaataacgccctcgtatgttatcgacagtgaagtcagcagttcggc +caaaaacatattcaatttagtacagatccccagaagttaagctaagtgctctaaaatggc +ctaaacggttatcaaagtaggtctaattactatactaacgggtgcatcgtaataactgct +gtcgatgcaacactatatgatagtgtcgttttgctatatatgtacaatgtgacaaagaag +ccttagcgattcttgcaaacttaggacttcggattctcaatcttaaatgtccgaaaacgc +aaagattcaaaaatttaatctatgagcagatatgcctgatggtgactacgcgtatgttaa +ggctaaatgttgacaaccgcacacataatcgaactattgatagtcgggagcataaccagg +tgaacgtactttgttcacgacatttattgacatgttctaaatacgtctcaaaatcacggc +gcactagaaaacgcaatcaaatcattgtcctggtttaagggccgtaatgccggtagtgtc +aaacttcatgagaactttagctggcttttggccagtatttagggaccaagagcactagcc +ttaagctgaatattttgccatttatctactgttataactttaaaacttggtggcaccaga +cttgtcgatacacacgcatcaatctgtaacgtaaaaggtttactaagaacaagcgtagga +attgagtttatattatatttaaactaaaagatgatattagcttctgagggcgatagggct +ccaaatcataaagaggaatatattattacacgattagaaacccacaacatacctcgaatc +gcccaaaagtttgacgaaacttggcagtactccacatctcagtaatacagttgggagagt +ctcaaatgttgttttattactcaatgaaccaccctcataatttcactgctgttccattaa +atttgcaaacgatcatttgctttgaagaaacgtaaaatcgacaaaattacagataagtag +atgcataataaaaaaaactgctcgctataacacgatcatcgtgcattcttacttaggagc +atcacccgcacaataacgtaccttaaactacaacactattagaccgagtactgtaattca +cgaaagctcaagctcgcattgtaaagaacttgctctctcgtaaaatgtgataatagtttg +cggagaggattcaattattttccattgcacctactccactagattcgataaaagaaggtg +gtcctcccttaaaaagaaatgttaagtaacatcggaaccataagcaaagcatgtaagtga +accgtcatccttccctaagaaacataaaggtttttaataatgtcgactgtgaactataac +tgcatcctttcctgacctactccggttccttgttgttatttctgaacgagaccagtagat +aaacaatgtaaaccacagtgggtaccaatggtgcatgtgacgctaccgttgttttaagtg +cccgtacaaacataagaagtcataatcttacttgaaattaattttgccttttattttttt +tcaggctcgaaattaatgatttgttttttttgaccttctagttacgctaatatgcggtcg +cctgtggtttctattgagtcctataacgggatgggatctaatacgtttggttactagtaa +acaaggtataaatttgataccggagtatcaactgtataacatcaagctttatgactcata +cgcgaagtaatgacacaaggctttcaggagatcgcgagtacagagccactaaggggtgta +ttacgatagtgacaccaccgagcgcactcactccccaagtagatttatgatcctacgcta +agtattagatatataaccaaagaggttctagtcagtgcaactcttagaataataattagc +cggttttgcctttttaggcctaatgcaatattcagctagcccttatgtatctcgcgttcc +acagcaccactcatggcacgcgtttaaactaatcaaatataatctatgaatgttatgcca +gtacttgaataaatcaggttttttataagtccttgcatactctcgttatatactgttaga +gtcttaccccatagaaattctttcatctgcaaacttagaagaattctcagctacggggag +cataaagtccccaggatgttgacaaatacaacaaatgtggcttatacaaacactccatat +gaaaatcgaaccctcgtggtagttttagccgaaccttgtacggataaatccctccatttt +ccaatagcagatacctatcctactacctcgtggtattaaattaaagcttgaaatatagag +ctgcatagcttatccaattcccaagcacgagtctaccgtcgtaaccacgatttgatttac +agacgctagagcaaacccatctttaaacatataagtaaaaattaaagggtgagtgcgtac +gtgtttactagcaacttcgcttattaagacaattgtttataagccataattaaaaacata +tgttcaacaggttcattgatatttgtaattgcacaggtttttaataaggatctacgtaag +tataatgaacaaactttttaccagagttatattctgtactttgaaaatgctcctctaccg +ccttagagactttcaattagattttttgcagttaatctatgcgtaagtgaaccatgcaag +ggatgcgattcaaccgcctcgtgctaaccctatcgtctgtctcataactgtaggtctaat +ataattttcagttttcgaacacataaccctttgaaaatctgctatttaatgtctcacctg +catgcactatcttctatactgctcagaacggctatacgtcactatgctccaagtgacgat +ttaaacgaagcaaggaataataggtttattttagtgcaaaacaattaagtgcggactacg +tgctctttacaataagccttgtgattgggctataggttaagtcccatattaacgatctcc +aatgtacaaaatcgacaatcgctttgcattacccggttactagtcgaattacagatagct +gttagatactcactctaattttggacaacaatcccaatcttggggtcgtctatcgcctga +agctcgtaaatccttccatcttaaacgattacatattatagacttgttcggggtagagat +atcacagttgtgcaaacattgtaaatcgatactagtttatgttggtagtctagttgcttt +taccattccccgaaaaacttgatctactatttcgacaacagtaaacttgaactaggtaag +tgaaaacagagaatgcctcatagtgccactatttgtccactatatgtaagtgtagcttta +cataatccactatgactgagatcattacggcctaggaaagcagcgtagaaaaaaagggcc +cggatattacgactgtaactataaaactagttactggtagcgcgccatgtatagatttgt +tttaccggttgtggttgcgttaacgaatttcagccgcgaaaattgatccgttaaccagtc +catctcgacttctataaaacgataaagtaaagttgatgttcagcctccttcttatggttg +catcgagagtacactactcagtgggaaatagatcggggttcctacttcagattgtattat +ctaggcaattgccgattgtgccatacctggataaaataagctacctacatgtgatgctta +tctattatcgtcatactaccttagggtgtcctgttgaacgctacattaatctttagccgt +ttgagatgttccaatggataggagtctaacgcatgatgaagtttaggaaggcagagcatc +ccactaagtatgtgacagtgtatttcgaaacgagacgttataaatagaaaaaaggtcctt +ctggttctattctgctgaactattgaatggaaagattggttgacctacgtactatttgct +tgaagtcatcaatttgacggggtgagagacatatggtgcatactttacggactctatatt +ttagatcagaagcttagcagtcttctctacaccccctcacgacataattgcttttaagaa +tctatgtttgattcctctacgggaattcggatccgttcgcatgtgcggtttatctaaacc +aggggacatatgttcagctaaagcatacgaacactttgctaactagacgtatgtatagta +gctataaatcccgacgatatttacaaaaagaaatgagactcaaatatatacatagcgacc +ctacacttattcgcaccctgatctaggcgatcctagcacccacacccgaaagtgagcact +agtgtcttccgtattaaatttactgcagttgagattttagttgtctactaaggattactc +taacccgtaataaggatcaagactcggtactagctttactatcattccctatgtgttttc +ctaactcacaagggtacgtaccagcctatgtaattacaataatgataaagacacaaagga +agtaactttacaaatgagtctccagttacactagcttagtccctcccatcttgctttgaa +gtctaaatacgcaatctctgaggatatacagcagaagaacactcataacgttggagtcca +agaattagactcatagggcccccaacatttaatatgtactgtgagtttgaaggtgttcta +ttgttaattcctgctcttgatacatgacacgtactccgtgtttaaggcttcggactgact +ttctttcataagttgagcaacgaaaatttcagaatcgataagttggattcactaactaat +acggctgattgaaaactccactccggacctatatggtcgacctttatacgtaaccgatat +aaaacttataggctggtatatcgagccttcctagcgcaatttcggatggggtttcttcta +ctactcaacaacggaatagtctttgtttagtaaaccagagctcaggacgcccaatacgta +ggagagcgctgtggagcatgtgtcattatggactggagcactcttaaatcactctgcgtg +tgctaaacgatagatcataacatgtcctgagtaaattttcttgatacgtcgcaatatacc +gttattagttaaacgttctcatccgtcatgcgtgaaatacggctgtcgtgctcagatata +ctattagcgactcatctcgcctaacacgcacacgtataaactcggaatgactgccgctct +tacatattagaaatacagactacaccacggaagcattgggtcattctcaaccgctgtata +aaagatgattagtcttataataagattaccaaagaggcagaatcatgggtagtaaatcta +ttattcaagtgattaccgtcgtgtaggcagggagtgaggacgagatggtactcaggacaa +atattaaccggacgaagtggtttacgtcgtactttcactattagtagtaaatacaaggta +acaccggggaatagtactaaatataatgatatctatcttcgggagaacgagtcgtctatt +gctttgaacattctcaaggcgtaaaatgtgctgacttatagcatgatacaaccgattgtt +acttttgtctattcaaaagattgaatagttttttatacaaaagccgcatacttatgacgg +ctagtatacagtttcatcccctagcatcaatgctatggacagtattgaacttataggaaa +ttcttctaatagggcaaatccgtcgtgatgcctattttttttcagtcacatcctcaaatg +gcactagtattgtcgggatcccattaacaggctcaaccacgagctcacgcgaggacatgt +agtccgtatctttaacgaagcgacagcgacagaactcccatggataaccaattataaggc +ccgtaatcctctagacatcgtttaccaataaatccgctttctccgtaatcatgttgaata +ccccagagtagtccagatgataaccgatgaaacacaagtctttctcaatgcacttacggt +gaacttattaccgccaacgtagctcatcaaggttgcgacatctagttgtgtgtttgcgac +gagcccagcgaacttcatcaactttcgtatattcaacgccttgtaattttactttaagac +gcctggtgatgtagattcttagataatcagtttgttatcggctgtactttaccataattt +cacaggtttcaggtcaagaagattatagctgtatatacagttccatgctcggtgcacaga +aacgtgatcggataataatcaatcgcttatgtcgtctttaggcgtatccaatacatgccc +cgataccgcagtgtatttcgacatgtaggtataccgtcgcatttgagctcgagtcaggac +gtcagctagattagattccttaatagaatataccgacctctagtccgaactaaactatag +ataacgccaacttcaggttaattgtctagtcgtctgtttgcagatgggattcttagatga +gtgagtatcggccatattggttcgagcactttagtttttgatgcataggatatgcaatgt +atagctgaaagtactttatctgtttcaaactcacattgattaaaccggtaaacctttaaa +gactacaagaaaatattcagtgagggcaattttgtcaatcacaatcttccagctagagat +acttcacaatttgtcttgaggctacgcaacattagacggattttcgcgttttattgaaat +aatcgaggggcccaagagtatccatagttcattttgtaagatttctttacaggcttatta +cagcttcttcagactcctacatgcttacgagttatatgctagcatgtgaacaatagatta +atatacaggaaaacgtacattgagagagatgaccctacacagcgcaaccgttgagtactt +tcattaaagggtaacgctctcgagacagcatccttaagatggccttattgtcaaatcatt +tgcagaagtacgcaagatccctaaccaacgtagaagaatccctacaaacacatgagacgc +ggtgaaaatagacagggtgttagtattcaatcttcggagtatcaatttcgccaatcttgg +tgagaaagcataccctttcttcagagaaagaagatcaatcataacactatctttaacgag +gtacgcacgcgcatcattacctgcctccatggatctttaggatagcggaaagtattggca +gcgtattgtgatttcgttcctactttatcaatttcacattcatatacatgtcttttatca +aaatcgccaataagataggatgagctatattagatgctagtagagttcgcgccaacatca +tcgataggaatactcaggacagcgtgataggacttttcaatccctaatactctctataat +tataactctctcttaagtttggaggcagtaacgcgctctatataatcagtttgctgcacc +attcttcagcctctgatacatacaaataaattccacagcagtaagagggtttaattgaga +catcttgggaacttaggattttactctaacatcaccgaaacgattattggataccgtacc +taaacgaactttctcaaggcagtaatataggacatccgcaataacacaaatgctgcctcc +ccaggagttatgtcttcctggaggctatatcttacacccactcactataggcaaactaaa +gtttaaatgttgattgtctaaaaaaaagatagataagagttggccggcgtagcacatgcg +aaagtgaatcgtaagctataattctctggacttgaagttctgtcctgttcctctgcaaga +aacaaacttcctttaaagctatttacgacgcacatctcagcaagttataaacatgttgga +agtttctagtcggaattcccaaagaacggatctatctaatgcattcctacatttttcctg +tctgccgatggtgccatcctattcaaagaatttcttaaaagtagattaaatgggactttt +aacaatgagtaaccttacgcctctaagggttcctcgagtgccatacaccagtcaggtccg +agccacatacacggagaacattctaacatagcattctcaactcgatcatttgcaggttac +ttctttcctatcctagtgctaaaaatcatacttgcaatcccatagcacggattaagaacc +taagaaacaattcagtaaaacatgttcgaattcttggtatgggaacatcattgcagctat +ggtctaacgcattaatgtttgggtacatcttccatcatataaacaggaagagtctgacga +cagggagtgcttgcgatcatgtctatcattgtgaaatcaaattgtagctcacatgtcgtc +tatgagagcgtgtatccgataagatttagaaaaatagaagtcgtataagatctcactgaa +cttttgaatgaatgtgaagcatatatgatctgctttaataaaactttatccataggatac +gtttccaaatcaattcaataattattagtcaaaatagataaggatgaacaacctgaaggc +cgatcggacgtagaaagtggtcccatcactttgagttgatattgttgaaccacacgttat +tatggttttcaaacagtctcaggatattgtatatacagataatccgataccagttgtctg +acgcccctcttacgtaccccaccctttgtgacgtttaaagcagttgttcagtattttaaa +ctaggcggcaactaatttggaaagaagcacagtggatatgtctaaattcttgttattcag +gcctgaatttaatacaccgcatagttaacttcgcggtagagttgttcatcatgcctcctc +taagctaccacttctatgatacaccaatagttgttctacggaatctgataattggccaag +tcataaacttccgctgcgttcaacccccttgctcgaatatccaactcgaaaagacagcct +tttggtgtccggaacaaatcagttacttcttttctgatgttaattctctgtggtcagata +cagaccaaaaactccgcggatttaccatcctccaagaacaaatttgcatcaacatagcat +tttggctacatattctaagtctcaatagtttaggttttcaactacattatcccaacatta +ggattggaggaataatagctgggtaagtccccttgcgtctacaatcgactattttttatg +aatatgcttctgccgcacctatggttattaaaaaagtcatgactttgaagaaccctgaaa +agatagatgaatcaggtgtaatggcagcagccaaagagcatataattagcaacactctaa +gaacattatagatatgatgatagcgatcgtcatgatgttatccggtcacaatagtagctt +catcagctaattcgttttgccagtggtgacttgcgctggaagaatcgttatacggtccct +tccctcttgatacggtgggggcttattcaaccgcgtggattgggttgtcatacttgcatt +aaacgatgtaaaccatctagtagtcaactatactaaatcacaaaatagtgatcaatacat +acccgcttcatggttttaaccatttaattgattaaagatattccgctaagaaccattatc +tacctaaactgatcgccgtatcctagtagtttgaaatttgatgtaccgtaatgatcaacg +aagtaaaacgttatattgtatgtagaataataggtcttggagctaaatgatgtgattggt +agtgaagacttacccttacaactttaccggtttctcggaagaatatactagagaatcaat +gcatgggctacataagcactttagtctaatgagataaaaaatacacgagtcttccatcat +gaattttttgtcgaaaaactcgaacctggtaatttaaaccatatatctttatgtcgtcaa +taactctcatatgttttatataacttcccaatcacgacttgtaactgcttgttcgactga +gctgtttgagctatgaggccgggatccggttgagctacatctatttgctacaagaaaaat +gaaagcacatttgttgggagttctggctacactcatagagaaataagtggcccgagtggg +tgcggcctgcctccatattcaagtgtatcttaaaccaagtggttccaacgctcgcgctaa +agaattaaagcctttatttcctccacggagtagcccgtaatccggttcgaaagagaccat +tgaagttaattttcatatccagtgaagtttaggcacaagcatgtgttctgccacatgcct +caaagcgctcttcaaccaagatatgattcatcctaacttcgatgaatgcgtctgtaacat +aaatatagaaggaatgattcggcgagttaattttcgccttctccaacatggcatccctac +gttcgttataaggaccatacatgtaggttttaaaggtttgcggttaatcgatatttacat +catagaaattctatagtcaaatttacaagactctagatactcactcgttgcagccggcta +ggaagcgctttgtaccttacttcccttttcgttgcgtaatatgaatttcatatagtaagt +tcaaggcactcatacctccgtgaagagggtagatagactattaaagttgtttaatagtac +gtattgatggaaatgacccgtaggagatttaccactcaatccacaagattcgctgctgtg +cattatcaaaacagtgcatgtcgaaacatgggttgggtccttcaaacacgaatccaggta +gagatacctttgcaattttt diff --git a/third_party/rust/regex/examples/regexdna-output.txt b/third_party/rust/regex/examples/regexdna-output.txt new file mode 100644 index 0000000000000..5e06c2662d7b3 --- /dev/null +++ b/third_party/rust/regex/examples/regexdna-output.txt @@ -0,0 +1,99 @@ +agggtaaa +| +tttaccct +0 +[ +cgt +] +gggtaaa +| +tttaccc +[ +acg +] +3 +a +[ +act +] +ggtaaa +| +tttacc +[ +agt +] +t +9 +ag +[ +act +] +gtaaa +| +tttac +[ +agt +] +ct +8 +agg +[ +act +] +taaa +| +ttta +[ +agt +] +cct +10 +aggg +[ +acg +] +aaa +| +ttt +[ +cgt +] +ccct +3 +agggt +[ +cgt +] +aa +| +tt +[ +acg +] +accct +4 +agggta +[ +cgt +] +a +| +t +[ +acg +] +taccct +3 +agggtaa +[ +cgt +] +| +[ +acg +] +ttaccct +5 +101745 +100000 +133640 diff --git a/third_party/rust/regex/examples/shootout-regex-dna-bytes.rs b/third_party/rust/regex/examples/shootout-regex-dna-bytes.rs new file mode 100644 index 0000000000000..45053d72ec81e --- /dev/null +++ b/third_party/rust/regex/examples/shootout-regex-dna-bytes.rs @@ -0,0 +1,740 @@ +use +std +: +: +io +: +: +{ +self +Read +} +; +use +std +: +: +sync +: +: +Arc +; +use +std +: +: +thread +; +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +: +: +regex +: +: +bytes +: +: +Regex +: +: +new +( +re +) +. +unwrap +( +) +} +; +} +fn +main +( +) +{ +let +mut +seq += +Vec +: +: +with_capacity +( +51 +* +( +1 +< +< +20 +) +) +; +io +: +: +stdin +( +) +. +read_to_end +( +& +mut +seq +) +. +unwrap +( +) +; +let +ilen += +seq +. +len +( +) +; +seq += +regex +! +( +" +> +[ +^ +\ +n +] +* +\ +n +| +\ +n +" +) +. +replace_all +( +& +seq +& +b +" +" +[ +. +. +] +) +. +into_owned +( +) +; +let +clen += +seq +. +len +( +) +; +let +seq_arc += +Arc +: +: +new +( +seq +. +clone +( +) +) +; +let +variants += +vec +! +[ +regex +! +( +" +agggtaaa +| +tttaccct +" +) +regex +! +( +" +[ +cgt +] +gggtaaa +| +tttaccc +[ +acg +] +" +) +regex +! +( +" +a +[ +act +] +ggtaaa +| +tttacc +[ +agt +] +t +" +) +regex +! +( +" +ag +[ +act +] +gtaaa +| +tttac +[ +agt +] +ct +" +) +regex +! +( +" +agg +[ +act +] +taaa +| +ttta +[ +agt +] +cct +" +) +regex +! +( +" +aggg +[ +acg +] +aaa +| +ttt +[ +cgt +] +ccct +" +) +regex +! +( +" +agggt +[ +cgt +] +aa +| +tt +[ +acg +] +accct +" +) +regex +! +( +" +agggta +[ +cgt +] +a +| +t +[ +acg +] +taccct +" +) +regex +! +( +" +agggtaa +[ +cgt +] +| +[ +acg +] +ttaccct +" +) +] +; +let +mut +counts += +vec +! +[ +] +; +for +variant +in +variants +{ +let +seq += +seq_arc +. +clone +( +) +; +let +restr += +variant +. +to_string +( +) +; +let +future += +thread +: +: +spawn +( +move +| +| +variant +. +find_iter +( +& +seq +) +. +count +( +) +) +; +counts +. +push +( +( +restr +future +) +) +; +} +let +substs += +vec +! +[ +( +regex +! +( +" +B +" +) +& +b +" +( +c +| +g +| +t +) +" +[ +. +. +] +) +( +regex +! +( +" +D +" +) +& +b +" +( +a +| +g +| +t +) +" +[ +. +. +] +) +( +regex +! +( +" +H +" +) +& +b +" +( +a +| +c +| +t +) +" +[ +. +. +] +) +( +regex +! +( +" +K +" +) +& +b +" +( +g +| +t +) +" +[ +. +. +] +) +( +regex +! +( +" +M +" +) +& +b +" +( +a +| +c +) +" +[ +. +. +] +) +( +regex +! +( +" +N +" +) +& +b +" +( +a +| +c +| +g +| +t +) +" +[ +. +. +] +) +( +regex +! +( +" +R +" +) +& +b +" +( +a +| +g +) +" +[ +. +. +] +) +( +regex +! +( +" +S +" +) +& +b +" +( +c +| +g +) +" +[ +. +. +] +) +( +regex +! +( +" +V +" +) +& +b +" +( +a +| +c +| +g +) +" +[ +. +. +] +) +( +regex +! +( +" +W +" +) +& +b +" +( +a +| +t +) +" +[ +. +. +] +) +( +regex +! +( +" +Y +" +) +& +b +" +( +c +| +t +) +" +[ +. +. +] +) +] +; +let +mut +seq += +seq +; +for +( +re +replacement +) +in +substs +{ +seq += +re +. +replace_all +( +& +seq +replacement +) +. +into_owned +( +) +; +} +for +( +variant +count +) +in +counts +{ +println +! +( +" +{ +} +{ +} +" +variant +count +. +join +( +) +. +unwrap +( +) +) +; +} +println +! +( +" +\ +n +{ +} +\ +n +{ +} +\ +n +{ +} +" +ilen +clen +seq +. +len +( +) +) +; +} diff --git a/third_party/rust/regex/examples/shootout-regex-dna-cheat.rs b/third_party/rust/regex/examples/shootout-regex-dna-cheat.rs new file mode 100644 index 0000000000000..b634aca83ec47 --- /dev/null +++ b/third_party/rust/regex/examples/shootout-regex-dna-cheat.rs @@ -0,0 +1,803 @@ +use +std +: +: +io +: +: +{ +self +Read +} +; +use +std +: +: +sync +: +: +Arc +; +use +std +: +: +thread +; +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +: +: +regex +: +: +Regex +: +: +new +( +re +) +. +unwrap +( +) +} +; +} +fn +main +( +) +{ +let +mut +seq += +String +: +: +with_capacity +( +50 +* +( +1 +< +< +20 +) +) +; +io +: +: +stdin +( +) +. +read_to_string +( +& +mut +seq +) +. +unwrap +( +) +; +let +ilen += +seq +. +len +( +) +; +seq += +regex +! +( +" +> +[ +^ +\ +n +] +* +\ +n +| +\ +n +" +) +. +replace_all +( +& +seq +" +" +) +. +into_owned +( +) +; +let +clen += +seq +. +len +( +) +; +let +seq_arc += +Arc +: +: +new +( +seq +. +clone +( +) +) +; +let +variants += +vec +! +[ +regex +! +( +" +agggtaaa +| +tttaccct +" +) +regex +! +( +" +[ +cgt +] +gggtaaa +| +tttaccc +[ +acg +] +" +) +regex +! +( +" +a +[ +act +] +ggtaaa +| +tttacc +[ +agt +] +t +" +) +regex +! +( +" +ag +[ +act +] +gtaaa +| +tttac +[ +agt +] +ct +" +) +regex +! +( +" +agg +[ +act +] +taaa +| +ttta +[ +agt +] +cct +" +) +regex +! +( +" +aggg +[ +acg +] +aaa +| +ttt +[ +cgt +] +ccct +" +) +regex +! +( +" +agggt +[ +cgt +] +aa +| +tt +[ +acg +] +accct +" +) +regex +! +( +" +agggta +[ +cgt +] +a +| +t +[ +acg +] +taccct +" +) +regex +! +( +" +agggtaa +[ +cgt +] +| +[ +acg +] +ttaccct +" +) +] +; +let +mut +counts += +vec +! +[ +] +; +for +variant +in +variants +{ +let +seq += +seq_arc +. +clone +( +) +; +let +restr += +variant +. +to_string +( +) +; +let +future += +thread +: +: +spawn +( +move +| +| +variant +. +find_iter +( +& +seq +) +. +count +( +) +) +; +counts +. +push +( +( +restr +future +) +) +; +} +let +substs += +vec +! +[ +( +b +' +B +' +" +( +c +| +g +| +t +) +" +) +( +b +' +D +' +" +( +a +| +g +| +t +) +" +) +( +b +' +H +' +" +( +a +| +c +| +t +) +" +) +( +b +' +K +' +" +( +g +| +t +) +" +) +( +b +' +M +' +" +( +a +| +c +) +" +) +( +b +' +N +' +" +( +a +| +c +| +g +| +t +) +" +) +( +b +' +R +' +" +( +a +| +g +) +" +) +( +b +' +S +' +" +( +c +| +g +) +" +) +( +b +' +V +' +" +( +a +| +c +| +g +) +" +) +( +b +' +W +' +" +( +a +| +t +) +" +) +( +b +' +Y +' +" +( +c +| +t +) +" +) +] +; +let +seq += +replace_all +( +& +seq +substs +) +; +for +( +variant +count +) +in +counts +{ +println +! +( +" +{ +} +{ +} +" +variant +count +. +join +( +) +. +unwrap +( +) +) +; +} +println +! +( +" +\ +n +{ +} +\ +n +{ +} +\ +n +{ +} +" +ilen +clen +seq +. +len +( +) +) +; +} +fn +replace_all +( +text +: +& +str +substs +: +Vec +< +( +u8 +& +str +) +> +) +- +> +String +{ +let +mut +replacements += +vec +! +[ +" +" +; +256 +] +; +let +mut +alternates += +vec +! +[ +] +; +for +( +re +replacement +) +in +substs +{ +replacements +[ +re +as +usize +] += +replacement +; +alternates +. +push +( +( +re +as +char +) +. +to_string +( +) +) +; +} +let +re += +regex +! +( +& +alternates +. +join +( +" +| +" +) +) +; +let +mut +new += +String +: +: +with_capacity +( +text +. +len +( +) +) +; +let +mut +last_match += +0 +; +for +m +in +re +. +find_iter +( +text +) +{ +new +. +push_str +( +& +text +[ +last_match +. +. +m +. +start +( +) +] +) +; +new +. +push_str +( +replacements +[ +text +. +as_bytes +( +) +[ +m +. +start +( +) +] +as +usize +] +) +; +last_match += +m +. +end +( +) +; +} +new +. +push_str +( +& +text +[ +last_match +. +. +] +) +; +new +} diff --git a/third_party/rust/regex/examples/shootout-regex-dna-replace.rs b/third_party/rust/regex/examples/shootout-regex-dna-replace.rs new file mode 100644 index 0000000000000..f0bdee335d9b6 --- /dev/null +++ b/third_party/rust/regex/examples/shootout-regex-dna-replace.rs @@ -0,0 +1,163 @@ +use +std +: +: +io +: +: +{ +self +Read +} +; +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new +( +re +) +. +build +( +) +. +unwrap +( +) +. +into_regex +( +) +} +} +; +} +fn +main +( +) +{ +let +mut +seq += +String +: +: +with_capacity +( +50 +* +( +1 +< +< +20 +) +) +; +io +: +: +stdin +( +) +. +read_to_string +( +& +mut +seq +) +. +unwrap +( +) +; +let +ilen += +seq +. +len +( +) +; +seq += +regex +! +( +" +> +[ +^ +\ +n +] +* +\ +n +| +\ +n +" +) +. +replace_all +( +& +seq +" +" +) +. +into_owned +( +) +; +println +! +( +" +original +: +{ +} +replaced +: +{ +} +" +ilen +seq +. +len +( +) +) +; +} diff --git a/third_party/rust/regex/examples/shootout-regex-dna-single-cheat.rs b/third_party/rust/regex/examples/shootout-regex-dna-single-cheat.rs new file mode 100644 index 0000000000000..f74e85d2cb3ca --- /dev/null +++ b/third_party/rust/regex/examples/shootout-regex-dna-single-cheat.rs @@ -0,0 +1,709 @@ +use +std +: +: +io +: +: +{ +self +Read +} +; +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +: +: +regex +: +: +Regex +: +: +new +( +re +) +. +unwrap +( +) +} +; +} +fn +main +( +) +{ +let +mut +seq += +String +: +: +with_capacity +( +50 +* +( +1 +< +< +20 +) +) +; +io +: +: +stdin +( +) +. +read_to_string +( +& +mut +seq +) +. +unwrap +( +) +; +let +ilen += +seq +. +len +( +) +; +seq += +regex +! +( +" +> +[ +^ +\ +n +] +* +\ +n +| +\ +n +" +) +. +replace_all +( +& +seq +" +" +) +. +into_owned +( +) +; +let +clen += +seq +. +len +( +) +; +let +variants += +vec +! +[ +regex +! +( +" +agggtaaa +| +tttaccct +" +) +regex +! +( +" +[ +cgt +] +gggtaaa +| +tttaccc +[ +acg +] +" +) +regex +! +( +" +a +[ +act +] +ggtaaa +| +tttacc +[ +agt +] +t +" +) +regex +! +( +" +ag +[ +act +] +gtaaa +| +tttac +[ +agt +] +ct +" +) +regex +! +( +" +agg +[ +act +] +taaa +| +ttta +[ +agt +] +cct +" +) +regex +! +( +" +aggg +[ +acg +] +aaa +| +ttt +[ +cgt +] +ccct +" +) +regex +! +( +" +agggt +[ +cgt +] +aa +| +tt +[ +acg +] +accct +" +) +regex +! +( +" +agggta +[ +cgt +] +a +| +t +[ +acg +] +taccct +" +) +regex +! +( +" +agggtaa +[ +cgt +] +| +[ +acg +] +ttaccct +" +) +] +; +for +re +in +variants +{ +println +! +( +" +{ +} +{ +} +" +re +. +to_string +( +) +re +. +find_iter +( +& +seq +) +. +count +( +) +) +; +} +let +substs += +vec +! +[ +( +b +' +B +' +" +( +c +| +g +| +t +) +" +) +( +b +' +D +' +" +( +a +| +g +| +t +) +" +) +( +b +' +H +' +" +( +a +| +c +| +t +) +" +) +( +b +' +K +' +" +( +g +| +t +) +" +) +( +b +' +M +' +" +( +a +| +c +) +" +) +( +b +' +N +' +" +( +a +| +c +| +g +| +t +) +" +) +( +b +' +R +' +" +( +a +| +g +) +" +) +( +b +' +S +' +" +( +c +| +g +) +" +) +( +b +' +V +' +" +( +a +| +c +| +g +) +" +) +( +b +' +W +' +" +( +a +| +t +) +" +) +( +b +' +Y +' +" +( +c +| +t +) +" +) +] +; +let +seq += +replace_all +( +& +seq +substs +) +; +println +! +( +" +\ +n +{ +} +\ +n +{ +} +\ +n +{ +} +" +ilen +clen +seq +. +len +( +) +) +; +} +fn +replace_all +( +text +: +& +str +substs +: +Vec +< +( +u8 +& +str +) +> +) +- +> +String +{ +let +mut +replacements += +vec +! +[ +" +" +; +256 +] +; +let +mut +alternates += +vec +! +[ +] +; +for +( +re +replacement +) +in +substs +{ +replacements +[ +re +as +usize +] += +replacement +; +alternates +. +push +( +( +re +as +char +) +. +to_string +( +) +) +; +} +let +re += +regex +! +( +& +alternates +. +join +( +" +| +" +) +) +; +let +mut +new += +String +: +: +with_capacity +( +text +. +len +( +) +) +; +let +mut +last_match += +0 +; +for +m +in +re +. +find_iter +( +text +) +{ +new +. +push_str +( +& +text +[ +last_match +. +. +m +. +start +( +) +] +) +; +new +. +push_str +( +replacements +[ +text +. +as_bytes +( +) +[ +m +. +start +( +) +] +as +usize +] +) +; +last_match += +m +. +end +( +) +; +} +new +. +push_str +( +& +text +[ +last_match +. +. +] +) +; +new +} diff --git a/third_party/rust/regex/examples/shootout-regex-dna-single.rs b/third_party/rust/regex/examples/shootout-regex-dna-single.rs new file mode 100644 index 0000000000000..4ccf249f97025 --- /dev/null +++ b/third_party/rust/regex/examples/shootout-regex-dna-single.rs @@ -0,0 +1,571 @@ +use +std +: +: +io +: +: +{ +self +Read +} +; +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +: +: +regex +: +: +Regex +: +: +new +( +re +) +. +unwrap +( +) +} +; +} +fn +main +( +) +{ +let +mut +seq += +String +: +: +with_capacity +( +50 +* +( +1 +< +< +20 +) +) +; +io +: +: +stdin +( +) +. +read_to_string +( +& +mut +seq +) +. +unwrap +( +) +; +let +ilen += +seq +. +len +( +) +; +seq += +regex +! +( +" +> +[ +^ +\ +n +] +* +\ +n +| +\ +n +" +) +. +replace_all +( +& +seq +" +" +) +. +into_owned +( +) +; +let +clen += +seq +. +len +( +) +; +let +variants += +vec +! +[ +regex +! +( +" +agggtaaa +| +tttaccct +" +) +regex +! +( +" +[ +cgt +] +gggtaaa +| +tttaccc +[ +acg +] +" +) +regex +! +( +" +a +[ +act +] +ggtaaa +| +tttacc +[ +agt +] +t +" +) +regex +! +( +" +ag +[ +act +] +gtaaa +| +tttac +[ +agt +] +ct +" +) +regex +! +( +" +agg +[ +act +] +taaa +| +ttta +[ +agt +] +cct +" +) +regex +! +( +" +aggg +[ +acg +] +aaa +| +ttt +[ +cgt +] +ccct +" +) +regex +! +( +" +agggt +[ +cgt +] +aa +| +tt +[ +acg +] +accct +" +) +regex +! +( +" +agggta +[ +cgt +] +a +| +t +[ +acg +] +taccct +" +) +regex +! +( +" +agggtaa +[ +cgt +] +| +[ +acg +] +ttaccct +" +) +] +; +for +re +in +variants +{ +println +! +( +" +{ +} +{ +} +" +re +. +to_string +( +) +re +. +find_iter +( +& +seq +) +. +count +( +) +) +; +} +let +substs += +vec +! +[ +( +regex +! +( +" +B +" +) +" +( +c +| +g +| +t +) +" +) +( +regex +! +( +" +D +" +) +" +( +a +| +g +| +t +) +" +) +( +regex +! +( +" +H +" +) +" +( +a +| +c +| +t +) +" +) +( +regex +! +( +" +K +" +) +" +( +g +| +t +) +" +) +( +regex +! +( +" +M +" +) +" +( +a +| +c +) +" +) +( +regex +! +( +" +N +" +) +" +( +a +| +c +| +g +| +t +) +" +) +( +regex +! +( +" +R +" +) +" +( +a +| +g +) +" +) +( +regex +! +( +" +S +" +) +" +( +c +| +g +) +" +) +( +regex +! +( +" +V +" +) +" +( +a +| +c +| +g +) +" +) +( +regex +! +( +" +W +" +) +" +( +a +| +t +) +" +) +( +regex +! +( +" +Y +" +) +" +( +c +| +t +) +" +) +] +; +let +mut +seq += +seq +; +for +( +re +replacement +) +in +substs +{ +seq += +re +. +replace_all +( +& +seq +replacement +) +. +into_owned +( +) +; +} +println +! +( +" +\ +n +{ +} +\ +n +{ +} +\ +n +{ +} +" +ilen +clen +seq +. +len +( +) +) +; +} diff --git a/third_party/rust/regex/examples/shootout-regex-dna.rs b/third_party/rust/regex/examples/shootout-regex-dna.rs new file mode 100644 index 0000000000000..d1566eb85c609 --- /dev/null +++ b/third_party/rust/regex/examples/shootout-regex-dna.rs @@ -0,0 +1,665 @@ +use +std +: +: +io +: +: +{ +self +Read +} +; +use +std +: +: +sync +: +: +Arc +; +use +std +: +: +thread +; +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +: +: +regex +: +: +Regex +: +: +new +( +re +) +. +unwrap +( +) +} +; +} +fn +main +( +) +{ +let +mut +seq += +String +: +: +with_capacity +( +51 +* +( +1 +< +< +20 +) +) +; +io +: +: +stdin +( +) +. +read_to_string +( +& +mut +seq +) +. +unwrap +( +) +; +let +ilen += +seq +. +len +( +) +; +seq += +regex +! +( +" +> +[ +^ +\ +n +] +* +\ +n +| +\ +n +" +) +. +replace_all +( +& +seq +" +" +) +. +into_owned +( +) +; +let +clen += +seq +. +len +( +) +; +let +seq_arc += +Arc +: +: +new +( +seq +. +clone +( +) +) +; +let +variants += +vec +! +[ +regex +! +( +" +agggtaaa +| +tttaccct +" +) +regex +! +( +" +[ +cgt +] +gggtaaa +| +tttaccc +[ +acg +] +" +) +regex +! +( +" +a +[ +act +] +ggtaaa +| +tttacc +[ +agt +] +t +" +) +regex +! +( +" +ag +[ +act +] +gtaaa +| +tttac +[ +agt +] +ct +" +) +regex +! +( +" +agg +[ +act +] +taaa +| +ttta +[ +agt +] +cct +" +) +regex +! +( +" +aggg +[ +acg +] +aaa +| +ttt +[ +cgt +] +ccct +" +) +regex +! +( +" +agggt +[ +cgt +] +aa +| +tt +[ +acg +] +accct +" +) +regex +! +( +" +agggta +[ +cgt +] +a +| +t +[ +acg +] +taccct +" +) +regex +! +( +" +agggtaa +[ +cgt +] +| +[ +acg +] +ttaccct +" +) +] +; +let +mut +counts += +vec +! +[ +] +; +for +variant +in +variants +{ +let +seq += +seq_arc +. +clone +( +) +; +let +restr += +variant +. +to_string +( +) +; +let +future += +thread +: +: +spawn +( +move +| +| +variant +. +find_iter +( +& +seq +) +. +count +( +) +) +; +counts +. +push +( +( +restr +future +) +) +; +} +let +substs += +vec +! +[ +( +regex +! +( +" +B +" +) +" +( +c +| +g +| +t +) +" +) +( +regex +! +( +" +D +" +) +" +( +a +| +g +| +t +) +" +) +( +regex +! +( +" +H +" +) +" +( +a +| +c +| +t +) +" +) +( +regex +! +( +" +K +" +) +" +( +g +| +t +) +" +) +( +regex +! +( +" +M +" +) +" +( +a +| +c +) +" +) +( +regex +! +( +" +N +" +) +" +( +a +| +c +| +g +| +t +) +" +) +( +regex +! +( +" +R +" +) +" +( +a +| +g +) +" +) +( +regex +! +( +" +S +" +) +" +( +c +| +g +) +" +) +( +regex +! +( +" +V +" +) +" +( +a +| +c +| +g +) +" +) +( +regex +! +( +" +W +" +) +" +( +a +| +t +) +" +) +( +regex +! +( +" +Y +" +) +" +( +c +| +t +) +" +) +] +; +let +mut +seq += +seq +; +for +( +re +replacement +) +in +substs +{ +seq += +re +. +replace_all +( +& +seq +replacement +) +. +into_owned +( +) +; +} +for +( +variant +count +) +in +counts +{ +println +! +( +" +{ +} +{ +} +" +variant +count +. +join +( +) +. +unwrap +( +) +) +; +} +println +! +( +" +\ +n +{ +} +\ +n +{ +} +\ +n +{ +} +" +ilen +clen +seq +. +len +( +) +) +; +} diff --git a/third_party/rust/regex/record/README.md b/third_party/rust/regex/record/README.md deleted file mode 100644 index 2b65c5630ab72..0000000000000 --- a/third_party/rust/regex/record/README.md +++ /dev/null @@ -1,46 +0,0 @@ -This -directory -contains -various -recordings -of -results -. -These -are -committed -to -the -repository -so -that -they -can -be -compared -over -time -. -( -At -the -time -of -writing -there -is -no -tooling -for -facilitating -this -comparison -. -It -has -to -be -done -manually -. -) diff --git a/third_party/rust/regex/record/compile-test/2023-04-19_1.7.3.csv b/third_party/rust/regex/record/compile-test/2023-04-19_1.7.3.csv deleted file mode 100644 index f77c75dd76f90..0000000000000 --- a/third_party/rust/regex/record/compile-test/2023-04-19_1.7.3.csv +++ /dev/null @@ -1,107 +0,0 @@ -name -crate -revision -profile -duration -size -relative -- -size -regex__dev__std_perf_unicode -regex -9582040009 -dev -1 -. -824209152s -3434992 -3113064 -regex__dev__std -regex -9582040009 -dev -1 -. -206314935s -1362392 -1040464 -regex__dev__std_perf -regex -9582040009 -dev -1 -. -543583435s -2726384 -2404456 -regex__dev__std_unicode -regex -9582040009 -dev -1 -. -490095643s -2066904 -1744976 -regex__dev__std_unicode -- -case_unicode -- -perl -regex -9582040009 -dev -1 -. -292011694s -1812952 -1491024 -regex__release__std_perf_unicode -regex -9582040009 -release -2 -. -398133563s -1616216 -1294368 -regex__release__std -regex -9582040009 -release -1 -. -413680252s -694592 -372744 -regex__release__std_perf -regex -9582040009 -release -2 -. -341496191s -1124696 -802848 -regex__release__std_unicode -regex -9582040009 -release -1 -. -671407822s -1190208 -868360 -regex__release__std_unicode -- -case_unicode -- -perl -regex -9582040009 -release -1 -. -441712198s -932160 -610312 diff --git a/third_party/rust/regex/record/compile-test/2023-04-20_master.csv b/third_party/rust/regex/record/compile-test/2023-04-20_master.csv deleted file mode 100644 index 855c1e49e9860..0000000000000 --- a/third_party/rust/regex/record/compile-test/2023-04-20_master.csv +++ /dev/null @@ -1,107 +0,0 @@ -name -crate -revision -profile -duration -size -relative -- -size -regex__dev__std_perf_unicode -regex -f1f99af2bc -dev -1 -. -834267609s -3799536 -3477608 -regex__dev__std -regex -f1f99af2bc -dev -1 -. -263958602s -1427928 -1106000 -regex__dev__std_perf -regex -f1f99af2bc -dev -1 -. -631302845s -3234288 -2912360 -regex__dev__std_unicode -regex -f1f99af2bc -dev -1 -. -550536696s -1997272 -1675344 -regex__dev__std_unicode -- -case_unicode -- -perl -regex -f1f99af2bc -dev -1 -. -341622852s -1739224 -1417296 -regex__release__std_perf_unicode -regex -f1f99af2bc -release -2 -. -475080323s -1755480 -1433632 -regex__release__std -regex -f1f99af2bc -release -1 -. -45990031s -731456 -409608 -regex__release__std_perf -regex -f1f99af2bc -release -2 -. -421787211s -1259864 -938016 -regex__release__std_unicode -regex -f1f99af2bc -release -1 -. -693972619s -1227072 -905224 -regex__release__std_unicode -- -case_unicode -- -perl -regex -f1f99af2bc -release -1 -. -528003306s -969024 -647176 diff --git a/third_party/rust/regex/record/compile-test/2023-07-05.csv b/third_party/rust/regex/record/compile-test/2023-07-05.csv deleted file mode 100644 index 0418b9fbe9242..0000000000000 --- a/third_party/rust/regex/record/compile-test/2023-07-05.csv +++ /dev/null @@ -1,461 +0,0 @@ -name -crate -revision -profile -duration -size -relative -- -size -regex__dev__std_perf_unicode -regex -53786ce797 -dev -2 -. -414172223s -4143600 -3764328 -regex__dev__std_perf_unicode_perf -- -dfa -- -full -regex -53786ce797 -dev -2 -. -900927164s -4815368 -4436096 -regex__dev__std -regex -53786ce797 -dev -1 -. -662626059s -2062808 -1683536 -regex__dev__std_perf -regex -53786ce797 -dev -2 -. -136755026s -3574256 -3194984 -regex__dev__std_unicode -regex -53786ce797 -dev -1 -. -943953132s -2623960 -2244688 -regex__dev__std_unicode -- -case_unicode -- -perl -regex -53786ce797 -dev -1 -. -753222606s -2374104 -1994832 -regex -- -lite__dev__std_string -regex -53786ce797 -dev -498 -. -158769ms -727504 -348232 -regex -- -automata__dev__std_syntax_perf_unicode_meta_nfa_dfa_hybrid -regex -- -automata -53786ce797 -dev -2 -. -900832296s -4872712 -4493440 -regex -- -automata__dev__std_syntax_nfa -- -pikevm -regex -- -automata -53786ce797 -dev -1 -. -413429089s -1501648 -1122376 -regex -- -automata__dev__std_syntax_nfa -- -backtrack -regex -- -automata -53786ce797 -dev -1 -. -412429191s -1505744 -1126472 -regex -- -automata__dev__std_syntax_hybrid -regex -- -automata -53786ce797 -dev -1 -. -678331978s -1632720 -1253448 -regex -- -automata__dev__std_syntax_dfa -- -onepass -regex -- -automata -53786ce797 -dev -1 -. -594526299s -1526224 -1146952 -regex -- -automata__dev__std_syntax_unicode_meta_nfa_dfa_hybrid -regex -- -automata -53786ce797 -dev -2 -. -992024402s -3500504 -3121232 -regex -- -automata__dev__std_syntax_perf_unicode_meta_nfa_hybrid_dfa -- -onepass -regex -- -automata -53786ce797 -dev -2 -. -378489598s -4119024 -3739752 -regex -- -automata__dev__std_syntax_perf_meta_nfa_dfa_hybrid -regex -- -automata -53786ce797 -dev -2 -. -695475914s -4299272 -3920000 -regex -- -automata__dev__std_syntax_perf_meta_nfa_hybrid_dfa -- -onepass -regex -- -automata -53786ce797 -dev -2 -. -120929251s -3549680 -3170408 -regex -- -automata__dev__std_unicode_meta -regex -- -automata -53786ce797 -dev -1 -. -89728585s -2492888 -2113616 -regex -- -automata__dev__std_meta -regex -- -automata -53786ce797 -dev -1 -. -604628942s -1927640 -1548368 -regex__release__std_perf_unicode -regex -53786ce797 -release -3 -. -333636908s -2025816 -1650720 -regex__release__std_perf_unicode_perf -- -dfa -- -full -regex -53786ce797 -release -3 -. -805434309s -2210160 -1835064 -regex__release__std -regex -53786ce797 -release -1 -. -789749444s -932160 -557064 -regex__release__std_perf -regex -53786ce797 -release -2 -. -734249431s -1505624 -1130528 -regex__release__std_unicode -regex -53786ce797 -release -2 -. -04945845s -1431872 -1056776 -regex__release__std_unicode -- -case_unicode -- -perl -regex -53786ce797 -release -1 -. -893829903s -1173824 -798728 -regex -- -lite__release__std_string -regex -53786ce797 -release -648 -. -517079ms -473400 -98304 -regex -- -automata__release__std_syntax_perf_unicode_meta_nfa_dfa_hybrid -regex -- -automata -53786ce797 -release -3 -. -893237683s -2242928 -1867832 -regex -- -automata__release__std_syntax_nfa -- -pikevm -regex -- -automata -53786ce797 -release -1 -. -556952008s -780600 -405504 -regex -- -automata__release__std_syntax_nfa -- -backtrack -regex -- -automata -53786ce797 -release -1 -. -576471926s -768312 -393216 -regex -- -automata__release__std_syntax_hybrid -regex -- -automata -53786ce797 -release -1 -. -819539266s -813368 -438272 -regex -- -automata__release__std_syntax_dfa -- -onepass -regex -- -automata -53786ce797 -release -1 -. -672511482s -776504 -401408 -regex -- -automata__release__std_syntax_unicode_meta_nfa_dfa_hybrid -regex -- -automata -53786ce797 -release -3 -. -227157436s -1767744 -1392648 -regex -- -automata__release__std_syntax_perf_unicode_meta_nfa_hybrid_dfa -- -onepass -regex -- -automata -53786ce797 -release -3 -. -340235296s -2005336 -1630240 -regex -- -automata__release__std_syntax_perf_meta_nfa_dfa_hybrid -regex -- -automata -53786ce797 -release -3 -. -640335773s -1718640 -1343544 -regex -- -automata__release__std_syntax_perf_meta_nfa_hybrid_dfa -- -onepass -regex -- -automata -53786ce797 -release -2 -. -876306297s -1489240 -1114144 -regex -- -automata__release__std_unicode_meta -regex -- -automata -53786ce797 -release -1 -. -945654415s -1362240 -987144 -regex -- -automata__release__std_meta -regex -- -automata -53786ce797 -release -1 -. -740500411s -862528 -487432 diff --git a/third_party/rust/regex/record/compile-test/README.md b/third_party/rust/regex/record/compile-test/README.md deleted file mode 100644 index 9f51e9cc17f37..0000000000000 --- a/third_party/rust/regex/record/compile-test/README.md +++ /dev/null @@ -1,226 +0,0 @@ -This -directory -contains -the -results -of -compilation -tests -. -Specifically -the -results -are -from -testing -both -the -from -scratch -compilation -time -and -relative -binary -size -increases -of -various -features -for -both -the -regex -and -regex -- -automata -crates -. -Here -' -s -an -example -of -how -to -run -these -tests -for -just -the -regex -crate -. -You -' -ll -need -the -regex -- -cli -command -installed -which -can -be -found -in -the -regex -- -cli -directory -in -the -root -of -this -repository -. -This -must -be -run -in -the -root -of -a -checkout -of -this -repository -. -mkdir -/ -tmp -/ -regex -- -compile -- -test -regex -- -cli -compile -- -test -. -/ -/ -tmp -/ -regex -- -compile -- -test -| -tee -record -/ -compile -- -test -/ -2023 -- -04 -- -19_1 -. -7 -. -3 -. -csv -You -can -then -look -at -the -results -using -a -tool -like -[ -xsv -] -[ -xsv -] -: -xsv -table -record -/ -compile -- -test -/ -2023 -- -04 -- -19_1 -. -7 -. -3 -. -csv -Note -that -the -relative -binary -size -is -computed -by -building -a -" -baseline -" -hello -world -program -and -then -subtracting -that -from -the -size -of -a -binary -that -uses -the -regex -crate -. -[ -xsv -] -: -https -: -/ -/ -github -. -com -/ -BurntSushi -/ -xsv diff --git a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/dynamic b/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/dynamic deleted file mode 100644 index 275bc8e9052f3..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/dynamic +++ /dev/null @@ -1,1747 +0,0 @@ -Running -target -/ -release -/ -dynamic -- -e87a67d7ea67f0eb -running -67 -tests -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -75 -ns -/ -iter -( -+ -/ -- -3 -) -= -5200 -MB -/ -s -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -2 -) -= -6393 -MB -/ -s -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -75 -ns -/ -iter -( -+ -/ -- -3 -) -= -346 -MB -/ -s -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -1 -) -= -426 -MB -/ -s -test -bench -: -: -easy0_1K -. -. -. -bench -: -196 -ns -/ -iter -( -+ -/ -- -8 -) -= -5224 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -255 -138 -ns -/ -iter -( -+ -/ -- -4 -820 -) -= -4109 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -71 -ns -/ -iter -( -+ -/ -- -2 -) -= -450 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -5 -392 -ns -/ -iter -( -+ -/ -- -108 -) -= -6077 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -241 -ns -/ -iter -( -+ -/ -- -37 -) -= -4248 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -334 -872 -ns -/ -iter -( -+ -/ -- -3 -433 -) -= -3131 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -65 -ns -/ -iter -( -+ -/ -- -2 -) -= -492 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -6 -139 -ns -/ -iter -( -+ -/ -- -703 -) -= -5337 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -4 -654 -ns -/ -iter -( -+ -/ -- -63 -) -= -220 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -4 -719 -487 -ns -/ -iter -( -+ -/ -- -71 -818 -) -= -222 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -199 -ns -/ -iter -( -+ -/ -- -8 -) -= -160 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -147 -389 -ns -/ -iter -( -+ -/ -- -4 -391 -) -= -222 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -4 -) -= -2550 -MB -/ -s -test -bench -: -: -match_class -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -4 -) -= -952 -MB -/ -s -test -bench -: -: -match_class_in_range -. -. -. -bench -: -32 -ns -/ -iter -( -+ -/ -- -3 -) -= -2531 -MB -/ -s -test -bench -: -: -match_class_unicode -. -. -. -bench -: -783 -ns -/ -iter -( -+ -/ -- -13 -) -= -205 -MB -/ -s -test -bench -: -: -medium_1K -. -. -. -bench -: -1 -334 -ns -/ -iter -( -+ -/ -- -154 -) -= -767 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -044 -757 -ns -/ -iter -( -+ -/ -- -72 -936 -) -= -512 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -99 -ns -/ -iter -( -+ -/ -- -18 -) -= -323 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -59 -603 -ns -/ -iter -( -+ -/ -- -13 -750 -) -= -549 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -553 -ns -/ -iter -( -+ -/ -- -150 -) -= -180 -MB -/ -s -test -bench -: -: -not_literal -. -. -. -bench -: -293 -ns -/ -iter -( -+ -/ -- -59 -) -= -174 -MB -/ -s -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -177 -ns -/ -iter -( -+ -/ -- -35 -) -= -146 -MB -/ -s -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -175 -ns -/ -iter -( -+ -/ -- -47 -) -= -148 -MB -/ -s -test -bench -: -: -one_pass_short -. -. -. -bench -: -134 -ns -/ -iter -( -+ -/ -- -34 -) -= -126 -MB -/ -s -test -bench -: -: -one_pass_short_not -. -. -. -bench -: -136 -ns -/ -iter -( -+ -/ -- -39 -) -= -125 -MB -/ -s -test -bench -: -: -replace_all -. -. -. -bench -: -153 -ns -/ -iter -( -+ -/ -- -17 -) -test -bench_dynamic_compile -: -: -compile_huge -. -. -. -bench -: -165 -209 -ns -/ -iter -( -+ -/ -- -4 -396 -) -test -bench_dynamic_compile -: -: -compile_huge_bytes -. -. -. -bench -: -18 -795 -770 -ns -/ -iter -( -+ -/ -- -2 -674 -909 -) -test -bench_dynamic_compile -: -: -compile_simple -. -. -. -bench -: -6 -883 -ns -/ -iter -( -+ -/ -- -391 -) -test -bench_dynamic_compile -: -: -compile_simple_bytes -. -. -. -bench -: -7 -281 -ns -/ -iter -( -+ -/ -- -751 -) -test -bench_dynamic_compile -: -: -compile_small -. -. -. -bench -: -9 -091 -ns -/ -iter -( -+ -/ -- -1 -125 -) -test -bench_dynamic_compile -: -: -compile_small_bytes -. -. -. -bench -: -182 -815 -ns -/ -iter -( -+ -/ -- -3 -814 -) -test -bench_dynamic_parse -: -: -parse_huge -. -. -. -bench -: -1 -233 -ns -/ -iter -( -+ -/ -- -123 -) -test -bench_dynamic_parse -: -: -parse_simple -. -. -. -bench -: -2 -015 -ns -/ -iter -( -+ -/ -- -108 -) -test -bench_dynamic_parse -: -: -parse_small -. -. -. -bench -: -2 -500 -ns -/ -iter -( -+ -/ -- -76 -) -test -bench_sherlock -: -: -before_holmes -. -. -. -bench -: -2 -741 -811 -ns -/ -iter -( -+ -/ -- -58 -389 -) -= -216 -MB -/ -s -test -bench_sherlock -: -: -everything_greedy -. -. -. -bench -: -7 -807 -696 -ns -/ -iter -( -+ -/ -- -328 -585 -) -= -76 -MB -/ -s -test -bench_sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -5 -424 -922 -ns -/ -iter -( -+ -/ -- -78 -937 -) -= -109 -MB -/ -s -test -bench_sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -266 -557 -ns -/ -iter -( -+ -/ -- -3 -832 -) -= -2231 -MB -/ -s -test -bench_sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -1 -327 -967 -ns -/ -iter -( -+ -/ -- -12 -773 -) -= -448 -MB -/ -s -test -bench_sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -2 -690 -485 -ns -/ -iter -( -+ -/ -- -17 -393 -) -= -221 -MB -/ -s -test -bench_sherlock -: -: -name_alt1 -. -. -. -bench -: -77 -206 -ns -/ -iter -( -+ -/ -- -951 -) -= -7705 -MB -/ -s -test -bench_sherlock -: -: -name_alt2 -. -. -. -bench -: -303 -775 -ns -/ -iter -( -+ -/ -- -5 -030 -) -= -1958 -MB -/ -s -test -bench_sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -385 -153 -ns -/ -iter -( -+ -/ -- -15 -871 -) -= -429 -MB -/ -s -test -bench_sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -473 -833 -ns -/ -iter -( -+ -/ -- -9 -825 -) -= -403 -MB -/ -s -test -bench_sherlock -: -: -name_alt4 -. -. -. -bench -: -300 -912 -ns -/ -iter -( -+ -/ -- -3 -896 -) -= -1977 -MB -/ -s -test -bench_sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -421 -519 -ns -/ -iter -( -+ -/ -- -16 -246 -) -= -418 -MB -/ -s -test -bench_sherlock -: -: -name_holmes -. -. -. -bench -: -52 -027 -ns -/ -iter -( -+ -/ -- -785 -) -= -11435 -MB -/ -s -test -bench_sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -241 -204 -ns -/ -iter -( -+ -/ -- -16 -862 -) -= -479 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock -. -. -. -bench -: -34 -378 -ns -/ -iter -( -+ -/ -- -677 -) -= -17305 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -34 -463 -ns -/ -iter -( -+ -/ -- -580 -) -= -17262 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -281 -540 -ns -/ -iter -( -+ -/ -- -11 -054 -) -= -464 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -281 -293 -ns -/ -iter -( -+ -/ -- -13 -129 -) -= -464 -MB -/ -s -test -bench_sherlock -: -: -name_whitespace -. -. -. -bench -: -60 -463 -ns -/ -iter -( -+ -/ -- -815 -) -= -9839 -MB -/ -s -test -bench_sherlock -: -: -no_match_common -. -. -. -bench -: -568 -357 -ns -/ -iter -( -+ -/ -- -11 -237 -) -= -1046 -MB -/ -s -test -bench_sherlock -: -: -no_match_uncommon -. -. -. -bench -: -23 -656 -ns -/ -iter -( -+ -/ -- -340 -) -= -25149 -MB -/ -s -test -bench_sherlock -: -: -quotes -. -. -. -bench -: -977 -907 -ns -/ -iter -( -+ -/ -- -13 -926 -) -= -608 -MB -/ -s -test -bench_sherlock -: -: -the_lower -. -. -. -bench -: -794 -285 -ns -/ -iter -( -+ -/ -- -8 -513 -) -= -749 -MB -/ -s -test -bench_sherlock -: -: -the_nocase -. -. -. -bench -: -1 -837 -240 -ns -/ -iter -( -+ -/ -- -22 -738 -) -= -323 -MB -/ -s -test -bench_sherlock -: -: -the_upper -. -. -. -bench -: -54 -083 -ns -/ -iter -( -+ -/ -- -1 -153 -) -= -11000 -MB -/ -s -test -bench_sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -986 -579 -ns -/ -iter -( -+ -/ -- -9 -292 -) -= -299 -MB -/ -s -test -bench_sherlock -: -: -word_ending_n -. -. -. -bench -: -55 -205 -101 -ns -/ -iter -( -+ -/ -- -93 -542 -) -= -10 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -67 -measured diff --git a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/dynamic-no-lazy-dfa b/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/dynamic-no-lazy-dfa deleted file mode 100644 index 444cb783754e9..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/dynamic-no-lazy-dfa +++ /dev/null @@ -1,1977 +0,0 @@ -Compiling -regex -v0 -. -1 -. -48 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -) -src -/ -dfa -. -rs -: -73 -: -1 -: -94 -: -2 -warning -: -function -is -never -used -: -can_exec -# -[ -warn -( -dead_code -) -] -on -by -default -src -/ -dfa -. -rs -: -73 -pub -fn -can_exec -( -insts -: -& -Insts -) -- -> -bool -{ -src -/ -dfa -. -rs -: -74 -use -inst -: -: -EmptyLook -: -: -* -; -src -/ -dfa -. -rs -: -75 -/ -/ -If -for -some -reason -we -manage -to -allocate -a -regex -program -with -more -src -/ -dfa -. -rs -: -76 -/ -/ -than -2 -^ -32 -- -1 -instructions -then -we -can -' -t -execute -the -DFA -because -we -src -/ -dfa -. -rs -: -77 -/ -/ -use -32 -bit -pointers -. -src -/ -dfa -. -rs -: -78 -if -insts -. -len -( -) -> -: -: -std -: -: -u32 -: -: -MAX -as -usize -{ -. -. -. -src -/ -exec -. -rs -: -12 -: -11 -: -12 -: -15 -warning -: -unused -import -# -[ -warn -( -unused_imports -) -] -on -by -default -src -/ -exec -. -rs -: -12 -use -dfa -: -: -{ -self -Dfa -DfaResult -} -; -^ -~ -~ -~ -Running -target -/ -release -/ -dynamic -- -e87a67d7ea67f0eb -running -67 -tests -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -169 -ns -/ -iter -( -+ -/ -- -1 -) -= -2307 -MB -/ -s -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -0 -) -= -4588 -MB -/ -s -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -158 -ns -/ -iter -( -+ -/ -- -3 -) -= -164 -MB -/ -s -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -84 -ns -/ -iter -( -+ -/ -- -2 -) -= -309 -MB -/ -s -test -bench -: -: -easy0_1K -. -. -. -bench -: -318 -ns -/ -iter -( -+ -/ -- -2 -) -= -3220 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -257 -205 -ns -/ -iter -( -+ -/ -- -2 -448 -) -= -4076 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -82 -ns -/ -iter -( -+ -/ -- -1 -) -= -390 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -8 -666 -ns -/ -iter -( -+ -/ -- -104 -) -= -3781 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -293 -ns -/ -iter -( -+ -/ -- -2 -) -= -3494 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -329 -774 -ns -/ -iter -( -+ -/ -- -6 -296 -) -= -3179 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -77 -ns -/ -iter -( -+ -/ -- -0 -) -= -415 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -8 -856 -ns -/ -iter -( -+ -/ -- -93 -) -= -3700 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -31 -888 -ns -/ -iter -( -+ -/ -- -83 -) -= -32 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -58 -435 -108 -ns -/ -iter -( -+ -/ -- -64 -537 -) -= -17 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -048 -ns -/ -iter -( -+ -/ -- -12 -) -= -30 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -033 -930 -ns -/ -iter -( -+ -/ -- -4 -224 -) -= -31 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -2550 -MB -/ -s -test -bench -: -: -match_class -. -. -. -bench -: -84 -ns -/ -iter -( -+ -/ -- -0 -) -= -964 -MB -/ -s -test -bench -: -: -match_class_in_range -. -. -. -bench -: -33 -ns -/ -iter -( -+ -/ -- -0 -) -= -2454 -MB -/ -s -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2 -218 -ns -/ -iter -( -+ -/ -- -8 -) -= -72 -MB -/ -s -test -bench -: -: -medium_1K -. -. -. -bench -: -1 -368 -ns -/ -iter -( -+ -/ -- -9 -) -= -748 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -034 -481 -ns -/ -iter -( -+ -/ -- -3 -608 -) -= -515 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -141 -ns -/ -iter -( -+ -/ -- -0 -) -= -226 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -59 -949 -ns -/ -iter -( -+ -/ -- -421 -) -= -546 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -336 -653 -ns -/ -iter -( -+ -/ -- -1 -757 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -247 -ns -/ -iter -( -+ -/ -- -5 -) -= -40 -MB -/ -s -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -264 -ns -/ -iter -( -+ -/ -- -2 -) -= -98 -MB -/ -s -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -267 -ns -/ -iter -( -+ -/ -- -1 -) -= -97 -MB -/ -s -test -bench -: -: -one_pass_short -. -. -. -bench -: -768 -ns -/ -iter -( -+ -/ -- -5 -) -= -22 -MB -/ -s -test -bench -: -: -one_pass_short_not -. -. -. -bench -: -797 -ns -/ -iter -( -+ -/ -- -20 -) -= -21 -MB -/ -s -test -bench -: -: -replace_all -. -. -. -bench -: -149 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench_dynamic_compile -: -: -compile_huge -. -. -. -bench -: -161 -349 -ns -/ -iter -( -+ -/ -- -1 -462 -) -test -bench_dynamic_compile -: -: -compile_huge_bytes -. -. -. -bench -: -18 -050 -519 -ns -/ -iter -( -+ -/ -- -105 -846 -) -test -bench_dynamic_compile -: -: -compile_simple -. -. -. -bench -: -6 -664 -ns -/ -iter -( -+ -/ -- -390 -) -test -bench_dynamic_compile -: -: -compile_simple_bytes -. -. -. -bench -: -7 -035 -ns -/ -iter -( -+ -/ -- -370 -) -test -bench_dynamic_compile -: -: -compile_small -. -. -. -bench -: -8 -914 -ns -/ -iter -( -+ -/ -- -347 -) -test -bench_dynamic_compile -: -: -compile_small_bytes -. -. -. -bench -: -186 -970 -ns -/ -iter -( -+ -/ -- -2 -134 -) -test -bench_dynamic_parse -: -: -parse_huge -. -. -. -bench -: -1 -238 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench_dynamic_parse -: -: -parse_simple -. -. -. -bench -: -2 -005 -ns -/ -iter -( -+ -/ -- -19 -) -test -bench_dynamic_parse -: -: -parse_small -. -. -. -bench -: -2 -494 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench_sherlock -: -: -before_holmes -. -. -. -bench -: -42 -005 -594 -ns -/ -iter -( -+ -/ -- -57 -752 -) -= -14 -MB -/ -s -test -bench_sherlock -: -: -everything_greedy -. -. -. -bench -: -38 -431 -063 -ns -/ -iter -( -+ -/ -- -28 -840 -) -= -15 -MB -/ -s -test -bench_sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -32 -003 -966 -ns -/ -iter -( -+ -/ -- -50 -270 -) -= -18 -MB -/ -s -test -bench_sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -1 -457 -068 -ns -/ -iter -( -+ -/ -- -3 -202 -) -= -408 -MB -/ -s -test -bench_sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -136 -035 -549 -ns -/ -iter -( -+ -/ -- -75 -381 -) -= -4 -MB -/ -s -test -bench_sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -33 -024 -291 -ns -/ -iter -( -+ -/ -- -67 -902 -) -= -18 -MB -/ -s -test -bench_sherlock -: -: -name_alt1 -. -. -. -bench -: -157 -989 -ns -/ -iter -( -+ -/ -- -917 -) -= -3765 -MB -/ -s -test -bench_sherlock -: -: -name_alt2 -. -. -. -bench -: -545 -254 -ns -/ -iter -( -+ -/ -- -1 -908 -) -= -1091 -MB -/ -s -test -bench_sherlock -: -: -name_alt3 -. -. -. -bench -: -2 -245 -964 -ns -/ -iter -( -+ -/ -- -2 -478 -) -= -264 -MB -/ -s -test -bench_sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -4 -792 -290 -ns -/ -iter -( -+ -/ -- -31 -760 -) -= -124 -MB -/ -s -test -bench_sherlock -: -: -name_alt4 -. -. -. -bench -: -584 -204 -ns -/ -iter -( -+ -/ -- -2 -084 -) -= -1018 -MB -/ -s -test -bench_sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -2 -318 -020 -ns -/ -iter -( -+ -/ -- -8 -493 -) -= -256 -MB -/ -s -test -bench_sherlock -: -: -name_holmes -. -. -. -bench -: -51 -880 -ns -/ -iter -( -+ -/ -- -299 -) -= -11467 -MB -/ -s -test -bench_sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -414 -500 -ns -/ -iter -( -+ -/ -- -2 -497 -) -= -420 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock -. -. -. -bench -: -34 -294 -ns -/ -iter -( -+ -/ -- -349 -) -= -17348 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -34 -531 -ns -/ -iter -( -+ -/ -- -199 -) -= -17228 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -692 -651 -ns -/ -iter -( -+ -/ -- -8 -846 -) -= -351 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -657 -413 -ns -/ -iter -( -+ -/ -- -5 -534 -) -= -358 -MB -/ -s -test -bench_sherlock -: -: -name_whitespace -. -. -. -bench -: -131 -372 -ns -/ -iter -( -+ -/ -- -605 -) -= -4528 -MB -/ -s -test -bench_sherlock -: -: -no_match_common -. -. -. -bench -: -567 -065 -ns -/ -iter -( -+ -/ -- -2 -763 -) -= -1049 -MB -/ -s -test -bench_sherlock -: -: -no_match_uncommon -. -. -. -bench -: -23 -782 -ns -/ -iter -( -+ -/ -- -85 -) -= -25016 -MB -/ -s -test -bench_sherlock -: -: -quotes -. -. -. -bench -: -11 -251 -366 -ns -/ -iter -( -+ -/ -- -24 -960 -) -= -52 -MB -/ -s -test -bench_sherlock -: -: -the_lower -. -. -. -bench -: -789 -781 -ns -/ -iter -( -+ -/ -- -2 -072 -) -= -753 -MB -/ -s -test -bench_sherlock -: -: -the_nocase -. -. -. -bench -: -1 -807 -509 -ns -/ -iter -( -+ -/ -- -4 -685 -) -= -329 -MB -/ -s -test -bench_sherlock -: -: -the_upper -. -. -. -bench -: -53 -542 -ns -/ -iter -( -+ -/ -- -198 -) -= -11111 -MB -/ -s -test -bench_sherlock -: -: -the_whitespace -. -. -. -bench -: -5 -410 -444 -ns -/ -iter -( -+ -/ -- -14 -766 -) -= -109 -MB -/ -s -test -bench_sherlock -: -: -word_ending_n -. -. -. -bench -: -56 -017 -874 -ns -/ -iter -( -+ -/ -- -60 -047 -) -= -10 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -67 -measured diff --git a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/native b/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/native deleted file mode 100644 index a876918693a81..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/native +++ /dev/null @@ -1,1614 +0,0 @@ -Compiling -regex_macros -v0 -. -1 -. -28 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -regex_macros -) -Running -regex_macros -/ -target -/ -release -/ -native -- -f2ffefeeda527264 -running -58 -tests -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -189 -ns -/ -iter -( -+ -/ -- -16 -) -= -2063 -MB -/ -s -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -47 -ns -/ -iter -( -+ -/ -- -1 -) -= -8297 -MB -/ -s -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -177 -ns -/ -iter -( -+ -/ -- -5 -) -= -146 -MB -/ -s -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -46 -ns -/ -iter -( -+ -/ -- -1 -) -= -565 -MB -/ -s -test -bench -: -: -easy0_1K -. -. -. -bench -: -26 -578 -ns -/ -iter -( -+ -/ -- -1 -140 -) -= -38 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -27 -229 -730 -ns -/ -iter -( -+ -/ -- -261 -126 -) -= -38 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -867 -ns -/ -iter -( -+ -/ -- -45 -) -= -36 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -847 -113 -ns -/ -iter -( -+ -/ -- -276 -910 -) -= -38 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -23 -525 -ns -/ -iter -( -+ -/ -- -278 -) -= -43 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -24 -075 -047 -ns -/ -iter -( -+ -/ -- -40 -396 -) -= -43 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -767 -ns -/ -iter -( -+ -/ -- -14 -) -= -41 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -752 -730 -ns -/ -iter -( -+ -/ -- -9 -284 -) -= -43 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -44 -053 -ns -/ -iter -( -+ -/ -- -513 -) -= -23 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -44 -982 -170 -ns -/ -iter -( -+ -/ -- -76 -683 -) -= -23 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -418 -ns -/ -iter -( -+ -/ -- -26 -) -= -22 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -407 -013 -ns -/ -iter -( -+ -/ -- -13 -426 -) -= -23 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -1 -202 -ns -/ -iter -( -+ -/ -- -16 -) -= -42 -MB -/ -s -test -bench -: -: -match_class -. -. -. -bench -: -2 -057 -ns -/ -iter -( -+ -/ -- -29 -) -= -39 -MB -/ -s -test -bench -: -: -match_class_in_range -. -. -. -bench -: -2 -060 -ns -/ -iter -( -+ -/ -- -34 -) -= -39 -MB -/ -s -test -bench -: -: -match_class_unicode -. -. -. -bench -: -12 -945 -ns -/ -iter -( -+ -/ -- -156 -) -= -12 -MB -/ -s -test -bench -: -: -medium_1K -. -. -. -bench -: -27 -874 -ns -/ -iter -( -+ -/ -- -315 -) -= -36 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -28 -614 -500 -ns -/ -iter -( -+ -/ -- -544 -256 -) -= -36 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -896 -ns -/ -iter -( -+ -/ -- -85 -) -= -35 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -892 -349 -ns -/ -iter -( -+ -/ -- -35 -511 -) -= -36 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -319 -270 -ns -/ -iter -( -+ -/ -- -19 -837 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -477 -ns -/ -iter -( -+ -/ -- -104 -) -= -34 -MB -/ -s -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -653 -ns -/ -iter -( -+ -/ -- -10 -) -= -39 -MB -/ -s -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -651 -ns -/ -iter -( -+ -/ -- -6 -) -= -39 -MB -/ -s -test -bench -: -: -one_pass_short -. -. -. -bench -: -1 -016 -ns -/ -iter -( -+ -/ -- -24 -) -= -16 -MB -/ -s -test -bench -: -: -one_pass_short_not -. -. -. -bench -: -1 -588 -ns -/ -iter -( -+ -/ -- -28 -) -= -10 -MB -/ -s -test -bench -: -: -replace_all -. -. -. -bench -: -1 -078 -ns -/ -iter -( -+ -/ -- -55 -) -test -bench_sherlock -: -: -before_holmes -. -. -. -bench -: -54 -264 -124 -ns -/ -iter -( -+ -/ -- -564 -692 -) -= -10 -MB -/ -s -test -bench_sherlock -: -: -everything_greedy -. -. -. -bench -: -22 -724 -158 -ns -/ -iter -( -+ -/ -- -44 -361 -) -= -26 -MB -/ -s -test -bench_sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -22 -168 -804 -ns -/ -iter -( -+ -/ -- -66 -296 -) -= -26 -MB -/ -s -test -bench_sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -24 -791 -824 -ns -/ -iter -( -+ -/ -- -37 -522 -) -= -23 -MB -/ -s -test -bench_sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -885 -999 -793 -ns -/ -iter -( -+ -/ -- -39 -704 -278 -) -test -bench_sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -25 -113 -805 -ns -/ -iter -( -+ -/ -- -672 -050 -) -= -23 -MB -/ -s -test -bench_sherlock -: -: -name_alt1 -. -. -. -bench -: -23 -382 -716 -ns -/ -iter -( -+ -/ -- -3 -696 -517 -) -= -25 -MB -/ -s -test -bench_sherlock -: -: -name_alt2 -. -. -. -bench -: -23 -585 -220 -ns -/ -iter -( -+ -/ -- -3 -724 -922 -) -= -25 -MB -/ -s -test -bench_sherlock -: -: -name_alt3 -. -. -. -bench -: -80 -283 -635 -ns -/ -iter -( -+ -/ -- -3 -165 -029 -) -= -7 -MB -/ -s -test -bench_sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -77 -357 -394 -ns -/ -iter -( -+ -/ -- -268 -133 -) -= -7 -MB -/ -s -test -bench_sherlock -: -: -name_alt4 -. -. -. -bench -: -22 -736 -520 -ns -/ -iter -( -+ -/ -- -43 -231 -) -= -26 -MB -/ -s -test -bench_sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -26 -921 -524 -ns -/ -iter -( -+ -/ -- -140 -162 -) -= -22 -MB -/ -s -test -bench_sherlock -: -: -name_holmes -. -. -. -bench -: -15 -145 -735 -ns -/ -iter -( -+ -/ -- -65 -980 -) -= -39 -MB -/ -s -test -bench_sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -16 -285 -042 -ns -/ -iter -( -+ -/ -- -71 -956 -) -= -36 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock -. -. -. -bench -: -16 -189 -653 -ns -/ -iter -( -+ -/ -- -99 -929 -) -= -36 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -14 -975 -742 -ns -/ -iter -( -+ -/ -- -118 -052 -) -= -39 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -16 -904 -928 -ns -/ -iter -( -+ -/ -- -201 -104 -) -= -35 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -16 -335 -907 -ns -/ -iter -( -+ -/ -- -118 -725 -) -= -36 -MB -/ -s -test -bench_sherlock -: -: -name_whitespace -. -. -. -bench -: -14 -837 -905 -ns -/ -iter -( -+ -/ -- -52 -201 -) -= -40 -MB -/ -s -test -bench_sherlock -: -: -no_match_common -. -. -. -bench -: -16 -036 -625 -ns -/ -iter -( -+ -/ -- -108 -268 -) -= -37 -MB -/ -s -test -bench_sherlock -: -: -no_match_uncommon -. -. -. -bench -: -15 -278 -356 -ns -/ -iter -( -+ -/ -- -81 -123 -) -= -38 -MB -/ -s -test -bench_sherlock -: -: -quotes -. -. -. -bench -: -21 -580 -801 -ns -/ -iter -( -+ -/ -- -198 -772 -) -= -27 -MB -/ -s -test -bench_sherlock -: -: -the_lower -. -. -. -bench -: -16 -059 -120 -ns -/ -iter -( -+ -/ -- -160 -640 -) -= -37 -MB -/ -s -test -bench_sherlock -: -: -the_nocase -. -. -. -bench -: -17 -376 -836 -ns -/ -iter -( -+ -/ -- -103 -371 -) -= -34 -MB -/ -s -test -bench_sherlock -: -: -the_upper -. -. -. -bench -: -15 -259 -087 -ns -/ -iter -( -+ -/ -- -93 -807 -) -= -38 -MB -/ -s -test -bench_sherlock -: -: -the_whitespace -. -. -. -bench -: -18 -835 -951 -ns -/ -iter -( -+ -/ -- -160 -674 -) -= -31 -MB -/ -s -test -bench_sherlock -: -: -word_ending_n -. -. -. -bench -: -59 -832 -390 -ns -/ -iter -( -+ -/ -- -4 -478 -911 -) -= -9 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -58 -measured diff --git a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/nfa b/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/nfa deleted file mode 100644 index b69a7bc82c241..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/nfa +++ /dev/null @@ -1,1778 +0,0 @@ -Compiling -regex -v0 -. -1 -. -48 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -) -Running -target -/ -release -/ -dynamic_nfa -- -1e40ce11bcb7c666 -running -67 -tests -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -306 -ns -/ -iter -( -+ -/ -- -6 -) -= -1274 -MB -/ -s -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -95 -ns -/ -iter -( -+ -/ -- -1 -) -= -4105 -MB -/ -s -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -315 -ns -/ -iter -( -+ -/ -- -2 -) -= -82 -MB -/ -s -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -96 -ns -/ -iter -( -+ -/ -- -2 -) -= -270 -MB -/ -s -test -bench -: -: -easy0_1K -. -. -. -bench -: -206 -ns -/ -iter -( -+ -/ -- -1 -) -= -4970 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -255 -834 -ns -/ -iter -( -+ -/ -- -1 -273 -) -= -4098 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -72 -ns -/ -iter -( -+ -/ -- -2 -) -= -444 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -5 -315 -ns -/ -iter -( -+ -/ -- -25 -) -= -6165 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -274 -ns -/ -iter -( -+ -/ -- -0 -) -= -3737 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -337 -047 -ns -/ -iter -( -+ -/ -- -1 -972 -) -= -3111 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -76 -ns -/ -iter -( -+ -/ -- -2 -) -= -421 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -6 -111 -ns -/ -iter -( -+ -/ -- -39 -) -= -5362 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -59 -596 -ns -/ -iter -( -+ -/ -- -264 -) -= -17 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -58 -947 -188 -ns -/ -iter -( -+ -/ -- -205 -874 -) -= -17 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -978 -ns -/ -iter -( -+ -/ -- -22 -) -= -16 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -846 -347 -ns -/ -iter -( -+ -/ -- -14 -253 -) -= -17 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -172 -ns -/ -iter -( -+ -/ -- -1 -) -= -296 -MB -/ -s -test -bench -: -: -match_class -. -. -. -bench -: -240 -ns -/ -iter -( -+ -/ -- -1 -) -= -337 -MB -/ -s -test -bench -: -: -match_class_in_range -. -. -. -bench -: -190 -ns -/ -iter -( -+ -/ -- -2 -) -= -426 -MB -/ -s -test -bench -: -: -match_class_unicode -. -. -. -bench -: -4 -145 -ns -/ -iter -( -+ -/ -- -24 -) -= -38 -MB -/ -s -test -bench -: -: -medium_1K -. -. -. -bench -: -1 -195 -ns -/ -iter -( -+ -/ -- -8 -) -= -856 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -028 -649 -ns -/ -iter -( -+ -/ -- -11 -235 -) -= -516 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -84 -ns -/ -iter -( -+ -/ -- -0 -) -= -380 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -56 -134 -ns -/ -iter -( -+ -/ -- -369 -) -= -583 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -536 -ns -/ -iter -( -+ -/ -- -4 -) -= -186 -MB -/ -s -test -bench -: -: -not_literal -. -. -. -bench -: -2 -428 -ns -/ -iter -( -+ -/ -- -31 -) -= -21 -MB -/ -s -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -756 -ns -/ -iter -( -+ -/ -- -2 -) -= -34 -MB -/ -s -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -756 -ns -/ -iter -( -+ -/ -- -12 -) -= -34 -MB -/ -s -test -bench -: -: -one_pass_short -. -. -. -bench -: -1 -813 -ns -/ -iter -( -+ -/ -- -5 -) -= -9 -MB -/ -s -test -bench -: -: -one_pass_short_not -. -. -. -bench -: -2 -588 -ns -/ -iter -( -+ -/ -- -8 -) -= -6 -MB -/ -s -test -bench -: -: -replace_all -. -. -. -bench -: -905 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench_dynamic_compile -: -: -compile_huge -. -. -. -bench -: -161 -517 -ns -/ -iter -( -+ -/ -- -1 -287 -) -test -bench_dynamic_compile -: -: -compile_huge_bytes -. -. -. -bench -: -18 -395 -715 -ns -/ -iter -( -+ -/ -- -98 -986 -) -test -bench_dynamic_compile -: -: -compile_simple -. -. -. -bench -: -6 -623 -ns -/ -iter -( -+ -/ -- -296 -) -test -bench_dynamic_compile -: -: -compile_simple_bytes -. -. -. -bench -: -7 -047 -ns -/ -iter -( -+ -/ -- -232 -) -test -bench_dynamic_compile -: -: -compile_small -. -. -. -bench -: -8 -948 -ns -/ -iter -( -+ -/ -- -526 -) -test -bench_dynamic_compile -: -: -compile_small_bytes -. -. -. -bench -: -186 -796 -ns -/ -iter -( -+ -/ -- -817 -) -test -bench_dynamic_parse -: -: -parse_huge -. -. -. -bench -: -1 -238 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench_dynamic_parse -: -: -parse_simple -. -. -. -bench -: -1 -977 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench_dynamic_parse -: -: -parse_small -. -. -. -bench -: -2 -502 -ns -/ -iter -( -+ -/ -- -18 -) -test -bench_sherlock -: -: -before_holmes -. -. -. -bench -: -45 -045 -123 -ns -/ -iter -( -+ -/ -- -261 -188 -) -= -13 -MB -/ -s -test -bench_sherlock -: -: -everything_greedy -. -. -. -bench -: -38 -685 -654 -ns -/ -iter -( -+ -/ -- -107 -136 -) -= -15 -MB -/ -s -test -bench_sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -36 -407 -787 -ns -/ -iter -( -+ -/ -- -160 -253 -) -= -16 -MB -/ -s -test -bench_sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -1 -417 -371 -ns -/ -iter -( -+ -/ -- -6 -533 -) -= -419 -MB -/ -s -test -bench_sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -139 -298 -695 -ns -/ -iter -( -+ -/ -- -154 -012 -) -= -4 -MB -/ -s -test -bench_sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -32 -734 -005 -ns -/ -iter -( -+ -/ -- -98 -729 -) -= -18 -MB -/ -s -test -bench_sherlock -: -: -name_alt1 -. -. -. -bench -: -153 -016 -ns -/ -iter -( -+ -/ -- -739 -) -= -3888 -MB -/ -s -test -bench_sherlock -: -: -name_alt2 -. -. -. -bench -: -534 -038 -ns -/ -iter -( -+ -/ -- -1 -909 -) -= -1114 -MB -/ -s -test -bench_sherlock -: -: -name_alt3 -. -. -. -bench -: -2 -220 -778 -ns -/ -iter -( -+ -/ -- -6 -374 -) -= -267 -MB -/ -s -test -bench_sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -4 -744 -134 -ns -/ -iter -( -+ -/ -- -11 -703 -) -= -125 -MB -/ -s -test -bench_sherlock -: -: -name_alt4 -. -. -. -bench -: -569 -971 -ns -/ -iter -( -+ -/ -- -2 -256 -) -= -1043 -MB -/ -s -test -bench_sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -2 -324 -966 -ns -/ -iter -( -+ -/ -- -3 -082 -) -= -255 -MB -/ -s -test -bench_sherlock -: -: -name_holmes -. -. -. -bench -: -268 -146 -ns -/ -iter -( -+ -/ -- -1 -238 -) -= -2218 -MB -/ -s -test -bench_sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -409 -583 -ns -/ -iter -( -+ -/ -- -2 -808 -) -= -422 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock -. -. -. -bench -: -95 -280 -ns -/ -iter -( -+ -/ -- -316 -) -= -6244 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -116 -097 -ns -/ -iter -( -+ -/ -- -461 -) -= -5124 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -691 -210 -ns -/ -iter -( -+ -/ -- -3 -712 -) -= -351 -MB -/ -s -test -bench_sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -651 -722 -ns -/ -iter -( -+ -/ -- -7 -070 -) -= -360 -MB -/ -s -test -bench_sherlock -: -: -name_whitespace -. -. -. -bench -: -130 -960 -ns -/ -iter -( -+ -/ -- -923 -) -= -4542 -MB -/ -s -test -bench_sherlock -: -: -no_match_common -. -. -. -bench -: -568 -008 -ns -/ -iter -( -+ -/ -- -1 -723 -) -= -1047 -MB -/ -s -test -bench_sherlock -: -: -no_match_uncommon -. -. -. -bench -: -23 -669 -ns -/ -iter -( -+ -/ -- -84 -) -= -25135 -MB -/ -s -test -bench_sherlock -: -: -quotes -. -. -. -bench -: -11 -055 -260 -ns -/ -iter -( -+ -/ -- -24 -883 -) -= -53 -MB -/ -s -test -bench_sherlock -: -: -the_lower -. -. -. -bench -: -2 -934 -498 -ns -/ -iter -( -+ -/ -- -4 -553 -) -= -202 -MB -/ -s -test -bench_sherlock -: -: -the_nocase -. -. -. -bench -: -4 -268 -193 -ns -/ -iter -( -+ -/ -- -8 -164 -) -= -139 -MB -/ -s -test -bench_sherlock -: -: -the_upper -. -. -. -bench -: -272 -832 -ns -/ -iter -( -+ -/ -- -1 -436 -) -= -2180 -MB -/ -s -test -bench_sherlock -: -: -the_whitespace -. -. -. -bench -: -5 -409 -934 -ns -/ -iter -( -+ -/ -- -7 -678 -) -= -109 -MB -/ -s -test -bench_sherlock -: -: -word_ending_n -. -. -. -bench -: -55 -252 -656 -ns -/ -iter -( -+ -/ -- -68 -442 -) -= -10 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -67 -measured diff --git a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/pcre b/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/pcre deleted file mode 100644 index 53b2f96868552..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/01-lazy-dfa/pcre +++ /dev/null @@ -1,1364 +0,0 @@ -Compiling -regex -v0 -. -1 -. -48 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -) -Running -target -/ -release -/ -pcre -- -781840b9a3e9c199 -running -53 -tests -test -anchored_literal_long_match -. -. -. -bench -: -90 -ns -/ -iter -( -+ -/ -- -7 -) -= -4333 -MB -/ -s -test -anchored_literal_long_non_match -. -. -. -bench -: -60 -ns -/ -iter -( -+ -/ -- -2 -) -= -6500 -MB -/ -s -test -anchored_literal_short_match -. -. -. -bench -: -87 -ns -/ -iter -( -+ -/ -- -6 -) -= -298 -MB -/ -s -test -anchored_literal_short_non_match -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -4 -) -= -448 -MB -/ -s -test -easy0_1K -. -. -. -bench -: -258 -ns -/ -iter -( -+ -/ -- -14 -) -= -3968 -MB -/ -s -test -easy0_1MB -. -. -. -bench -: -226 -139 -ns -/ -iter -( -+ -/ -- -1 -637 -) -= -4636 -MB -/ -s -test -easy0_32 -. -. -. -bench -: -60 -ns -/ -iter -( -+ -/ -- -7 -) -= -533 -MB -/ -s -test -easy0_32K -. -. -. -bench -: -7 -028 -ns -/ -iter -( -+ -/ -- -120 -) -= -4662 -MB -/ -s -test -easy1_1K -. -. -. -bench -: -794 -ns -/ -iter -( -+ -/ -- -20 -) -= -1289 -MB -/ -s -test -easy1_1MB -. -. -. -bench -: -751 -438 -ns -/ -iter -( -+ -/ -- -11 -372 -) -= -1395 -MB -/ -s -test -easy1_32 -. -. -. -bench -: -71 -ns -/ -iter -( -+ -/ -- -3 -) -= -450 -MB -/ -s -test -easy1_32K -. -. -. -bench -: -23 -042 -ns -/ -iter -( -+ -/ -- -1 -453 -) -= -1422 -MB -/ -s -test -hard_1K -. -. -. -bench -: -30 -841 -ns -/ -iter -( -+ -/ -- -1 -287 -) -= -33 -MB -/ -s -test -hard_1MB -. -. -. -bench -: -35 -239 -100 -ns -/ -iter -( -+ -/ -- -632 -179 -) -= -29 -MB -/ -s -test -hard_32 -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -11 -) -= -372 -MB -/ -s -test -hard_32K -. -. -. -bench -: -993 -011 -ns -/ -iter -( -+ -/ -- -63 -648 -) -= -32 -MB -/ -s -test -literal -. -. -. -bench -: -130 -ns -/ -iter -( -+ -/ -- -11 -) -= -392 -MB -/ -s -test -match_class -. -. -. -bench -: -183 -ns -/ -iter -( -+ -/ -- -33 -) -= -442 -MB -/ -s -test -match_class_in_range -. -. -. -bench -: -175 -ns -/ -iter -( -+ -/ -- -18 -) -= -462 -MB -/ -s -test -match_class_unicode -. -. -. -bench -: -513 -ns -/ -iter -( -+ -/ -- -8 -) -= -313 -MB -/ -s -test -medium_1K -. -. -. -bench -: -278 -ns -/ -iter -( -+ -/ -- -6 -) -= -3683 -MB -/ -s -test -medium_1MB -. -. -. -bench -: -240 -699 -ns -/ -iter -( -+ -/ -- -17 -344 -) -= -4356 -MB -/ -s -test -medium_32 -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -13 -) -= -524 -MB -/ -s -test -medium_32K -. -. -. -bench -: -7 -369 -ns -/ -iter -( -+ -/ -- -105 -) -= -4446 -MB -/ -s -test -not_literal -. -. -. -bench -: -274 -ns -/ -iter -( -+ -/ -- -17 -) -= -186 -MB -/ -s -test -one_pass_long_prefix -. -. -. -bench -: -87 -ns -/ -iter -( -+ -/ -- -19 -) -= -298 -MB -/ -s -test -one_pass_long_prefix_not -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -13 -) -= -302 -MB -/ -s -test -one_pass_short -. -. -. -bench -: -117 -ns -/ -iter -( -+ -/ -- -44 -) -= -145 -MB -/ -s -test -one_pass_short_not -. -. -. -bench -: -122 -ns -/ -iter -( -+ -/ -- -6 -) -= -139 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -14 -450 -308 -ns -/ -iter -( -+ -/ -- -617 -786 -) -= -41 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -546 -919 -ns -/ -iter -( -+ -/ -- -4 -880 -) -= -1087 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -194 -524 -ns -/ -iter -( -+ -/ -- -6 -230 -) -= -3058 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -457 -899 -ns -/ -iter -( -+ -/ -- -7 -781 -) -= -1299 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -496 -659 -ns -/ -iter -( -+ -/ -- -6 -529 -) -= -1197 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -983 -620 -ns -/ -iter -( -+ -/ -- -45 -359 -) -= -604 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -3 -500 -367 -ns -/ -iter -( -+ -/ -- -79 -807 -) -= -169 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -972 -128 -ns -/ -iter -( -+ -/ -- -22 -195 -) -= -611 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -877 -017 -ns -/ -iter -( -+ -/ -- -39 -079 -) -= -316 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -398 -258 -ns -/ -iter -( -+ -/ -- -4 -338 -) -= -1493 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -492 -292 -ns -/ -iter -( -+ -/ -- -4 -667 -) -= -1208 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -268 -891 -ns -/ -iter -( -+ -/ -- -18 -063 -) -= -2212 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -197 -067 -ns -/ -iter -( -+ -/ -- -8 -027 -) -= -3018 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -112 -501 -ns -/ -iter -( -+ -/ -- -44 -457 -) -= -534 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -332 -423 -ns -/ -iter -( -+ -/ -- -39 -227 -) -= -446 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -267 -257 -ns -/ -iter -( -+ -/ -- -964 -) -= -2226 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -595 -211 -ns -/ -iter -( -+ -/ -- -3 -739 -) -= -999 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -584 -057 -ns -/ -iter -( -+ -/ -- -6 -825 -) -= -1018 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -1 -208 -235 -ns -/ -iter -( -+ -/ -- -37 -629 -) -= -492 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -210 -851 -ns -/ -iter -( -+ -/ -- -35 -900 -) -= -491 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -1 -286 -611 -ns -/ -iter -( -+ -/ -- -35 -689 -) -= -462 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -776 -113 -ns -/ -iter -( -+ -/ -- -6 -236 -) -= -766 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -368 -468 -ns -/ -iter -( -+ -/ -- -135 -282 -) -= -434 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -12 -018 -618 -ns -/ -iter -( -+ -/ -- -266 -497 -) -= -49 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -53 -measured diff --git a/third_party/rust/regex/record/old-bench-log/02-set/dynamic b/third_party/rust/regex/record/old-bench-log/02-set/dynamic deleted file mode 100644 index 5ab09f9cc083c..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/02-set/dynamic +++ /dev/null @@ -1,1883 +0,0 @@ -Compiling -regex -v0 -. -1 -. -52 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -) -Running -target -/ -release -/ -dynamic -- -a76738dddf3bdc6b -running -71 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -74 -ns -/ -iter -( -+ -/ -- -8 -) -= -5270 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -0 -) -= -6724 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -73 -ns -/ -iter -( -+ -/ -- -0 -) -= -356 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -0 -) -= -448 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -214 -ns -/ -iter -( -+ -/ -- -2 -) -= -4785 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -247 -056 -ns -/ -iter -( -+ -/ -- -1 -777 -) -= -4244 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -64 -ns -/ -iter -( -+ -/ -- -0 -) -= -500 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -5 -281 -ns -/ -iter -( -+ -/ -- -29 -) -= -6204 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -278 -ns -/ -iter -( -+ -/ -- -5 -) -= -3683 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -320 -041 -ns -/ -iter -( -+ -/ -- -4 -243 -) -= -3276 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -65 -ns -/ -iter -( -+ -/ -- -0 -) -= -492 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -5 -885 -ns -/ -iter -( -+ -/ -- -83 -) -= -5568 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -4 -685 -ns -/ -iter -( -+ -/ -- -20 -) -= -218 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -4 -745 -020 -ns -/ -iter -( -+ -/ -- -19 -440 -) -= -220 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -197 -ns -/ -iter -( -+ -/ -- -1 -) -= -162 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -147 -409 -ns -/ -iter -( -+ -/ -- -656 -) -= -222 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -1 -) -= -2550 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -3 -) -= -941 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -32 -ns -/ -iter -( -+ -/ -- -2 -) -= -2531 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -801 -ns -/ -iter -( -+ -/ -- -36 -) -= -200 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -213 -ns -/ -iter -( -+ -/ -- -237 -) -= -844 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -1 -991 -418 -ns -/ -iter -( -+ -/ -- -239 -612 -) -= -526 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -100 -ns -/ -iter -( -+ -/ -- -8 -) -= -320 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -57 -080 -ns -/ -iter -( -+ -/ -- -709 -) -= -574 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -522 -ns -/ -iter -( -+ -/ -- -17 -) -= -191 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -290 -ns -/ -iter -( -+ -/ -- -6 -) -= -175 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -176 -ns -/ -iter -( -+ -/ -- -15 -) -= -147 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -183 -ns -/ -iter -( -+ -/ -- -28 -) -= -142 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -136 -ns -/ -iter -( -+ -/ -- -8 -) -= -125 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -135 -ns -/ -iter -( -+ -/ -- -14 -) -= -125 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -149 -ns -/ -iter -( -+ -/ -- -34 -) -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -158 -759 -ns -/ -iter -( -+ -/ -- -4 -546 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -17 -538 -290 -ns -/ -iter -( -+ -/ -- -1 -735 -383 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -5 -935 -ns -/ -iter -( -+ -/ -- -429 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -6 -682 -ns -/ -iter -( -+ -/ -- -293 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -7 -664 -ns -/ -iter -( -+ -/ -- -473 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -175 -272 -ns -/ -iter -( -+ -/ -- -4 -492 -) -test -rust_parse -: -: -parse_huge -. -. -. -bench -: -1 -199 -ns -/ -iter -( -+ -/ -- -38 -) -test -rust_parse -: -: -parse_simple -. -. -. -bench -: -1 -849 -ns -/ -iter -( -+ -/ -- -28 -) -test -rust_parse -: -: -parse_small -. -. -. -bench -: -2 -470 -ns -/ -iter -( -+ -/ -- -35 -) -test -sherlock -: -: -before_holmes -. -. -. -bench -: -2 -750 -028 -ns -/ -iter -( -+ -/ -- -21 -847 -) -= -216 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -7 -896 -337 -ns -/ -iter -( -+ -/ -- -68 -883 -) -= -75 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -5 -498 -247 -ns -/ -iter -( -+ -/ -- -65 -952 -) -= -108 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -260 -499 -ns -/ -iter -( -+ -/ -- -4 -984 -) -= -2283 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -1 -331 -443 -ns -/ -iter -( -+ -/ -- -34 -716 -) -= -446 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -60 -985 -848 -ns -/ -iter -( -+ -/ -- -592 -838 -) -= -9 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -59 -041 -695 -ns -/ -iter -( -+ -/ -- -186 -034 -) -= -10 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -4 -714 -214 -ns -/ -iter -( -+ -/ -- -35 -672 -) -= -126 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -2 -730 -524 -ns -/ -iter -( -+ -/ -- -69 -565 -) -= -217 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -41 -866 -ns -/ -iter -( -+ -/ -- -682 -) -= -14210 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -194 -322 -ns -/ -iter -( -+ -/ -- -6 -628 -) -= -3061 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -252 -965 -ns -/ -iter -( -+ -/ -- -18 -828 -) -= -474 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -476 -169 -ns -/ -iter -( -+ -/ -- -14 -557 -) -= -403 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -298 -639 -ns -/ -iter -( -+ -/ -- -3 -905 -) -= -1992 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -426 -191 -ns -/ -iter -( -+ -/ -- -23 -584 -) -= -417 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -49 -719 -ns -/ -iter -( -+ -/ -- -811 -) -= -11965 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -191 -400 -ns -/ -iter -( -+ -/ -- -19 -175 -) -= -499 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -34 -091 -ns -/ -iter -( -+ -/ -- -877 -) -= -17451 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -33 -785 -ns -/ -iter -( -+ -/ -- -1 -207 -) -= -17609 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -235 -442 -ns -/ -iter -( -+ -/ -- -18 -023 -) -= -481 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -236 -252 -ns -/ -iter -( -+ -/ -- -26 -934 -) -= -481 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -60 -200 -ns -/ -iter -( -+ -/ -- -1 -873 -) -= -9882 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -559 -886 -ns -/ -iter -( -+ -/ -- -20 -306 -) -= -1062 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -23 -631 -ns -/ -iter -( -+ -/ -- -497 -) -= -25175 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -967 -379 -ns -/ -iter -( -+ -/ -- -12 -856 -) -= -614 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -766 -950 -ns -/ -iter -( -+ -/ -- -21 -944 -) -= -775 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -1 -706 -539 -ns -/ -iter -( -+ -/ -- -26 -003 -) -= -348 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -52 -529 -ns -/ -iter -( -+ -/ -- -1 -208 -) -= -11325 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -012 -952 -ns -/ -iter -( -+ -/ -- -26 -968 -) -= -295 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -55 -578 -841 -ns -/ -iter -( -+ -/ -- -537 -463 -) -= -10 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -19 -103 -327 -ns -/ -iter -( -+ -/ -- -102 -828 -) -= -31 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -71 -measured diff --git a/third_party/rust/regex/record/old-bench-log/03-bytes/onig b/third_party/rust/regex/record/old-bench-log/03-bytes/onig deleted file mode 100644 index 63828c49d7a48..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/03-bytes/onig +++ /dev/null @@ -1,1687 +0,0 @@ -Compiling -regex -- -benchmark -v0 -. -1 -. -0 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -benches -) -Running -benches -/ -target -/ -release -/ -onig -- -e3bc363aa56fb408 -running -61 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -70 -ns -/ -iter -( -+ -/ -- -1 -) -= -5571 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -424 -ns -/ -iter -( -+ -/ -- -4 -) -= -919 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -70 -ns -/ -iter -( -+ -/ -- -1 -) -= -371 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -0 -) -= -684 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -176 -ns -/ -iter -( -+ -/ -- -2 -) -= -5818 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -163 -547 -ns -/ -iter -( -+ -/ -- -1 -451 -) -= -6411 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -1 -) -= -1600 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -5 -056 -ns -/ -iter -( -+ -/ -- -64 -) -= -6481 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -4 -103 -ns -/ -iter -( -+ -/ -- -11 -) -= -249 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -4 -198 -406 -ns -/ -iter -( -+ -/ -- -62 -171 -) -= -249 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -139 -ns -/ -iter -( -+ -/ -- -1 -) -= -230 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -131 -083 -ns -/ -iter -( -+ -/ -- -1 -310 -) -= -249 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -163 -ns -/ -iter -( -+ -/ -- -3 -) -= -6282 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -163 -910 -ns -/ -iter -( -+ -/ -- -2 -368 -) -= -6397 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -1 -) -= -1600 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -5 -002 -ns -/ -iter -( -+ -/ -- -306 -) -= -6550 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -226 -ns -/ -iter -( -+ -/ -- -0 -) -= -225 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -337 -ns -/ -iter -( -+ -/ -- -2 -) -= -240 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -337 -ns -/ -iter -( -+ -/ -- -1 -) -= -240 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -2 -004 -ns -/ -iter -( -+ -/ -- -26 -) -= -80 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -191 -ns -/ -iter -( -+ -/ -- -2 -) -= -5361 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -164 -027 -ns -/ -iter -( -+ -/ -- -2 -494 -) -= -6392 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -1 -) -= -1454 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -4 -962 -ns -/ -iter -( -+ -/ -- -60 -) -= -6603 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -359 -ns -/ -iter -( -+ -/ -- -5 -) -= -142 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -94 -ns -/ -iter -( -+ -/ -- -3 -) -= -276 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -101 -ns -/ -iter -( -+ -/ -- -1 -) -= -257 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -332 -ns -/ -iter -( -+ -/ -- -6 -) -= -51 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -318 -ns -/ -iter -( -+ -/ -- -4 -) -= -53 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -70 -859 -542 -ns -/ -iter -( -+ -/ -- -594 -306 -) -= -8 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -5 -129 -894 -ns -/ -iter -( -+ -/ -- -33 -792 -) -= -115 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -2 -388 -047 -ns -/ -iter -( -+ -/ -- -19 -666 -) -= -249 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -28 -413 -935 -ns -/ -iter -( -+ -/ -- -800 -513 -) -= -20 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -2 -636 -327 -ns -/ -iter -( -+ -/ -- -66 -410 -) -= -225 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -26 -471 -724 -ns -/ -iter -( -+ -/ -- -872 -994 -) -= -22 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -26 -124 -489 -ns -/ -iter -( -+ -/ -- -556 -750 -) -= -22 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -11 -268 -144 -ns -/ -iter -( -+ -/ -- -338 -510 -) -= -52 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -195 -797 -ns -/ -iter -( -+ -/ -- -1 -621 -) -= -3038 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -2 -100 -763 -ns -/ -iter -( -+ -/ -- -16 -823 -) -= -283 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -2 -212 -816 -ns -/ -iter -( -+ -/ -- -17 -997 -) -= -268 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -3 -031 -567 -ns -/ -iter -( -+ -/ -- -35 -631 -) -= -196 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -39 -737 -911 -ns -/ -iter -( -+ -/ -- -166 -863 -) -= -14 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -2 -230 -681 -ns -/ -iter -( -+ -/ -- -18 -856 -) -= -266 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -8 -294 -698 -ns -/ -iter -( -+ -/ -- -36 -887 -) -= -71 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -402 -600 -ns -/ -iter -( -+ -/ -- -6 -232 -) -= -1477 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -4 -074 -155 -ns -/ -iter -( -+ -/ -- -23 -317 -) -= -146 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -270 -225 -ns -/ -iter -( -+ -/ -- -2 -815 -) -= -2201 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -196 -502 -ns -/ -iter -( -+ -/ -- -2 -168 -) -= -3027 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -4 -397 -347 -ns -/ -iter -( -+ -/ -- -28 -567 -) -= -135 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -4 -400 -574 -ns -/ -iter -( -+ -/ -- -25 -127 -) -= -135 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -274 -462 -ns -/ -iter -( -+ -/ -- -3 -180 -) -= -2167 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -596 -601 -ns -/ -iter -( -+ -/ -- -9 -285 -) -= -997 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -586 -258 -ns -/ -iter -( -+ -/ -- -7 -702 -) -= -1014 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -4 -069 -570 -ns -/ -iter -( -+ -/ -- -20 -372 -) -= -146 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -44 -936 -445 -ns -/ -iter -( -+ -/ -- -103 -467 -) -= -13 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -300 -513 -ns -/ -iter -( -+ -/ -- -12 -884 -) -= -457 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -5 -141 -237 -ns -/ -iter -( -+ -/ -- -25 -487 -) -= -115 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -821 -454 -ns -/ -iter -( -+ -/ -- -13 -420 -) -= -724 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -009 -530 -ns -/ -iter -( -+ -/ -- -14 -082 -) -= -296 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -27 -847 -316 -ns -/ -iter -( -+ -/ -- -47 -618 -) -= -21 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -21 -105 -627 -ns -/ -iter -( -+ -/ -- -33 -436 -) -= -28 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -61 -measured diff --git a/third_party/rust/regex/record/old-bench-log/03-bytes/pcre b/third_party/rust/regex/record/old-bench-log/03-bytes/pcre deleted file mode 100644 index ffa51277be6cb..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/03-bytes/pcre +++ /dev/null @@ -1,1623 +0,0 @@ -Running -benches -/ -target -/ -release -/ -pcre -- -855c18fb35cdf072 -running -60 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -12 -) -= -4431 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -1 -) -= -6724 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -1 -) -= -295 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -60 -ns -/ -iter -( -+ -/ -- -3 -) -= -433 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -266 -ns -/ -iter -( -+ -/ -- -1 -) -= -3849 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -227 -366 -ns -/ -iter -( -+ -/ -- -794 -) -= -4611 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -2 -) -= -516 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -7 -061 -ns -/ -iter -( -+ -/ -- -109 -) -= -4640 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -805 -ns -/ -iter -( -+ -/ -- -10 -) -= -1272 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -751 -948 -ns -/ -iter -( -+ -/ -- -6 -995 -) -= -1394 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -71 -ns -/ -iter -( -+ -/ -- -1 -) -= -450 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -23 -635 -ns -/ -iter -( -+ -/ -- -213 -) -= -1386 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -31 -008 -ns -/ -iter -( -+ -/ -- -299 -) -= -33 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -35 -078 -241 -ns -/ -iter -( -+ -/ -- -94 -197 -) -= -29 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -313 -ns -/ -iter -( -+ -/ -- -1 -) -= -102 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -995 -958 -ns -/ -iter -( -+ -/ -- -10 -945 -) -= -32 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -130 -ns -/ -iter -( -+ -/ -- -1 -) -= -392 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -176 -ns -/ -iter -( -+ -/ -- -2 -) -= -460 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -178 -ns -/ -iter -( -+ -/ -- -1 -) -= -455 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -511 -ns -/ -iter -( -+ -/ -- -6 -) -= -315 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -275 -ns -/ -iter -( -+ -/ -- -4 -) -= -3723 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -239 -603 -ns -/ -iter -( -+ -/ -- -1 -808 -) -= -4376 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -1 -) -= -516 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -7 -385 -ns -/ -iter -( -+ -/ -- -43 -) -= -4437 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -274 -ns -/ -iter -( -+ -/ -- -3 -) -= -186 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -87 -ns -/ -iter -( -+ -/ -- -1 -) -= -298 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -0 -) -= -295 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -115 -ns -/ -iter -( -+ -/ -- -0 -) -= -147 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -118 -ns -/ -iter -( -+ -/ -- -0 -) -= -144 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -14 -338 -348 -ns -/ -iter -( -+ -/ -- -23 -734 -) -= -41 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -547 -196 -ns -/ -iter -( -+ -/ -- -4 -100 -) -= -1087 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -6 -012 -620 -ns -/ -iter -( -+ -/ -- -51 -777 -) -= -98 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -6 -374 -577 -ns -/ -iter -( -+ -/ -- -46 -486 -) -= -93 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -28 -575 -184 -ns -/ -iter -( -+ -/ -- -65 -051 -) -= -20 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -25 -819 -606 -ns -/ -iter -( -+ -/ -- -180 -823 -) -= -23 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -3 -227 -381 -ns -/ -iter -( -+ -/ -- -11 -443 -) -= -184 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -193 -512 -ns -/ -iter -( -+ -/ -- -1 -316 -) -= -3074 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -454 -510 -ns -/ -iter -( -+ -/ -- -2 -721 -) -= -1308 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -499 -453 -ns -/ -iter -( -+ -/ -- -4 -692 -) -= -1191 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -085 -732 -ns -/ -iter -( -+ -/ -- -6 -841 -) -= -547 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -3 -194 -995 -ns -/ -iter -( -+ -/ -- -12 -655 -) -= -186 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -944 -353 -ns -/ -iter -( -+ -/ -- -12 -661 -) -= -629 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -646 -368 -ns -/ -iter -( -+ -/ -- -12 -376 -) -= -361 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -395 -019 -ns -/ -iter -( -+ -/ -- -3 -929 -) -= -1506 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -493 -327 -ns -/ -iter -( -+ -/ -- -7 -213 -) -= -1205 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -266 -400 -ns -/ -iter -( -+ -/ -- -1 -591 -) -= -2233 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -196 -357 -ns -/ -iter -( -+ -/ -- -1 -770 -) -= -3029 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -259 -747 -ns -/ -iter -( -+ -/ -- -4 -939 -) -= -472 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -128 -970 -ns -/ -iter -( -+ -/ -- -6 -730 -) -= -526 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -267 -323 -ns -/ -iter -( -+ -/ -- -1 -296 -) -= -2225 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -595 -372 -ns -/ -iter -( -+ -/ -- -5 -690 -) -= -999 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -585 -406 -ns -/ -iter -( -+ -/ -- -5 -719 -) -= -1016 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -1 -223 -528 -ns -/ -iter -( -+ -/ -- -6 -579 -) -= -486 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -6 -440 -584 -ns -/ -iter -( -+ -/ -- -20 -444 -) -= -92 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -220 -999 -ns -/ -iter -( -+ -/ -- -7 -595 -) -= -487 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -1 -263 -078 -ns -/ -iter -( -+ -/ -- -15 -321 -) -= -471 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -781 -141 -ns -/ -iter -( -+ -/ -- -15 -408 -) -= -761 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -383 -414 -ns -/ -iter -( -+ -/ -- -548 -289 -) -= -430 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -12 -709 -045 -ns -/ -iter -( -+ -/ -- -51 -420 -) -= -46 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -10 -798 -918 -ns -/ -iter -( -+ -/ -- -40 -027 -) -= -55 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -60 -measured diff --git a/third_party/rust/regex/record/old-bench-log/03-bytes/rust b/third_party/rust/regex/record/old-bench-log/03-bytes/rust deleted file mode 100644 index 8645284d850ed..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/03-bytes/rust +++ /dev/null @@ -1,2024 +0,0 @@ -Compiling -regex -- -syntax -v0 -. -2 -. -5 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -benches -) -Compiling -regex -v0 -. -1 -. -55 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -benches -) -Compiling -regex -- -benchmark -v0 -. -1 -. -0 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -benches -) -Running -benches -/ -target -/ -release -/ -rust -- -50db306d093e5666 -running -74 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -75 -ns -/ -iter -( -+ -/ -- -5 -) -= -5200 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -56 -ns -/ -iter -( -+ -/ -- -0 -) -= -6964 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -79 -ns -/ -iter -( -+ -/ -- -0 -) -= -329 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -56 -ns -/ -iter -( -+ -/ -- -1 -) -= -464 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -138 -ns -/ -iter -( -+ -/ -- -0 -) -= -7420 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -247 -159 -ns -/ -iter -( -+ -/ -- -724 -) -= -4242 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -71 -ns -/ -iter -( -+ -/ -- -0 -) -= -450 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -5 -474 -ns -/ -iter -( -+ -/ -- -34 -) -= -5986 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -273 -ns -/ -iter -( -+ -/ -- -1 -) -= -3750 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -317 -946 -ns -/ -iter -( -+ -/ -- -2 -512 -) -= -3297 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -67 -ns -/ -iter -( -+ -/ -- -0 -) -= -477 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -5 -882 -ns -/ -iter -( -+ -/ -- -32 -) -= -5570 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -4 -713 -ns -/ -iter -( -+ -/ -- -13 -) -= -217 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -4 -732 -901 -ns -/ -iter -( -+ -/ -- -6 -948 -) -= -221 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -201 -ns -/ -iter -( -+ -/ -- -0 -) -= -159 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -147 -994 -ns -/ -iter -( -+ -/ -- -900 -) -= -221 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -0 -) -= -2684 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -0 -) -= -952 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -30 -ns -/ -iter -( -+ -/ -- -1 -) -= -2700 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -806 -ns -/ -iter -( -+ -/ -- -2 -) -= -199 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -384 -ns -/ -iter -( -+ -/ -- -10 -) -= -739 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -1 -974 -381 -ns -/ -iter -( -+ -/ -- -7 -383 -) -= -531 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -130 -ns -/ -iter -( -+ -/ -- -0 -) -= -246 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -52 -783 -ns -/ -iter -( -+ -/ -- -465 -) -= -620 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -536 -ns -/ -iter -( -+ -/ -- -13 -) -= -186 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -293 -ns -/ -iter -( -+ -/ -- -1 -) -= -174 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -179 -ns -/ -iter -( -+ -/ -- -1 -) -= -145 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -180 -ns -/ -iter -( -+ -/ -- -2 -) -= -144 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -139 -ns -/ -iter -( -+ -/ -- -1 -) -= -122 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -142 -ns -/ -iter -( -+ -/ -- -1 -) -= -119 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -171 -ns -/ -iter -( -+ -/ -- -1 -) -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -126 -158 -ns -/ -iter -( -+ -/ -- -1 -790 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -18 -088 -719 -ns -/ -iter -( -+ -/ -- -518 -980 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -6 -141 -ns -/ -iter -( -+ -/ -- -394 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -6 -669 -ns -/ -iter -( -+ -/ -- -306 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -7 -431 -ns -/ -iter -( -+ -/ -- -275 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -191 -002 -ns -/ -iter -( -+ -/ -- -1 -297 -) -test -rust_parse -: -: -parse_huge -. -. -. -bench -: -1 -204 -ns -/ -iter -( -+ -/ -- -9 -) -test -rust_parse -: -: -parse_simple -. -. -. -bench -: -1 -905 -ns -/ -iter -( -+ -/ -- -16 -) -test -rust_parse -: -: -parse_small -. -. -. -bench -: -2 -454 -ns -/ -iter -( -+ -/ -- -24 -) -test -sherlock -: -: -before_holmes -. -. -. -bench -: -2 -748 -082 -ns -/ -iter -( -+ -/ -- -11 -406 -) -= -216 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -7 -833 -414 -ns -/ -iter -( -+ -/ -- -42 -538 -) -= -75 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -5 -426 -141 -ns -/ -iter -( -+ -/ -- -31 -378 -) -= -109 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -262 -322 -ns -/ -iter -( -+ -/ -- -5 -243 -) -= -2267 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -1 -324 -677 -ns -/ -iter -( -+ -/ -- -21 -666 -) -= -449 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -3 -179 -928 -ns -/ -iter -( -+ -/ -- -40 -246 -) -= -187 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -3 -525 -004 -ns -/ -iter -( -+ -/ -- -37 -262 -) -= -168 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -60 -268 -445 -ns -/ -iter -( -+ -/ -- -1 -958 -610 -) -= -9 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -57 -743 -679 -ns -/ -iter -( -+ -/ -- -84 -675 -) -= -10 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -4 -549 -709 -ns -/ -iter -( -+ -/ -- -9 -312 -) -= -130 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -2 -690 -794 -ns -/ -iter -( -+ -/ -- -2 -796 -) -= -221 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -42 -476 -ns -/ -iter -( -+ -/ -- -346 -) -= -14006 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -199 -058 -ns -/ -iter -( -+ -/ -- -1 -498 -) -= -2988 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -248 -439 -ns -/ -iter -( -+ -/ -- -3 -051 -) -= -476 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -463 -628 -ns -/ -iter -( -+ -/ -- -2 -799 -) -= -406 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -296 -390 -ns -/ -iter -( -+ -/ -- -798 -) -= -2007 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -415 -770 -ns -/ -iter -( -+ -/ -- -3 -400 -) -= -420 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -49 -713 -ns -/ -iter -( -+ -/ -- -317 -) -= -11967 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -181 -147 -ns -/ -iter -( -+ -/ -- -2 -842 -) -= -503 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -34 -263 -ns -/ -iter -( -+ -/ -- -136 -) -= -17363 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -34 -179 -ns -/ -iter -( -+ -/ -- -188 -) -= -17406 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -236 -384 -ns -/ -iter -( -+ -/ -- -5 -012 -) -= -481 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -232 -613 -ns -/ -iter -( -+ -/ -- -5 -009 -) -= -482 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -60 -024 -ns -/ -iter -( -+ -/ -- -187 -) -= -9911 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -558 -607 -ns -/ -iter -( -+ -/ -- -2 -595 -) -= -1065 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -24 -049 -ns -/ -iter -( -+ -/ -- -54 -) -= -24738 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -966 -792 -ns -/ -iter -( -+ -/ -- -2 -982 -) -= -615 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -84 -186 -484 -ns -/ -iter -( -+ -/ -- -66 -800 -) -= -7 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -773 -759 -ns -/ -iter -( -+ -/ -- -2 -759 -) -= -768 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -1 -705 -648 -ns -/ -iter -( -+ -/ -- -4 -604 -) -= -348 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -52 -729 -ns -/ -iter -( -+ -/ -- -209 -) -= -11282 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -981 -215 -ns -/ -iter -( -+ -/ -- -8 -080 -) -= -300 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -53 -482 -650 -ns -/ -iter -( -+ -/ -- -73 -844 -) -= -11 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -18 -961 -987 -ns -/ -iter -( -+ -/ -- -27 -794 -) -= -31 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -74 -measured diff --git a/third_party/rust/regex/record/old-bench-log/03-bytes/rust-bytes b/third_party/rust/regex/record/old-bench-log/03-bytes/rust-bytes deleted file mode 100644 index 4c9c7d616ab2f..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/03-bytes/rust-bytes +++ /dev/null @@ -1,1620 +0,0 @@ -Compiling -regex -- -benchmark -v0 -. -1 -. -0 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -benches -) -Running -benches -/ -target -/ -release -/ -rust_bytes -- -9f3b188bc741e04b -running -59 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -75 -ns -/ -iter -( -+ -/ -- -6 -) -= -5200 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -0 -) -= -7090 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -75 -ns -/ -iter -( -+ -/ -- -0 -) -= -346 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -0 -) -= -472 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -245 -ns -/ -iter -( -+ -/ -- -0 -) -= -4179 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -251 -614 -ns -/ -iter -( -+ -/ -- -1 -143 -) -= -4167 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -1 -) -= -516 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -5 -281 -ns -/ -iter -( -+ -/ -- -66 -) -= -6204 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -266 -ns -/ -iter -( -+ -/ -- -1 -) -= -3849 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -325 -060 -ns -/ -iter -( -+ -/ -- -2 -011 -) -= -3225 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -73 -ns -/ -iter -( -+ -/ -- -0 -) -= -438 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -5 -609 -ns -/ -iter -( -+ -/ -- -41 -) -= -5842 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -4 -678 -ns -/ -iter -( -+ -/ -- -38 -) -= -218 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -4 -736 -631 -ns -/ -iter -( -+ -/ -- -26 -227 -) -= -221 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -199 -ns -/ -iter -( -+ -/ -- -0 -) -= -160 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -148 -282 -ns -/ -iter -( -+ -/ -- -1 -353 -) -= -220 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -2833 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -83 -ns -/ -iter -( -+ -/ -- -0 -) -= -975 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -30 -ns -/ -iter -( -+ -/ -- -0 -) -= -2700 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -147 -ns -/ -iter -( -+ -/ -- -10 -) -= -892 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -1 -953 -230 -ns -/ -iter -( -+ -/ -- -10 -530 -) -= -536 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -99 -ns -/ -iter -( -+ -/ -- -0 -) -= -323 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -54 -705 -ns -/ -iter -( -+ -/ -- -349 -) -= -598 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -534 -ns -/ -iter -( -+ -/ -- -4 -) -= -187 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -292 -ns -/ -iter -( -+ -/ -- -3 -) -= -174 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -179 -ns -/ -iter -( -+ -/ -- -1 -) -= -145 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -180 -ns -/ -iter -( -+ -/ -- -2 -) -= -144 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -139 -ns -/ -iter -( -+ -/ -- -0 -) -= -122 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -139 -ns -/ -iter -( -+ -/ -- -0 -) -= -122 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -2 -778 -686 -ns -/ -iter -( -+ -/ -- -8 -735 -) -= -214 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -7 -884 -691 -ns -/ -iter -( -+ -/ -- -37 -268 -) -= -75 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -5 -406 -627 -ns -/ -iter -( -+ -/ -- -24 -707 -) -= -110 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -262 -175 -ns -/ -iter -( -+ -/ -- -1 -995 -) -= -2269 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -1 -299 -904 -ns -/ -iter -( -+ -/ -- -5 -090 -) -= -457 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -3 -202 -899 -ns -/ -iter -( -+ -/ -- -20 -810 -) -= -185 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -3 -367 -381 -ns -/ -iter -( -+ -/ -- -14 -143 -) -= -176 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -2 -725 -593 -ns -/ -iter -( -+ -/ -- -10 -736 -) -= -218 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -42 -161 -ns -/ -iter -( -+ -/ -- -355 -) -= -14110 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -195 -390 -ns -/ -iter -( -+ -/ -- -1 -112 -) -= -3044 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -248 -432 -ns -/ -iter -( -+ -/ -- -3 -244 -) -= -476 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -3 -371 -906 -ns -/ -iter -( -+ -/ -- -42 -421 -) -= -176 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -296 -423 -ns -/ -iter -( -+ -/ -- -1 -812 -) -= -2007 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -753 -178 -ns -/ -iter -( -+ -/ -- -23 -269 -) -= -339 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -49 -554 -ns -/ -iter -( -+ -/ -- -261 -) -= -12005 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -347 -682 -ns -/ -iter -( -+ -/ -- -5 -678 -) -= -441 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -33 -937 -ns -/ -iter -( -+ -/ -- -208 -) -= -17530 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -33 -870 -ns -/ -iter -( -+ -/ -- -225 -) -= -17565 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -212 -233 -ns -/ -iter -( -+ -/ -- -5 -452 -) -= -490 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -190 -590 -ns -/ -iter -( -+ -/ -- -3 -248 -) -= -499 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -59 -434 -ns -/ -iter -( -+ -/ -- -253 -) -= -10009 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -565 -962 -ns -/ -iter -( -+ -/ -- -4 -601 -) -= -1051 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -23 -729 -ns -/ -iter -( -+ -/ -- -218 -) -= -25071 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -966 -904 -ns -/ -iter -( -+ -/ -- -7 -115 -) -= -615 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -121 -271 -073 -ns -/ -iter -( -+ -/ -- -242 -789 -) -= -4 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -778 -850 -ns -/ -iter -( -+ -/ -- -6 -781 -) -= -763 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -2 -876 -190 -ns -/ -iter -( -+ -/ -- -8 -611 -) -= -206 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -52 -617 -ns -/ -iter -( -+ -/ -- -315 -) -= -11306 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -982 -270 -ns -/ -iter -( -+ -/ -- -11 -079 -) -= -300 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -76 -442 -330 -ns -/ -iter -( -+ -/ -- -236 -690 -) -= -7 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -59 -measured diff --git a/third_party/rust/regex/record/old-bench-log/04/onig b/third_party/rust/regex/record/old-bench-log/04/onig deleted file mode 100644 index ae52501d1479d..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/04/onig +++ /dev/null @@ -1,1958 +0,0 @@ -Compiling -regex -- -benchmark -v0 -. -1 -. -0 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -bench -) -Running -target -/ -release -/ -bench -- -0d58c0af2e68ae0d -running -71 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -66 -ns -/ -iter -( -+ -/ -- -1 -) -= -5909 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -414 -ns -/ -iter -( -+ -/ -- -2 -) -= -942 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -66 -ns -/ -iter -( -+ -/ -- -1 -) -= -393 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -0 -) -= -722 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -217 -ns -/ -iter -( -+ -/ -- -2 -) -= -4843 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -130 -657 -ns -/ -iter -( -+ -/ -- -365 -) -= -8025 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -84 -ns -/ -iter -( -+ -/ -- -1 -) -= -702 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -4 -092 -ns -/ -iter -( -+ -/ -- -25 -) -= -8014 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -3 -682 -ns -/ -iter -( -+ -/ -- -25 -) -= -283 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -3 -613 -381 -ns -/ -iter -( -+ -/ -- -5 -960 -) -= -290 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -237 -ns -/ -iter -( -+ -/ -- -2 -) -= -219 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -113 -040 -ns -/ -iter -( -+ -/ -- -303 -) -= -290 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -184 -299 -ns -/ -iter -( -+ -/ -- -2 -508 -) -= -5 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -198 -378 -531 -ns -/ -iter -( -+ -/ -- -150 -404 -) -= -5 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -5 -765 -ns -/ -iter -( -+ -/ -- -26 -) -= -10 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -6 -177 -362 -ns -/ -iter -( -+ -/ -- -21 -959 -) -= -5 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -219 -ns -/ -iter -( -+ -/ -- -1 -) -= -232 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -6 -978 -321 -ns -/ -iter -( -+ -/ -- -120 -792 -) -= -14 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -6 -981 -122 -ns -/ -iter -( -+ -/ -- -120 -371 -) -= -14 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -329 -ns -/ -iter -( -+ -/ -- -5 -) -= -246 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -332 -ns -/ -iter -( -+ -/ -- -1 -) -= -243 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -1 -980 -ns -/ -iter -( -+ -/ -- -23 -) -= -81 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -232 -ns -/ -iter -( -+ -/ -- -0 -) -= -4534 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -130 -702 -ns -/ -iter -( -+ -/ -- -997 -) -= -8022 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -95 -ns -/ -iter -( -+ -/ -- -1 -) -= -631 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -4 -103 -ns -/ -iter -( -+ -/ -- -13 -) -= -7993 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -353 -ns -/ -iter -( -+ -/ -- -2 -) -= -144 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -89 -ns -/ -iter -( -+ -/ -- -1 -) -= -292 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -97 -ns -/ -iter -( -+ -/ -- -0 -) -= -268 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -329 -ns -/ -iter -( -+ -/ -- -4 -) -= -51 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -324 -ns -/ -iter -( -+ -/ -- -4 -) -= -52 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -563 -552 -ns -/ -iter -( -+ -/ -- -2 -559 -) -= -1 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -184 -200 -ns -/ -iter -( -+ -/ -- -553 -) -= -5 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -198 -336 -145 -ns -/ -iter -( -+ -/ -- -149 -796 -) -= -5 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -5 -766 -ns -/ -iter -( -+ -/ -- -16 -) -= -10 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -6 -174 -904 -ns -/ -iter -( -+ -/ -- -5 -491 -) -= -5 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -70 -476 -093 -ns -/ -iter -( -+ -/ -- -271 -168 -) -= -8 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -5 -175 -140 -ns -/ -iter -( -+ -/ -- -19 -413 -) -= -114 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -2 -379 -427 -ns -/ -iter -( -+ -/ -- -5 -816 -) -= -250 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -28 -275 -131 -ns -/ -iter -( -+ -/ -- -49 -569 -) -= -21 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -2 -648 -838 -ns -/ -iter -( -+ -/ -- -9 -247 -) -= -224 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -25 -940 -039 -ns -/ -iter -( -+ -/ -- -57 -724 -) -= -22 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -25 -680 -050 -ns -/ -iter -( -+ -/ -- -48 -209 -) -= -23 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -11 -122 -063 -ns -/ -iter -( -+ -/ -- -28 -302 -) -= -53 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -195 -903 -ns -/ -iter -( -+ -/ -- -1 -162 -) -= -3036 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -2 -100 -175 -ns -/ -iter -( -+ -/ -- -4 -251 -) -= -283 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -2 -210 -122 -ns -/ -iter -( -+ -/ -- -7 -514 -) -= -269 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -3 -025 -653 -ns -/ -iter -( -+ -/ -- -9 -375 -) -= -196 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -39 -475 -102 -ns -/ -iter -( -+ -/ -- -51 -488 -) -= -15 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -2 -225 -952 -ns -/ -iter -( -+ -/ -- -7 -340 -) -= -267 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -8 -227 -413 -ns -/ -iter -( -+ -/ -- -18 -088 -) -= -72 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -2 -300 -803 -ns -/ -iter -( -+ -/ -- -6 -325 -) -= -258 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -11 -488 -783 -ns -/ -iter -( -+ -/ -- -28 -880 -) -= -51 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -400 -760 -ns -/ -iter -( -+ -/ -- -907 -) -= -1484 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -4 -044 -850 -ns -/ -iter -( -+ -/ -- -11 -665 -) -= -147 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -269 -021 -ns -/ -iter -( -+ -/ -- -791 -) -= -2211 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -196 -161 -ns -/ -iter -( -+ -/ -- -899 -) -= -3032 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -4 -363 -621 -ns -/ -iter -( -+ -/ -- -5 -339 -) -= -136 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -4 -389 -375 -ns -/ -iter -( -+ -/ -- -11 -077 -) -= -135 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -273 -691 -ns -/ -iter -( -+ -/ -- -957 -) -= -2173 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -588 -744 -ns -/ -iter -( -+ -/ -- -1 -732 -) -= -1010 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -673 -335 -ns -/ -iter -( -+ -/ -- -1 -407 -) -= -883 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -578 -009 -ns -/ -iter -( -+ -/ -- -5 -111 -) -= -1029 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -4 -066 -005 -ns -/ -iter -( -+ -/ -- -10 -116 -) -= -146 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -43 -374 -733 -ns -/ -iter -( -+ -/ -- -48 -409 -) -= -13 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -275 -300 -ns -/ -iter -( -+ -/ -- -5 -351 -) -= -466 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -5 -100 -832 -ns -/ -iter -( -+ -/ -- -11 -024 -) -= -116 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -816 -606 -ns -/ -iter -( -+ -/ -- -3 -370 -) -= -728 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -079 -544 -ns -/ -iter -( -+ -/ -- -4 -585 -) -= -286 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -27 -699 -175 -ns -/ -iter -( -+ -/ -- -58 -998 -) -= -21 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -19 -460 -356 -ns -/ -iter -( -+ -/ -- -29 -406 -) -= -30 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -71 -measured diff --git a/third_party/rust/regex/record/old-bench-log/04/pcre1-jit b/third_party/rust/regex/record/old-bench-log/04/pcre1-jit deleted file mode 100644 index 5f3a1f0d05157..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/04/pcre1-jit +++ /dev/null @@ -1,1919 +0,0 @@ -Compiling -regex -- -benchmark -v0 -. -1 -. -0 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -bench -) -Running -target -/ -release -/ -bench -- -0d58c0af2e68ae0d -running -70 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -32 -ns -/ -iter -( -+ -/ -- -0 -) -= -12187 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -27 -ns -/ -iter -( -+ -/ -- -1 -) -= -14444 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -31 -ns -/ -iter -( -+ -/ -- -0 -) -= -838 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -27 -ns -/ -iter -( -+ -/ -- -2 -) -= -962 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -247 -ns -/ -iter -( -+ -/ -- -1 -) -= -4255 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -193 -485 -ns -/ -iter -( -+ -/ -- -906 -) -= -5419 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -1 -) -= -1072 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -6 -057 -ns -/ -iter -( -+ -/ -- -19 -) -= -5414 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -604 -ns -/ -iter -( -+ -/ -- -3 -) -= -1728 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -553 -893 -ns -/ -iter -( -+ -/ -- -1 -299 -) -= -1893 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -81 -ns -/ -iter -( -+ -/ -- -1 -) -= -641 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -17 -335 -ns -/ -iter -( -+ -/ -- -33 -) -= -1891 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -56 -956 -ns -/ -iter -( -+ -/ -- -148 -) -= -18 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -63 -576 -485 -ns -/ -iter -( -+ -/ -- -93 -278 -) -= -16 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -1 -744 -ns -/ -iter -( -+ -/ -- -10 -) -= -33 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -1 -931 -799 -ns -/ -iter -( -+ -/ -- -7 -752 -) -= -16 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -73 -ns -/ -iter -( -+ -/ -- -1 -) -= -698 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -532 -256 -ns -/ -iter -( -+ -/ -- -4 -633 -) -= -187 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -532 -131 -ns -/ -iter -( -+ -/ -- -3 -771 -) -= -187 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -120 -ns -/ -iter -( -+ -/ -- -0 -) -= -675 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -119 -ns -/ -iter -( -+ -/ -- -0 -) -= -680 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -456 -ns -/ -iter -( -+ -/ -- -2 -) -= -353 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -260 -ns -/ -iter -( -+ -/ -- -1 -) -= -4046 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -206 -175 -ns -/ -iter -( -+ -/ -- -983 -) -= -5085 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -0 -) -= -1034 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -6 -443 -ns -/ -iter -( -+ -/ -- -26 -) -= -5090 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -216 -ns -/ -iter -( -+ -/ -- -0 -) -= -236 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -31 -ns -/ -iter -( -+ -/ -- -0 -) -= -838 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -31 -ns -/ -iter -( -+ -/ -- -0 -) -= -838 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -59 -ns -/ -iter -( -+ -/ -- -0 -) -= -288 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -63 -ns -/ -iter -( -+ -/ -- -2 -) -= -269 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -96 -070 -ns -/ -iter -( -+ -/ -- -238 -) -= -10 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -60 -783 -ns -/ -iter -( -+ -/ -- -170 -) -= -17 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -60 -899 -076 -ns -/ -iter -( -+ -/ -- -483 -661 -) -= -17 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -1 -822 -ns -/ -iter -( -+ -/ -- -58 -) -= -32 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -1 -809 -770 -ns -/ -iter -( -+ -/ -- -45 -348 -) -= -18 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -14 -513 -309 -ns -/ -iter -( -+ -/ -- -146 -332 -) -= -40 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -543 -738 -ns -/ -iter -( -+ -/ -- -4 -549 -) -= -1094 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -5 -561 -653 -ns -/ -iter -( -+ -/ -- -44 -720 -) -= -106 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -6 -116 -112 -ns -/ -iter -( -+ -/ -- -91 -799 -) -= -97 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -15 -633 -185 -ns -/ -iter -( -+ -/ -- -313 -036 -) -= -38 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -15 -228 -423 -ns -/ -iter -( -+ -/ -- -290 -879 -) -= -39 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -3 -279 -472 -ns -/ -iter -( -+ -/ -- -48 -073 -) -= -181 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -192 -935 -ns -/ -iter -( -+ -/ -- -1 -405 -) -= -3083 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -452 -708 -ns -/ -iter -( -+ -/ -- -4 -728 -) -= -1314 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -477 -092 -ns -/ -iter -( -+ -/ -- -6 -192 -) -= -1246 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -959 -514 -ns -/ -iter -( -+ -/ -- -25 -214 -) -= -620 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -3 -478 -546 -ns -/ -iter -( -+ -/ -- -52 -300 -) -= -171 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -947 -187 -ns -/ -iter -( -+ -/ -- -9 -985 -) -= -628 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -852 -289 -ns -/ -iter -( -+ -/ -- -30 -616 -) -= -321 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -655 -616 -ns -/ -iter -( -+ -/ -- -9 -327 -) -= -907 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -957 -627 -ns -/ -iter -( -+ -/ -- -47 -271 -) -= -303 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -383 -813 -ns -/ -iter -( -+ -/ -- -1 -185 -) -= -1550 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -478 -335 -ns -/ -iter -( -+ -/ -- -4 -851 -) -= -1243 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -263 -611 -ns -/ -iter -( -+ -/ -- -875 -) -= -2256 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -193 -687 -ns -/ -iter -( -+ -/ -- -1 -070 -) -= -3071 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -258 -447 -ns -/ -iter -( -+ -/ -- -32 -369 -) -= -472 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -330 -069 -ns -/ -iter -( -+ -/ -- -36 -657 -) -= -447 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -264 -340 -ns -/ -iter -( -+ -/ -- -2 -723 -) -= -2250 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -589 -309 -ns -/ -iter -( -+ -/ -- -5 -038 -) -= -1009 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -683 -909 -ns -/ -iter -( -+ -/ -- -4 -987 -) -= -869 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -578 -309 -ns -/ -iter -( -+ -/ -- -2 -831 -) -= -1028 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -1 -184 -492 -ns -/ -iter -( -+ -/ -- -27 -247 -) -= -502 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -7 -208 -342 -ns -/ -iter -( -+ -/ -- -17 -978 -) -= -82 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -001 -754 -ns -/ -iter -( -+ -/ -- -6 -215 -) -= -593 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -1 -043 -260 -ns -/ -iter -( -+ -/ -- -10 -217 -) -= -570 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -753 -058 -ns -/ -iter -( -+ -/ -- -1 -640 -) -= -790 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -195 -227 -ns -/ -iter -( -+ -/ -- -9 -524 -) -= -497 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -11 -767 -448 -ns -/ -iter -( -+ -/ -- -15 -460 -) -= -50 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -7 -551 -361 -ns -/ -iter -( -+ -/ -- -25 -566 -) -= -78 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -70 -measured diff --git a/third_party/rust/regex/record/old-bench-log/04/pcre2-jit b/third_party/rust/regex/record/old-bench-log/04/pcre2-jit deleted file mode 100644 index c4dff0956d364..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/04/pcre2-jit +++ /dev/null @@ -1,1904 +0,0 @@ -Compiling -regex -- -benchmark -v0 -. -1 -. -0 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -bench -) -Running -target -/ -release -/ -bench -- -0d58c0af2e68ae0d -running -70 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -0 -) -= -17727 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -27857 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -0 -) -= -1238 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -1 -) -= -1857 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -235 -ns -/ -iter -( -+ -/ -- -2 -) -= -4472 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -193 -652 -ns -/ -iter -( -+ -/ -- -524 -) -= -5414 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -1372 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -6 -024 -ns -/ -iter -( -+ -/ -- -12 -) -= -5444 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -235 -ns -/ -iter -( -+ -/ -- -4 -) -= -4442 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -193 -685 -ns -/ -iter -( -+ -/ -- -617 -) -= -5413 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -45 -ns -/ -iter -( -+ -/ -- -0 -) -= -1155 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -6 -018 -ns -/ -iter -( -+ -/ -- -9 -) -= -5448 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -880 -ns -/ -iter -( -+ -/ -- -7 -) -= -559 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -1 -283 -101 -ns -/ -iter -( -+ -/ -- -4 -420 -) -= -817 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -119 -ns -/ -iter -( -+ -/ -- -2 -) -= -495 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -39 -919 -ns -/ -iter -( -+ -/ -- -95 -) -= -821 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -1 -) -= -2833 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -513 -050 -ns -/ -iter -( -+ -/ -- -2 -267 -) -= -194 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -518 -009 -ns -/ -iter -( -+ -/ -- -3 -066 -) -= -193 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -106 -ns -/ -iter -( -+ -/ -- -1 -) -= -764 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -1 -) -= -3375 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -370 -ns -/ -iter -( -+ -/ -- -2 -) -= -435 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -237 -ns -/ -iter -( -+ -/ -- -0 -) -= -4438 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -193 -478 -ns -/ -iter -( -+ -/ -- -540 -) -= -5419 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -46 -ns -/ -iter -( -+ -/ -- -0 -) -= -1304 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -6 -024 -ns -/ -iter -( -+ -/ -- -15 -) -= -5444 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -274 -ns -/ -iter -( -+ -/ -- -1 -) -= -186 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -1 -) -= -1368 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -0 -) -= -1368 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -47 -ns -/ -iter -( -+ -/ -- -0 -) -= -361 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -2 -) -= -340 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -4 -959 -ns -/ -iter -( -+ -/ -- -34 -) -= -209 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -2 -145 -ns -/ -iter -( -+ -/ -- -17 -) -= -489 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -292 -683 -ns -/ -iter -( -+ -/ -- -3 -342 -) -= -811 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -124 -ns -/ -iter -( -+ -/ -- -4 -) -= -475 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -47 -263 -ns -/ -iter -( -+ -/ -- -173 -) -= -693 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -4 -706 -445 -ns -/ -iter -( -+ -/ -- -23 -483 -) -= -126 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -488 -613 -ns -/ -iter -( -+ -/ -- -2 -921 -) -= -1217 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -1 -886 -092 -ns -/ -iter -( -+ -/ -- -9 -951 -) -= -315 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -5 -091 -401 -ns -/ -iter -( -+ -/ -- -21 -315 -) -= -116 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -10 -082 -811 -ns -/ -iter -( -+ -/ -- -41 -989 -) -= -59 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -9 -640 -481 -ns -/ -iter -( -+ -/ -- -46 -499 -) -= -61 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -772 -105 -ns -/ -iter -( -+ -/ -- -8 -833 -) -= -335 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -192 -075 -ns -/ -iter -( -+ -/ -- -1 -043 -) -= -3097 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -447 -382 -ns -/ -iter -( -+ -/ -- -2 -142 -) -= -1329 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -447 -421 -ns -/ -iter -( -+ -/ -- -2 -077 -) -= -1329 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -963 -775 -ns -/ -iter -( -+ -/ -- -1 -684 -) -= -617 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -3 -152 -920 -ns -/ -iter -( -+ -/ -- -5 -757 -) -= -188 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -80 -204 -ns -/ -iter -( -+ -/ -- -379 -) -= -7417 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -665 -405 -ns -/ -iter -( -+ -/ -- -7 -134 -) -= -357 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -649 -701 -ns -/ -iter -( -+ -/ -- -1 -722 -) -= -915 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -773 -323 -ns -/ -iter -( -+ -/ -- -9 -648 -) -= -335 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -377 -003 -ns -/ -iter -( -+ -/ -- -3 -390 -) -= -1578 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -472 -947 -ns -/ -iter -( -+ -/ -- -1 -011 -) -= -1257 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -262 -237 -ns -/ -iter -( -+ -/ -- -1 -268 -) -= -2268 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -192 -306 -ns -/ -iter -( -+ -/ -- -520 -) -= -3093 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -318 -573 -ns -/ -iter -( -+ -/ -- -1 -462 -) -= -451 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -110 -629 -ns -/ -iter -( -+ -/ -- -13 -163 -) -= -535 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -262 -889 -ns -/ -iter -( -+ -/ -- -637 -) -= -2263 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -388 -869 -ns -/ -iter -( -+ -/ -- -1 -512 -) -= -1529 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -422 -058 -ns -/ -iter -( -+ -/ -- -1 -788 -) -= -1409 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -30 -594 -ns -/ -iter -( -+ -/ -- -166 -) -= -19446 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -569 -628 -ns -/ -iter -( -+ -/ -- -2 -052 -) -= -1044 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -6 -410 -128 -ns -/ -iter -( -+ -/ -- -19 -866 -) -= -92 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -648 -366 -ns -/ -iter -( -+ -/ -- -5 -142 -) -= -917 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -694 -035 -ns -/ -iter -( -+ -/ -- -4 -844 -) -= -857 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -54 -007 -ns -/ -iter -( -+ -/ -- -486 -) -= -11015 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -850 -430 -ns -/ -iter -( -+ -/ -- -9 -641 -) -= -699 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -5 -768 -961 -ns -/ -iter -( -+ -/ -- -20 -924 -) -= -103 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -5 -866 -550 -ns -/ -iter -( -+ -/ -- -34 -451 -) -= -101 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -70 -measured diff --git a/third_party/rust/regex/record/old-bench-log/04/re2 b/third_party/rust/regex/record/old-bench-log/04/re2 deleted file mode 100644 index 30892d1bc7e1b..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/04/re2 +++ /dev/null @@ -1,1972 +0,0 @@ -Compiling -regex -- -benchmark -v0 -. -1 -. -0 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -bench -) -Running -target -/ -release -/ -bench -- -0d58c0af2e68ae0d -running -72 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -119 -ns -/ -iter -( -+ -/ -- -2 -) -= -3277 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -45 -ns -/ -iter -( -+ -/ -- -0 -) -= -8666 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -120 -ns -/ -iter -( -+ -/ -- -1 -) -= -216 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -45 -ns -/ -iter -( -+ -/ -- -0 -) -= -577 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -187 -ns -/ -iter -( -+ -/ -- -0 -) -= -5620 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -39 -573 -ns -/ -iter -( -+ -/ -- -600 -) -= -26497 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -165 -ns -/ -iter -( -+ -/ -- -1 -) -= -357 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -971 -ns -/ -iter -( -+ -/ -- -20 -) -= -33774 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -175 -ns -/ -iter -( -+ -/ -- -1 -) -= -5965 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -39 -451 -ns -/ -iter -( -+ -/ -- -183 -) -= -26579 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -153 -ns -/ -iter -( -+ -/ -- -1 -) -= -339 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -942 -ns -/ -iter -( -+ -/ -- -24 -) -= -34806 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -2 -362 -ns -/ -iter -( -+ -/ -- -11 -) -= -444 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -2 -386 -627 -ns -/ -iter -( -+ -/ -- -12 -925 -) -= -439 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -228 -ns -/ -iter -( -+ -/ -- -1 -) -= -258 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -74 -482 -ns -/ -iter -( -+ -/ -- -190 -) -= -440 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -120 -ns -/ -iter -( -+ -/ -- -0 -) -= -425 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -184 -777 -ns -/ -iter -( -+ -/ -- -1 -644 -) -= -541 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -184 -685 -ns -/ -iter -( -+ -/ -- -289 -) -= -541 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -267 -ns -/ -iter -( -+ -/ -- -1 -) -= -303 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -267 -ns -/ -iter -( -+ -/ -- -1 -) -= -303 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -491 -ns -/ -iter -( -+ -/ -- -3 -) -= -327 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -2 -065 -ns -/ -iter -( -+ -/ -- -4 -) -= -509 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -1 -938 -951 -ns -/ -iter -( -+ -/ -- -11 -278 -) -= -540 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -302 -ns -/ -iter -( -+ -/ -- -149 -) -= -198 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -60 -766 -ns -/ -iter -( -+ -/ -- -1 -018 -) -= -539 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -203 -ns -/ -iter -( -+ -/ -- -2 -) -= -251 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -119 -ns -/ -iter -( -+ -/ -- -1 -) -= -218 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -161 -ns -/ -iter -( -+ -/ -- -0 -) -= -161 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -143 -ns -/ -iter -( -+ -/ -- -0 -) -= -118 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -145 -ns -/ -iter -( -+ -/ -- -1 -) -= -117 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -2 -030 -ns -/ -iter -( -+ -/ -- -22 -) -= -512 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -2 -362 -ns -/ -iter -( -+ -/ -- -18 -) -= -444 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -2 -386 -760 -ns -/ -iter -( -+ -/ -- -22 -075 -) -= -439 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -230 -ns -/ -iter -( -+ -/ -- -2 -) -= -256 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -74 -506 -ns -/ -iter -( -+ -/ -- -740 -) -= -440 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -1 -446 -270 -ns -/ -iter -( -+ -/ -- -5 -771 -) -= -411 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -9 -111 -570 -ns -/ -iter -( -+ -/ -- -54 -091 -) -= -65 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -2 -489 -649 -ns -/ -iter -( -+ -/ -- -23 -310 -) -= -238 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -1 -176 -642 -ns -/ -iter -( -+ -/ -- -2 -181 -) -= -505 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -1 -389 -000 -ns -/ -iter -( -+ -/ -- -258 -245 -) -= -428 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -3 -050 -918 -ns -/ -iter -( -+ -/ -- -16 -854 -) -= -195 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -954 -264 -ns -/ -iter -( -+ -/ -- -4 -656 -) -= -304 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -111 -162 -180 -ns -/ -iter -( -+ -/ -- -108 -719 -) -= -5 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -106 -751 -460 -ns -/ -iter -( -+ -/ -- -414 -985 -) -= -5 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -4 -705 -474 -ns -/ -iter -( -+ -/ -- -10 -913 -) -= -126 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -2 -539 -425 -ns -/ -iter -( -+ -/ -- -5 -440 -) -= -234 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -77 -719 -ns -/ -iter -( -+ -/ -- -275 -) -= -7654 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -1 -319 -600 -ns -/ -iter -( -+ -/ -- -2 -771 -) -= -450 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -433 -629 -ns -/ -iter -( -+ -/ -- -2 -943 -) -= -414 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -748 -137 -ns -/ -iter -( -+ -/ -- -4 -343 -) -= -216 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -1 -354 -024 -ns -/ -iter -( -+ -/ -- -2 -312 -) -= -439 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -2 -018 -381 -ns -/ -iter -( -+ -/ -- -2 -442 -) -= -294 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -1 -348 -150 -ns -/ -iter -( -+ -/ -- -3 -870 -) -= -441 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -2 -114 -276 -ns -/ -iter -( -+ -/ -- -3 -365 -) -= -281 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -168 -436 -ns -/ -iter -( -+ -/ -- -1 -503 -) -= -3532 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -645 -658 -ns -/ -iter -( -+ -/ -- -3 -816 -) -= -361 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -59 -010 -ns -/ -iter -( -+ -/ -- -380 -) -= -10081 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -60 -467 -ns -/ -iter -( -+ -/ -- -179 -) -= -9838 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -539 -137 -ns -/ -iter -( -+ -/ -- -5 -506 -) -= -386 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -535 -058 -ns -/ -iter -( -+ -/ -- -3 -352 -) -= -387 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -62 -700 -ns -/ -iter -( -+ -/ -- -440 -) -= -9488 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -439 -560 -ns -/ -iter -( -+ -/ -- -1 -545 -) -= -1353 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -439 -333 -ns -/ -iter -( -+ -/ -- -1 -020 -) -= -1354 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -23 -882 -ns -/ -iter -( -+ -/ -- -134 -) -= -24911 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -1 -396 -564 -ns -/ -iter -( -+ -/ -- -2 -785 -) -= -425 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -2 -478 -251 -ns -/ -iter -( -+ -/ -- -5 -859 -) -= -240 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -3 -708 -713 -ns -/ -iter -( -+ -/ -- -6 -919 -) -= -160 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -232 -490 -ns -/ -iter -( -+ -/ -- -4 -478 -) -= -2558 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -286 -399 -ns -/ -iter -( -+ -/ -- -5 -006 -) -= -260 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -3 -295 -919 -ns -/ -iter -( -+ -/ -- -27 -810 -) -= -180 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -30 -375 -810 -ns -/ -iter -( -+ -/ -- -37 -415 -) -= -19 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -72 -measured diff --git a/third_party/rust/regex/record/old-bench-log/04/rust b/third_party/rust/regex/record/old-bench-log/04/rust deleted file mode 100644 index 5b2d2b459e47f..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/04/rust +++ /dev/null @@ -1,1995 +0,0 @@ -Compiling -regex -- -benchmark -v0 -. -1 -. -0 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -bench -) -Running -target -/ -release -/ -bench -- -0d58c0af2e68ae0d -running -74 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -1 -) -= -16250 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -0 -) -= -18571 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -1 -) -= -1181 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -0 -) -= -1238 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -6 -) -= -58388 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -4 -) -= -49933476 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -0 -) -= -3470 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -9 -) -= -1821944 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -0 -) -= -20076 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -0 -) -= -19065381 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -1040 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -655760 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -66 -ns -/ -iter -( -+ -/ -- -0 -) -= -15924 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -70 -ns -/ -iter -( -+ -/ -- -1 -) -= -14980042 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -1 -) -= -951 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -1 -) -= -528951 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -0 -) -= -3000 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -2 -359 -ns -/ -iter -( -+ -/ -- -37 -) -= -42391 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -634 -783 -ns -/ -iter -( -+ -/ -- -4 -313 -) -= -157 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -82 -ns -/ -iter -( -+ -/ -- -1 -) -= -987 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -30 -ns -/ -iter -( -+ -/ -- -15 -) -= -2700 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -317 -ns -/ -iter -( -+ -/ -- -2 -) -= -507 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -58444 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -0 -) -= -47663818 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -3333 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1822000 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -115 -ns -/ -iter -( -+ -/ -- -0 -) -= -443 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -69 -ns -/ -iter -( -+ -/ -- -1 -) -= -376 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -68 -ns -/ -iter -( -+ -/ -- -0 -) -= -382 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -340 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -0 -) -= -326 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -1 -939 -ns -/ -iter -( -+ -/ -- -12 -) -= -536 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -964 -ns -/ -iter -( -+ -/ -- -7 -) -= -535 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -934 -967 -ns -/ -iter -( -+ -/ -- -4 -626 -) -= -541 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -130 -ns -/ -iter -( -+ -/ -- -0 -) -= -453 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -60 -581 -ns -/ -iter -( -+ -/ -- -176 -) -= -541 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -142 -ns -/ -iter -( -+ -/ -- -1 -) -test -sherlock -: -: -before_holmes -. -. -. -bench -: -1 -127 -747 -ns -/ -iter -( -+ -/ -- -2 -052 -) -= -527 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -598 -664 -ns -/ -iter -( -+ -/ -- -6 -137 -) -= -228 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -1 -202 -183 -ns -/ -iter -( -+ -/ -- -1 -965 -) -= -494 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -220 -378 -ns -/ -iter -( -+ -/ -- -1 -229 -) -= -2699 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -631 -731 -ns -/ -iter -( -+ -/ -- -2 -071 -) -= -941 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -1 -344 -980 -ns -/ -iter -( -+ -/ -- -1 -799 -) -= -442 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -286 -425 -ns -/ -iter -( -+ -/ -- -2 -965 -) -= -462 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -24 -356 -951 -ns -/ -iter -( -+ -/ -- -47 -224 -) -= -24 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -23 -816 -732 -ns -/ -iter -( -+ -/ -- -44 -203 -) -= -24 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -2 -051 -873 -ns -/ -iter -( -+ -/ -- -8 -712 -) -= -289 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -1 -102 -534 -ns -/ -iter -( -+ -/ -- -6 -071 -) -= -539 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -36 -474 -ns -/ -iter -( -+ -/ -- -308 -) -= -16311 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -185 -668 -ns -/ -iter -( -+ -/ -- -1 -023 -) -= -3204 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -152 -554 -ns -/ -iter -( -+ -/ -- -1 -991 -) -= -516 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -254 -885 -ns -/ -iter -( -+ -/ -- -5 -387 -) -= -474 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -228 -721 -ns -/ -iter -( -+ -/ -- -854 -) -= -2601 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -223 -457 -ns -/ -iter -( -+ -/ -- -2 -307 -) -= -486 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -317 -372 -ns -/ -iter -( -+ -/ -- -951 -) -= -1874 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -224 -434 -ns -/ -iter -( -+ -/ -- -3 -886 -) -= -485 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -42 -905 -ns -/ -iter -( -+ -/ -- -217 -) -= -13866 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -080 -290 -ns -/ -iter -( -+ -/ -- -5 -686 -) -= -550 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -70 -041 -ns -/ -iter -( -+ -/ -- -444 -) -= -8494 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -36 -092 -ns -/ -iter -( -+ -/ -- -189 -) -= -16483 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -156 -696 -ns -/ -iter -( -+ -/ -- -3 -922 -) -= -514 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -156 -088 -ns -/ -iter -( -+ -/ -- -2 -453 -) -= -514 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -79 -560 -ns -/ -iter -( -+ -/ -- -426 -) -= -7477 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -25 -940 -ns -/ -iter -( -+ -/ -- -119 -) -= -22934 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -364 -911 -ns -/ -iter -( -+ -/ -- -1 -302 -) -= -1630 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -25 -851 -ns -/ -iter -( -+ -/ -- -112 -) -= -23013 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -561 -575 -ns -/ -iter -( -+ -/ -- -2 -083 -) -= -1059 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -88 -961 -089 -ns -/ -iter -( -+ -/ -- -132 -661 -) -= -6 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -609 -891 -ns -/ -iter -( -+ -/ -- -1 -451 -) -= -975 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -1 -622 -541 -ns -/ -iter -( -+ -/ -- -6 -851 -) -= -366 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -48 -810 -ns -/ -iter -( -+ -/ -- -245 -) -= -12188 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -192 -755 -ns -/ -iter -( -+ -/ -- -4 -168 -) -= -498 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -991 -440 -ns -/ -iter -( -+ -/ -- -7 -313 -) -= -298 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -9 -688 -357 -ns -/ -iter -( -+ -/ -- -17 -267 -) -= -61 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -74 -measured diff --git a/third_party/rust/regex/record/old-bench-log/04/tcl b/third_party/rust/regex/record/old-bench-log/04/tcl deleted file mode 100644 index 79b5617865152..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/04/tcl +++ /dev/null @@ -1,1812 +0,0 @@ -Compiling -regex -- -benchmark -v0 -. -1 -. -0 -( -file -: -/ -/ -/ -home -/ -andrew -/ -data -/ -projects -/ -rust -/ -regex -/ -bench -) -Running -target -/ -release -/ -bench -- -0d58c0af2e68ae0d -running -65 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -925 -ns -/ -iter -( -+ -/ -- -16 -) -= -421 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -144 -ns -/ -iter -( -+ -/ -- -2 -) -= -2708 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -920 -ns -/ -iter -( -+ -/ -- -11 -) -= -28 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -144 -ns -/ -iter -( -+ -/ -- -1 -) -= -180 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -14 -228 -ns -/ -iter -( -+ -/ -- -204 -) -= -73 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -3 -728 -677 -ns -/ -iter -( -+ -/ -- -4 -564 -) -= -281 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -10 -023 -ns -/ -iter -( -+ -/ -- -156 -) -= -5 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -125 -851 -ns -/ -iter -( -+ -/ -- -287 -) -= -260 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -8 -797 -ns -/ -iter -( -+ -/ -- -90 -) -= -118 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -3 -722 -675 -ns -/ -iter -( -+ -/ -- -4 -912 -) -= -281 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -5 -189 -ns -/ -iter -( -+ -/ -- -77 -) -= -10 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -121 -106 -ns -/ -iter -( -+ -/ -- -694 -) -= -270 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -17 -111 -ns -/ -iter -( -+ -/ -- -251 -) -= -61 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -3 -743 -313 -ns -/ -iter -( -+ -/ -- -7 -634 -) -= -280 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -13 -489 -ns -/ -iter -( -+ -/ -- -220 -) -= -4 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -129 -358 -ns -/ -iter -( -+ -/ -- -257 -) -= -253 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -629 -ns -/ -iter -( -+ -/ -- -5 -) -= -81 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -21 -495 -182 -ns -/ -iter -( -+ -/ -- -41 -993 -) -= -4 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -21 -501 -034 -ns -/ -iter -( -+ -/ -- -34 -033 -) -= -4 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -732 -ns -/ -iter -( -+ -/ -- -3 -) -= -110 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -736 -ns -/ -iter -( -+ -/ -- -6 -) -= -110 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -14 -433 -ns -/ -iter -( -+ -/ -- -49 -) -= -72 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -3 -729 -861 -ns -/ -iter -( -+ -/ -- -4 -198 -) -= -281 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -10 -756 -ns -/ -iter -( -+ -/ -- -75 -) -= -5 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -126 -593 -ns -/ -iter -( -+ -/ -- -169 -) -= -259 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -2 -350 -ns -/ -iter -( -+ -/ -- -13 -) -= -21 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -9 -183 -ns -/ -iter -( -+ -/ -- -198 -) -= -2 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -8 -470 -ns -/ -iter -( -+ -/ -- -110 -) -= -3 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -956 -ns -/ -iter -( -+ -/ -- -4 -) -= -17 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -1 -042 -ns -/ -iter -( -+ -/ -- -13 -) -= -16 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -129 -563 -ns -/ -iter -( -+ -/ -- -336 -) -= -8 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -16 -656 -ns -/ -iter -( -+ -/ -- -152 -) -= -63 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -3 -744 -123 -ns -/ -iter -( -+ -/ -- -4 -556 -) -= -280 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -12 -910 -ns -/ -iter -( -+ -/ -- -112 -) -= -4 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -129 -293 -ns -/ -iter -( -+ -/ -- -301 -) -= -253 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -3 -593 -560 -ns -/ -iter -( -+ -/ -- -8 -574 -) -= -165 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -2 -906 -271 -ns -/ -iter -( -+ -/ -- -5 -153 -) -= -204 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -7 -016 -213 -ns -/ -iter -( -+ -/ -- -30 -321 -) -= -84 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -24 -592 -817 -ns -/ -iter -( -+ -/ -- -78 -720 -) -= -24 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -2 -457 -984 -ns -/ -iter -( -+ -/ -- -3 -932 -) -= -242 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -2 -569 -156 -ns -/ -iter -( -+ -/ -- -5 -789 -) -= -231 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -3 -686 -183 -ns -/ -iter -( -+ -/ -- -13 -550 -) -= -161 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -6 -715 -311 -ns -/ -iter -( -+ -/ -- -15 -208 -) -= -88 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -9 -702 -060 -ns -/ -iter -( -+ -/ -- -32 -628 -) -= -61 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -3 -834 -029 -ns -/ -iter -( -+ -/ -- -3 -955 -) -= -155 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -4 -762 -730 -ns -/ -iter -( -+ -/ -- -751 -201 -) -= -124 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -4 -582 -303 -ns -/ -iter -( -+ -/ -- -8 -073 -) -= -129 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -5 -583 -652 -ns -/ -iter -( -+ -/ -- -14 -573 -) -= -106 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -2 -968 -764 -ns -/ -iter -( -+ -/ -- -6 -198 -) -= -200 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -3 -066 -080 -ns -/ -iter -( -+ -/ -- -8 -986 -) -= -194 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -2 -372 -708 -ns -/ -iter -( -+ -/ -- -3 -272 -) -= -250 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -2 -607 -914 -ns -/ -iter -( -+ -/ -- -3 -361 -) -= -228 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -2 -641 -260 -ns -/ -iter -( -+ -/ -- -9 -409 -) -= -225 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -2 -420 -591 -ns -/ -iter -( -+ -/ -- -11 -053 -) -= -245 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -2 -592 -553 -ns -/ -iter -( -+ -/ -- -3 -476 -) -= -229 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -2 -114 -367 -ns -/ -iter -( -+ -/ -- -1 -665 -) -= -281 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -2 -114 -835 -ns -/ -iter -( -+ -/ -- -2 -491 -) -= -281 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -2 -105 -274 -ns -/ -iter -( -+ -/ -- -1 -657 -) -= -282 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -10 -978 -890 -ns -/ -iter -( -+ -/ -- -30 -645 -) -= -54 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -69 -836 -043 -ns -/ -iter -( -+ -/ -- -117 -415 -) -= -8 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -9 -343 -518 -ns -/ -iter -( -+ -/ -- -29 -387 -) -= -63 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -9 -690 -676 -ns -/ -iter -( -+ -/ -- -42 -585 -) -= -61 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -2 -780 -398 -ns -/ -iter -( -+ -/ -- -6 -949 -) -= -213 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -11 -562 -612 -ns -/ -iter -( -+ -/ -- -78 -789 -) -= -51 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -64 -139 -234 -ns -/ -iter -( -+ -/ -- -491 -422 -) -= -9 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -65 -measured diff --git a/third_party/rust/regex/record/old-bench-log/05/onig b/third_party/rust/regex/record/old-bench-log/05/onig deleted file mode 100644 index 78a9696765b1a..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/onig +++ /dev/null @@ -1,2591 +0,0 @@ -running -94 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -158 -ns -/ -iter -( -+ -/ -- -4 -) -= -2468 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -495 -ns -/ -iter -( -+ -/ -- -7 -) -= -787 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -160 -ns -/ -iter -( -+ -/ -- -3 -) -= -162 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -44 -ns -/ -iter -( -+ -/ -- -4 -) -= -590 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -315 -ns -/ -iter -( -+ -/ -- -15 -) -= -3336 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -136 -864 -ns -/ -iter -( -+ -/ -- -5 -984 -) -= -7661 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -163 -ns -/ -iter -( -+ -/ -- -11 -) -= -361 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -4 -562 -ns -/ -iter -( -+ -/ -- -255 -) -= -7188 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -3 -947 -ns -/ -iter -( -+ -/ -- -199 -) -= -264 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -3 -920 -564 -ns -/ -iter -( -+ -/ -- -122 -902 -) -= -267 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -321 -ns -/ -iter -( -+ -/ -- -20 -) -= -161 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -121 -449 -ns -/ -iter -( -+ -/ -- -4 -899 -) -= -269 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -125 -960 -ns -/ -iter -( -+ -/ -- -7 -255 -) -= -8 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -134 -129 -947 -ns -/ -iter -( -+ -/ -- -4 -797 -942 -) -= -7 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -4 -044 -ns -/ -iter -( -+ -/ -- -227 -) -= -14 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -4 -183 -228 -ns -/ -iter -( -+ -/ -- -127 -808 -) -= -7 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -331 -ns -/ -iter -( -+ -/ -- -21 -) -= -154 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -5 -715 -563 -ns -/ -iter -( -+ -/ -- -250 -535 -) -= -17 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -5 -779 -968 -ns -/ -iter -( -+ -/ -- -195 -784 -) -= -17 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -431 -ns -/ -iter -( -+ -/ -- -5 -) -= -187 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -427 -ns -/ -iter -( -+ -/ -- -27 -) -= -189 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -1 -946 -ns -/ -iter -( -+ -/ -- -88 -) -= -82 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -325 -ns -/ -iter -( -+ -/ -- -23 -) -= -3236 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -138 -022 -ns -/ -iter -( -+ -/ -- -5 -142 -) -= -7597 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -182 -ns -/ -iter -( -+ -/ -- -7 -) -= -329 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -4 -511 -ns -/ -iter -( -+ -/ -- -190 -) -= -7270 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -436 -ns -/ -iter -( -+ -/ -- -25 -) -= -116 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -168 -ns -/ -iter -( -+ -/ -- -6 -) -= -154 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -176 -ns -/ -iter -( -+ -/ -- -7 -) -= -147 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -325 -ns -/ -iter -( -+ -/ -- -16 -) -= -52 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -322 -ns -/ -iter -( -+ -/ -- -21 -) -= -52 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -289 -956 -ns -/ -iter -( -+ -/ -- -16 -350 -) -= -3 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -126 -089 -ns -/ -iter -( -+ -/ -- -5 -350 -) -= -8 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -133 -197 -312 -ns -/ -iter -( -+ -/ -- -3 -057 -491 -) -= -7 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -4 -060 -ns -/ -iter -( -+ -/ -- -11 -) -= -14 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -4 -215 -469 -ns -/ -iter -( -+ -/ -- -200 -526 -) -= -7 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -27 -622 -ns -/ -iter -( -+ -/ -- -778 -) -= -289 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -30 -503 -604 -ns -/ -iter -( -+ -/ -- -1 -120 -697 -) -= -166 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -23 -276 -552 -ns -/ -iter -( -+ -/ -- -1 -019 -308 -) -= -218 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -23 -199 -415 -ns -/ -iter -( -+ -/ -- -790 -938 -) -= -219 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -23 -138 -469 -ns -/ -iter -( -+ -/ -- -884 -700 -) -= -219 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -23 -076 -376 -ns -/ -iter -( -+ -/ -- -644 -391 -) -= -220 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -23 -115 -770 -ns -/ -iter -( -+ -/ -- -737 -666 -) -= -219 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -23 -093 -288 -ns -/ -iter -( -+ -/ -- -1 -003 -519 -) -= -220 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -23 -618 -534 -ns -/ -iter -( -+ -/ -- -773 -260 -) -= -215 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -23 -301 -581 -ns -/ -iter -( -+ -/ -- -679 -681 -) -= -218 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -23 -371 -339 -ns -/ -iter -( -+ -/ -- -714 -433 -) -= -217 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -23 -187 -513 -ns -/ -iter -( -+ -/ -- -863 -031 -) -= -219 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -23 -143 -027 -ns -/ -iter -( -+ -/ -- -890 -422 -) -= -219 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -104 -906 -982 -ns -/ -iter -( -+ -/ -- -3 -391 -942 -) -= -48 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -118 -326 -728 -ns -/ -iter -( -+ -/ -- -3 -378 -748 -) -= -42 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -109 -348 -596 -ns -/ -iter -( -+ -/ -- -3 -647 -056 -) -= -46 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -104 -574 -675 -ns -/ -iter -( -+ -/ -- -3 -236 -753 -) -= -48 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -102 -968 -132 -ns -/ -iter -( -+ -/ -- -2 -792 -754 -) -= -49 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -103 -783 -112 -ns -/ -iter -( -+ -/ -- -2 -851 -581 -) -= -48 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -103 -939 -805 -ns -/ -iter -( -+ -/ -- -3 -118 -277 -) -= -48 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -109 -722 -594 -ns -/ -iter -( -+ -/ -- -3 -739 -958 -) -= -46 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -128 -702 -724 -ns -/ -iter -( -+ -/ -- -3 -739 -103 -) -= -39 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -39 -219 -739 -ns -/ -iter -( -+ -/ -- -1 -622 -425 -) -= -15 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -37 -454 -934 -ns -/ -iter -( -+ -/ -- -1 -055 -140 -) -= -15 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -7 -341 -629 -ns -/ -iter -( -+ -/ -- -241 -072 -) -= -81 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -2 -298 -534 -ns -/ -iter -( -+ -/ -- -94 -224 -) -= -258 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -18 -533 -670 -ns -/ -iter -( -+ -/ -- -505 -855 -) -= -32 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -2 -419 -034 -ns -/ -iter -( -+ -/ -- -124 -616 -) -= -245 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -61 -910 -045 -ns -/ -iter -( -+ -/ -- -2 -122 -755 -) -= -9 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -60 -831 -022 -ns -/ -iter -( -+ -/ -- -2 -559 -720 -) -= -9 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -10 -747 -265 -ns -/ -iter -( -+ -/ -- -761 -147 -) -= -55 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -215 -376 -ns -/ -iter -( -+ -/ -- -13 -622 -) -= -2762 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -2 -282 -320 -ns -/ -iter -( -+ -/ -- -154 -104 -) -= -260 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -2 -206 -087 -ns -/ -iter -( -+ -/ -- -158 -376 -) -= -269 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -2 -771 -932 -ns -/ -iter -( -+ -/ -- -181 -216 -) -= -214 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -19 -198 -056 -ns -/ -iter -( -+ -/ -- -816 -668 -) -= -30 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -2 -254 -798 -ns -/ -iter -( -+ -/ -- -135 -379 -) -= -263 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -5 -734 -254 -ns -/ -iter -( -+ -/ -- -411 -596 -) -= -103 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -2 -276 -779 -ns -/ -iter -( -+ -/ -- -172 -557 -) -= -261 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -7 -314 -318 -ns -/ -iter -( -+ -/ -- -377 -963 -) -= -81 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -477 -888 -ns -/ -iter -( -+ -/ -- -37 -472 -) -= -1244 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -3 -487 -005 -ns -/ -iter -( -+ -/ -- -278 -896 -) -= -170 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -295 -313 -ns -/ -iter -( -+ -/ -- -16 -739 -) -= -2014 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -216 -522 -ns -/ -iter -( -+ -/ -- -15 -594 -) -= -2747 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -3 -480 -703 -ns -/ -iter -( -+ -/ -- -272 -332 -) -= -170 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -3 -511 -444 -ns -/ -iter -( -+ -/ -- -283 -013 -) -= -169 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -304 -043 -ns -/ -iter -( -+ -/ -- -19 -186 -) -= -1956 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -632 -615 -ns -/ -iter -( -+ -/ -- -44 -676 -) -= -940 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -727 -565 -ns -/ -iter -( -+ -/ -- -54 -169 -) -= -817 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -624 -061 -ns -/ -iter -( -+ -/ -- -37 -791 -) -= -953 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -3 -776 -688 -ns -/ -iter -( -+ -/ -- -186 -393 -) -= -157 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -34 -354 -179 -ns -/ -iter -( -+ -/ -- -1 -534 -267 -) -= -17 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -965 -787 -ns -/ -iter -( -+ -/ -- -137 -099 -) -= -302 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -4 -853 -843 -ns -/ -iter -( -+ -/ -- -259 -890 -) -= -122 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -949 -071 -ns -/ -iter -( -+ -/ -- -66 -016 -) -= -626 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -173 -683 -ns -/ -iter -( -+ -/ -- -142 -384 -) -= -273 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -19 -711 -057 -ns -/ -iter -( -+ -/ -- -942 -152 -) -= -30 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -21 -979 -387 -ns -/ -iter -( -+ -/ -- -1 -250 -588 -) -= -27 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -94 -measured diff --git a/third_party/rust/regex/record/old-bench-log/05/onig-vs-rust b/third_party/rust/regex/record/old-bench-log/05/onig-vs-rust deleted file mode 100644 index dbdbbef214dd6..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/onig-vs-rust +++ /dev/null @@ -1,2709 +0,0 @@ -name -onig -ns -/ -iter -rust -ns -/ -iter -diff -ns -/ -iter -diff -% -misc -: -: -anchored_literal_long_match -158 -( -2468 -MB -/ -s -) -24 -( -16250 -MB -/ -s -) -- -134 -- -84 -. -81 -% -misc -: -: -anchored_literal_long_non_match -495 -( -787 -MB -/ -s -) -27 -( -14444 -MB -/ -s -) -- -468 -- -94 -. -55 -% -misc -: -: -anchored_literal_short_match -160 -( -162 -MB -/ -s -) -22 -( -1181 -MB -/ -s -) -- -138 -- -86 -. -25 -% -misc -: -: -anchored_literal_short_non_match -44 -( -590 -MB -/ -s -) -24 -( -1083 -MB -/ -s -) -- -20 -- -45 -. -45 -% -misc -: -: -easy0_1K -315 -( -3336 -MB -/ -s -) -16 -( -65687 -MB -/ -s -) -- -299 -- -94 -. -92 -% -misc -: -: -easy0_1MB -136 -864 -( -7661 -MB -/ -s -) -20 -( -52430150 -MB -/ -s -) -- -136 -844 -- -99 -. -99 -% -misc -: -: -easy0_32 -163 -( -361 -MB -/ -s -) -16 -( -3687 -MB -/ -s -) -- -147 -- -90 -. -18 -% -misc -: -: -easy0_32K -4 -562 -( -7188 -MB -/ -s -) -16 -( -2049687 -MB -/ -s -) -- -4 -546 -- -99 -. -65 -% -misc -: -: -easy1_1K -3 -947 -( -264 -MB -/ -s -) -48 -( -21750 -MB -/ -s -) -- -3 -899 -- -98 -. -78 -% -misc -: -: -easy1_1MB -3 -920 -564 -( -267 -MB -/ -s -) -48 -( -21845750 -MB -/ -s -) -- -3 -920 -516 -- -100 -. -00 -% -misc -: -: -easy1_32 -321 -( -161 -MB -/ -s -) -46 -( -1130 -MB -/ -s -) -- -275 -- -85 -. -67 -% -misc -: -: -easy1_32K -121 -449 -( -269 -MB -/ -s -) -47 -( -697617 -MB -/ -s -) -- -121 -402 -- -99 -. -96 -% -misc -: -: -hard_1K -125 -960 -( -8 -MB -/ -s -) -58 -( -18120 -MB -/ -s -) -- -125 -902 -- -99 -. -95 -% -misc -: -: -hard_1MB -134 -129 -947 -( -7 -MB -/ -s -) -61 -( -17190213 -MB -/ -s -) -- -134 -129 -886 -- -100 -. -00 -% -misc -: -: -hard_32 -4 -044 -( -14 -MB -/ -s -) -58 -( -1017 -MB -/ -s -) -- -3 -986 -- -98 -. -57 -% -misc -: -: -hard_32K -4 -183 -228 -( -7 -MB -/ -s -) -56 -( -585625 -MB -/ -s -) -- -4 -183 -172 -- -100 -. -00 -% -misc -: -: -literal -331 -( -154 -MB -/ -s -) -16 -( -3187 -MB -/ -s -) -- -315 -- -95 -. -17 -% -misc -: -: -long_needle1 -5 -715 -563 -( -17 -MB -/ -s -) -2 -226 -( -44924 -MB -/ -s -) -- -5 -713 -337 -- -99 -. -96 -% -misc -: -: -long_needle2 -5 -779 -968 -( -17 -MB -/ -s -) -576 -997 -( -173 -MB -/ -s -) -- -5 -202 -971 -- -90 -. -02 -% -misc -: -: -match_class -431 -( -187 -MB -/ -s -) -65 -( -1246 -MB -/ -s -) -- -366 -- -84 -. -92 -% -misc -: -: -match_class_in_range -427 -( -189 -MB -/ -s -) -27 -( -3000 -MB -/ -s -) -- -400 -- -93 -. -68 -% -misc -: -: -match_class_unicode -1 -946 -( -82 -MB -/ -s -) -283 -( -568 -MB -/ -s -) -- -1 -663 -- -85 -. -46 -% -misc -: -: -medium_1K -325 -( -3236 -MB -/ -s -) -16 -( -65750 -MB -/ -s -) -- -309 -- -95 -. -08 -% -misc -: -: -medium_1MB -138 -022 -( -7597 -MB -/ -s -) -21 -( -49933523 -MB -/ -s -) -- -138 -001 -- -99 -. -98 -% -misc -: -: -medium_32 -182 -( -329 -MB -/ -s -) -17 -( -3529 -MB -/ -s -) -- -165 -- -90 -. -66 -% -misc -: -: -medium_32K -4 -511 -( -7270 -MB -/ -s -) -17 -( -1929176 -MB -/ -s -) -- -4 -494 -- -99 -. -62 -% -misc -: -: -not_literal -436 -( -116 -MB -/ -s -) -105 -( -485 -MB -/ -s -) -- -331 -- -75 -. -92 -% -misc -: -: -one_pass_long_prefix -168 -( -154 -MB -/ -s -) -68 -( -382 -MB -/ -s -) -- -100 -- -59 -. -52 -% -misc -: -: -one_pass_long_prefix_not -176 -( -147 -MB -/ -s -) -58 -( -448 -MB -/ -s -) -- -118 -- -67 -. -05 -% -misc -: -: -one_pass_short -325 -( -52 -MB -/ -s -) -45 -( -377 -MB -/ -s -) -- -280 -- -86 -. -15 -% -misc -: -: -one_pass_short_not -322 -( -52 -MB -/ -s -) -50 -( -340 -MB -/ -s -) -- -272 -- -84 -. -47 -% -misc -: -: -reallyhard2_1K -289 -956 -( -3 -MB -/ -s -) -83 -( -12530 -MB -/ -s -) -- -289 -873 -- -99 -. -97 -% -misc -: -: -reallyhard_1K -126 -089 -( -8 -MB -/ -s -) -1 -822 -( -576 -MB -/ -s -) -- -124 -267 -- -98 -. -55 -% -misc -: -: -reallyhard_1MB -133 -197 -312 -( -7 -MB -/ -s -) -1 -768 -327 -( -592 -MB -/ -s -) -- -131 -428 -985 -- -98 -. -67 -% -misc -: -: -reallyhard_32 -4 -060 -( -14 -MB -/ -s -) -121 -( -487 -MB -/ -s -) -- -3 -939 -- -97 -. -02 -% -misc -: -: -reallyhard_32K -4 -215 -469 -( -7 -MB -/ -s -) -56 -375 -( -581 -MB -/ -s -) -- -4 -159 -094 -- -98 -. -66 -% -misc -: -: -reverse_suffix_no_quadratic -27 -622 -( -289 -MB -/ -s -) -5 -803 -( -1378 -MB -/ -s -) -- -21 -819 -- -78 -. -99 -% -regexdna -: -: -find_new_lines -30 -503 -604 -( -166 -MB -/ -s -) -14 -818 -233 -( -343 -MB -/ -s -) -- -15 -685 -371 -- -51 -. -42 -% -regexdna -: -: -subst1 -23 -276 -552 -( -218 -MB -/ -s -) -896 -790 -( -5668 -MB -/ -s -) -- -22 -379 -762 -- -96 -. -15 -% -regexdna -: -: -subst10 -23 -199 -415 -( -219 -MB -/ -s -) -957 -325 -( -5310 -MB -/ -s -) -- -22 -242 -090 -- -95 -. -87 -% -regexdna -: -: -subst11 -23 -138 -469 -( -219 -MB -/ -s -) -917 -248 -( -5542 -MB -/ -s -) -- -22 -221 -221 -- -96 -. -04 -% -regexdna -: -: -subst2 -23 -076 -376 -( -220 -MB -/ -s -) -892 -129 -( -5698 -MB -/ -s -) -- -22 -184 -247 -- -96 -. -13 -% -regexdna -: -: -subst3 -23 -115 -770 -( -219 -MB -/ -s -) -929 -250 -( -5470 -MB -/ -s -) -- -22 -186 -520 -- -95 -. -98 -% -regexdna -: -: -subst4 -23 -093 -288 -( -220 -MB -/ -s -) -872 -581 -( -5825 -MB -/ -s -) -- -22 -220 -707 -- -96 -. -22 -% -regexdna -: -: -subst5 -23 -618 -534 -( -215 -MB -/ -s -) -875 -804 -( -5804 -MB -/ -s -) -- -22 -742 -730 -- -96 -. -29 -% -regexdna -: -: -subst6 -23 -301 -581 -( -218 -MB -/ -s -) -884 -639 -( -5746 -MB -/ -s -) -- -22 -416 -942 -- -96 -. -20 -% -regexdna -: -: -subst7 -23 -371 -339 -( -217 -MB -/ -s -) -872 -791 -( -5824 -MB -/ -s -) -- -22 -498 -548 -- -96 -. -27 -% -regexdna -: -: -subst8 -23 -187 -513 -( -219 -MB -/ -s -) -873 -833 -( -5817 -MB -/ -s -) -- -22 -313 -680 -- -96 -. -23 -% -regexdna -: -: -subst9 -23 -143 -027 -( -219 -MB -/ -s -) -886 -744 -( -5732 -MB -/ -s -) -- -22 -256 -283 -- -96 -. -17 -% -regexdna -: -: -variant1 -104 -906 -982 -( -48 -MB -/ -s -) -3 -699 -267 -( -1374 -MB -/ -s -) -- -101 -207 -715 -- -96 -. -47 -% -regexdna -: -: -variant2 -118 -326 -728 -( -42 -MB -/ -s -) -6 -760 -952 -( -751 -MB -/ -s -) -- -111 -565 -776 -- -94 -. -29 -% -regexdna -: -: -variant3 -109 -348 -596 -( -46 -MB -/ -s -) -8 -030 -646 -( -633 -MB -/ -s -) -- -101 -317 -950 -- -92 -. -66 -% -regexdna -: -: -variant4 -104 -574 -675 -( -48 -MB -/ -s -) -8 -077 -290 -( -629 -MB -/ -s -) -- -96 -497 -385 -- -92 -. -28 -% -regexdna -: -: -variant5 -102 -968 -132 -( -49 -MB -/ -s -) -6 -787 -242 -( -748 -MB -/ -s -) -- -96 -180 -890 -- -93 -. -41 -% -regexdna -: -: -variant6 -103 -783 -112 -( -48 -MB -/ -s -) -6 -577 -777 -( -772 -MB -/ -s -) -- -97 -205 -335 -- -93 -. -66 -% -regexdna -: -: -variant7 -103 -939 -805 -( -48 -MB -/ -s -) -6 -705 -580 -( -758 -MB -/ -s -) -- -97 -234 -225 -- -93 -. -55 -% -regexdna -: -: -variant8 -109 -722 -594 -( -46 -MB -/ -s -) -6 -818 -785 -( -745 -MB -/ -s -) -- -102 -903 -809 -- -93 -. -79 -% -regexdna -: -: -variant9 -128 -702 -724 -( -39 -MB -/ -s -) -6 -821 -453 -( -745 -MB -/ -s -) -- -121 -881 -271 -- -94 -. -70 -% -sherlock -: -: -before_after_holmes -39 -219 -739 -( -15 -MB -/ -s -) -1 -029 -866 -( -577 -MB -/ -s -) -- -38 -189 -873 -- -97 -. -37 -% -sherlock -: -: -before_holmes -37 -454 -934 -( -15 -MB -/ -s -) -76 -633 -( -7763 -MB -/ -s -) -- -37 -378 -301 -- -99 -. -80 -% -sherlock -: -: -everything_greedy -7 -341 -629 -( -81 -MB -/ -s -) -2 -375 -079 -( -250 -MB -/ -s -) -- -4 -966 -550 -- -67 -. -65 -% -sherlock -: -: -holmes_cochar_watson -2 -298 -534 -( -258 -MB -/ -s -) -144 -725 -( -4110 -MB -/ -s -) -- -2 -153 -809 -- -93 -. -70 -% -sherlock -: -: -ing_suffix -18 -533 -670 -( -32 -MB -/ -s -) -436 -202 -( -1363 -MB -/ -s -) -- -18 -097 -468 -- -97 -. -65 -% -sherlock -: -: -ing_suffix_limited_space -2 -419 -034 -( -245 -MB -/ -s -) -1 -182 -943 -( -502 -MB -/ -s -) -- -1 -236 -091 -- -51 -. -10 -% -sherlock -: -: -letters -61 -910 -045 -( -9 -MB -/ -s -) -24 -390 -452 -( -24 -MB -/ -s -) -- -37 -519 -593 -- -60 -. -60 -% -sherlock -: -: -letters_lower -60 -831 -022 -( -9 -MB -/ -s -) -23 -784 -108 -( -25 -MB -/ -s -) -- -37 -046 -914 -- -60 -. -90 -% -sherlock -: -: -letters_upper -10 -747 -265 -( -55 -MB -/ -s -) -1 -993 -838 -( -298 -MB -/ -s -) -- -8 -753 -427 -- -81 -. -45 -% -sherlock -: -: -line_boundary_sherlock_holmes -215 -376 -( -2762 -MB -/ -s -) -999 -414 -( -595 -MB -/ -s -) -784 -038 -364 -. -03 -% -sherlock -: -: -name_alt1 -2 -282 -320 -( -260 -MB -/ -s -) -34 -298 -( -17345 -MB -/ -s -) -- -2 -248 -022 -- -98 -. -50 -% -sherlock -: -: -name_alt2 -2 -206 -087 -( -269 -MB -/ -s -) -124 -226 -( -4789 -MB -/ -s -) -- -2 -081 -861 -- -94 -. -37 -% -sherlock -: -: -name_alt3 -2 -771 -932 -( -214 -MB -/ -s -) -137 -742 -( -4319 -MB -/ -s -) -- -2 -634 -190 -- -95 -. -03 -% -sherlock -: -: -name_alt3_nocase -19 -198 -056 -( -30 -MB -/ -s -) -1 -293 -763 -( -459 -MB -/ -s -) -- -17 -904 -293 -- -93 -. -26 -% -sherlock -: -: -name_alt4 -2 -254 -798 -( -263 -MB -/ -s -) -164 -900 -( -3607 -MB -/ -s -) -- -2 -089 -898 -- -92 -. -69 -% -sherlock -: -: -name_alt4_nocase -5 -734 -254 -( -103 -MB -/ -s -) -235 -023 -( -2531 -MB -/ -s -) -- -5 -499 -231 -- -95 -. -90 -% -sherlock -: -: -name_alt5 -2 -276 -779 -( -261 -MB -/ -s -) -127 -928 -( -4650 -MB -/ -s -) -- -2 -148 -851 -- -94 -. -38 -% -sherlock -: -: -name_alt5_nocase -7 -314 -318 -( -81 -MB -/ -s -) -659 -591 -( -901 -MB -/ -s -) -- -6 -654 -727 -- -90 -. -98 -% -sherlock -: -: -name_holmes -477 -888 -( -1244 -MB -/ -s -) -40 -902 -( -14545 -MB -/ -s -) -- -436 -986 -- -91 -. -44 -% -sherlock -: -: -name_holmes_nocase -3 -487 -005 -( -170 -MB -/ -s -) -198 -658 -( -2994 -MB -/ -s -) -- -3 -288 -347 -- -94 -. -30 -% -sherlock -: -: -name_sherlock -295 -313 -( -2014 -MB -/ -s -) -68 -924 -( -8631 -MB -/ -s -) -- -226 -389 -- -76 -. -66 -% -sherlock -: -: -name_sherlock_holmes -216 -522 -( -2747 -MB -/ -s -) -31 -640 -( -18803 -MB -/ -s -) -- -184 -882 -- -85 -. -39 -% -sherlock -: -: -name_sherlock_holmes_nocase -3 -480 -703 -( -170 -MB -/ -s -) -173 -522 -( -3428 -MB -/ -s -) -- -3 -307 -181 -- -95 -. -01 -% -sherlock -: -: -name_sherlock_nocase -3 -511 -444 -( -169 -MB -/ -s -) -170 -888 -( -3481 -MB -/ -s -) -- -3 -340 -556 -- -95 -. -13 -% -sherlock -: -: -name_whitespace -304 -043 -( -1956 -MB -/ -s -) -84 -314 -( -7056 -MB -/ -s -) -- -219 -729 -- -72 -. -27 -% -sherlock -: -: -no_match_common -632 -615 -( -940 -MB -/ -s -) -20 -727 -( -28703 -MB -/ -s -) -- -611 -888 -- -96 -. -72 -% -sherlock -: -: -no_match_really_common -727 -565 -( -817 -MB -/ -s -) -381 -476 -( -1559 -MB -/ -s -) -- -346 -089 -- -47 -. -57 -% -sherlock -: -: -no_match_uncommon -624 -061 -( -953 -MB -/ -s -) -20 -786 -( -28621 -MB -/ -s -) -- -603 -275 -- -96 -. -67 -% -sherlock -: -: -quotes -3 -776 -688 -( -157 -MB -/ -s -) -531 -487 -( -1119 -MB -/ -s -) -- -3 -245 -201 -- -85 -. -93 -% -sherlock -: -: -repeated_class_negation -34 -354 -179 -( -17 -MB -/ -s -) -85 -881 -944 -( -6 -MB -/ -s -) -51 -527 -765 -149 -. -99 -% -sherlock -: -: -the_lower -1 -965 -787 -( -302 -MB -/ -s -) -654 -110 -( -909 -MB -/ -s -) -- -1 -311 -677 -- -66 -. -73 -% -sherlock -: -: -the_nocase -4 -853 -843 -( -122 -MB -/ -s -) -474 -456 -( -1253 -MB -/ -s -) -- -4 -379 -387 -- -90 -. -23 -% -sherlock -: -: -the_upper -949 -071 -( -626 -MB -/ -s -) -43 -746 -( -13599 -MB -/ -s -) -- -905 -325 -- -95 -. -39 -% -sherlock -: -: -the_whitespace -2 -173 -683 -( -273 -MB -/ -s -) -1 -181 -974 -( -503 -MB -/ -s -) -- -991 -709 -- -45 -. -62 -% -sherlock -: -: -word_ending_n -19 -711 -057 -( -30 -MB -/ -s -) -1 -925 -578 -( -308 -MB -/ -s -) -- -17 -785 -479 -- -90 -. -23 -% -sherlock -: -: -words -21 -979 -387 -( -27 -MB -/ -s -) -9 -697 -201 -( -61 -MB -/ -s -) -- -12 -282 -186 -- -55 -. -88 -% diff --git a/third_party/rust/regex/record/old-bench-log/05/pcre1 b/third_party/rust/regex/record/old-bench-log/05/pcre1 deleted file mode 100644 index b7e63684dd43e..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/pcre1 +++ /dev/null @@ -1,2514 +0,0 @@ -running -93 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -30 -ns -/ -iter -( -+ -/ -- -0 -) -= -13000 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -1 -) -= -16250 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -29 -ns -/ -iter -( -+ -/ -- -1 -) -= -896 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -1 -) -= -1083 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -260 -ns -/ -iter -( -+ -/ -- -15 -) -= -4042 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -202 -849 -ns -/ -iter -( -+ -/ -- -7 -973 -) -= -5169 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -47 -ns -/ -iter -( -+ -/ -- -3 -) -= -1255 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -6 -378 -ns -/ -iter -( -+ -/ -- -236 -) -= -5141 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -248 -ns -/ -iter -( -+ -/ -- -15 -) -= -4209 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -203 -105 -ns -/ -iter -( -+ -/ -- -7 -590 -) -= -5162 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -1 -) -= -1019 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -6 -508 -ns -/ -iter -( -+ -/ -- -160 -) -= -5038 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -324 -ns -/ -iter -( -+ -/ -- -46 -) -= -793 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -1 -134 -691 -ns -/ -iter -( -+ -/ -- -41 -296 -) -= -924 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -113 -ns -/ -iter -( -+ -/ -- -13 -) -= -522 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -42 -269 -ns -/ -iter -( -+ -/ -- -2 -298 -) -= -775 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -0 -) -= -1821 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -547 -122 -ns -/ -iter -( -+ -/ -- -34 -029 -) -= -182 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -546 -018 -ns -/ -iter -( -+ -/ -- -24 -721 -) -= -183 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -97 -ns -/ -iter -( -+ -/ -- -5 -) -= -835 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -30 -ns -/ -iter -( -+ -/ -- -1 -) -= -2700 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -343 -ns -/ -iter -( -+ -/ -- -2 -) -= -469 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -253 -ns -/ -iter -( -+ -/ -- -15 -) -= -4158 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -202 -025 -ns -/ -iter -( -+ -/ -- -11 -252 -) -= -5190 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -2 -) -= -1176 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -6 -406 -ns -/ -iter -( -+ -/ -- -318 -) -= -5119 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -169 -ns -/ -iter -( -+ -/ -- -6 -) -= -301 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -1 -) -= -928 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -0 -) -= -928 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -54 -ns -/ -iter -( -+ -/ -- -0 -) -= -314 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -3 -) -= -309 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -4 -664 -ns -/ -iter -( -+ -/ -- -123 -) -= -222 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -595 -ns -/ -iter -( -+ -/ -- -34 -) -= -658 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -377 -542 -ns -/ -iter -( -+ -/ -- -2 -203 -) -= -761 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -106 -ns -/ -iter -( -+ -/ -- -2 -) -= -556 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -43 -256 -ns -/ -iter -( -+ -/ -- -1 -230 -) -= -758 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -607 -ns -/ -iter -( -+ -/ -- -68 -) -= -1736 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -2 -840 -298 -ns -/ -iter -( -+ -/ -- -128 -040 -) -= -1789 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -1 -284 -283 -ns -/ -iter -( -+ -/ -- -39 -986 -) -= -3958 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -1 -269 -531 -ns -/ -iter -( -+ -/ -- -63 -116 -) -= -4004 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -1 -286 -171 -ns -/ -iter -( -+ -/ -- -49 -256 -) -= -3952 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -1 -303 -022 -ns -/ -iter -( -+ -/ -- -1 -553 -) -= -3901 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -1 -295 -961 -ns -/ -iter -( -+ -/ -- -57 -880 -) -= -3922 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -1 -313 -706 -ns -/ -iter -( -+ -/ -- -2 -115 -) -= -3869 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -1 -286 -339 -ns -/ -iter -( -+ -/ -- -2 -093 -) -= -3951 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -1 -385 -644 -ns -/ -iter -( -+ -/ -- -3 -387 -) -= -3668 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -1 -286 -743 -ns -/ -iter -( -+ -/ -- -2 -339 -) -= -3950 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -1 -306 -406 -ns -/ -iter -( -+ -/ -- -1 -686 -) -= -3891 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -1 -280 -365 -ns -/ -iter -( -+ -/ -- -52 -649 -) -= -3970 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -15 -271 -875 -ns -/ -iter -( -+ -/ -- -510 -399 -) -= -332 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -16 -704 -090 -ns -/ -iter -( -+ -/ -- -446 -145 -) -= -304 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -20 -745 -546 -ns -/ -iter -( -+ -/ -- -500 -573 -) -= -245 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -19 -285 -154 -ns -/ -iter -( -+ -/ -- -543 -793 -) -= -263 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -17 -234 -130 -ns -/ -iter -( -+ -/ -- -291 -232 -) -= -294 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -17 -462 -350 -ns -/ -iter -( -+ -/ -- -510 -036 -) -= -291 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -19 -671 -680 -ns -/ -iter -( -+ -/ -- -562 -610 -) -= -258 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -24 -515 -319 -ns -/ -iter -( -+ -/ -- -725 -298 -) -= -207 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -22 -623 -755 -ns -/ -iter -( -+ -/ -- -637 -538 -) -= -224 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -4 -510 -830 -ns -/ -iter -( -+ -/ -- -170 -864 -) -= -131 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -4 -706 -836 -ns -/ -iter -( -+ -/ -- -186 -202 -) -= -126 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -523 -122 -ns -/ -iter -( -+ -/ -- -988 -) -= -1137 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -2 -030 -438 -ns -/ -iter -( -+ -/ -- -9 -228 -) -= -293 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -4 -996 -956 -ns -/ -iter -( -+ -/ -- -197 -705 -) -= -119 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -13 -529 -105 -ns -/ -iter -( -+ -/ -- -496 -645 -) -= -43 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -13 -681 -607 -ns -/ -iter -( -+ -/ -- -448 -932 -) -= -43 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -904 -757 -ns -/ -iter -( -+ -/ -- -94 -484 -) -= -312 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -207 -695 -ns -/ -iter -( -+ -/ -- -8 -892 -) -= -2864 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -486 -857 -ns -/ -iter -( -+ -/ -- -21 -004 -) -= -1221 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -483 -926 -ns -/ -iter -( -+ -/ -- -26 -860 -) -= -1229 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -978 -827 -ns -/ -iter -( -+ -/ -- -43 -851 -) -= -607 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -986 -143 -ns -/ -iter -( -+ -/ -- -78 -155 -) -= -199 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -78 -104 -ns -/ -iter -( -+ -/ -- -4 -056 -) -= -7617 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -638 -351 -ns -/ -iter -( -+ -/ -- -62 -542 -) -= -363 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -685 -723 -ns -/ -iter -( -+ -/ -- -26 -092 -) -= -867 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -817 -760 -ns -/ -iter -( -+ -/ -- -80 -781 -) -= -327 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -411 -102 -ns -/ -iter -( -+ -/ -- -1 -887 -) -= -1447 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -516 -003 -ns -/ -iter -( -+ -/ -- -2 -295 -) -= -1152 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -284 -300 -ns -/ -iter -( -+ -/ -- -1 -117 -) -= -2092 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -209 -139 -ns -/ -iter -( -+ -/ -- -380 -) -= -2844 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -118 -324 -ns -/ -iter -( -+ -/ -- -1 -654 -) -= -531 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -126 -992 -ns -/ -iter -( -+ -/ -- -1 -180 -) -= -527 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -284 -672 -ns -/ -iter -( -+ -/ -- -510 -) -= -2089 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -439 -955 -ns -/ -iter -( -+ -/ -- -939 -) -= -1352 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -439 -266 -ns -/ -iter -( -+ -/ -- -3 -751 -) -= -1354 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -28 -872 -ns -/ -iter -( -+ -/ -- -31 -) -= -20605 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -522 -877 -ns -/ -iter -( -+ -/ -- -32 -723 -) -= -1137 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -5 -997 -745 -ns -/ -iter -( -+ -/ -- -209 -544 -) -= -99 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -747 -234 -ns -/ -iter -( -+ -/ -- -43 -110 -) -= -796 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -802 -320 -ns -/ -iter -( -+ -/ -- -27 -715 -) -= -741 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -58 -163 -ns -/ -iter -( -+ -/ -- -2 -202 -) -= -10228 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -920 -781 -ns -/ -iter -( -+ -/ -- -30 -609 -) -= -646 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -5 -703 -864 -ns -/ -iter -( -+ -/ -- -191 -007 -) -= -104 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -6 -786 -318 -ns -/ -iter -( -+ -/ -- -168 -049 -) -= -87 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -93 -measured diff --git a/third_party/rust/regex/record/old-bench-log/05/pcre1-vs-rust b/third_party/rust/regex/record/old-bench-log/05/pcre1-vs-rust deleted file mode 100644 index 10eba92a8b2f7..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/pcre1-vs-rust +++ /dev/null @@ -1,2587 +0,0 @@ -name -pcre1 -ns -/ -iter -rust -ns -/ -iter -diff -ns -/ -iter -diff -% -misc -: -: -anchored_literal_long_match -30 -( -13000 -MB -/ -s -) -24 -( -16250 -MB -/ -s -) -- -6 -- -20 -. -00 -% -misc -: -: -anchored_literal_long_non_match -24 -( -16250 -MB -/ -s -) -27 -( -14444 -MB -/ -s -) -3 -12 -. -50 -% -misc -: -: -anchored_literal_short_match -29 -( -896 -MB -/ -s -) -22 -( -1181 -MB -/ -s -) -- -7 -- -24 -. -14 -% -misc -: -: -anchored_literal_short_non_match -24 -( -1083 -MB -/ -s -) -24 -( -1083 -MB -/ -s -) -0 -0 -. -00 -% -misc -: -: -easy0_1K -260 -( -4042 -MB -/ -s -) -16 -( -65687 -MB -/ -s -) -- -244 -- -93 -. -85 -% -misc -: -: -easy0_1MB -202 -849 -( -5169 -MB -/ -s -) -20 -( -52430150 -MB -/ -s -) -- -202 -829 -- -99 -. -99 -% -misc -: -: -easy0_32 -47 -( -1255 -MB -/ -s -) -16 -( -3687 -MB -/ -s -) -- -31 -- -65 -. -96 -% -misc -: -: -easy0_32K -6 -378 -( -5141 -MB -/ -s -) -16 -( -2049687 -MB -/ -s -) -- -6 -362 -- -99 -. -75 -% -misc -: -: -easy1_1K -248 -( -4209 -MB -/ -s -) -48 -( -21750 -MB -/ -s -) -- -200 -- -80 -. -65 -% -misc -: -: -easy1_1MB -203 -105 -( -5162 -MB -/ -s -) -48 -( -21845750 -MB -/ -s -) -- -203 -057 -- -99 -. -98 -% -misc -: -: -easy1_32 -51 -( -1019 -MB -/ -s -) -46 -( -1130 -MB -/ -s -) -- -5 -- -9 -. -80 -% -misc -: -: -easy1_32K -6 -508 -( -5038 -MB -/ -s -) -47 -( -697617 -MB -/ -s -) -- -6 -461 -- -99 -. -28 -% -misc -: -: -hard_1K -1 -324 -( -793 -MB -/ -s -) -58 -( -18120 -MB -/ -s -) -- -1 -266 -- -95 -. -62 -% -misc -: -: -hard_1MB -1 -134 -691 -( -924 -MB -/ -s -) -61 -( -17190213 -MB -/ -s -) -- -1 -134 -630 -- -99 -. -99 -% -misc -: -: -hard_32 -113 -( -522 -MB -/ -s -) -58 -( -1017 -MB -/ -s -) -- -55 -- -48 -. -67 -% -misc -: -: -hard_32K -42 -269 -( -775 -MB -/ -s -) -56 -( -585625 -MB -/ -s -) -- -42 -213 -- -99 -. -87 -% -misc -: -: -literal -28 -( -1821 -MB -/ -s -) -16 -( -3187 -MB -/ -s -) -- -12 -- -42 -. -86 -% -misc -: -: -long_needle1 -547 -122 -( -182 -MB -/ -s -) -2 -226 -( -44924 -MB -/ -s -) -- -544 -896 -- -99 -. -59 -% -misc -: -: -long_needle2 -546 -018 -( -183 -MB -/ -s -) -576 -997 -( -173 -MB -/ -s -) -30 -979 -5 -. -67 -% -misc -: -: -match_class -97 -( -835 -MB -/ -s -) -65 -( -1246 -MB -/ -s -) -- -32 -- -32 -. -99 -% -misc -: -: -match_class_in_range -30 -( -2700 -MB -/ -s -) -27 -( -3000 -MB -/ -s -) -- -3 -- -10 -. -00 -% -misc -: -: -match_class_unicode -343 -( -469 -MB -/ -s -) -283 -( -568 -MB -/ -s -) -- -60 -- -17 -. -49 -% -misc -: -: -medium_1K -253 -( -4158 -MB -/ -s -) -16 -( -65750 -MB -/ -s -) -- -237 -- -93 -. -68 -% -misc -: -: -medium_1MB -202 -025 -( -5190 -MB -/ -s -) -21 -( -49933523 -MB -/ -s -) -- -202 -004 -- -99 -. -99 -% -misc -: -: -medium_32 -51 -( -1176 -MB -/ -s -) -17 -( -3529 -MB -/ -s -) -- -34 -- -66 -. -67 -% -misc -: -: -medium_32K -6 -406 -( -5119 -MB -/ -s -) -17 -( -1929176 -MB -/ -s -) -- -6 -389 -- -99 -. -73 -% -misc -: -: -not_literal -169 -( -301 -MB -/ -s -) -105 -( -485 -MB -/ -s -) -- -64 -- -37 -. -87 -% -misc -: -: -one_pass_long_prefix -28 -( -928 -MB -/ -s -) -68 -( -382 -MB -/ -s -) -40 -142 -. -86 -% -misc -: -: -one_pass_long_prefix_not -28 -( -928 -MB -/ -s -) -58 -( -448 -MB -/ -s -) -30 -107 -. -14 -% -misc -: -: -one_pass_short -54 -( -314 -MB -/ -s -) -45 -( -377 -MB -/ -s -) -- -9 -- -16 -. -67 -% -misc -: -: -one_pass_short_not -55 -( -309 -MB -/ -s -) -50 -( -340 -MB -/ -s -) -- -5 -- -9 -. -09 -% -misc -: -: -reallyhard2_1K -4 -664 -( -222 -MB -/ -s -) -83 -( -12530 -MB -/ -s -) -- -4 -581 -- -98 -. -22 -% -misc -: -: -reallyhard_1K -1 -595 -( -658 -MB -/ -s -) -1 -822 -( -576 -MB -/ -s -) -227 -14 -. -23 -% -misc -: -: -reallyhard_1MB -1 -377 -542 -( -761 -MB -/ -s -) -1 -768 -327 -( -592 -MB -/ -s -) -390 -785 -28 -. -37 -% -misc -: -: -reallyhard_32 -106 -( -556 -MB -/ -s -) -121 -( -487 -MB -/ -s -) -15 -14 -. -15 -% -misc -: -: -reallyhard_32K -43 -256 -( -758 -MB -/ -s -) -56 -375 -( -581 -MB -/ -s -) -13 -119 -30 -. -33 -% -misc -: -: -reverse_suffix_no_quadratic -4 -607 -( -1736 -MB -/ -s -) -5 -803 -( -1378 -MB -/ -s -) -1 -196 -25 -. -96 -% -regexdna -: -: -find_new_lines -2 -840 -298 -( -1789 -MB -/ -s -) -14 -818 -233 -( -343 -MB -/ -s -) -11 -977 -935 -421 -. -71 -% -regexdna -: -: -subst1 -1 -284 -283 -( -3958 -MB -/ -s -) -896 -790 -( -5668 -MB -/ -s -) -- -387 -493 -- -30 -. -17 -% -regexdna -: -: -subst10 -1 -269 -531 -( -4004 -MB -/ -s -) -957 -325 -( -5310 -MB -/ -s -) -- -312 -206 -- -24 -. -59 -% -regexdna -: -: -subst11 -1 -286 -171 -( -3952 -MB -/ -s -) -917 -248 -( -5542 -MB -/ -s -) -- -368 -923 -- -28 -. -68 -% -regexdna -: -: -subst2 -1 -303 -022 -( -3901 -MB -/ -s -) -892 -129 -( -5698 -MB -/ -s -) -- -410 -893 -- -31 -. -53 -% -regexdna -: -: -subst3 -1 -295 -961 -( -3922 -MB -/ -s -) -929 -250 -( -5470 -MB -/ -s -) -- -366 -711 -- -28 -. -30 -% -regexdna -: -: -subst4 -1 -313 -706 -( -3869 -MB -/ -s -) -872 -581 -( -5825 -MB -/ -s -) -- -441 -125 -- -33 -. -58 -% -regexdna -: -: -subst5 -1 -286 -339 -( -3951 -MB -/ -s -) -875 -804 -( -5804 -MB -/ -s -) -- -410 -535 -- -31 -. -91 -% -regexdna -: -: -subst6 -1 -385 -644 -( -3668 -MB -/ -s -) -884 -639 -( -5746 -MB -/ -s -) -- -501 -005 -- -36 -. -16 -% -regexdna -: -: -subst7 -1 -286 -743 -( -3950 -MB -/ -s -) -872 -791 -( -5824 -MB -/ -s -) -- -413 -952 -- -32 -. -17 -% -regexdna -: -: -subst8 -1 -306 -406 -( -3891 -MB -/ -s -) -873 -833 -( -5817 -MB -/ -s -) -- -432 -573 -- -33 -. -11 -% -regexdna -: -: -subst9 -1 -280 -365 -( -3970 -MB -/ -s -) -886 -744 -( -5732 -MB -/ -s -) -- -393 -621 -- -30 -. -74 -% -regexdna -: -: -variant1 -15 -271 -875 -( -332 -MB -/ -s -) -3 -699 -267 -( -1374 -MB -/ -s -) -- -11 -572 -608 -- -75 -. -78 -% -regexdna -: -: -variant2 -16 -704 -090 -( -304 -MB -/ -s -) -6 -760 -952 -( -751 -MB -/ -s -) -- -9 -943 -138 -- -59 -. -53 -% -regexdna -: -: -variant3 -20 -745 -546 -( -245 -MB -/ -s -) -8 -030 -646 -( -633 -MB -/ -s -) -- -12 -714 -900 -- -61 -. -29 -% -regexdna -: -: -variant4 -19 -285 -154 -( -263 -MB -/ -s -) -8 -077 -290 -( -629 -MB -/ -s -) -- -11 -207 -864 -- -58 -. -12 -% -regexdna -: -: -variant5 -17 -234 -130 -( -294 -MB -/ -s -) -6 -787 -242 -( -748 -MB -/ -s -) -- -10 -446 -888 -- -60 -. -62 -% -regexdna -: -: -variant6 -17 -462 -350 -( -291 -MB -/ -s -) -6 -577 -777 -( -772 -MB -/ -s -) -- -10 -884 -573 -- -62 -. -33 -% -regexdna -: -: -variant7 -19 -671 -680 -( -258 -MB -/ -s -) -6 -705 -580 -( -758 -MB -/ -s -) -- -12 -966 -100 -- -65 -. -91 -% -regexdna -: -: -variant8 -24 -515 -319 -( -207 -MB -/ -s -) -6 -818 -785 -( -745 -MB -/ -s -) -- -17 -696 -534 -- -72 -. -19 -% -regexdna -: -: -variant9 -22 -623 -755 -( -224 -MB -/ -s -) -6 -821 -453 -( -745 -MB -/ -s -) -- -15 -802 -302 -- -69 -. -85 -% -sherlock -: -: -before_after_holmes -4 -510 -830 -( -131 -MB -/ -s -) -1 -029 -866 -( -577 -MB -/ -s -) -- -3 -480 -964 -- -77 -. -17 -% -sherlock -: -: -before_holmes -4 -706 -836 -( -126 -MB -/ -s -) -76 -633 -( -7763 -MB -/ -s -) -- -4 -630 -203 -- -98 -. -37 -% -sherlock -: -: -holmes_cochar_watson -523 -122 -( -1137 -MB -/ -s -) -144 -725 -( -4110 -MB -/ -s -) -- -378 -397 -- -72 -. -33 -% -sherlock -: -: -ing_suffix -2 -030 -438 -( -293 -MB -/ -s -) -436 -202 -( -1363 -MB -/ -s -) -- -1 -594 -236 -- -78 -. -52 -% -sherlock -: -: -ing_suffix_limited_space -4 -996 -956 -( -119 -MB -/ -s -) -1 -182 -943 -( -502 -MB -/ -s -) -- -3 -814 -013 -- -76 -. -33 -% -sherlock -: -: -letters -13 -529 -105 -( -43 -MB -/ -s -) -24 -390 -452 -( -24 -MB -/ -s -) -10 -861 -347 -80 -. -28 -% -sherlock -: -: -letters_lower -13 -681 -607 -( -43 -MB -/ -s -) -23 -784 -108 -( -25 -MB -/ -s -) -10 -102 -501 -73 -. -84 -% -sherlock -: -: -letters_upper -1 -904 -757 -( -312 -MB -/ -s -) -1 -993 -838 -( -298 -MB -/ -s -) -89 -081 -4 -. -68 -% -sherlock -: -: -line_boundary_sherlock_holmes -207 -695 -( -2864 -MB -/ -s -) -999 -414 -( -595 -MB -/ -s -) -791 -719 -381 -. -19 -% -sherlock -: -: -name_alt1 -486 -857 -( -1221 -MB -/ -s -) -34 -298 -( -17345 -MB -/ -s -) -- -452 -559 -- -92 -. -96 -% -sherlock -: -: -name_alt2 -483 -926 -( -1229 -MB -/ -s -) -124 -226 -( -4789 -MB -/ -s -) -- -359 -700 -- -74 -. -33 -% -sherlock -: -: -name_alt3 -978 -827 -( -607 -MB -/ -s -) -137 -742 -( -4319 -MB -/ -s -) -- -841 -085 -- -85 -. -93 -% -sherlock -: -: -name_alt3_nocase -2 -986 -143 -( -199 -MB -/ -s -) -1 -293 -763 -( -459 -MB -/ -s -) -- -1 -692 -380 -- -56 -. -67 -% -sherlock -: -: -name_alt4 -78 -104 -( -7617 -MB -/ -s -) -164 -900 -( -3607 -MB -/ -s -) -86 -796 -111 -. -13 -% -sherlock -: -: -name_alt4_nocase -1 -638 -351 -( -363 -MB -/ -s -) -235 -023 -( -2531 -MB -/ -s -) -- -1 -403 -328 -- -85 -. -65 -% -sherlock -: -: -name_alt5 -685 -723 -( -867 -MB -/ -s -) -127 -928 -( -4650 -MB -/ -s -) -- -557 -795 -- -81 -. -34 -% -sherlock -: -: -name_alt5_nocase -1 -817 -760 -( -327 -MB -/ -s -) -659 -591 -( -901 -MB -/ -s -) -- -1 -158 -169 -- -63 -. -71 -% -sherlock -: -: -name_holmes -411 -102 -( -1447 -MB -/ -s -) -40 -902 -( -14545 -MB -/ -s -) -- -370 -200 -- -90 -. -05 -% -sherlock -: -: -name_holmes_nocase -516 -003 -( -1152 -MB -/ -s -) -198 -658 -( -2994 -MB -/ -s -) -- -317 -345 -- -61 -. -50 -% -sherlock -: -: -name_sherlock -284 -300 -( -2092 -MB -/ -s -) -68 -924 -( -8631 -MB -/ -s -) -- -215 -376 -- -75 -. -76 -% -sherlock -: -: -name_sherlock_holmes -209 -139 -( -2844 -MB -/ -s -) -31 -640 -( -18803 -MB -/ -s -) -- -177 -499 -- -84 -. -87 -% -sherlock -: -: -name_sherlock_holmes_nocase -1 -118 -324 -( -531 -MB -/ -s -) -173 -522 -( -3428 -MB -/ -s -) -- -944 -802 -- -84 -. -48 -% -sherlock -: -: -name_sherlock_nocase -1 -126 -992 -( -527 -MB -/ -s -) -170 -888 -( -3481 -MB -/ -s -) -- -956 -104 -- -84 -. -84 -% -sherlock -: -: -name_whitespace -284 -672 -( -2089 -MB -/ -s -) -84 -314 -( -7056 -MB -/ -s -) -- -200 -358 -- -70 -. -38 -% -sherlock -: -: -no_match_common -439 -955 -( -1352 -MB -/ -s -) -20 -727 -( -28703 -MB -/ -s -) -- -419 -228 -- -95 -. -29 -% -sherlock -: -: -no_match_really_common -439 -266 -( -1354 -MB -/ -s -) -381 -476 -( -1559 -MB -/ -s -) -- -57 -790 -- -13 -. -16 -% -sherlock -: -: -no_match_uncommon -28 -872 -( -20605 -MB -/ -s -) -20 -786 -( -28621 -MB -/ -s -) -- -8 -086 -- -28 -. -01 -% -sherlock -: -: -quotes -522 -877 -( -1137 -MB -/ -s -) -531 -487 -( -1119 -MB -/ -s -) -8 -610 -1 -. -65 -% -sherlock -: -: -repeated_class_negation -5 -997 -745 -( -99 -MB -/ -s -) -85 -881 -944 -( -6 -MB -/ -s -) -79 -884 -199 -1331 -. -90 -% -sherlock -: -: -the_lower -747 -234 -( -796 -MB -/ -s -) -654 -110 -( -909 -MB -/ -s -) -- -93 -124 -- -12 -. -46 -% -sherlock -: -: -the_nocase -802 -320 -( -741 -MB -/ -s -) -474 -456 -( -1253 -MB -/ -s -) -- -327 -864 -- -40 -. -86 -% -sherlock -: -: -the_upper -58 -163 -( -10228 -MB -/ -s -) -43 -746 -( -13599 -MB -/ -s -) -- -14 -417 -- -24 -. -79 -% -sherlock -: -: -the_whitespace -920 -781 -( -646 -MB -/ -s -) -1 -181 -974 -( -503 -MB -/ -s -) -261 -193 -28 -. -37 -% -sherlock -: -: -word_ending_n -5 -703 -864 -( -104 -MB -/ -s -) -1 -925 -578 -( -308 -MB -/ -s -) -- -3 -778 -286 -- -66 -. -24 -% -sherlock -: -: -words -6 -786 -318 -( -87 -MB -/ -s -) -9 -697 -201 -( -61 -MB -/ -s -) -2 -910 -883 -42 -. -89 -% diff --git a/third_party/rust/regex/record/old-bench-log/05/pcre2 b/third_party/rust/regex/record/old-bench-log/05/pcre2 deleted file mode 100644 index 66d90de35e3d4..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/pcre2 +++ /dev/null @@ -1,2507 +0,0 @@ -running -93 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -19500 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -26000 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -1 -) -= -1368 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -2000 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -241 -ns -/ -iter -( -+ -/ -- -9 -) -= -4360 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -207 -103 -ns -/ -iter -( -+ -/ -- -8 -557 -) -= -5063 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -0 -) -= -1512 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -6 -522 -ns -/ -iter -( -+ -/ -- -20 -) -= -5028 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -247 -ns -/ -iter -( -+ -/ -- -3 -) -= -4226 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -206 -893 -ns -/ -iter -( -+ -/ -- -9 -489 -) -= -5068 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -0 -) -= -1268 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -6 -516 -ns -/ -iter -( -+ -/ -- -301 -) -= -5031 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -566 -ns -/ -iter -( -+ -/ -- -79 -) -= -671 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -1 -119 -234 -ns -/ -iter -( -+ -/ -- -38 -605 -) -= -936 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -95 -ns -/ -iter -( -+ -/ -- -4 -) -= -621 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -34 -411 -ns -/ -iter -( -+ -/ -- -1 -542 -) -= -953 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -2833 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -550 -340 -ns -/ -iter -( -+ -/ -- -30 -668 -) -= -181 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -553 -056 -ns -/ -iter -( -+ -/ -- -25 -618 -) -= -180 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -82 -ns -/ -iter -( -+ -/ -- -1 -) -= -987 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -1 -) -= -4050 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -351 -ns -/ -iter -( -+ -/ -- -14 -) -= -458 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -242 -ns -/ -iter -( -+ -/ -- -13 -) -= -4347 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -207 -290 -ns -/ -iter -( -+ -/ -- -1 -458 -) -= -5058 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -0 -) -= -1463 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -6 -529 -ns -/ -iter -( -+ -/ -- -293 -) -= -5023 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -161 -ns -/ -iter -( -+ -/ -- -7 -) -= -316 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -1 -) -= -1529 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -1 -) -= -1444 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -45 -ns -/ -iter -( -+ -/ -- -2 -) -= -377 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -2 -) -= -346 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -4 -487 -ns -/ -iter -( -+ -/ -- -190 -) -= -231 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -260 -ns -/ -iter -( -+ -/ -- -46 -) -= -834 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -361 -796 -ns -/ -iter -( -+ -/ -- -46 -490 -) -= -770 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -93 -ns -/ -iter -( -+ -/ -- -8 -) -= -634 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -42 -503 -ns -/ -iter -( -+ -/ -- -1 -721 -) -= -771 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -559 -ns -/ -iter -( -+ -/ -- -171 -) -= -1754 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -1 -887 -325 -ns -/ -iter -( -+ -/ -- -74 -026 -) -= -2693 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -963 -089 -ns -/ -iter -( -+ -/ -- -3 -478 -) -= -5278 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -968 -221 -ns -/ -iter -( -+ -/ -- -5 -406 -) -= -5250 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -961 -661 -ns -/ -iter -( -+ -/ -- -45 -597 -) -= -5286 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -956 -430 -ns -/ -iter -( -+ -/ -- -32 -654 -) -= -5314 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -961 -204 -ns -/ -iter -( -+ -/ -- -48 -799 -) -= -5288 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -961 -897 -ns -/ -iter -( -+ -/ -- -50 -762 -) -= -5284 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -953 -412 -ns -/ -iter -( -+ -/ -- -69 -554 -) -= -5331 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -962 -362 -ns -/ -iter -( -+ -/ -- -42 -136 -) -= -5282 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -961 -694 -ns -/ -iter -( -+ -/ -- -100 -348 -) -= -5285 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -963 -230 -ns -/ -iter -( -+ -/ -- -10 -882 -) -= -5277 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -960 -246 -ns -/ -iter -( -+ -/ -- -27 -407 -) -= -5293 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -15 -553 -281 -ns -/ -iter -( -+ -/ -- -566 -810 -) -= -326 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -16 -563 -452 -ns -/ -iter -( -+ -/ -- -546 -097 -) -= -306 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -20 -405 -916 -ns -/ -iter -( -+ -/ -- -809 -236 -) -= -249 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -19 -489 -291 -ns -/ -iter -( -+ -/ -- -710 -721 -) -= -260 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -17 -406 -769 -ns -/ -iter -( -+ -/ -- -656 -024 -) -= -292 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -17 -412 -027 -ns -/ -iter -( -+ -/ -- -730 -347 -) -= -291 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -19 -509 -193 -ns -/ -iter -( -+ -/ -- -783 -850 -) -= -260 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -24 -295 -734 -ns -/ -iter -( -+ -/ -- -816 -832 -) -= -209 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -22 -541 -558 -ns -/ -iter -( -+ -/ -- -783 -104 -) -= -225 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -4 -583 -804 -ns -/ -iter -( -+ -/ -- -124 -057 -) -= -129 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -4 -640 -546 -ns -/ -iter -( -+ -/ -- -241 -311 -) -= -128 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -509 -088 -ns -/ -iter -( -+ -/ -- -25 -069 -) -= -1168 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -1 -865 -631 -ns -/ -iter -( -+ -/ -- -68 -625 -) -= -318 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -4 -922 -883 -ns -/ -iter -( -+ -/ -- -232 -825 -) -= -120 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -9 -848 -144 -ns -/ -iter -( -+ -/ -- -206 -915 -) -= -60 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -9 -723 -642 -ns -/ -iter -( -+ -/ -- -370 -000 -) -= -61 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -762 -773 -ns -/ -iter -( -+ -/ -- -86 -671 -) -= -337 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -206 -367 -ns -/ -iter -( -+ -/ -- -8 -874 -) -= -2882 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -485 -953 -ns -/ -iter -( -+ -/ -- -15 -036 -) -= -1224 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -483 -813 -ns -/ -iter -( -+ -/ -- -17 -822 -) -= -1229 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -903 -013 -ns -/ -iter -( -+ -/ -- -38 -445 -) -= -658 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -993 -633 -ns -/ -iter -( -+ -/ -- -131 -218 -) -= -198 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -78 -831 -ns -/ -iter -( -+ -/ -- -2 -012 -) -= -7546 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -647 -202 -ns -/ -iter -( -+ -/ -- -5 -838 -) -= -361 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -678 -798 -ns -/ -iter -( -+ -/ -- -1 -146 -) -= -876 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -792 -461 -ns -/ -iter -( -+ -/ -- -3 -532 -) -= -331 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -406 -138 -ns -/ -iter -( -+ -/ -- -1 -157 -) -= -1464 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -517 -884 -ns -/ -iter -( -+ -/ -- -8 -548 -) -= -1148 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -282 -357 -ns -/ -iter -( -+ -/ -- -13 -583 -) -= -2107 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -207 -894 -ns -/ -iter -( -+ -/ -- -1 -847 -) -= -2861 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -122 -583 -ns -/ -iter -( -+ -/ -- -52 -189 -) -= -529 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -092 -252 -ns -/ -iter -( -+ -/ -- -43 -130 -) -= -544 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -280 -360 -ns -/ -iter -( -+ -/ -- -12 -136 -) -= -2122 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -436 -303 -ns -/ -iter -( -+ -/ -- -19 -423 -) -= -1363 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -417 -686 -ns -/ -iter -( -+ -/ -- -15 -258 -) -= -1424 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -28 -504 -ns -/ -iter -( -+ -/ -- -1 -032 -) -= -20871 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -541 -513 -ns -/ -iter -( -+ -/ -- -21 -121 -) -= -1098 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -5 -489 -721 -ns -/ -iter -( -+ -/ -- -185 -165 -) -= -108 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -680 -710 -ns -/ -iter -( -+ -/ -- -29 -403 -) -= -873 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -737 -040 -ns -/ -iter -( -+ -/ -- -4 -391 -) -= -807 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -50 -026 -ns -/ -iter -( -+ -/ -- -205 -) -= -11892 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -885 -922 -ns -/ -iter -( -+ -/ -- -9 -145 -) -= -671 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -5 -424 -773 -ns -/ -iter -( -+ -/ -- -154 -353 -) -= -109 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -5 -753 -231 -ns -/ -iter -( -+ -/ -- -177 -890 -) -= -103 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -93 -measured diff --git a/third_party/rust/regex/record/old-bench-log/05/pcre2-vs-rust b/third_party/rust/regex/record/old-bench-log/05/pcre2-vs-rust deleted file mode 100644 index b5d2d9ff149e4..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/pcre2-vs-rust +++ /dev/null @@ -1,2566 +0,0 @@ -name -pcre2 -ns -/ -iter -rust -ns -/ -iter -diff -ns -/ -iter -diff -% -misc -: -: -anchored_literal_long_match -20 -( -19500 -MB -/ -s -) -24 -( -16250 -MB -/ -s -) -4 -20 -. -00 -% -misc -: -: -anchored_literal_long_non_match -15 -( -26000 -MB -/ -s -) -27 -( -14444 -MB -/ -s -) -12 -80 -. -00 -% -misc -: -: -anchored_literal_short_match -19 -( -1368 -MB -/ -s -) -22 -( -1181 -MB -/ -s -) -3 -15 -. -79 -% -misc -: -: -anchored_literal_short_non_match -13 -( -2000 -MB -/ -s -) -24 -( -1083 -MB -/ -s -) -11 -84 -. -62 -% -misc -: -: -easy0_1K -241 -( -4360 -MB -/ -s -) -16 -( -65687 -MB -/ -s -) -- -225 -- -93 -. -36 -% -misc -: -: -easy0_1MB -207 -103 -( -5063 -MB -/ -s -) -20 -( -52430150 -MB -/ -s -) -- -207 -083 -- -99 -. -99 -% -misc -: -: -easy0_32 -39 -( -1512 -MB -/ -s -) -16 -( -3687 -MB -/ -s -) -- -23 -- -58 -. -97 -% -misc -: -: -easy0_32K -6 -522 -( -5028 -MB -/ -s -) -16 -( -2049687 -MB -/ -s -) -- -6 -506 -- -99 -. -75 -% -misc -: -: -easy1_1K -247 -( -4226 -MB -/ -s -) -48 -( -21750 -MB -/ -s -) -- -199 -- -80 -. -57 -% -misc -: -: -easy1_1MB -206 -893 -( -5068 -MB -/ -s -) -48 -( -21845750 -MB -/ -s -) -- -206 -845 -- -99 -. -98 -% -misc -: -: -easy1_32 -41 -( -1268 -MB -/ -s -) -46 -( -1130 -MB -/ -s -) -5 -12 -. -20 -% -misc -: -: -easy1_32K -6 -516 -( -5031 -MB -/ -s -) -47 -( -697617 -MB -/ -s -) -- -6 -469 -- -99 -. -28 -% -misc -: -: -hard_1K -1 -566 -( -671 -MB -/ -s -) -58 -( -18120 -MB -/ -s -) -- -1 -508 -- -96 -. -30 -% -misc -: -: -hard_1MB -1 -119 -234 -( -936 -MB -/ -s -) -61 -( -17190213 -MB -/ -s -) -- -1 -119 -173 -- -99 -. -99 -% -misc -: -: -hard_32 -95 -( -621 -MB -/ -s -) -58 -( -1017 -MB -/ -s -) -- -37 -- -38 -. -95 -% -misc -: -: -hard_32K -34 -411 -( -953 -MB -/ -s -) -56 -( -585625 -MB -/ -s -) -- -34 -355 -- -99 -. -84 -% -misc -: -: -literal -18 -( -2833 -MB -/ -s -) -16 -( -3187 -MB -/ -s -) -- -2 -- -11 -. -11 -% -misc -: -: -long_needle1 -550 -340 -( -181 -MB -/ -s -) -2 -226 -( -44924 -MB -/ -s -) -- -548 -114 -- -99 -. -60 -% -misc -: -: -long_needle2 -553 -056 -( -180 -MB -/ -s -) -576 -997 -( -173 -MB -/ -s -) -23 -941 -4 -. -33 -% -misc -: -: -match_class -82 -( -987 -MB -/ -s -) -65 -( -1246 -MB -/ -s -) -- -17 -- -20 -. -73 -% -misc -: -: -match_class_in_range -20 -( -4050 -MB -/ -s -) -27 -( -3000 -MB -/ -s -) -7 -35 -. -00 -% -misc -: -: -match_class_unicode -351 -( -458 -MB -/ -s -) -283 -( -568 -MB -/ -s -) -- -68 -- -19 -. -37 -% -misc -: -: -medium_1K -242 -( -4347 -MB -/ -s -) -16 -( -65750 -MB -/ -s -) -- -226 -- -93 -. -39 -% -misc -: -: -medium_1MB -207 -290 -( -5058 -MB -/ -s -) -21 -( -49933523 -MB -/ -s -) -- -207 -269 -- -99 -. -99 -% -misc -: -: -medium_32 -41 -( -1463 -MB -/ -s -) -17 -( -3529 -MB -/ -s -) -- -24 -- -58 -. -54 -% -misc -: -: -medium_32K -6 -529 -( -5023 -MB -/ -s -) -17 -( -1929176 -MB -/ -s -) -- -6 -512 -- -99 -. -74 -% -misc -: -: -not_literal -161 -( -316 -MB -/ -s -) -105 -( -485 -MB -/ -s -) -- -56 -- -34 -. -78 -% -misc -: -: -one_pass_long_prefix -17 -( -1529 -MB -/ -s -) -68 -( -382 -MB -/ -s -) -51 -300 -. -00 -% -misc -: -: -one_pass_long_prefix_not -18 -( -1444 -MB -/ -s -) -58 -( -448 -MB -/ -s -) -40 -222 -. -22 -% -misc -: -: -one_pass_short -45 -( -377 -MB -/ -s -) -45 -( -377 -MB -/ -s -) -0 -0 -. -00 -% -misc -: -: -one_pass_short_not -49 -( -346 -MB -/ -s -) -50 -( -340 -MB -/ -s -) -1 -2 -. -04 -% -misc -: -: -reallyhard2_1K -4 -487 -( -231 -MB -/ -s -) -83 -( -12530 -MB -/ -s -) -- -4 -404 -- -98 -. -15 -% -misc -: -: -reallyhard_1K -1 -260 -( -834 -MB -/ -s -) -1 -822 -( -576 -MB -/ -s -) -562 -44 -. -60 -% -misc -: -: -reallyhard_1MB -1 -361 -796 -( -770 -MB -/ -s -) -1 -768 -327 -( -592 -MB -/ -s -) -406 -531 -29 -. -85 -% -misc -: -: -reallyhard_32 -93 -( -634 -MB -/ -s -) -121 -( -487 -MB -/ -s -) -28 -30 -. -11 -% -misc -: -: -reallyhard_32K -42 -503 -( -771 -MB -/ -s -) -56 -375 -( -581 -MB -/ -s -) -13 -872 -32 -. -64 -% -misc -: -: -reverse_suffix_no_quadratic -4 -559 -( -1754 -MB -/ -s -) -5 -803 -( -1378 -MB -/ -s -) -1 -244 -27 -. -29 -% -regexdna -: -: -find_new_lines -1 -887 -325 -( -2693 -MB -/ -s -) -14 -818 -233 -( -343 -MB -/ -s -) -12 -930 -908 -685 -. -14 -% -regexdna -: -: -subst1 -963 -089 -( -5278 -MB -/ -s -) -896 -790 -( -5668 -MB -/ -s -) -- -66 -299 -- -6 -. -88 -% -regexdna -: -: -subst10 -968 -221 -( -5250 -MB -/ -s -) -957 -325 -( -5310 -MB -/ -s -) -- -10 -896 -- -1 -. -13 -% -regexdna -: -: -subst11 -961 -661 -( -5286 -MB -/ -s -) -917 -248 -( -5542 -MB -/ -s -) -- -44 -413 -- -4 -. -62 -% -regexdna -: -: -subst2 -956 -430 -( -5314 -MB -/ -s -) -892 -129 -( -5698 -MB -/ -s -) -- -64 -301 -- -6 -. -72 -% -regexdna -: -: -subst3 -961 -204 -( -5288 -MB -/ -s -) -929 -250 -( -5470 -MB -/ -s -) -- -31 -954 -- -3 -. -32 -% -regexdna -: -: -subst4 -961 -897 -( -5284 -MB -/ -s -) -872 -581 -( -5825 -MB -/ -s -) -- -89 -316 -- -9 -. -29 -% -regexdna -: -: -subst5 -953 -412 -( -5331 -MB -/ -s -) -875 -804 -( -5804 -MB -/ -s -) -- -77 -608 -- -8 -. -14 -% -regexdna -: -: -subst6 -962 -362 -( -5282 -MB -/ -s -) -884 -639 -( -5746 -MB -/ -s -) -- -77 -723 -- -8 -. -08 -% -regexdna -: -: -subst7 -961 -694 -( -5285 -MB -/ -s -) -872 -791 -( -5824 -MB -/ -s -) -- -88 -903 -- -9 -. -24 -% -regexdna -: -: -subst8 -963 -230 -( -5277 -MB -/ -s -) -873 -833 -( -5817 -MB -/ -s -) -- -89 -397 -- -9 -. -28 -% -regexdna -: -: -subst9 -960 -246 -( -5293 -MB -/ -s -) -886 -744 -( -5732 -MB -/ -s -) -- -73 -502 -- -7 -. -65 -% -regexdna -: -: -variant1 -15 -553 -281 -( -326 -MB -/ -s -) -3 -699 -267 -( -1374 -MB -/ -s -) -- -11 -854 -014 -- -76 -. -22 -% -regexdna -: -: -variant2 -16 -563 -452 -( -306 -MB -/ -s -) -6 -760 -952 -( -751 -MB -/ -s -) -- -9 -802 -500 -- -59 -. -18 -% -regexdna -: -: -variant3 -20 -405 -916 -( -249 -MB -/ -s -) -8 -030 -646 -( -633 -MB -/ -s -) -- -12 -375 -270 -- -60 -. -65 -% -regexdna -: -: -variant4 -19 -489 -291 -( -260 -MB -/ -s -) -8 -077 -290 -( -629 -MB -/ -s -) -- -11 -412 -001 -- -58 -. -56 -% -regexdna -: -: -variant5 -17 -406 -769 -( -292 -MB -/ -s -) -6 -787 -242 -( -748 -MB -/ -s -) -- -10 -619 -527 -- -61 -. -01 -% -regexdna -: -: -variant6 -17 -412 -027 -( -291 -MB -/ -s -) -6 -577 -777 -( -772 -MB -/ -s -) -- -10 -834 -250 -- -62 -. -22 -% -regexdna -: -: -variant7 -19 -509 -193 -( -260 -MB -/ -s -) -6 -705 -580 -( -758 -MB -/ -s -) -- -12 -803 -613 -- -65 -. -63 -% -regexdna -: -: -variant8 -24 -295 -734 -( -209 -MB -/ -s -) -6 -818 -785 -( -745 -MB -/ -s -) -- -17 -476 -949 -- -71 -. -93 -% -regexdna -: -: -variant9 -22 -541 -558 -( -225 -MB -/ -s -) -6 -821 -453 -( -745 -MB -/ -s -) -- -15 -720 -105 -- -69 -. -74 -% -sherlock -: -: -before_after_holmes -4 -583 -804 -( -129 -MB -/ -s -) -1 -029 -866 -( -577 -MB -/ -s -) -- -3 -553 -938 -- -77 -. -53 -% -sherlock -: -: -before_holmes -4 -640 -546 -( -128 -MB -/ -s -) -76 -633 -( -7763 -MB -/ -s -) -- -4 -563 -913 -- -98 -. -35 -% -sherlock -: -: -holmes_cochar_watson -509 -088 -( -1168 -MB -/ -s -) -144 -725 -( -4110 -MB -/ -s -) -- -364 -363 -- -71 -. -57 -% -sherlock -: -: -ing_suffix -1 -865 -631 -( -318 -MB -/ -s -) -436 -202 -( -1363 -MB -/ -s -) -- -1 -429 -429 -- -76 -. -62 -% -sherlock -: -: -ing_suffix_limited_space -4 -922 -883 -( -120 -MB -/ -s -) -1 -182 -943 -( -502 -MB -/ -s -) -- -3 -739 -940 -- -75 -. -97 -% -sherlock -: -: -letters -9 -848 -144 -( -60 -MB -/ -s -) -24 -390 -452 -( -24 -MB -/ -s -) -14 -542 -308 -147 -. -67 -% -sherlock -: -: -letters_lower -9 -723 -642 -( -61 -MB -/ -s -) -23 -784 -108 -( -25 -MB -/ -s -) -14 -060 -466 -144 -. -60 -% -sherlock -: -: -letters_upper -1 -762 -773 -( -337 -MB -/ -s -) -1 -993 -838 -( -298 -MB -/ -s -) -231 -065 -13 -. -11 -% -sherlock -: -: -line_boundary_sherlock_holmes -206 -367 -( -2882 -MB -/ -s -) -999 -414 -( -595 -MB -/ -s -) -793 -047 -384 -. -29 -% -sherlock -: -: -name_alt1 -485 -953 -( -1224 -MB -/ -s -) -34 -298 -( -17345 -MB -/ -s -) -- -451 -655 -- -92 -. -94 -% -sherlock -: -: -name_alt2 -483 -813 -( -1229 -MB -/ -s -) -124 -226 -( -4789 -MB -/ -s -) -- -359 -587 -- -74 -. -32 -% -sherlock -: -: -name_alt3 -903 -013 -( -658 -MB -/ -s -) -137 -742 -( -4319 -MB -/ -s -) -- -765 -271 -- -84 -. -75 -% -sherlock -: -: -name_alt3_nocase -2 -993 -633 -( -198 -MB -/ -s -) -1 -293 -763 -( -459 -MB -/ -s -) -- -1 -699 -870 -- -56 -. -78 -% -sherlock -: -: -name_alt4 -78 -831 -( -7546 -MB -/ -s -) -164 -900 -( -3607 -MB -/ -s -) -86 -069 -109 -. -18 -% -sherlock -: -: -name_alt4_nocase -1 -647 -202 -( -361 -MB -/ -s -) -235 -023 -( -2531 -MB -/ -s -) -- -1 -412 -179 -- -85 -. -73 -% -sherlock -: -: -name_alt5 -678 -798 -( -876 -MB -/ -s -) -127 -928 -( -4650 -MB -/ -s -) -- -550 -870 -- -81 -. -15 -% -sherlock -: -: -name_alt5_nocase -1 -792 -461 -( -331 -MB -/ -s -) -659 -591 -( -901 -MB -/ -s -) -- -1 -132 -870 -- -63 -. -20 -% -sherlock -: -: -name_holmes -406 -138 -( -1464 -MB -/ -s -) -40 -902 -( -14545 -MB -/ -s -) -- -365 -236 -- -89 -. -93 -% -sherlock -: -: -name_holmes_nocase -517 -884 -( -1148 -MB -/ -s -) -198 -658 -( -2994 -MB -/ -s -) -- -319 -226 -- -61 -. -64 -% -sherlock -: -: -name_sherlock -282 -357 -( -2107 -MB -/ -s -) -68 -924 -( -8631 -MB -/ -s -) -- -213 -433 -- -75 -. -59 -% -sherlock -: -: -name_sherlock_holmes -207 -894 -( -2861 -MB -/ -s -) -31 -640 -( -18803 -MB -/ -s -) -- -176 -254 -- -84 -. -78 -% -sherlock -: -: -name_sherlock_holmes_nocase -1 -122 -583 -( -529 -MB -/ -s -) -173 -522 -( -3428 -MB -/ -s -) -- -949 -061 -- -84 -. -54 -% -sherlock -: -: -name_sherlock_nocase -1 -092 -252 -( -544 -MB -/ -s -) -170 -888 -( -3481 -MB -/ -s -) -- -921 -364 -- -84 -. -35 -% -sherlock -: -: -name_whitespace -280 -360 -( -2122 -MB -/ -s -) -84 -314 -( -7056 -MB -/ -s -) -- -196 -046 -- -69 -. -93 -% -sherlock -: -: -no_match_common -436 -303 -( -1363 -MB -/ -s -) -20 -727 -( -28703 -MB -/ -s -) -- -415 -576 -- -95 -. -25 -% -sherlock -: -: -no_match_really_common -417 -686 -( -1424 -MB -/ -s -) -381 -476 -( -1559 -MB -/ -s -) -- -36 -210 -- -8 -. -67 -% -sherlock -: -: -no_match_uncommon -28 -504 -( -20871 -MB -/ -s -) -20 -786 -( -28621 -MB -/ -s -) -- -7 -718 -- -27 -. -08 -% -sherlock -: -: -quotes -541 -513 -( -1098 -MB -/ -s -) -531 -487 -( -1119 -MB -/ -s -) -- -10 -026 -- -1 -. -85 -% -sherlock -: -: -repeated_class_negation -5 -489 -721 -( -108 -MB -/ -s -) -85 -881 -944 -( -6 -MB -/ -s -) -80 -392 -223 -1464 -. -41 -% -sherlock -: -: -the_lower -680 -710 -( -873 -MB -/ -s -) -654 -110 -( -909 -MB -/ -s -) -- -26 -600 -- -3 -. -91 -% -sherlock -: -: -the_nocase -737 -040 -( -807 -MB -/ -s -) -474 -456 -( -1253 -MB -/ -s -) -- -262 -584 -- -35 -. -63 -% -sherlock -: -: -the_upper -50 -026 -( -11892 -MB -/ -s -) -43 -746 -( -13599 -MB -/ -s -) -- -6 -280 -- -12 -. -55 -% -sherlock -: -: -the_whitespace -885 -922 -( -671 -MB -/ -s -) -1 -181 -974 -( -503 -MB -/ -s -) -296 -052 -33 -. -42 -% -sherlock -: -: -word_ending_n -5 -424 -773 -( -109 -MB -/ -s -) -1 -925 -578 -( -308 -MB -/ -s -) -- -3 -499 -195 -- -64 -. -50 -% -sherlock -: -: -words -5 -753 -231 -( -103 -MB -/ -s -) -9 -697 -201 -( -61 -MB -/ -s -) -3 -943 -970 -68 -. -55 -% diff --git a/third_party/rust/regex/record/old-bench-log/05/re2 b/third_party/rust/regex/record/old-bench-log/05/re2 deleted file mode 100644 index 023b065910994..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/re2 +++ /dev/null @@ -1,2621 +0,0 @@ -running -96 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -102 -ns -/ -iter -( -+ -/ -- -3 -) -= -3823 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -19500 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -95 -ns -/ -iter -( -+ -/ -- -8 -) -= -273 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -0 -) -= -1529 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -149 -ns -/ -iter -( -+ -/ -- -10 -) -= -7053 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -29 -234 -ns -/ -iter -( -+ -/ -- -886 -) -= -35869 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -126 -ns -/ -iter -( -+ -/ -- -4 -) -= -468 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -1 -266 -ns -/ -iter -( -+ -/ -- -42 -) -= -25904 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -130 -ns -/ -iter -( -+ -/ -- -4 -) -= -8030 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -29 -218 -ns -/ -iter -( -+ -/ -- -791 -) -= -35888 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -112 -ns -/ -iter -( -+ -/ -- -7 -) -= -464 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -1 -251 -ns -/ -iter -( -+ -/ -- -45 -) -= -26209 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -2 -357 -ns -/ -iter -( -+ -/ -- -33 -) -= -445 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -2 -149 -909 -ns -/ -iter -( -+ -/ -- -151 -258 -) -= -487 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -195 -ns -/ -iter -( -+ -/ -- -16 -) -= -302 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -105 -137 -ns -/ -iter -( -+ -/ -- -6 -252 -) -= -311 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -89 -ns -/ -iter -( -+ -/ -- -3 -) -= -573 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -170 -090 -ns -/ -iter -( -+ -/ -- -5 -891 -) -= -587 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -174 -341 -ns -/ -iter -( -+ -/ -- -7 -949 -) -= -573 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -220 -ns -/ -iter -( -+ -/ -- -16 -) -= -368 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -215 -ns -/ -iter -( -+ -/ -- -16 -) -= -376 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -382 -ns -/ -iter -( -+ -/ -- -27 -) -= -421 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -939 -ns -/ -iter -( -+ -/ -- -153 -) -= -542 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -1 -775 -335 -ns -/ -iter -( -+ -/ -- -91 -241 -) -= -590 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -190 -ns -/ -iter -( -+ -/ -- -12 -) -= -315 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -83 -245 -ns -/ -iter -( -+ -/ -- -5 -385 -) -= -393 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -269 -ns -/ -iter -( -+ -/ -- -22 -) -= -371 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -167 -ns -/ -iter -( -+ -/ -- -13 -) -= -305 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -84 -ns -/ -iter -( -+ -/ -- -7 -) -= -309 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -137 -ns -/ -iter -( -+ -/ -- -12 -) -= -189 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -108 -ns -/ -iter -( -+ -/ -- -3 -) -= -157 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -105 -ns -/ -iter -( -+ -/ -- -6 -) -= -161 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -1 -811 -ns -/ -iter -( -+ -/ -- -44 -) -= -574 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -2 -324 -ns -/ -iter -( -+ -/ -- -223 -) -= -452 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -2 -033 -298 -ns -/ -iter -( -+ -/ -- -148 -939 -) -= -515 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -185 -ns -/ -iter -( -+ -/ -- -8 -) -= -318 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -83 -263 -ns -/ -iter -( -+ -/ -- -4 -231 -) -= -393 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -13 -501 -ns -/ -iter -( -+ -/ -- -1 -380 -) -= -592 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -31 -464 -067 -ns -/ -iter -( -+ -/ -- -2 -248 -457 -) -= -161 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -5 -257 -629 -ns -/ -iter -( -+ -/ -- -142 -910 -) -= -966 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -5 -189 -384 -ns -/ -iter -( -+ -/ -- -130 -525 -) -= -979 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -5 -261 -936 -ns -/ -iter -( -+ -/ -- -309 -355 -) -= -966 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -5 -268 -281 -ns -/ -iter -( -+ -/ -- -348 -592 -) -= -964 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -5 -245 -664 -ns -/ -iter -( -+ -/ -- -403 -198 -) -= -969 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -5 -264 -833 -ns -/ -iter -( -+ -/ -- -312 -063 -) -= -965 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -5 -181 -850 -ns -/ -iter -( -+ -/ -- -117 -306 -) -= -981 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -5 -200 -226 -ns -/ -iter -( -+ -/ -- -124 -723 -) -= -977 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -5 -233 -678 -ns -/ -iter -( -+ -/ -- -367 -749 -) -= -971 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -5 -242 -400 -ns -/ -iter -( -+ -/ -- -317 -859 -) -= -969 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -5 -325 -464 -ns -/ -iter -( -+ -/ -- -395 -485 -) -= -954 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -24 -377 -246 -ns -/ -iter -( -+ -/ -- -733 -355 -) -= -208 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -26 -405 -686 -ns -/ -iter -( -+ -/ -- -771 -755 -) -= -192 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -25 -130 -419 -ns -/ -iter -( -+ -/ -- -1 -245 -527 -) -= -202 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -32 -527 -780 -ns -/ -iter -( -+ -/ -- -5 -073 -721 -) -= -156 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -31 -081 -800 -ns -/ -iter -( -+ -/ -- -1 -256 -796 -) -= -163 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -28 -744 -478 -ns -/ -iter -( -+ -/ -- -1 -243 -565 -) -= -176 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -26 -693 -756 -ns -/ -iter -( -+ -/ -- -886 -566 -) -= -190 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -21 -478 -184 -ns -/ -iter -( -+ -/ -- -1 -374 -415 -) -= -236 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -18 -639 -814 -ns -/ -iter -( -+ -/ -- -519 -136 -) -= -272 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -1 -552 -265 -ns -/ -iter -( -+ -/ -- -105 -467 -) -= -383 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -1 -360 -446 -ns -/ -iter -( -+ -/ -- -111 -123 -) -= -437 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -6 -356 -610 -ns -/ -iter -( -+ -/ -- -343 -163 -) -= -93 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -2 -380 -946 -ns -/ -iter -( -+ -/ -- -36 -936 -) -= -249 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -1 -144 -439 -ns -/ -iter -( -+ -/ -- -25 -948 -) -= -519 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -1 -503 -311 -ns -/ -iter -( -+ -/ -- -99 -075 -) -= -395 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -3 -003 -144 -ns -/ -iter -( -+ -/ -- -239 -408 -) -= -198 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -721 -656 -ns -/ -iter -( -+ -/ -- -129 -795 -) -= -345 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -73 -833 -131 -ns -/ -iter -( -+ -/ -- -2 -542 -107 -) -= -8 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -72 -250 -289 -ns -/ -iter -( -+ -/ -- -1 -280 -826 -) -= -8 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -3 -397 -481 -ns -/ -iter -( -+ -/ -- -160 -294 -) -= -175 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -3 -694 -486 -ns -/ -iter -( -+ -/ -- -403 -679 -) -= -161 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -70 -121 -ns -/ -iter -( -+ -/ -- -3 -926 -) -= -8484 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -1 -120 -245 -ns -/ -iter -( -+ -/ -- -36 -040 -) -= -531 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -247 -630 -ns -/ -iter -( -+ -/ -- -127 -226 -) -= -476 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -894 -586 -ns -/ -iter -( -+ -/ -- -201 -023 -) -= -205 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -1 -142 -872 -ns -/ -iter -( -+ -/ -- -82 -896 -) -= -520 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -785 -266 -ns -/ -iter -( -+ -/ -- -166 -100 -) -= -333 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -1 -167 -553 -ns -/ -iter -( -+ -/ -- -91 -672 -) -= -509 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -2 -023 -732 -ns -/ -iter -( -+ -/ -- -74 -558 -) -= -293 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -126 -480 -ns -/ -iter -( -+ -/ -- -6 -959 -) -= -4703 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -420 -548 -ns -/ -iter -( -+ -/ -- -75 -407 -) -= -418 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -57 -090 -ns -/ -iter -( -+ -/ -- -1 -392 -) -= -10420 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -57 -965 -ns -/ -iter -( -+ -/ -- -2 -996 -) -= -10263 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -837 -721 -ns -/ -iter -( -+ -/ -- -66 -965 -) -= -323 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -672 -451 -ns -/ -iter -( -+ -/ -- -204 -590 -) -= -355 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -60 -342 -ns -/ -iter -( -+ -/ -- -3 -290 -) -= -9859 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -434 -496 -ns -/ -iter -( -+ -/ -- -35 -617 -) -= -1369 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -431 -778 -ns -/ -iter -( -+ -/ -- -11 -799 -) -= -1377 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -19 -313 -ns -/ -iter -( -+ -/ -- -1 -167 -) -= -30804 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -1 -301 -485 -ns -/ -iter -( -+ -/ -- -92 -772 -) -= -457 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -846 -403 -ns -/ -iter -( -+ -/ -- -39 -799 -) -= -322 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -2 -956 -115 -ns -/ -iter -( -+ -/ -- -136 -011 -) -= -201 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -165 -976 -ns -/ -iter -( -+ -/ -- -5 -838 -) -= -3584 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -816 -669 -ns -/ -iter -( -+ -/ -- -117 -437 -) -= -327 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -2 -601 -847 -ns -/ -iter -( -+ -/ -- -166 -024 -) -= -228 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -21 -137 -049 -ns -/ -iter -( -+ -/ -- -750 -253 -) -= -28 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -96 -measured diff --git a/third_party/rust/regex/record/old-bench-log/05/re2-vs-rust b/third_party/rust/regex/record/old-bench-log/05/re2-vs-rust deleted file mode 100644 index f67b0c5cad247..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/re2-vs-rust +++ /dev/null @@ -1,2729 +0,0 @@ -name -re2 -ns -/ -iter -rust -ns -/ -iter -diff -ns -/ -iter -diff -% -misc -: -: -anchored_literal_long_match -102 -( -3823 -MB -/ -s -) -24 -( -16250 -MB -/ -s -) -- -78 -- -76 -. -47 -% -misc -: -: -anchored_literal_long_non_match -20 -( -19500 -MB -/ -s -) -27 -( -14444 -MB -/ -s -) -7 -35 -. -00 -% -misc -: -: -anchored_literal_short_match -95 -( -273 -MB -/ -s -) -22 -( -1181 -MB -/ -s -) -- -73 -- -76 -. -84 -% -misc -: -: -anchored_literal_short_non_match -17 -( -1529 -MB -/ -s -) -24 -( -1083 -MB -/ -s -) -7 -41 -. -18 -% -misc -: -: -easy0_1K -149 -( -7053 -MB -/ -s -) -16 -( -65687 -MB -/ -s -) -- -133 -- -89 -. -26 -% -misc -: -: -easy0_1MB -29 -234 -( -35869 -MB -/ -s -) -20 -( -52430150 -MB -/ -s -) -- -29 -214 -- -99 -. -93 -% -misc -: -: -easy0_32 -126 -( -468 -MB -/ -s -) -16 -( -3687 -MB -/ -s -) -- -110 -- -87 -. -30 -% -misc -: -: -easy0_32K -1 -266 -( -25904 -MB -/ -s -) -16 -( -2049687 -MB -/ -s -) -- -1 -250 -- -98 -. -74 -% -misc -: -: -easy1_1K -130 -( -8030 -MB -/ -s -) -48 -( -21750 -MB -/ -s -) -- -82 -- -63 -. -08 -% -misc -: -: -easy1_1MB -29 -218 -( -35888 -MB -/ -s -) -48 -( -21845750 -MB -/ -s -) -- -29 -170 -- -99 -. -84 -% -misc -: -: -easy1_32 -112 -( -464 -MB -/ -s -) -46 -( -1130 -MB -/ -s -) -- -66 -- -58 -. -93 -% -misc -: -: -easy1_32K -1 -251 -( -26209 -MB -/ -s -) -47 -( -697617 -MB -/ -s -) -- -1 -204 -- -96 -. -24 -% -misc -: -: -hard_1K -2 -357 -( -445 -MB -/ -s -) -58 -( -18120 -MB -/ -s -) -- -2 -299 -- -97 -. -54 -% -misc -: -: -hard_1MB -2 -149 -909 -( -487 -MB -/ -s -) -61 -( -17190213 -MB -/ -s -) -- -2 -149 -848 -- -100 -. -00 -% -misc -: -: -hard_32 -195 -( -302 -MB -/ -s -) -58 -( -1017 -MB -/ -s -) -- -137 -- -70 -. -26 -% -misc -: -: -hard_32K -105 -137 -( -311 -MB -/ -s -) -56 -( -585625 -MB -/ -s -) -- -105 -081 -- -99 -. -95 -% -misc -: -: -literal -89 -( -573 -MB -/ -s -) -16 -( -3187 -MB -/ -s -) -- -73 -- -82 -. -02 -% -misc -: -: -long_needle1 -170 -090 -( -587 -MB -/ -s -) -2 -226 -( -44924 -MB -/ -s -) -- -167 -864 -- -98 -. -69 -% -misc -: -: -long_needle2 -174 -341 -( -573 -MB -/ -s -) -576 -997 -( -173 -MB -/ -s -) -402 -656 -230 -. -96 -% -misc -: -: -match_class -220 -( -368 -MB -/ -s -) -65 -( -1246 -MB -/ -s -) -- -155 -- -70 -. -45 -% -misc -: -: -match_class_in_range -215 -( -376 -MB -/ -s -) -27 -( -3000 -MB -/ -s -) -- -188 -- -87 -. -44 -% -misc -: -: -match_class_unicode -382 -( -421 -MB -/ -s -) -283 -( -568 -MB -/ -s -) -- -99 -- -25 -. -92 -% -misc -: -: -medium_1K -1 -939 -( -542 -MB -/ -s -) -16 -( -65750 -MB -/ -s -) -- -1 -923 -- -99 -. -17 -% -misc -: -: -medium_1MB -1 -775 -335 -( -590 -MB -/ -s -) -21 -( -49933523 -MB -/ -s -) -- -1 -775 -314 -- -100 -. -00 -% -misc -: -: -medium_32 -190 -( -315 -MB -/ -s -) -17 -( -3529 -MB -/ -s -) -- -173 -- -91 -. -05 -% -misc -: -: -medium_32K -83 -245 -( -393 -MB -/ -s -) -17 -( -1929176 -MB -/ -s -) -- -83 -228 -- -99 -. -98 -% -misc -: -: -no_exponential -269 -( -371 -MB -/ -s -) -394 -( -253 -MB -/ -s -) -125 -46 -. -47 -% -misc -: -: -not_literal -167 -( -305 -MB -/ -s -) -105 -( -485 -MB -/ -s -) -- -62 -- -37 -. -13 -% -misc -: -: -one_pass_long_prefix -84 -( -309 -MB -/ -s -) -68 -( -382 -MB -/ -s -) -- -16 -- -19 -. -05 -% -misc -: -: -one_pass_long_prefix_not -137 -( -189 -MB -/ -s -) -58 -( -448 -MB -/ -s -) -- -79 -- -57 -. -66 -% -misc -: -: -one_pass_short -108 -( -157 -MB -/ -s -) -45 -( -377 -MB -/ -s -) -- -63 -- -58 -. -33 -% -misc -: -: -one_pass_short_not -105 -( -161 -MB -/ -s -) -50 -( -340 -MB -/ -s -) -- -55 -- -52 -. -38 -% -misc -: -: -reallyhard2_1K -1 -811 -( -574 -MB -/ -s -) -83 -( -12530 -MB -/ -s -) -- -1 -728 -- -95 -. -42 -% -misc -: -: -reallyhard_1K -2 -324 -( -452 -MB -/ -s -) -1 -822 -( -576 -MB -/ -s -) -- -502 -- -21 -. -60 -% -misc -: -: -reallyhard_1MB -2 -033 -298 -( -515 -MB -/ -s -) -1 -768 -327 -( -592 -MB -/ -s -) -- -264 -971 -- -13 -. -03 -% -misc -: -: -reallyhard_32 -185 -( -318 -MB -/ -s -) -121 -( -487 -MB -/ -s -) -- -64 -- -34 -. -59 -% -misc -: -: -reallyhard_32K -83 -263 -( -393 -MB -/ -s -) -56 -375 -( -581 -MB -/ -s -) -- -26 -888 -- -32 -. -29 -% -misc -: -: -reverse_suffix_no_quadratic -13 -501 -( -592 -MB -/ -s -) -5 -803 -( -1378 -MB -/ -s -) -- -7 -698 -- -57 -. -02 -% -regexdna -: -: -find_new_lines -31 -464 -067 -( -161 -MB -/ -s -) -14 -818 -233 -( -343 -MB -/ -s -) -- -16 -645 -834 -- -52 -. -90 -% -regexdna -: -: -subst1 -5 -257 -629 -( -966 -MB -/ -s -) -896 -790 -( -5668 -MB -/ -s -) -- -4 -360 -839 -- -82 -. -94 -% -regexdna -: -: -subst10 -5 -189 -384 -( -979 -MB -/ -s -) -957 -325 -( -5310 -MB -/ -s -) -- -4 -232 -059 -- -81 -. -55 -% -regexdna -: -: -subst11 -5 -261 -936 -( -966 -MB -/ -s -) -917 -248 -( -5542 -MB -/ -s -) -- -4 -344 -688 -- -82 -. -57 -% -regexdna -: -: -subst2 -5 -268 -281 -( -964 -MB -/ -s -) -892 -129 -( -5698 -MB -/ -s -) -- -4 -376 -152 -- -83 -. -07 -% -regexdna -: -: -subst3 -5 -245 -664 -( -969 -MB -/ -s -) -929 -250 -( -5470 -MB -/ -s -) -- -4 -316 -414 -- -82 -. -29 -% -regexdna -: -: -subst4 -5 -264 -833 -( -965 -MB -/ -s -) -872 -581 -( -5825 -MB -/ -s -) -- -4 -392 -252 -- -83 -. -43 -% -regexdna -: -: -subst5 -5 -181 -850 -( -981 -MB -/ -s -) -875 -804 -( -5804 -MB -/ -s -) -- -4 -306 -046 -- -83 -. -10 -% -regexdna -: -: -subst6 -5 -200 -226 -( -977 -MB -/ -s -) -884 -639 -( -5746 -MB -/ -s -) -- -4 -315 -587 -- -82 -. -99 -% -regexdna -: -: -subst7 -5 -233 -678 -( -971 -MB -/ -s -) -872 -791 -( -5824 -MB -/ -s -) -- -4 -360 -887 -- -83 -. -32 -% -regexdna -: -: -subst8 -5 -242 -400 -( -969 -MB -/ -s -) -873 -833 -( -5817 -MB -/ -s -) -- -4 -368 -567 -- -83 -. -33 -% -regexdna -: -: -subst9 -5 -325 -464 -( -954 -MB -/ -s -) -886 -744 -( -5732 -MB -/ -s -) -- -4 -438 -720 -- -83 -. -35 -% -regexdna -: -: -variant1 -24 -377 -246 -( -208 -MB -/ -s -) -3 -699 -267 -( -1374 -MB -/ -s -) -- -20 -677 -979 -- -84 -. -82 -% -regexdna -: -: -variant2 -26 -405 -686 -( -192 -MB -/ -s -) -6 -760 -952 -( -751 -MB -/ -s -) -- -19 -644 -734 -- -74 -. -40 -% -regexdna -: -: -variant3 -25 -130 -419 -( -202 -MB -/ -s -) -8 -030 -646 -( -633 -MB -/ -s -) -- -17 -099 -773 -- -68 -. -04 -% -regexdna -: -: -variant4 -32 -527 -780 -( -156 -MB -/ -s -) -8 -077 -290 -( -629 -MB -/ -s -) -- -24 -450 -490 -- -75 -. -17 -% -regexdna -: -: -variant5 -31 -081 -800 -( -163 -MB -/ -s -) -6 -787 -242 -( -748 -MB -/ -s -) -- -24 -294 -558 -- -78 -. -16 -% -regexdna -: -: -variant6 -28 -744 -478 -( -176 -MB -/ -s -) -6 -577 -777 -( -772 -MB -/ -s -) -- -22 -166 -701 -- -77 -. -12 -% -regexdna -: -: -variant7 -26 -693 -756 -( -190 -MB -/ -s -) -6 -705 -580 -( -758 -MB -/ -s -) -- -19 -988 -176 -- -74 -. -88 -% -regexdna -: -: -variant8 -21 -478 -184 -( -236 -MB -/ -s -) -6 -818 -785 -( -745 -MB -/ -s -) -- -14 -659 -399 -- -68 -. -25 -% -regexdna -: -: -variant9 -18 -639 -814 -( -272 -MB -/ -s -) -6 -821 -453 -( -745 -MB -/ -s -) -- -11 -818 -361 -- -63 -. -40 -% -sherlock -: -: -before_after_holmes -1 -552 -265 -( -383 -MB -/ -s -) -1 -029 -866 -( -577 -MB -/ -s -) -- -522 -399 -- -33 -. -65 -% -sherlock -: -: -before_holmes -1 -360 -446 -( -437 -MB -/ -s -) -76 -633 -( -7763 -MB -/ -s -) -- -1 -283 -813 -- -94 -. -37 -% -sherlock -: -: -everything_greedy -6 -356 -610 -( -93 -MB -/ -s -) -2 -375 -079 -( -250 -MB -/ -s -) -- -3 -981 -531 -- -62 -. -64 -% -sherlock -: -: -everything_greedy_nl -2 -380 -946 -( -249 -MB -/ -s -) -916 -250 -( -649 -MB -/ -s -) -- -1 -464 -696 -- -61 -. -52 -% -sherlock -: -: -holmes_cochar_watson -1 -144 -439 -( -519 -MB -/ -s -) -144 -725 -( -4110 -MB -/ -s -) -- -999 -714 -- -87 -. -35 -% -sherlock -: -: -holmes_coword_watson -1 -503 -311 -( -395 -MB -/ -s -) -565 -247 -( -1052 -MB -/ -s -) -- -938 -064 -- -62 -. -40 -% -sherlock -: -: -ing_suffix -3 -003 -144 -( -198 -MB -/ -s -) -436 -202 -( -1363 -MB -/ -s -) -- -2 -566 -942 -- -85 -. -48 -% -sherlock -: -: -ing_suffix_limited_space -1 -721 -656 -( -345 -MB -/ -s -) -1 -182 -943 -( -502 -MB -/ -s -) -- -538 -713 -- -31 -. -29 -% -sherlock -: -: -letters -73 -833 -131 -( -8 -MB -/ -s -) -24 -390 -452 -( -24 -MB -/ -s -) -- -49 -442 -679 -- -66 -. -97 -% -sherlock -: -: -letters_lower -72 -250 -289 -( -8 -MB -/ -s -) -23 -784 -108 -( -25 -MB -/ -s -) -- -48 -466 -181 -- -67 -. -08 -% -sherlock -: -: -letters_upper -3 -397 -481 -( -175 -MB -/ -s -) -1 -993 -838 -( -298 -MB -/ -s -) -- -1 -403 -643 -- -41 -. -31 -% -sherlock -: -: -line_boundary_sherlock_holmes -3 -694 -486 -( -161 -MB -/ -s -) -999 -414 -( -595 -MB -/ -s -) -- -2 -695 -072 -- -72 -. -95 -% -sherlock -: -: -name_alt1 -70 -121 -( -8484 -MB -/ -s -) -34 -298 -( -17345 -MB -/ -s -) -- -35 -823 -- -51 -. -09 -% -sherlock -: -: -name_alt2 -1 -120 -245 -( -531 -MB -/ -s -) -124 -226 -( -4789 -MB -/ -s -) -- -996 -019 -- -88 -. -91 -% -sherlock -: -: -name_alt3 -1 -247 -630 -( -476 -MB -/ -s -) -137 -742 -( -4319 -MB -/ -s -) -- -1 -109 -888 -- -88 -. -96 -% -sherlock -: -: -name_alt3_nocase -2 -894 -586 -( -205 -MB -/ -s -) -1 -293 -763 -( -459 -MB -/ -s -) -- -1 -600 -823 -- -55 -. -30 -% -sherlock -: -: -name_alt4 -1 -142 -872 -( -520 -MB -/ -s -) -164 -900 -( -3607 -MB -/ -s -) -- -977 -972 -- -85 -. -57 -% -sherlock -: -: -name_alt4_nocase -1 -785 -266 -( -333 -MB -/ -s -) -235 -023 -( -2531 -MB -/ -s -) -- -1 -550 -243 -- -86 -. -84 -% -sherlock -: -: -name_alt5 -1 -167 -553 -( -509 -MB -/ -s -) -127 -928 -( -4650 -MB -/ -s -) -- -1 -039 -625 -- -89 -. -04 -% -sherlock -: -: -name_alt5_nocase -2 -023 -732 -( -293 -MB -/ -s -) -659 -591 -( -901 -MB -/ -s -) -- -1 -364 -141 -- -67 -. -41 -% -sherlock -: -: -name_holmes -126 -480 -( -4703 -MB -/ -s -) -40 -902 -( -14545 -MB -/ -s -) -- -85 -578 -- -67 -. -66 -% -sherlock -: -: -name_holmes_nocase -1 -420 -548 -( -418 -MB -/ -s -) -198 -658 -( -2994 -MB -/ -s -) -- -1 -221 -890 -- -86 -. -02 -% -sherlock -: -: -name_sherlock -57 -090 -( -10420 -MB -/ -s -) -68 -924 -( -8631 -MB -/ -s -) -11 -834 -20 -. -73 -% -sherlock -: -: -name_sherlock_holmes -57 -965 -( -10263 -MB -/ -s -) -31 -640 -( -18803 -MB -/ -s -) -- -26 -325 -- -45 -. -42 -% -sherlock -: -: -name_sherlock_holmes_nocase -1 -837 -721 -( -323 -MB -/ -s -) -173 -522 -( -3428 -MB -/ -s -) -- -1 -664 -199 -- -90 -. -56 -% -sherlock -: -: -name_sherlock_nocase -1 -672 -451 -( -355 -MB -/ -s -) -170 -888 -( -3481 -MB -/ -s -) -- -1 -501 -563 -- -89 -. -78 -% -sherlock -: -: -name_whitespace -60 -342 -( -9859 -MB -/ -s -) -84 -314 -( -7056 -MB -/ -s -) -23 -972 -39 -. -73 -% -sherlock -: -: -no_match_common -434 -496 -( -1369 -MB -/ -s -) -20 -727 -( -28703 -MB -/ -s -) -- -413 -769 -- -95 -. -23 -% -sherlock -: -: -no_match_really_common -431 -778 -( -1377 -MB -/ -s -) -381 -476 -( -1559 -MB -/ -s -) -- -50 -302 -- -11 -. -65 -% -sherlock -: -: -no_match_uncommon -19 -313 -( -30804 -MB -/ -s -) -20 -786 -( -28621 -MB -/ -s -) -1 -473 -7 -. -63 -% -sherlock -: -: -quotes -1 -301 -485 -( -457 -MB -/ -s -) -531 -487 -( -1119 -MB -/ -s -) -- -769 -998 -- -59 -. -16 -% -sherlock -: -: -the_lower -1 -846 -403 -( -322 -MB -/ -s -) -654 -110 -( -909 -MB -/ -s -) -- -1 -192 -293 -- -64 -. -57 -% -sherlock -: -: -the_nocase -2 -956 -115 -( -201 -MB -/ -s -) -474 -456 -( -1253 -MB -/ -s -) -- -2 -481 -659 -- -83 -. -95 -% -sherlock -: -: -the_upper -165 -976 -( -3584 -MB -/ -s -) -43 -746 -( -13599 -MB -/ -s -) -- -122 -230 -- -73 -. -64 -% -sherlock -: -: -the_whitespace -1 -816 -669 -( -327 -MB -/ -s -) -1 -181 -974 -( -503 -MB -/ -s -) -- -634 -695 -- -34 -. -94 -% -sherlock -: -: -word_ending_n -2 -601 -847 -( -228 -MB -/ -s -) -1 -925 -578 -( -308 -MB -/ -s -) -- -676 -269 -- -25 -. -99 -% -sherlock -: -: -words -21 -137 -049 -( -28 -MB -/ -s -) -9 -697 -201 -( -61 -MB -/ -s -) -- -11 -439 -848 -- -54 -. -12 -% diff --git a/third_party/rust/regex/record/old-bench-log/05/rust b/third_party/rust/regex/record/old-bench-log/05/rust deleted file mode 100644 index dc281147ef15e..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/rust +++ /dev/null @@ -1,2607 +0,0 @@ -running -98 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -16250 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -27 -ns -/ -iter -( -+ -/ -- -0 -) -= -14444 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -0 -) -= -1181 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -1 -) -= -1083 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -65687 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -52430150 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -3687 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -2049687 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -2 -) -= -21750 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -2 -) -= -21845750 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -46 -ns -/ -iter -( -+ -/ -- -0 -) -= -1130 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -47 -ns -/ -iter -( -+ -/ -- -0 -) -= -697617 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -0 -) -= -18120 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -0 -) -= -17190213 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -0 -) -= -1017 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -56 -ns -/ -iter -( -+ -/ -- -2 -) -= -585625 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -3187 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -2 -226 -ns -/ -iter -( -+ -/ -- -139 -) -= -44924 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -576 -997 -ns -/ -iter -( -+ -/ -- -21 -660 -) -= -173 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -65 -ns -/ -iter -( -+ -/ -- -3 -) -= -1246 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -27 -ns -/ -iter -( -+ -/ -- -0 -) -= -3000 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -283 -ns -/ -iter -( -+ -/ -- -15 -) -= -568 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -65750 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -1 -) -= -49933523 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -0 -) -= -3529 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -0 -) -= -1929176 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -394 -ns -/ -iter -( -+ -/ -- -0 -) -= -253 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -105 -ns -/ -iter -( -+ -/ -- -0 -) -= -485 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -68 -ns -/ -iter -( -+ -/ -- -0 -) -= -382 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -3 -) -= -448 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -45 -ns -/ -iter -( -+ -/ -- -2 -) -= -377 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -16 -) -= -340 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -83 -ns -/ -iter -( -+ -/ -- -4 -) -= -12530 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -822 -ns -/ -iter -( -+ -/ -- -72 -) -= -576 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -768 -327 -ns -/ -iter -( -+ -/ -- -67 -421 -) -= -592 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -121 -ns -/ -iter -( -+ -/ -- -4 -) -= -487 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -56 -375 -ns -/ -iter -( -+ -/ -- -1 -404 -) -= -581 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -142 -ns -/ -iter -( -+ -/ -- -0 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -5 -803 -ns -/ -iter -( -+ -/ -- -6 -) -= -1378 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -14 -818 -233 -ns -/ -iter -( -+ -/ -- -430 -454 -) -= -343 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -896 -790 -ns -/ -iter -( -+ -/ -- -2 -273 -) -= -5668 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -957 -325 -ns -/ -iter -( -+ -/ -- -7 -490 -) -= -5310 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -917 -248 -ns -/ -iter -( -+ -/ -- -12 -886 -) -= -5542 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -892 -129 -ns -/ -iter -( -+ -/ -- -36 -230 -) -= -5698 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -929 -250 -ns -/ -iter -( -+ -/ -- -38 -312 -) -= -5470 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -872 -581 -ns -/ -iter -( -+ -/ -- -27 -431 -) -= -5825 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -875 -804 -ns -/ -iter -( -+ -/ -- -30 -611 -) -= -5804 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -884 -639 -ns -/ -iter -( -+ -/ -- -44 -927 -) -= -5746 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -872 -791 -ns -/ -iter -( -+ -/ -- -31 -810 -) -= -5824 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -873 -833 -ns -/ -iter -( -+ -/ -- -37 -335 -) -= -5817 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -886 -744 -ns -/ -iter -( -+ -/ -- -42 -880 -) -= -5732 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -3 -699 -267 -ns -/ -iter -( -+ -/ -- -134 -945 -) -= -1374 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -6 -760 -952 -ns -/ -iter -( -+ -/ -- -228 -082 -) -= -751 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -8 -030 -646 -ns -/ -iter -( -+ -/ -- -271 -204 -) -= -633 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -8 -077 -290 -ns -/ -iter -( -+ -/ -- -266 -264 -) -= -629 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -6 -787 -242 -ns -/ -iter -( -+ -/ -- -226 -071 -) -= -748 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -6 -577 -777 -ns -/ -iter -( -+ -/ -- -226 -332 -) -= -772 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -6 -705 -580 -ns -/ -iter -( -+ -/ -- -232 -953 -) -= -758 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -6 -818 -785 -ns -/ -iter -( -+ -/ -- -241 -075 -) -= -745 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -6 -821 -453 -ns -/ -iter -( -+ -/ -- -257 -044 -) -= -745 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -1 -029 -866 -ns -/ -iter -( -+ -/ -- -42 -662 -) -= -577 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -76 -633 -ns -/ -iter -( -+ -/ -- -1 -135 -) -= -7763 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -375 -079 -ns -/ -iter -( -+ -/ -- -102 -532 -) -= -250 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -916 -250 -ns -/ -iter -( -+ -/ -- -37 -950 -) -= -649 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -144 -725 -ns -/ -iter -( -+ -/ -- -8 -793 -) -= -4110 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -565 -247 -ns -/ -iter -( -+ -/ -- -24 -056 -) -= -1052 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -436 -202 -ns -/ -iter -( -+ -/ -- -19 -863 -) -= -1363 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -182 -943 -ns -/ -iter -( -+ -/ -- -38 -658 -) -= -502 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -24 -390 -452 -ns -/ -iter -( -+ -/ -- -869 -008 -) -= -24 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -23 -784 -108 -ns -/ -iter -( -+ -/ -- -796 -195 -) -= -25 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -993 -838 -ns -/ -iter -( -+ -/ -- -77 -697 -) -= -298 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -999 -414 -ns -/ -iter -( -+ -/ -- -31 -202 -) -= -595 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -34 -298 -ns -/ -iter -( -+ -/ -- -1 -091 -) -= -17345 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -124 -226 -ns -/ -iter -( -+ -/ -- -5 -579 -) -= -4789 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -137 -742 -ns -/ -iter -( -+ -/ -- -6 -496 -) -= -4319 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -293 -763 -ns -/ -iter -( -+ -/ -- -51 -097 -) -= -459 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -164 -900 -ns -/ -iter -( -+ -/ -- -10 -023 -) -= -3607 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -235 -023 -ns -/ -iter -( -+ -/ -- -14 -465 -) -= -2531 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -127 -928 -ns -/ -iter -( -+ -/ -- -6 -882 -) -= -4650 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -659 -591 -ns -/ -iter -( -+ -/ -- -20 -587 -) -= -901 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -40 -902 -ns -/ -iter -( -+ -/ -- -402 -) -= -14545 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -198 -658 -ns -/ -iter -( -+ -/ -- -3 -782 -) -= -2994 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -68 -924 -ns -/ -iter -( -+ -/ -- -1 -456 -) -= -8631 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -31 -640 -ns -/ -iter -( -+ -/ -- -383 -) -= -18803 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -173 -522 -ns -/ -iter -( -+ -/ -- -7 -812 -) -= -3428 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -170 -888 -ns -/ -iter -( -+ -/ -- -612 -) -= -3481 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -84 -314 -ns -/ -iter -( -+ -/ -- -508 -) -= -7056 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -20 -727 -ns -/ -iter -( -+ -/ -- -565 -) -= -28703 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -381 -476 -ns -/ -iter -( -+ -/ -- -2 -338 -) -= -1559 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -20 -786 -ns -/ -iter -( -+ -/ -- -717 -) -= -28621 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -531 -487 -ns -/ -iter -( -+ -/ -- -5 -517 -) -= -1119 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -85 -881 -944 -ns -/ -iter -( -+ -/ -- -4 -906 -514 -) -= -6 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -654 -110 -ns -/ -iter -( -+ -/ -- -34 -542 -) -= -909 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -474 -456 -ns -/ -iter -( -+ -/ -- -16 -549 -) -= -1253 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -43 -746 -ns -/ -iter -( -+ -/ -- -579 -) -= -13599 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -181 -974 -ns -/ -iter -( -+ -/ -- -3 -005 -) -= -503 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -925 -578 -ns -/ -iter -( -+ -/ -- -3 -811 -) -= -308 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -9 -697 -201 -ns -/ -iter -( -+ -/ -- -156 -772 -) -= -61 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -98 -measured diff --git a/third_party/rust/regex/record/old-bench-log/05/tcl b/third_party/rust/regex/record/old-bench-log/05/tcl deleted file mode 100644 index 1b8cc457ea168..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/tcl +++ /dev/null @@ -1,2464 +0,0 @@ -running -89 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -662 -ns -/ -iter -( -+ -/ -- -12 -) -= -589 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -133 -ns -/ -iter -( -+ -/ -- -1 -) -= -2932 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -616 -ns -/ -iter -( -+ -/ -- -18 -) -= -42 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -122 -ns -/ -iter -( -+ -/ -- -1 -) -= -213 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -11 -816 -ns -/ -iter -( -+ -/ -- -92 -) -= -88 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -3 -409 -439 -ns -/ -iter -( -+ -/ -- -94 -972 -) -= -307 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -8 -785 -ns -/ -iter -( -+ -/ -- -183 -) -= -6 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -115 -371 -ns -/ -iter -( -+ -/ -- -2 -279 -) -= -284 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -7 -038 -ns -/ -iter -( -+ -/ -- -145 -) -= -148 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -3 -396 -028 -ns -/ -iter -( -+ -/ -- -100 -173 -) -= -308 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -3 -687 -ns -/ -iter -( -+ -/ -- -44 -) -= -14 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -109 -689 -ns -/ -iter -( -+ -/ -- -3 -757 -) -= -298 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -14 -836 -ns -/ -iter -( -+ -/ -- -518 -) -= -70 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -3 -376 -015 -ns -/ -iter -( -+ -/ -- -95 -045 -) -= -310 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -11 -278 -ns -/ -iter -( -+ -/ -- -389 -) -= -5 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -115 -400 -ns -/ -iter -( -+ -/ -- -4 -738 -) -= -284 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -511 -ns -/ -iter -( -+ -/ -- -11 -) -= -99 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -18 -076 -901 -ns -/ -iter -( -+ -/ -- -523 -761 -) -= -5 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -18 -497 -725 -ns -/ -iter -( -+ -/ -- -465 -516 -) -= -5 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -620 -ns -/ -iter -( -+ -/ -- -23 -) -= -130 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -605 -ns -/ -iter -( -+ -/ -- -26 -) -= -133 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -12 -355 -ns -/ -iter -( -+ -/ -- -390 -) -= -85 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -3 -410 -978 -ns -/ -iter -( -+ -/ -- -112 -021 -) -= -307 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -9 -086 -ns -/ -iter -( -+ -/ -- -287 -) -= -6 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -116 -944 -ns -/ -iter -( -+ -/ -- -5 -654 -) -= -280 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -2 -379 -518 -ns -/ -iter -( -+ -/ -- -92 -628 -) -test -misc -: -: -not_literal -. -. -. -bench -: -1 -979 -ns -/ -iter -( -+ -/ -- -116 -) -= -25 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -6 -932 -ns -/ -iter -( -+ -/ -- -464 -) -= -3 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -6 -242 -ns -/ -iter -( -+ -/ -- -384 -) -= -4 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -630 -ns -/ -iter -( -+ -/ -- -42 -) -= -26 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -718 -ns -/ -iter -( -+ -/ -- -64 -) -= -23 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -108 -421 -ns -/ -iter -( -+ -/ -- -6 -489 -) -= -9 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -14 -330 -ns -/ -iter -( -+ -/ -- -814 -) -= -73 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -3 -287 -965 -ns -/ -iter -( -+ -/ -- -203 -546 -) -= -318 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -11 -193 -ns -/ -iter -( -+ -/ -- -683 -) -= -5 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -112 -731 -ns -/ -iter -( -+ -/ -- -5 -966 -) -= -290 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -26 -907 -ns -/ -iter -( -+ -/ -- -2 -396 -) -= -297 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -48 -223 -361 -ns -/ -iter -( -+ -/ -- -2 -855 -654 -) -= -105 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -27 -177 -359 -ns -/ -iter -( -+ -/ -- -1 -359 -987 -) -= -187 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -26 -722 -144 -ns -/ -iter -( -+ -/ -- -1 -090 -216 -) -= -190 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -27 -382 -875 -ns -/ -iter -( -+ -/ -- -1 -656 -754 -) -= -185 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -26 -957 -766 -ns -/ -iter -( -+ -/ -- -1 -433 -630 -) -= -188 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -27 -195 -925 -ns -/ -iter -( -+ -/ -- -1 -828 -460 -) -= -186 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -26 -342 -249 -ns -/ -iter -( -+ -/ -- -1 -949 -172 -) -= -192 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -26 -543 -675 -ns -/ -iter -( -+ -/ -- -2 -143 -336 -) -= -191 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -26 -185 -452 -ns -/ -iter -( -+ -/ -- -2 -199 -220 -) -= -194 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -26 -338 -573 -ns -/ -iter -( -+ -/ -- -2 -124 -778 -) -= -193 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -26 -468 -652 -ns -/ -iter -( -+ -/ -- -1 -923 -567 -) -= -192 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -26 -487 -784 -ns -/ -iter -( -+ -/ -- -1 -250 -319 -) -= -191 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -16 -325 -983 -ns -/ -iter -( -+ -/ -- -491 -000 -) -= -311 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -16 -845 -952 -ns -/ -iter -( -+ -/ -- -470 -062 -) -= -301 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -19 -258 -030 -ns -/ -iter -( -+ -/ -- -525 -045 -) -= -263 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -18 -018 -713 -ns -/ -iter -( -+ -/ -- -1 -235 -670 -) -= -282 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -19 -583 -528 -ns -/ -iter -( -+ -/ -- -1 -756 -762 -) -= -259 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -17 -630 -308 -ns -/ -iter -( -+ -/ -- -973 -191 -) -= -288 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -17 -121 -666 -ns -/ -iter -( -+ -/ -- -1 -274 -478 -) -= -296 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -17 -154 -863 -ns -/ -iter -( -+ -/ -- -425 -504 -) -= -296 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -17 -930 -482 -ns -/ -iter -( -+ -/ -- -587 -712 -) -= -283 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -2 -600 -503 -ns -/ -iter -( -+ -/ -- -383 -440 -) -= -228 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -3 -145 -648 -ns -/ -iter -( -+ -/ -- -37 -316 -) -= -189 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -2 -668 -355 -ns -/ -iter -( -+ -/ -- -193 -724 -) -= -222 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -5 -638 -296 -ns -/ -iter -( -+ -/ -- -69 -345 -) -= -105 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -22 -466 -946 -ns -/ -iter -( -+ -/ -- -659 -956 -) -= -26 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -2 -251 -996 -ns -/ -iter -( -+ -/ -- -66 -639 -) -= -264 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -2 -276 -056 -ns -/ -iter -( -+ -/ -- -64 -088 -) -= -261 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -3 -196 -348 -ns -/ -iter -( -+ -/ -- -202 -979 -) -= -186 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -5 -260 -374 -ns -/ -iter -( -+ -/ -- -426 -028 -) -= -113 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -8 -529 -394 -ns -/ -iter -( -+ -/ -- -558 -731 -) -= -69 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -2 -787 -972 -ns -/ -iter -( -+ -/ -- -153 -839 -) -= -213 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -3 -370 -452 -ns -/ -iter -( -+ -/ -- -140 -385 -) -= -176 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -3 -795 -793 -ns -/ -iter -( -+ -/ -- -182 -240 -) -= -156 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -4 -691 -422 -ns -/ -iter -( -+ -/ -- -161 -515 -) -= -126 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -2 -513 -139 -ns -/ -iter -( -+ -/ -- -72 -157 -) -= -236 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -2 -636 -441 -ns -/ -iter -( -+ -/ -- -78 -402 -) -= -225 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -2 -015 -753 -ns -/ -iter -( -+ -/ -- -104 -000 -) -= -295 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -2 -180 -684 -ns -/ -iter -( -+ -/ -- -162 -201 -) -= -272 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -2 -306 -664 -ns -/ -iter -( -+ -/ -- -165 -960 -) -= -257 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -2 -065 -630 -ns -/ -iter -( -+ -/ -- -155 -223 -) -= -288 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -2 -266 -188 -ns -/ -iter -( -+ -/ -- -173 -380 -) -= -262 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -1 -881 -887 -ns -/ -iter -( -+ -/ -- -123 -883 -) -= -316 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -1 -804 -352 -ns -/ -iter -( -+ -/ -- -33 -396 -) -= -329 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -1 -809 -300 -ns -/ -iter -( -+ -/ -- -123 -888 -) -= -328 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -9 -682 -507 -ns -/ -iter -( -+ -/ -- -1 -200 -909 -) -= -61 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -68 -600 -251 -ns -/ -iter -( -+ -/ -- -2 -043 -582 -) -= -8 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -6 -849 -558 -ns -/ -iter -( -+ -/ -- -517 -709 -) -= -86 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -7 -354 -742 -ns -/ -iter -( -+ -/ -- -390 -834 -) -= -80 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -2 -442 -364 -ns -/ -iter -( -+ -/ -- -174 -452 -) -= -243 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -9 -210 -338 -ns -/ -iter -( -+ -/ -- -651 -675 -) -= -64 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -47 -863 -652 -ns -/ -iter -( -+ -/ -- -3 -536 -998 -) -= -12 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -89 -measured diff --git a/third_party/rust/regex/record/old-bench-log/05/tcl-vs-rust b/third_party/rust/regex/record/old-bench-log/05/tcl-vs-rust deleted file mode 100644 index d64d6ea3304d2..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/05/tcl-vs-rust +++ /dev/null @@ -1,2587 +0,0 @@ -name -tcl -ns -/ -iter -rust -ns -/ -iter -diff -ns -/ -iter -diff -% -misc -: -: -anchored_literal_long_match -662 -( -589 -MB -/ -s -) -24 -( -16250 -MB -/ -s -) -- -638 -- -96 -. -37 -% -misc -: -: -anchored_literal_long_non_match -133 -( -2932 -MB -/ -s -) -27 -( -14444 -MB -/ -s -) -- -106 -- -79 -. -70 -% -misc -: -: -anchored_literal_short_match -616 -( -42 -MB -/ -s -) -22 -( -1181 -MB -/ -s -) -- -594 -- -96 -. -43 -% -misc -: -: -anchored_literal_short_non_match -122 -( -213 -MB -/ -s -) -24 -( -1083 -MB -/ -s -) -- -98 -- -80 -. -33 -% -misc -: -: -easy0_1K -11 -816 -( -88 -MB -/ -s -) -16 -( -65687 -MB -/ -s -) -- -11 -800 -- -99 -. -86 -% -misc -: -: -easy0_1MB -3 -409 -439 -( -307 -MB -/ -s -) -20 -( -52430150 -MB -/ -s -) -- -3 -409 -419 -- -100 -. -00 -% -misc -: -: -easy0_32 -8 -785 -( -6 -MB -/ -s -) -16 -( -3687 -MB -/ -s -) -- -8 -769 -- -99 -. -82 -% -misc -: -: -easy0_32K -115 -371 -( -284 -MB -/ -s -) -16 -( -2049687 -MB -/ -s -) -- -115 -355 -- -99 -. -99 -% -misc -: -: -easy1_1K -7 -038 -( -148 -MB -/ -s -) -48 -( -21750 -MB -/ -s -) -- -6 -990 -- -99 -. -32 -% -misc -: -: -easy1_1MB -3 -396 -028 -( -308 -MB -/ -s -) -48 -( -21845750 -MB -/ -s -) -- -3 -395 -980 -- -100 -. -00 -% -misc -: -: -easy1_32 -3 -687 -( -14 -MB -/ -s -) -46 -( -1130 -MB -/ -s -) -- -3 -641 -- -98 -. -75 -% -misc -: -: -easy1_32K -109 -689 -( -298 -MB -/ -s -) -47 -( -697617 -MB -/ -s -) -- -109 -642 -- -99 -. -96 -% -misc -: -: -hard_1K -14 -836 -( -70 -MB -/ -s -) -58 -( -18120 -MB -/ -s -) -- -14 -778 -- -99 -. -61 -% -misc -: -: -hard_1MB -3 -376 -015 -( -310 -MB -/ -s -) -61 -( -17190213 -MB -/ -s -) -- -3 -375 -954 -- -100 -. -00 -% -misc -: -: -hard_32 -11 -278 -( -5 -MB -/ -s -) -58 -( -1017 -MB -/ -s -) -- -11 -220 -- -99 -. -49 -% -misc -: -: -hard_32K -115 -400 -( -284 -MB -/ -s -) -56 -( -585625 -MB -/ -s -) -- -115 -344 -- -99 -. -95 -% -misc -: -: -literal -511 -( -99 -MB -/ -s -) -16 -( -3187 -MB -/ -s -) -- -495 -- -96 -. -87 -% -misc -: -: -long_needle1 -18 -076 -901 -( -5 -MB -/ -s -) -2 -226 -( -44924 -MB -/ -s -) -- -18 -074 -675 -- -99 -. -99 -% -misc -: -: -long_needle2 -18 -497 -725 -( -5 -MB -/ -s -) -576 -997 -( -173 -MB -/ -s -) -- -17 -920 -728 -- -96 -. -88 -% -misc -: -: -match_class -620 -( -130 -MB -/ -s -) -65 -( -1246 -MB -/ -s -) -- -555 -- -89 -. -52 -% -misc -: -: -match_class_in_range -605 -( -133 -MB -/ -s -) -27 -( -3000 -MB -/ -s -) -- -578 -- -95 -. -54 -% -misc -: -: -medium_1K -12 -355 -( -85 -MB -/ -s -) -16 -( -65750 -MB -/ -s -) -- -12 -339 -- -99 -. -87 -% -misc -: -: -medium_1MB -3 -410 -978 -( -307 -MB -/ -s -) -21 -( -49933523 -MB -/ -s -) -- -3 -410 -957 -- -100 -. -00 -% -misc -: -: -medium_32 -9 -086 -( -6 -MB -/ -s -) -17 -( -3529 -MB -/ -s -) -- -9 -069 -- -99 -. -81 -% -misc -: -: -medium_32K -116 -944 -( -280 -MB -/ -s -) -17 -( -1929176 -MB -/ -s -) -- -116 -927 -- -99 -. -99 -% -misc -: -: -no_exponential -2 -379 -518 -394 -( -253 -MB -/ -s -) -- -2 -379 -124 -- -99 -. -98 -% -misc -: -: -not_literal -1 -979 -( -25 -MB -/ -s -) -105 -( -485 -MB -/ -s -) -- -1 -874 -- -94 -. -69 -% -misc -: -: -one_pass_long_prefix -6 -932 -( -3 -MB -/ -s -) -68 -( -382 -MB -/ -s -) -- -6 -864 -- -99 -. -02 -% -misc -: -: -one_pass_long_prefix_not -6 -242 -( -4 -MB -/ -s -) -58 -( -448 -MB -/ -s -) -- -6 -184 -- -99 -. -07 -% -misc -: -: -one_pass_short -630 -( -26 -MB -/ -s -) -45 -( -377 -MB -/ -s -) -- -585 -- -92 -. -86 -% -misc -: -: -one_pass_short_not -718 -( -23 -MB -/ -s -) -50 -( -340 -MB -/ -s -) -- -668 -- -93 -. -04 -% -misc -: -: -reallyhard2_1K -108 -421 -( -9 -MB -/ -s -) -83 -( -12530 -MB -/ -s -) -- -108 -338 -- -99 -. -92 -% -misc -: -: -reallyhard_1K -14 -330 -( -73 -MB -/ -s -) -1 -822 -( -576 -MB -/ -s -) -- -12 -508 -- -87 -. -29 -% -misc -: -: -reallyhard_1MB -3 -287 -965 -( -318 -MB -/ -s -) -1 -768 -327 -( -592 -MB -/ -s -) -- -1 -519 -638 -- -46 -. -22 -% -misc -: -: -reallyhard_32 -11 -193 -( -5 -MB -/ -s -) -121 -( -487 -MB -/ -s -) -- -11 -072 -- -98 -. -92 -% -misc -: -: -reallyhard_32K -112 -731 -( -290 -MB -/ -s -) -56 -375 -( -581 -MB -/ -s -) -- -56 -356 -- -49 -. -99 -% -misc -: -: -reverse_suffix_no_quadratic -26 -907 -( -297 -MB -/ -s -) -5 -803 -( -1378 -MB -/ -s -) -- -21 -104 -- -78 -. -43 -% -regexdna -: -: -find_new_lines -48 -223 -361 -( -105 -MB -/ -s -) -14 -818 -233 -( -343 -MB -/ -s -) -- -33 -405 -128 -- -69 -. -27 -% -regexdna -: -: -subst1 -27 -177 -359 -( -187 -MB -/ -s -) -896 -790 -( -5668 -MB -/ -s -) -- -26 -280 -569 -- -96 -. -70 -% -regexdna -: -: -subst10 -26 -722 -144 -( -190 -MB -/ -s -) -957 -325 -( -5310 -MB -/ -s -) -- -25 -764 -819 -- -96 -. -42 -% -regexdna -: -: -subst11 -27 -382 -875 -( -185 -MB -/ -s -) -917 -248 -( -5542 -MB -/ -s -) -- -26 -465 -627 -- -96 -. -65 -% -regexdna -: -: -subst2 -26 -957 -766 -( -188 -MB -/ -s -) -892 -129 -( -5698 -MB -/ -s -) -- -26 -065 -637 -- -96 -. -69 -% -regexdna -: -: -subst3 -27 -195 -925 -( -186 -MB -/ -s -) -929 -250 -( -5470 -MB -/ -s -) -- -26 -266 -675 -- -96 -. -58 -% -regexdna -: -: -subst4 -26 -342 -249 -( -192 -MB -/ -s -) -872 -581 -( -5825 -MB -/ -s -) -- -25 -469 -668 -- -96 -. -69 -% -regexdna -: -: -subst5 -26 -543 -675 -( -191 -MB -/ -s -) -875 -804 -( -5804 -MB -/ -s -) -- -25 -667 -871 -- -96 -. -70 -% -regexdna -: -: -subst6 -26 -185 -452 -( -194 -MB -/ -s -) -884 -639 -( -5746 -MB -/ -s -) -- -25 -300 -813 -- -96 -. -62 -% -regexdna -: -: -subst7 -26 -338 -573 -( -193 -MB -/ -s -) -872 -791 -( -5824 -MB -/ -s -) -- -25 -465 -782 -- -96 -. -69 -% -regexdna -: -: -subst8 -26 -468 -652 -( -192 -MB -/ -s -) -873 -833 -( -5817 -MB -/ -s -) -- -25 -594 -819 -- -96 -. -70 -% -regexdna -: -: -subst9 -26 -487 -784 -( -191 -MB -/ -s -) -886 -744 -( -5732 -MB -/ -s -) -- -25 -601 -040 -- -96 -. -65 -% -regexdna -: -: -variant1 -16 -325 -983 -( -311 -MB -/ -s -) -3 -699 -267 -( -1374 -MB -/ -s -) -- -12 -626 -716 -- -77 -. -34 -% -regexdna -: -: -variant2 -16 -845 -952 -( -301 -MB -/ -s -) -6 -760 -952 -( -751 -MB -/ -s -) -- -10 -085 -000 -- -59 -. -87 -% -regexdna -: -: -variant3 -19 -258 -030 -( -263 -MB -/ -s -) -8 -030 -646 -( -633 -MB -/ -s -) -- -11 -227 -384 -- -58 -. -30 -% -regexdna -: -: -variant4 -18 -018 -713 -( -282 -MB -/ -s -) -8 -077 -290 -( -629 -MB -/ -s -) -- -9 -941 -423 -- -55 -. -17 -% -regexdna -: -: -variant5 -19 -583 -528 -( -259 -MB -/ -s -) -6 -787 -242 -( -748 -MB -/ -s -) -- -12 -796 -286 -- -65 -. -34 -% -regexdna -: -: -variant6 -17 -630 -308 -( -288 -MB -/ -s -) -6 -577 -777 -( -772 -MB -/ -s -) -- -11 -052 -531 -- -62 -. -69 -% -regexdna -: -: -variant7 -17 -121 -666 -( -296 -MB -/ -s -) -6 -705 -580 -( -758 -MB -/ -s -) -- -10 -416 -086 -- -60 -. -84 -% -regexdna -: -: -variant8 -17 -154 -863 -( -296 -MB -/ -s -) -6 -818 -785 -( -745 -MB -/ -s -) -- -10 -336 -078 -- -60 -. -25 -% -regexdna -: -: -variant9 -17 -930 -482 -( -283 -MB -/ -s -) -6 -821 -453 -( -745 -MB -/ -s -) -- -11 -109 -029 -- -61 -. -96 -% -sherlock -: -: -before_after_holmes -2 -600 -503 -( -228 -MB -/ -s -) -1 -029 -866 -( -577 -MB -/ -s -) -- -1 -570 -637 -- -60 -. -40 -% -sherlock -: -: -before_holmes -3 -145 -648 -( -189 -MB -/ -s -) -76 -633 -( -7763 -MB -/ -s -) -- -3 -069 -015 -- -97 -. -56 -% -sherlock -: -: -holmes_cochar_watson -2 -668 -355 -( -222 -MB -/ -s -) -144 -725 -( -4110 -MB -/ -s -) -- -2 -523 -630 -- -94 -. -58 -% -sherlock -: -: -ing_suffix -5 -638 -296 -( -105 -MB -/ -s -) -436 -202 -( -1363 -MB -/ -s -) -- -5 -202 -094 -- -92 -. -26 -% -sherlock -: -: -ing_suffix_limited_space -22 -466 -946 -( -26 -MB -/ -s -) -1 -182 -943 -( -502 -MB -/ -s -) -- -21 -284 -003 -- -94 -. -73 -% -sherlock -: -: -line_boundary_sherlock_holmes -2 -251 -996 -( -264 -MB -/ -s -) -999 -414 -( -595 -MB -/ -s -) -- -1 -252 -582 -- -55 -. -62 -% -sherlock -: -: -name_alt1 -2 -276 -056 -( -261 -MB -/ -s -) -34 -298 -( -17345 -MB -/ -s -) -- -2 -241 -758 -- -98 -. -49 -% -sherlock -: -: -name_alt2 -3 -196 -348 -( -186 -MB -/ -s -) -124 -226 -( -4789 -MB -/ -s -) -- -3 -072 -122 -- -96 -. -11 -% -sherlock -: -: -name_alt3 -5 -260 -374 -( -113 -MB -/ -s -) -137 -742 -( -4319 -MB -/ -s -) -- -5 -122 -632 -- -97 -. -38 -% -sherlock -: -: -name_alt3_nocase -8 -529 -394 -( -69 -MB -/ -s -) -1 -293 -763 -( -459 -MB -/ -s -) -- -7 -235 -631 -- -84 -. -83 -% -sherlock -: -: -name_alt4 -2 -787 -972 -( -213 -MB -/ -s -) -164 -900 -( -3607 -MB -/ -s -) -- -2 -623 -072 -- -94 -. -09 -% -sherlock -: -: -name_alt4_nocase -3 -370 -452 -( -176 -MB -/ -s -) -235 -023 -( -2531 -MB -/ -s -) -- -3 -135 -429 -- -93 -. -03 -% -sherlock -: -: -name_alt5 -3 -795 -793 -( -156 -MB -/ -s -) -127 -928 -( -4650 -MB -/ -s -) -- -3 -667 -865 -- -96 -. -63 -% -sherlock -: -: -name_alt5_nocase -4 -691 -422 -( -126 -MB -/ -s -) -659 -591 -( -901 -MB -/ -s -) -- -4 -031 -831 -- -85 -. -94 -% -sherlock -: -: -name_holmes -2 -513 -139 -( -236 -MB -/ -s -) -40 -902 -( -14545 -MB -/ -s -) -- -2 -472 -237 -- -98 -. -37 -% -sherlock -: -: -name_holmes_nocase -2 -636 -441 -( -225 -MB -/ -s -) -198 -658 -( -2994 -MB -/ -s -) -- -2 -437 -783 -- -92 -. -46 -% -sherlock -: -: -name_sherlock -2 -015 -753 -( -295 -MB -/ -s -) -68 -924 -( -8631 -MB -/ -s -) -- -1 -946 -829 -- -96 -. -58 -% -sherlock -: -: -name_sherlock_holmes -2 -180 -684 -( -272 -MB -/ -s -) -31 -640 -( -18803 -MB -/ -s -) -- -2 -149 -044 -- -98 -. -55 -% -sherlock -: -: -name_sherlock_holmes_nocase -2 -306 -664 -( -257 -MB -/ -s -) -173 -522 -( -3428 -MB -/ -s -) -- -2 -133 -142 -- -92 -. -48 -% -sherlock -: -: -name_sherlock_nocase -2 -065 -630 -( -288 -MB -/ -s -) -170 -888 -( -3481 -MB -/ -s -) -- -1 -894 -742 -- -91 -. -73 -% -sherlock -: -: -name_whitespace -2 -266 -188 -( -262 -MB -/ -s -) -84 -314 -( -7056 -MB -/ -s -) -- -2 -181 -874 -- -96 -. -28 -% -sherlock -: -: -no_match_common -1 -881 -887 -( -316 -MB -/ -s -) -20 -727 -( -28703 -MB -/ -s -) -- -1 -861 -160 -- -98 -. -90 -% -sherlock -: -: -no_match_really_common -1 -804 -352 -( -329 -MB -/ -s -) -381 -476 -( -1559 -MB -/ -s -) -- -1 -422 -876 -- -78 -. -86 -% -sherlock -: -: -no_match_uncommon -1 -809 -300 -( -328 -MB -/ -s -) -20 -786 -( -28621 -MB -/ -s -) -- -1 -788 -514 -- -98 -. -85 -% -sherlock -: -: -quotes -9 -682 -507 -( -61 -MB -/ -s -) -531 -487 -( -1119 -MB -/ -s -) -- -9 -151 -020 -- -94 -. -51 -% -sherlock -: -: -repeated_class_negation -68 -600 -251 -( -8 -MB -/ -s -) -85 -881 -944 -( -6 -MB -/ -s -) -17 -281 -693 -25 -. -19 -% -sherlock -: -: -the_lower -6 -849 -558 -( -86 -MB -/ -s -) -654 -110 -( -909 -MB -/ -s -) -- -6 -195 -448 -- -90 -. -45 -% -sherlock -: -: -the_nocase -7 -354 -742 -( -80 -MB -/ -s -) -474 -456 -( -1253 -MB -/ -s -) -- -6 -880 -286 -- -93 -. -55 -% -sherlock -: -: -the_upper -2 -442 -364 -( -243 -MB -/ -s -) -43 -746 -( -13599 -MB -/ -s -) -- -2 -398 -618 -- -98 -. -21 -% -sherlock -: -: -the_whitespace -9 -210 -338 -( -64 -MB -/ -s -) -1 -181 -974 -( -503 -MB -/ -s -) -- -8 -028 -364 -- -87 -. -17 -% -sherlock -: -: -words -47 -863 -652 -( -12 -MB -/ -s -) -9 -697 -201 -( -61 -MB -/ -s -) -- -38 -166 -451 -- -79 -. -74 -% diff --git a/third_party/rust/regex/record/old-bench-log/06/dphobos-dmd b/third_party/rust/regex/record/old-bench-log/06/dphobos-dmd deleted file mode 100644 index 0037056561737..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/06/dphobos-dmd +++ /dev/null @@ -1,2597 +0,0 @@ -running -95 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -356 -ns -/ -iter -( -+ -/ -- -4 -) -= -1095 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -280 -ns -/ -iter -( -+ -/ -- -18 -) -= -1392 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -351 -ns -/ -iter -( -+ -/ -- -16 -) -= -74 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -274 -ns -/ -iter -( -+ -/ -- -17 -) -= -94 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -810 -ns -/ -iter -( -+ -/ -- -38 -) -= -1297 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -25 -296 -ns -/ -iter -( -+ -/ -- -3 -592 -) -= -41453 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -745 -ns -/ -iter -( -+ -/ -- -60 -) -= -79 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -1 -111 -ns -/ -iter -( -+ -/ -- -82 -) -= -29518 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -730 -ns -/ -iter -( -+ -/ -- -20 -) -= -1430 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -25 -442 -ns -/ -iter -( -+ -/ -- -2 -076 -) -= -41215 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -730 -ns -/ -iter -( -+ -/ -- -79 -) -= -71 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -1 -104 -ns -/ -iter -( -+ -/ -- -93 -) -= -29699 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -18 -238 -ns -/ -iter -( -+ -/ -- -1 -173 -) -= -57 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -19 -302 -344 -ns -/ -iter -( -+ -/ -- -2 -039 -538 -) -= -54 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -2 -508 -ns -/ -iter -( -+ -/ -- -119 -) -= -23 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -666 -948 -ns -/ -iter -( -+ -/ -- -58 -067 -) -= -49 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -196 -ns -/ -iter -( -+ -/ -- -17 -) -= -260 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -82 -532 -ns -/ -iter -( -+ -/ -- -4 -618 -) -= -1211 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -84 -079 -ns -/ -iter -( -+ -/ -- -5 -930 -) -= -1189 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -300 -ns -/ -iter -( -+ -/ -- -41 -) -= -270 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -258 -ns -/ -iter -( -+ -/ -- -16 -) -= -313 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -1 -563 -ns -/ -iter -( -+ -/ -- -171 -) -= -103 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -541 -ns -/ -iter -( -+ -/ -- -127 -) -= -682 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -617 -650 -ns -/ -iter -( -+ -/ -- -59 -618 -) -= -1697 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -985 -ns -/ -iter -( -+ -/ -- -62 -) -= -60 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -19 -948 -ns -/ -iter -( -+ -/ -- -1 -388 -) -= -1644 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -430 -777 -ns -/ -iter -( -+ -/ -- -52 -435 -) -test -misc -: -: -not_literal -. -. -. -bench -: -1 -202 -ns -/ -iter -( -+ -/ -- -60 -) -= -42 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -630 -ns -/ -iter -( -+ -/ -- -45 -) -= -41 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -617 -ns -/ -iter -( -+ -/ -- -60 -) -= -42 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -1 -102 -ns -/ -iter -( -+ -/ -- -38 -) -= -15 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -1 -481 -ns -/ -iter -( -+ -/ -- -44 -) -= -11 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -40 -749 -ns -/ -iter -( -+ -/ -- -2 -027 -) -= -25 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -18 -987 -ns -/ -iter -( -+ -/ -- -1 -419 -) -= -55 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -19 -923 -786 -ns -/ -iter -( -+ -/ -- -1 -499 -750 -) -= -52 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -2 -369 -ns -/ -iter -( -+ -/ -- -115 -) -= -24 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -627 -664 -ns -/ -iter -( -+ -/ -- -30 -507 -) -= -52 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -933 -ns -/ -iter -( -+ -/ -- -700 -) -= -1621 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -28 -886 -666 -ns -/ -iter -( -+ -/ -- -1 -969 -669 -) -= -175 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -6 -722 -884 -ns -/ -iter -( -+ -/ -- -431 -722 -) -= -756 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -6 -923 -833 -ns -/ -iter -( -+ -/ -- -677 -840 -) -= -734 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -6 -917 -738 -ns -/ -iter -( -+ -/ -- -306 -829 -) -= -734 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -6 -914 -593 -ns -/ -iter -( -+ -/ -- -625 -342 -) -= -735 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -6 -582 -793 -ns -/ -iter -( -+ -/ -- -297 -052 -) -= -772 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -6 -528 -804 -ns -/ -iter -( -+ -/ -- -463 -331 -) -= -778 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -6 -886 -457 -ns -/ -iter -( -+ -/ -- -1 -015 -943 -) -= -738 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -6 -789 -493 -ns -/ -iter -( -+ -/ -- -573 -137 -) -= -748 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -6 -533 -609 -ns -/ -iter -( -+ -/ -- -372 -293 -) -= -778 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -6 -536 -845 -ns -/ -iter -( -+ -/ -- -290 -249 -) -= -777 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -6 -509 -834 -ns -/ -iter -( -+ -/ -- -402 -426 -) -= -780 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -5 -746 -639 -ns -/ -iter -( -+ -/ -- -205 -103 -) -= -884 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -7 -661 -372 -ns -/ -iter -( -+ -/ -- -145 -811 -) -= -663 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -12 -801 -668 -ns -/ -iter -( -+ -/ -- -337 -572 -) -= -397 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -11 -109 -679 -ns -/ -iter -( -+ -/ -- -357 -680 -) -= -457 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -11 -238 -093 -ns -/ -iter -( -+ -/ -- -1 -571 -929 -) -= -452 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -8 -453 -224 -ns -/ -iter -( -+ -/ -- -185 -044 -) -= -601 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -8 -784 -446 -ns -/ -iter -( -+ -/ -- -153 -626 -) -= -578 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -11 -151 -797 -ns -/ -iter -( -+ -/ -- -366 -593 -) -= -455 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -22 -206 -248 -ns -/ -iter -( -+ -/ -- -1 -143 -965 -) -= -228 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -23 -458 -512 -ns -/ -iter -( -+ -/ -- -1 -982 -069 -) -= -25 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -23 -040 -796 -ns -/ -iter -( -+ -/ -- -688 -881 -) -= -25 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -1 -035 -156 -ns -/ -iter -( -+ -/ -- -113 -881 -) -= -574 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -118 -126 -447 -ns -/ -iter -( -+ -/ -- -8 -394 -250 -) -= -5 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -16 -122 -434 -ns -/ -iter -( -+ -/ -- -236 -636 -) -= -36 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -22 -239 -435 -ns -/ -iter -( -+ -/ -- -364 -604 -) -= -26 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -92 -002 -273 -ns -/ -iter -( -+ -/ -- -2 -056 -908 -) -= -6 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -90 -778 -580 -ns -/ -iter -( -+ -/ -- -4 -179 -255 -) -= -6 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -3 -392 -415 -ns -/ -iter -( -+ -/ -- -143 -338 -) -= -175 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -428 -636 -ns -/ -iter -( -+ -/ -- -14 -993 -) -= -1387 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -432 -574 -ns -/ -iter -( -+ -/ -- -13 -731 -) -= -1375 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -644 -165 -ns -/ -iter -( -+ -/ -- -15 -049 -) -= -923 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -176 -979 -ns -/ -iter -( -+ -/ -- -105 -694 -) -= -505 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -054 -990 -ns -/ -iter -( -+ -/ -- -91 -909 -) -= -289 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -712 -039 -ns -/ -iter -( -+ -/ -- -36 -911 -) -= -835 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -993 -415 -ns -/ -iter -( -+ -/ -- -27 -355 -) -= -598 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -757 -045 -ns -/ -iter -( -+ -/ -- -29 -126 -) -= -785 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -953 -821 -ns -/ -iter -( -+ -/ -- -37 -252 -) -= -623 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -186 -801 -ns -/ -iter -( -+ -/ -- -6 -676 -) -= -3184 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -539 -857 -ns -/ -iter -( -+ -/ -- -40 -614 -) -= -1102 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -56 -113 -ns -/ -iter -( -+ -/ -- -4 -566 -) -= -10602 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -67 -558 -ns -/ -iter -( -+ -/ -- -6 -746 -) -= -8806 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -429 -123 -ns -/ -iter -( -+ -/ -- -51 -647 -) -= -1386 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -396 -070 -ns -/ -iter -( -+ -/ -- -33 -934 -) -= -1502 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -84 -630 -ns -/ -iter -( -+ -/ -- -6 -285 -) -= -7029 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -292 -844 -ns -/ -iter -( -+ -/ -- -24 -013 -) -= -2031 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -290 -986 -ns -/ -iter -( -+ -/ -- -10 -163 -) -= -2044 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -14 -041 -ns -/ -iter -( -+ -/ -- -599 -) -= -42371 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -6 -489 -945 -ns -/ -iter -( -+ -/ -- -132 -983 -) -= -91 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -49 -479 -000 -ns -/ -iter -( -+ -/ -- -965 -144 -) -= -12 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -2 -268 -881 -ns -/ -iter -( -+ -/ -- -134 -889 -) -= -262 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -2 -906 -824 -ns -/ -iter -( -+ -/ -- -72 -615 -) -= -204 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -211 -138 -ns -/ -iter -( -+ -/ -- -9 -935 -) -= -2817 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -3 -488 -249 -ns -/ -iter -( -+ -/ -- -254 -294 -) -= -170 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -30 -917 -395 -ns -/ -iter -( -+ -/ -- -2 -298 -620 -) -= -19 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -39 -830 -572 -ns -/ -iter -( -+ -/ -- -2 -662 -348 -) -= -14 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -95 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/06/dphobos-dmd-ct b/third_party/rust/regex/record/old-bench-log/06/dphobos-dmd-ct deleted file mode 100644 index 1415dff4f18dc..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/06/dphobos-dmd-ct +++ /dev/null @@ -1,2566 +0,0 @@ -running -94 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -336 -ns -/ -iter -( -+ -/ -- -145 -) -= -1160 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -246 -ns -/ -iter -( -+ -/ -- -27 -) -= -1585 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -313 -ns -/ -iter -( -+ -/ -- -32 -) -= -83 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -248 -ns -/ -iter -( -+ -/ -- -31 -) -= -104 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -792 -ns -/ -iter -( -+ -/ -- -109 -) -= -1327 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -24 -706 -ns -/ -iter -( -+ -/ -- -812 -) -= -42443 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -793 -ns -/ -iter -( -+ -/ -- -77 -) -= -74 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -1 -179 -ns -/ -iter -( -+ -/ -- -55 -) -= -27815 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -720 -ns -/ -iter -( -+ -/ -- -85 -) -= -1450 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -24 -647 -ns -/ -iter -( -+ -/ -- -761 -) -= -42544 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -717 -ns -/ -iter -( -+ -/ -- -28 -) -= -72 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -1 -140 -ns -/ -iter -( -+ -/ -- -116 -) -= -28761 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -19 -153 -ns -/ -iter -( -+ -/ -- -2 -063 -) -= -54 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -19 -966 -822 -ns -/ -iter -( -+ -/ -- -1 -979 -640 -) -= -52 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -2 -617 -ns -/ -iter -( -+ -/ -- -354 -) -= -22 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -621 -150 -ns -/ -iter -( -+ -/ -- -24 -244 -) -= -52 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -194 -ns -/ -iter -( -+ -/ -- -28 -) -= -262 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -83 -293 -ns -/ -iter -( -+ -/ -- -3 -287 -) -= -1200 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -83 -214 -ns -/ -iter -( -+ -/ -- -3 -344 -) -= -1201 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -301 -ns -/ -iter -( -+ -/ -- -38 -) -= -269 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -258 -ns -/ -iter -( -+ -/ -- -27 -) -= -313 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -1 -565 -ns -/ -iter -( -+ -/ -- -187 -) -= -102 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -572 -ns -/ -iter -( -+ -/ -- -230 -) -= -669 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -609 -944 -ns -/ -iter -( -+ -/ -- -23 -088 -) -= -1719 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -980 -ns -/ -iter -( -+ -/ -- -112 -) -= -61 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -20 -058 -ns -/ -iter -( -+ -/ -- -884 -) -= -1635 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -1 -218 -ns -/ -iter -( -+ -/ -- -67 -) -= -41 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -588 -ns -/ -iter -( -+ -/ -- -93 -) -= -44 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -595 -ns -/ -iter -( -+ -/ -- -77 -) -= -43 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -1 -114 -ns -/ -iter -( -+ -/ -- -52 -) -= -15 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -1 -481 -ns -/ -iter -( -+ -/ -- -183 -) -= -11 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -40 -858 -ns -/ -iter -( -+ -/ -- -1 -860 -) -= -25 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -18 -678 -ns -/ -iter -( -+ -/ -- -835 -) -= -56 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -19 -824 -750 -ns -/ -iter -( -+ -/ -- -354 -159 -) -= -52 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -2 -340 -ns -/ -iter -( -+ -/ -- -68 -) -= -25 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -621 -351 -ns -/ -iter -( -+ -/ -- -21 -369 -) -= -52 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -919 -ns -/ -iter -( -+ -/ -- -224 -) -= -1626 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -27 -265 -128 -ns -/ -iter -( -+ -/ -- -1 -416 -486 -) -= -186 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -6 -414 -636 -ns -/ -iter -( -+ -/ -- -696 -943 -) -= -792 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -6 -426 -829 -ns -/ -iter -( -+ -/ -- -206 -773 -) -= -790 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -6 -435 -800 -ns -/ -iter -( -+ -/ -- -439 -175 -) -= -789 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -6 -428 -455 -ns -/ -iter -( -+ -/ -- -214 -961 -) -= -790 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -6 -428 -692 -ns -/ -iter -( -+ -/ -- -681 -910 -) -= -790 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -6 -425 -781 -ns -/ -iter -( -+ -/ -- -129 -718 -) -= -791 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -6 -414 -376 -ns -/ -iter -( -+ -/ -- -151 -827 -) -= -792 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -6 -455 -032 -ns -/ -iter -( -+ -/ -- -423 -915 -) -= -787 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -6 -668 -649 -ns -/ -iter -( -+ -/ -- -686 -734 -) -= -762 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -6 -393 -791 -ns -/ -iter -( -+ -/ -- -172 -533 -) -= -795 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -6 -426 -100 -ns -/ -iter -( -+ -/ -- -175 -951 -) -= -791 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -5 -612 -507 -ns -/ -iter -( -+ -/ -- -128 -406 -) -= -905 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -7 -572 -661 -ns -/ -iter -( -+ -/ -- -159 -047 -) -= -671 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -12 -287 -183 -ns -/ -iter -( -+ -/ -- -378 -305 -) -= -413 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -11 -223 -976 -ns -/ -iter -( -+ -/ -- -1 -191 -250 -) -= -452 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -11 -016 -081 -ns -/ -iter -( -+ -/ -- -714 -537 -) -= -461 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -8 -198 -798 -ns -/ -iter -( -+ -/ -- -471 -338 -) -= -620 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -8 -895 -886 -ns -/ -iter -( -+ -/ -- -885 -690 -) -= -571 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -11 -000 -942 -ns -/ -iter -( -+ -/ -- -886 -538 -) -= -462 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -20 -761 -109 -ns -/ -iter -( -+ -/ -- -629 -876 -) -= -244 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -24 -417 -513 -ns -/ -iter -( -+ -/ -- -2 -359 -425 -) -= -24 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -24 -435 -196 -ns -/ -iter -( -+ -/ -- -2 -164 -187 -) -= -24 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -1 -025 -780 -ns -/ -iter -( -+ -/ -- -121 -876 -) -= -579 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -122 -988 -753 -ns -/ -iter -( -+ -/ -- -7 -606 -302 -) -= -4 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -16 -322 -427 -ns -/ -iter -( -+ -/ -- -321 -746 -) -= -36 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -21 -993 -282 -ns -/ -iter -( -+ -/ -- -434 -365 -) -= -27 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -88 -877 -258 -ns -/ -iter -( -+ -/ -- -504 -024 -) -= -6 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -87 -709 -419 -ns -/ -iter -( -+ -/ -- -659 -859 -) -= -6 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -3 -299 -811 -ns -/ -iter -( -+ -/ -- -78 -850 -) -= -180 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -431 -548 -ns -/ -iter -( -+ -/ -- -54 -716 -) -= -1378 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -470 -052 -ns -/ -iter -( -+ -/ -- -49 -985 -) -= -1265 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -705 -694 -ns -/ -iter -( -+ -/ -- -45 -724 -) -= -843 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -148 -456 -ns -/ -iter -( -+ -/ -- -51 -018 -) -= -518 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -026 -355 -ns -/ -iter -( -+ -/ -- -220 -043 -) -= -293 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -699 -625 -ns -/ -iter -( -+ -/ -- -40 -361 -) -= -850 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -979 -151 -ns -/ -iter -( -+ -/ -- -41 -460 -) -= -607 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -751 -646 -ns -/ -iter -( -+ -/ -- -31 -601 -) -= -791 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -950 -701 -ns -/ -iter -( -+ -/ -- -102 -078 -) -= -625 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -184 -935 -ns -/ -iter -( -+ -/ -- -6 -633 -) -= -3216 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -532 -703 -ns -/ -iter -( -+ -/ -- -33 -919 -) -= -1116 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -55 -468 -ns -/ -iter -( -+ -/ -- -1 -776 -) -= -10725 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -67 -327 -ns -/ -iter -( -+ -/ -- -5 -464 -) -= -8836 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -417 -724 -ns -/ -iter -( -+ -/ -- -45 -520 -) -= -1424 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -392 -285 -ns -/ -iter -( -+ -/ -- -14 -778 -) -= -1516 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -77 -112 -ns -/ -iter -( -+ -/ -- -2 -785 -) -= -7715 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -291 -222 -ns -/ -iter -( -+ -/ -- -10 -477 -) -= -2042 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -291 -393 -ns -/ -iter -( -+ -/ -- -10 -834 -) -= -2041 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -14 -016 -ns -/ -iter -( -+ -/ -- -376 -) -= -42446 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -6 -557 -639 -ns -/ -iter -( -+ -/ -- -158 -929 -) -= -90 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -49 -697 -910 -ns -/ -iter -( -+ -/ -- -773 -749 -) -= -11 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -2 -236 -055 -ns -/ -iter -( -+ -/ -- -72 -024 -) -= -266 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -2 -892 -430 -ns -/ -iter -( -+ -/ -- -89 -222 -) -= -205 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -207 -035 -ns -/ -iter -( -+ -/ -- -8 -624 -) -= -2873 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -3 -435 -267 -ns -/ -iter -( -+ -/ -- -416 -560 -) -= -173 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -31 -751 -871 -ns -/ -iter -( -+ -/ -- -374 -472 -) -= -18 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -38 -793 -659 -ns -/ -iter -( -+ -/ -- -3 -022 -370 -) -= -15 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -94 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/06/dphobos-ldc b/third_party/rust/regex/record/old-bench-log/06/dphobos-ldc deleted file mode 100644 index 00a5db7c53215..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/06/dphobos-ldc +++ /dev/null @@ -1,2587 +0,0 @@ -running -95 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -203 -ns -/ -iter -( -+ -/ -- -13 -) -= -1921 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -126 -ns -/ -iter -( -+ -/ -- -5 -) -= -3095 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -204 -ns -/ -iter -( -+ -/ -- -4 -) -= -127 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -127 -ns -/ -iter -( -+ -/ -- -8 -) -= -204 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -571 -ns -/ -iter -( -+ -/ -- -44 -) -= -1840 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -25 -321 -ns -/ -iter -( -+ -/ -- -421 -) -= -41412 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -553 -ns -/ -iter -( -+ -/ -- -9 -) -= -106 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -971 -ns -/ -iter -( -+ -/ -- -29 -) -= -33774 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -508 -ns -/ -iter -( -+ -/ -- -22 -) -= -2055 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -24 -181 -ns -/ -iter -( -+ -/ -- -704 -) -= -43364 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -494 -ns -/ -iter -( -+ -/ -- -14 -) -= -105 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -892 -ns -/ -iter -( -+ -/ -- -82 -) -= -36757 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -15 -335 -ns -/ -iter -( -+ -/ -- -1 -224 -) -= -68 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -16 -105 -838 -ns -/ -iter -( -+ -/ -- -319 -567 -) -= -65 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -1 -798 -ns -/ -iter -( -+ -/ -- -79 -) -= -32 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -504 -123 -ns -/ -iter -( -+ -/ -- -44 -829 -) -= -65 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -74 -ns -/ -iter -( -+ -/ -- -9 -) -= -689 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -56 -853 -ns -/ -iter -( -+ -/ -- -3 -662 -) -= -1758 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -57 -038 -ns -/ -iter -( -+ -/ -- -2 -532 -) -= -1753 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -140 -ns -/ -iter -( -+ -/ -- -15 -) -= -578 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -126 -ns -/ -iter -( -+ -/ -- -17 -) -= -642 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -1 -407 -ns -/ -iter -( -+ -/ -- -122 -) -= -114 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -199 -ns -/ -iter -( -+ -/ -- -80 -) -= -877 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -558 -323 -ns -/ -iter -( -+ -/ -- -20 -908 -) -= -1878 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -661 -ns -/ -iter -( -+ -/ -- -30 -) -= -90 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -18 -148 -ns -/ -iter -( -+ -/ -- -1 -038 -) -= -1807 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -334 -786 -ns -/ -iter -( -+ -/ -- -18 -234 -) -test -misc -: -: -not_literal -. -. -. -bench -: -1 -347 -ns -/ -iter -( -+ -/ -- -49 -) -= -37 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -499 -ns -/ -iter -( -+ -/ -- -59 -) -= -52 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -522 -ns -/ -iter -( -+ -/ -- -64 -) -= -49 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -804 -ns -/ -iter -( -+ -/ -- -37 -) -= -21 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -1 -260 -ns -/ -iter -( -+ -/ -- -130 -) -= -13 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -37 -726 -ns -/ -iter -( -+ -/ -- -1 -284 -) -= -27 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -15 -246 -ns -/ -iter -( -+ -/ -- -901 -) -= -68 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -16 -187 -692 -ns -/ -iter -( -+ -/ -- -1 -552 -760 -) -= -64 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -1 -882 -ns -/ -iter -( -+ -/ -- -237 -) -= -31 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -541 -567 -ns -/ -iter -( -+ -/ -- -64 -929 -) -= -60 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -576 -ns -/ -iter -( -+ -/ -- -185 -) -= -1748 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -14 -744 -849 -ns -/ -iter -( -+ -/ -- -1 -141 -621 -) -= -344 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -2 -801 -370 -ns -/ -iter -( -+ -/ -- -105 -875 -) -= -1814 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -3 -015 -410 -ns -/ -iter -( -+ -/ -- -446 -982 -) -= -1685 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -2 -923 -557 -ns -/ -iter -( -+ -/ -- -193 -230 -) -= -1738 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -2 -948 -002 -ns -/ -iter -( -+ -/ -- -306 -203 -) -= -1724 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -2 -899 -076 -ns -/ -iter -( -+ -/ -- -174 -958 -) -= -1753 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -2 -908 -685 -ns -/ -iter -( -+ -/ -- -221 -436 -) -= -1747 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -3 -780 -044 -ns -/ -iter -( -+ -/ -- -150 -740 -) -= -1344 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -2 -920 -193 -ns -/ -iter -( -+ -/ -- -142 -191 -) -= -1740 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -2 -918 -785 -ns -/ -iter -( -+ -/ -- -175 -109 -) -= -1741 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -2 -932 -075 -ns -/ -iter -( -+ -/ -- -152 -745 -) -= -1733 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -2 -914 -694 -ns -/ -iter -( -+ -/ -- -176 -327 -) -= -1744 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -5 -172 -617 -ns -/ -iter -( -+ -/ -- -269 -855 -) -= -982 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -6 -770 -702 -ns -/ -iter -( -+ -/ -- -474 -076 -) -= -750 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -11 -124 -754 -ns -/ -iter -( -+ -/ -- -649 -591 -) -= -456 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -9 -751 -982 -ns -/ -iter -( -+ -/ -- -460 -679 -) -= -521 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -9 -791 -229 -ns -/ -iter -( -+ -/ -- -461 -486 -) -= -519 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -7 -417 -031 -ns -/ -iter -( -+ -/ -- -275 -225 -) -= -685 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -7 -873 -097 -ns -/ -iter -( -+ -/ -- -451 -115 -) -= -645 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -9 -707 -683 -ns -/ -iter -( -+ -/ -- -418 -865 -) -= -523 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -18 -696 -520 -ns -/ -iter -( -+ -/ -- -742 -018 -) -= -271 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -22 -314 -084 -ns -/ -iter -( -+ -/ -- -888 -249 -) -= -26 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -22 -501 -540 -ns -/ -iter -( -+ -/ -- -892 -027 -) -= -26 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -929 -372 -ns -/ -iter -( -+ -/ -- -46 -859 -) -= -640 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -125 -548 -613 -ns -/ -iter -( -+ -/ -- -3 -297 -687 -) -= -4 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -18 -023 -803 -ns -/ -iter -( -+ -/ -- -1 -079 -960 -) -= -33 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -21 -809 -497 -ns -/ -iter -( -+ -/ -- -1 -259 -989 -) -= -27 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -39 -512 -315 -ns -/ -iter -( -+ -/ -- -3 -309 -084 -) -= -15 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -37 -160 -354 -ns -/ -iter -( -+ -/ -- -3 -084 -525 -) -= -16 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -721 -867 -ns -/ -iter -( -+ -/ -- -66 -812 -) -= -345 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -378 -307 -ns -/ -iter -( -+ -/ -- -30 -914 -) -= -1572 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -381 -242 -ns -/ -iter -( -+ -/ -- -41 -954 -) -= -1560 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -503 -558 -ns -/ -iter -( -+ -/ -- -46 -044 -) -= -1181 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -912 -340 -ns -/ -iter -( -+ -/ -- -79 -787 -) -= -652 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -515 -048 -ns -/ -iter -( -+ -/ -- -74 -623 -) -= -392 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -580 -652 -ns -/ -iter -( -+ -/ -- -60 -407 -) -= -1024 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -826 -866 -ns -/ -iter -( -+ -/ -- -58 -485 -) -= -719 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -651 -281 -ns -/ -iter -( -+ -/ -- -64 -134 -) -= -913 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -808 -974 -ns -/ -iter -( -+ -/ -- -49 -119 -) -= -735 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -120 -010 -ns -/ -iter -( -+ -/ -- -9 -458 -) -= -4957 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -441 -316 -ns -/ -iter -( -+ -/ -- -56 -990 -) -= -1348 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -39 -935 -ns -/ -iter -( -+ -/ -- -4 -078 -) -= -14897 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -49 -126 -ns -/ -iter -( -+ -/ -- -3 -082 -) -= -12110 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -366 -865 -ns -/ -iter -( -+ -/ -- -18 -520 -) -= -1621 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -349 -337 -ns -/ -iter -( -+ -/ -- -18 -365 -) -= -1703 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -57 -076 -ns -/ -iter -( -+ -/ -- -6 -314 -) -= -10423 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -291 -022 -ns -/ -iter -( -+ -/ -- -30 -143 -) -= -2044 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -286 -214 -ns -/ -iter -( -+ -/ -- -15 -722 -) -= -2078 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -13 -963 -ns -/ -iter -( -+ -/ -- -759 -) -= -42607 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -5 -580 -378 -ns -/ -iter -( -+ -/ -- -295 -941 -) -= -106 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -52 -797 -981 -ns -/ -iter -( -+ -/ -- -2 -731 -805 -) -= -11 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -295 -105 -ns -/ -iter -( -+ -/ -- -62 -365 -) -= -459 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -1 -620 -713 -ns -/ -iter -( -+ -/ -- -73 -503 -) -= -367 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -112 -911 -ns -/ -iter -( -+ -/ -- -5 -843 -) -= -5269 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -441 -986 -ns -/ -iter -( -+ -/ -- -133 -012 -) -= -243 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -26 -478 -327 -ns -/ -iter -( -+ -/ -- -1 -361 -757 -) -= -22 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -23 -948 -872 -ns -/ -iter -( -+ -/ -- -2 -323 -993 -) -= -24 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -95 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/06/dphobos-ldc-ct b/third_party/rust/regex/record/old-bench-log/06/dphobos-ldc-ct deleted file mode 100644 index d9c942e346879..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/06/dphobos-ldc-ct +++ /dev/null @@ -1,2563 +0,0 @@ -running -94 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -189 -ns -/ -iter -( -+ -/ -- -23 -) -= -2063 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -128 -ns -/ -iter -( -+ -/ -- -14 -) -= -3046 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -191 -ns -/ -iter -( -+ -/ -- -20 -) -= -136 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -120 -ns -/ -iter -( -+ -/ -- -13 -) -= -216 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -536 -ns -/ -iter -( -+ -/ -- -49 -) -= -1960 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -24 -516 -ns -/ -iter -( -+ -/ -- -2 -181 -) -= -42772 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -551 -ns -/ -iter -( -+ -/ -- -36 -) -= -107 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -961 -ns -/ -iter -( -+ -/ -- -105 -) -= -34125 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -518 -ns -/ -iter -( -+ -/ -- -59 -) -= -2015 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -25 -352 -ns -/ -iter -( -+ -/ -- -2 -847 -) -= -41361 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -501 -ns -/ -iter -( -+ -/ -- -42 -) -= -103 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -919 -ns -/ -iter -( -+ -/ -- -69 -) -= -35677 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -16 -146 -ns -/ -iter -( -+ -/ -- -1 -124 -) -= -65 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -16 -482 -695 -ns -/ -iter -( -+ -/ -- -805 -077 -) -= -63 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -1 -807 -ns -/ -iter -( -+ -/ -- -173 -) -= -32 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -516 -772 -ns -/ -iter -( -+ -/ -- -33 -884 -) -= -63 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -77 -ns -/ -iter -( -+ -/ -- -9 -) -= -662 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -56 -900 -ns -/ -iter -( -+ -/ -- -3 -087 -) -= -1757 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -57 -364 -ns -/ -iter -( -+ -/ -- -4 -166 -) -= -1743 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -156 -ns -/ -iter -( -+ -/ -- -21 -) -= -519 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -121 -ns -/ -iter -( -+ -/ -- -12 -) -= -669 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -1 -515 -ns -/ -iter -( -+ -/ -- -207 -) -= -106 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -186 -ns -/ -iter -( -+ -/ -- -120 -) -= -887 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -559 -677 -ns -/ -iter -( -+ -/ -- -59 -284 -) -= -1873 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -657 -ns -/ -iter -( -+ -/ -- -86 -) -= -91 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -18 -142 -ns -/ -iter -( -+ -/ -- -915 -) -= -1807 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -1 -319 -ns -/ -iter -( -+ -/ -- -128 -) -= -38 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -509 -ns -/ -iter -( -+ -/ -- -56 -) -= -51 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -517 -ns -/ -iter -( -+ -/ -- -38 -) -= -50 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -783 -ns -/ -iter -( -+ -/ -- -83 -) -= -21 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -1 -239 -ns -/ -iter -( -+ -/ -- -98 -) -= -13 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -40 -580 -ns -/ -iter -( -+ -/ -- -3 -041 -) -= -25 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -15 -162 -ns -/ -iter -( -+ -/ -- -652 -) -= -69 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -16 -065 -920 -ns -/ -iter -( -+ -/ -- -886 -245 -) -= -65 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -1 -829 -ns -/ -iter -( -+ -/ -- -90 -) -= -32 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -520 -572 -ns -/ -iter -( -+ -/ -- -88 -290 -) -= -62 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -423 -ns -/ -iter -( -+ -/ -- -493 -) -= -1808 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -14 -658 -357 -ns -/ -iter -( -+ -/ -- -1 -784 -941 -) -= -346 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -2 -984 -959 -ns -/ -iter -( -+ -/ -- -422 -186 -) -= -1703 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -2 -836 -747 -ns -/ -iter -( -+ -/ -- -274 -300 -) -= -1791 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -2 -809 -880 -ns -/ -iter -( -+ -/ -- -309 -516 -) -= -1809 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -2 -868 -765 -ns -/ -iter -( -+ -/ -- -435 -511 -) -= -1771 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -2 -837 -000 -ns -/ -iter -( -+ -/ -- -319 -135 -) -= -1791 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -2 -856 -540 -ns -/ -iter -( -+ -/ -- -320 -458 -) -= -1779 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -2 -820 -953 -ns -/ -iter -( -+ -/ -- -340 -996 -) -= -1802 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -3 -588 -607 -ns -/ -iter -( -+ -/ -- -462 -158 -) -= -1416 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -2 -896 -235 -ns -/ -iter -( -+ -/ -- -165 -525 -) -= -1755 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -2 -982 -961 -ns -/ -iter -( -+ -/ -- -315 -768 -) -= -1704 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -3 -024 -311 -ns -/ -iter -( -+ -/ -- -300 -274 -) -= -1680 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -5 -234 -342 -ns -/ -iter -( -+ -/ -- -269 -577 -) -= -971 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -6 -463 -683 -ns -/ -iter -( -+ -/ -- -532 -663 -) -= -786 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -10 -720 -523 -ns -/ -iter -( -+ -/ -- -414 -684 -) -= -474 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -9 -882 -647 -ns -/ -iter -( -+ -/ -- -297 -904 -) -= -514 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -9 -664 -151 -ns -/ -iter -( -+ -/ -- -659 -587 -) -= -526 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -7 -174 -368 -ns -/ -iter -( -+ -/ -- -322 -025 -) -= -708 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -7 -605 -668 -ns -/ -iter -( -+ -/ -- -411 -605 -) -= -668 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -9 -580 -481 -ns -/ -iter -( -+ -/ -- -373 -332 -) -= -530 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -18 -270 -186 -ns -/ -iter -( -+ -/ -- -986 -510 -) -= -278 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -21 -982 -853 -ns -/ -iter -( -+ -/ -- -1 -032 -853 -) -= -27 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -21 -947 -949 -ns -/ -iter -( -+ -/ -- -848 -014 -) -= -27 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -909 -691 -ns -/ -iter -( -+ -/ -- -48 -847 -) -= -653 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -124 -771 -191 -ns -/ -iter -( -+ -/ -- -8 -084 -768 -) -= -4 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -17 -864 -129 -ns -/ -iter -( -+ -/ -- -1 -343 -114 -) -= -33 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -21 -009 -249 -ns -/ -iter -( -+ -/ -- -452 -676 -) -= -28 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -37 -888 -421 -ns -/ -iter -( -+ -/ -- -2 -482 -541 -) -= -15 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -37 -029 -883 -ns -/ -iter -( -+ -/ -- -481 -280 -) -= -16 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -627 -107 -ns -/ -iter -( -+ -/ -- -51 -063 -) -= -365 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -370 -850 -ns -/ -iter -( -+ -/ -- -15 -384 -) -= -1604 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -371 -780 -ns -/ -iter -( -+ -/ -- -28 -486 -) -= -1600 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -506 -859 -ns -/ -iter -( -+ -/ -- -17 -553 -) -= -1173 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -915 -729 -ns -/ -iter -( -+ -/ -- -99 -429 -) -= -649 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -512 -050 -ns -/ -iter -( -+ -/ -- -186 -130 -) -= -393 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -578 -710 -ns -/ -iter -( -+ -/ -- -18 -089 -) -= -1028 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -752 -912 -ns -/ -iter -( -+ -/ -- -51 -342 -) -= -790 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -595 -803 -ns -/ -iter -( -+ -/ -- -15 -053 -) -= -998 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -730 -149 -ns -/ -iter -( -+ -/ -- -40 -662 -) -= -814 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -115 -596 -ns -/ -iter -( -+ -/ -- -4 -597 -) -= -5146 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -429 -765 -ns -/ -iter -( -+ -/ -- -16 -685 -) -= -1384 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -38 -985 -ns -/ -iter -( -+ -/ -- -2 -195 -) -= -15260 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -49 -610 -ns -/ -iter -( -+ -/ -- -2 -005 -) -= -11992 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -374 -335 -ns -/ -iter -( -+ -/ -- -37 -062 -) -= -1589 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -355 -559 -ns -/ -iter -( -+ -/ -- -40 -873 -) -= -1673 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -57 -616 -ns -/ -iter -( -+ -/ -- -5 -124 -) -= -10325 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -284 -228 -ns -/ -iter -( -+ -/ -- -29 -087 -) -= -2093 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -287 -263 -ns -/ -iter -( -+ -/ -- -22 -755 -) -= -2071 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -14 -030 -ns -/ -iter -( -+ -/ -- -526 -) -= -42404 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -5 -563 -019 -ns -/ -iter -( -+ -/ -- -537 -611 -) -= -106 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -54 -831 -275 -ns -/ -iter -( -+ -/ -- -5 -982 -214 -) -= -10 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -298 -205 -ns -/ -iter -( -+ -/ -- -73 -265 -) -= -458 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -1 -572 -579 -ns -/ -iter -( -+ -/ -- -63 -536 -) -= -378 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -112 -795 -ns -/ -iter -( -+ -/ -- -4 -179 -) -= -5274 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -630 -026 -ns -/ -iter -( -+ -/ -- -227 -760 -) -= -226 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -26 -975 -356 -ns -/ -iter -( -+ -/ -- -2 -531 -982 -) -= -22 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -23 -116 -326 -ns -/ -iter -( -+ -/ -- -458 -721 -) -= -25 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -94 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/06/pcre1 b/third_party/rust/regex/record/old-bench-log/06/pcre1 deleted file mode 100644 index ff60f179d9e5d..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/06/pcre1 +++ /dev/null @@ -1,2523 +0,0 @@ -running -93 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -32 -ns -/ -iter -( -+ -/ -- -38 -) -= -12187 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -1 -) -= -16956 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -30 -ns -/ -iter -( -+ -/ -- -1 -) -= -866 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -0 -) -= -1130 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -261 -ns -/ -iter -( -+ -/ -- -21 -) -= -4026 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -202 -218 -ns -/ -iter -( -+ -/ -- -16 -050 -) -= -5185 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -3 -) -= -1204 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -6 -305 -ns -/ -iter -( -+ -/ -- -448 -) -= -5201 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -245 -ns -/ -iter -( -+ -/ -- -5 -) -= -4261 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -198 -215 -ns -/ -iter -( -+ -/ -- -10 -461 -) -= -5290 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -1 -) -= -1061 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -6 -309 -ns -/ -iter -( -+ -/ -- -358 -) -= -5197 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -306 -ns -/ -iter -( -+ -/ -- -50 -) -= -804 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -1 -219 -034 -ns -/ -iter -( -+ -/ -- -92 -693 -) -= -860 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -95 -ns -/ -iter -( -+ -/ -- -7 -) -= -621 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -37 -713 -ns -/ -iter -( -+ -/ -- -948 -) -= -869 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -29 -ns -/ -iter -( -+ -/ -- -1 -) -= -1758 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -548 -012 -ns -/ -iter -( -+ -/ -- -26 -029 -) -= -182 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -538 -536 -ns -/ -iter -( -+ -/ -- -54 -612 -) -= -185 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -94 -ns -/ -iter -( -+ -/ -- -3 -) -= -861 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -29 -ns -/ -iter -( -+ -/ -- -1 -) -= -2793 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -370 -ns -/ -iter -( -+ -/ -- -19 -) -= -435 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -256 -ns -/ -iter -( -+ -/ -- -13 -) -= -4109 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -207 -655 -ns -/ -iter -( -+ -/ -- -9 -168 -) -= -5049 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -5 -) -= -1176 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -6 -144 -ns -/ -iter -( -+ -/ -- -327 -) -= -5337 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -166 -ns -/ -iter -( -+ -/ -- -14 -) -= -307 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -27 -ns -/ -iter -( -+ -/ -- -2 -) -= -962 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -29 -ns -/ -iter -( -+ -/ -- -1 -) -= -896 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -2 -) -= -309 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -3 -) -= -309 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -4 -404 -ns -/ -iter -( -+ -/ -- -346 -) -= -236 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -365 -ns -/ -iter -( -+ -/ -- -52 -) -= -769 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -118 -777 -ns -/ -iter -( -+ -/ -- -72 -209 -) -= -937 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -112 -ns -/ -iter -( -+ -/ -- -4 -) -= -526 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -41 -164 -ns -/ -iter -( -+ -/ -- -2 -351 -) -= -796 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -413 -ns -/ -iter -( -+ -/ -- -304 -) -= -1812 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -2 -802 -109 -ns -/ -iter -( -+ -/ -- -129 -768 -) -= -1814 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -1 -263 -401 -ns -/ -iter -( -+ -/ -- -54 -374 -) -= -4023 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -1 -254 -544 -ns -/ -iter -( -+ -/ -- -101 -656 -) -= -4051 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -1 -408 -321 -ns -/ -iter -( -+ -/ -- -121 -522 -) -= -3609 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -1 -364 -704 -ns -/ -iter -( -+ -/ -- -106 -508 -) -= -3724 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -1 -258 -687 -ns -/ -iter -( -+ -/ -- -84 -504 -) -= -4038 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -1 -301 -822 -ns -/ -iter -( -+ -/ -- -62 -866 -) -= -3904 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -1 -338 -338 -ns -/ -iter -( -+ -/ -- -313 -996 -) -= -3798 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -1 -349 -310 -ns -/ -iter -( -+ -/ -- -117 -181 -) -= -3767 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -1 -390 -090 -ns -/ -iter -( -+ -/ -- -210 -430 -) -= -3656 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -1 -293 -481 -ns -/ -iter -( -+ -/ -- -38 -532 -) -= -3930 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -1 -245 -652 -ns -/ -iter -( -+ -/ -- -58 -026 -) -= -4080 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -15 -239 -324 -ns -/ -iter -( -+ -/ -- -414 -621 -) -= -333 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -16 -489 -922 -ns -/ -iter -( -+ -/ -- -825 -229 -) -= -308 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -19 -945 -871 -ns -/ -iter -( -+ -/ -- -665 -046 -) -= -254 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -18 -604 -011 -ns -/ -iter -( -+ -/ -- -712 -670 -) -= -273 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -17 -084 -919 -ns -/ -iter -( -+ -/ -- -1 -379 -879 -) -= -297 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -16 -918 -130 -ns -/ -iter -( -+ -/ -- -975 -620 -) -= -300 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -19 -114 -194 -ns -/ -iter -( -+ -/ -- -857 -330 -) -= -265 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -23 -831 -138 -ns -/ -iter -( -+ -/ -- -878 -576 -) -= -213 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -21 -835 -777 -ns -/ -iter -( -+ -/ -- -1 -339 -143 -) -= -232 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -4 -401 -834 -ns -/ -iter -( -+ -/ -- -218 -696 -) -= -135 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -4 -436 -717 -ns -/ -iter -( -+ -/ -- -109 -324 -) -= -134 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -497 -667 -ns -/ -iter -( -+ -/ -- -19 -212 -) -= -1195 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -1 -852 -390 -ns -/ -iter -( -+ -/ -- -77 -888 -) -= -321 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -4 -775 -078 -ns -/ -iter -( -+ -/ -- -152 -556 -) -= -124 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -13 -888 -750 -ns -/ -iter -( -+ -/ -- -668 -831 -) -= -42 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -13 -452 -405 -ns -/ -iter -( -+ -/ -- -453 -184 -) -= -44 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -870 -502 -ns -/ -iter -( -+ -/ -- -57 -825 -) -= -318 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -198 -649 -ns -/ -iter -( -+ -/ -- -9 -080 -) -= -2994 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -464 -513 -ns -/ -iter -( -+ -/ -- -29 -935 -) -= -1280 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -470 -746 -ns -/ -iter -( -+ -/ -- -12 -931 -) -= -1263 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -874 -352 -ns -/ -iter -( -+ -/ -- -38 -618 -) -= -680 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -821 -106 -ns -/ -iter -( -+ -/ -- -113 -055 -) -= -210 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -78 -753 -ns -/ -iter -( -+ -/ -- -3 -111 -) -= -7554 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -596 -406 -ns -/ -iter -( -+ -/ -- -62 -919 -) -= -372 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -655 -870 -ns -/ -iter -( -+ -/ -- -32 -597 -) -= -907 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -732 -595 -ns -/ -iter -( -+ -/ -- -75 -827 -) -= -343 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -400 -037 -ns -/ -iter -( -+ -/ -- -16 -935 -) -= -1487 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -501 -467 -ns -/ -iter -( -+ -/ -- -20 -805 -) -= -1186 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -267 -873 -ns -/ -iter -( -+ -/ -- -10 -199 -) -= -2220 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -202 -107 -ns -/ -iter -( -+ -/ -- -10 -314 -) -= -2943 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -070 -780 -ns -/ -iter -( -+ -/ -- -43 -144 -) -= -555 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -074 -139 -ns -/ -iter -( -+ -/ -- -48 -270 -) -= -553 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -271 -978 -ns -/ -iter -( -+ -/ -- -10 -137 -) -= -2187 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -411 -484 -ns -/ -iter -( -+ -/ -- -13 -213 -) -= -1445 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -403 -709 -ns -/ -iter -( -+ -/ -- -12 -415 -) -= -1473 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -27 -730 -ns -/ -iter -( -+ -/ -- -928 -) -= -21454 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -515 -141 -ns -/ -iter -( -+ -/ -- -17 -799 -) -= -1154 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -5 -842 -243 -ns -/ -iter -( -+ -/ -- -282 -478 -) -= -101 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -725 -059 -ns -/ -iter -( -+ -/ -- -36 -233 -) -= -820 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -812 -888 -ns -/ -iter -( -+ -/ -- -34 -200 -) -= -731 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -56 -746 -ns -/ -iter -( -+ -/ -- -2 -186 -) -= -10484 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -920 -705 -ns -/ -iter -( -+ -/ -- -37 -325 -) -= -646 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -5 -625 -614 -ns -/ -iter -( -+ -/ -- -199 -408 -) -= -105 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -7 -122 -561 -ns -/ -iter -( -+ -/ -- -161 -013 -) -= -83 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -93 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/06/pcre2 b/third_party/rust/regex/record/old-bench-log/06/pcre2 deleted file mode 100644 index be6e25efaa5ce..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/06/pcre2 +++ /dev/null @@ -1,2511 +0,0 @@ -running -93 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -24375 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -1 -) -= -30000 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -1 -) -= -1625 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -1 -) -= -2000 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -104 -ns -/ -iter -( -+ -/ -- -5 -) -= -10105 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -64 -102 -ns -/ -iter -( -+ -/ -- -4 -103 -) -= -16358 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -32 -ns -/ -iter -( -+ -/ -- -4 -) -= -1843 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -2 -042 -ns -/ -iter -( -+ -/ -- -152 -) -= -16060 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -102 -ns -/ -iter -( -+ -/ -- -11 -) -= -10235 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -63 -117 -ns -/ -iter -( -+ -/ -- -4 -547 -) -= -16613 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -33 -ns -/ -iter -( -+ -/ -- -4 -) -= -1575 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -2 -019 -ns -/ -iter -( -+ -/ -- -181 -) -= -16239 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -236 -ns -/ -iter -( -+ -/ -- -82 -) -= -850 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -1 -041 -354 -ns -/ -iter -( -+ -/ -- -39 -123 -) -= -1006 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -8 -) -= -686 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -33 -054 -ns -/ -iter -( -+ -/ -- -1 -813 -) -= -992 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -2 -) -= -2550 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -501 -732 -ns -/ -iter -( -+ -/ -- -52 -173 -) -= -199 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -515 -127 -ns -/ -iter -( -+ -/ -- -48 -790 -) -= -194 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -7 -) -= -1472 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -2 -) -= -4263 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -342 -ns -/ -iter -( -+ -/ -- -60 -) -= -470 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -106 -ns -/ -iter -( -+ -/ -- -4 -) -= -9924 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -63 -011 -ns -/ -iter -( -+ -/ -- -4 -942 -) -= -16641 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -32 -ns -/ -iter -( -+ -/ -- -3 -) -= -1875 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -2 -068 -ns -/ -iter -( -+ -/ -- -189 -) -= -15858 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -147 -ns -/ -iter -( -+ -/ -- -13 -) -= -346 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -1 -) -= -1733 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -1 -) -= -1733 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -3 -) -= -404 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -5 -) -= -395 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -4 -356 -ns -/ -iter -( -+ -/ -- -499 -) -= -238 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -196 -ns -/ -iter -( -+ -/ -- -113 -) -= -878 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -070 -155 -ns -/ -iter -( -+ -/ -- -90 -895 -) -= -979 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -93 -ns -/ -iter -( -+ -/ -- -12 -) -= -634 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -33 -521 -ns -/ -iter -( -+ -/ -- -2 -663 -) -= -978 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -3 -065 -ns -/ -iter -( -+ -/ -- -393 -) -= -2610 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -1 -891 -736 -ns -/ -iter -( -+ -/ -- -232 -990 -) -= -2687 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -920 -853 -ns -/ -iter -( -+ -/ -- -75 -276 -) -= -5520 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -892 -533 -ns -/ -iter -( -+ -/ -- -77 -177 -) -= -5695 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -869 -335 -ns -/ -iter -( -+ -/ -- -75 -754 -) -= -5847 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -901 -876 -ns -/ -iter -( -+ -/ -- -75 -287 -) -= -5636 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -870 -185 -ns -/ -iter -( -+ -/ -- -53 -535 -) -= -5841 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -859 -924 -ns -/ -iter -( -+ -/ -- -63 -888 -) -= -5911 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -886 -748 -ns -/ -iter -( -+ -/ -- -87 -929 -) -= -5732 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -870 -428 -ns -/ -iter -( -+ -/ -- -47 -015 -) -= -5840 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -865 -513 -ns -/ -iter -( -+ -/ -- -41 -507 -) -= -5873 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -870 -030 -ns -/ -iter -( -+ -/ -- -110 -449 -) -= -5842 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -875 -649 -ns -/ -iter -( -+ -/ -- -32 -905 -) -= -5805 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -9 -234 -989 -ns -/ -iter -( -+ -/ -- -127 -076 -) -= -550 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -11 -759 -628 -ns -/ -iter -( -+ -/ -- -575 -788 -) -= -432 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -11 -229 -965 -ns -/ -iter -( -+ -/ -- -522 -759 -) -= -452 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -10 -040 -716 -ns -/ -iter -( -+ -/ -- -309 -357 -) -= -506 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -10 -052 -052 -ns -/ -iter -( -+ -/ -- -522 -338 -) -= -505 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -10 -719 -366 -ns -/ -iter -( -+ -/ -- -577 -988 -) -= -474 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -11 -076 -094 -ns -/ -iter -( -+ -/ -- -1 -291 -237 -) -= -458 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -11 -855 -290 -ns -/ -iter -( -+ -/ -- -667 -429 -) -= -428 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -12 -531 -240 -ns -/ -iter -( -+ -/ -- -606 -198 -) -= -405 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -4 -169 -656 -ns -/ -iter -( -+ -/ -- -222 -900 -) -= -142 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -4 -144 -394 -ns -/ -iter -( -+ -/ -- -170 -133 -) -= -143 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -74 -437 -ns -/ -iter -( -+ -/ -- -4 -266 -) -= -7992 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -1 -731 -507 -ns -/ -iter -( -+ -/ -- -162 -892 -) -= -343 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -4 -418 -194 -ns -/ -iter -( -+ -/ -- -240 -220 -) -= -134 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -8 -847 -041 -ns -/ -iter -( -+ -/ -- -392 -402 -) -= -67 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -8 -547 -432 -ns -/ -iter -( -+ -/ -- -304 -256 -) -= -69 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -584 -248 -ns -/ -iter -( -+ -/ -- -51 -331 -) -= -375 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -38 -057 -ns -/ -iter -( -+ -/ -- -1 -666 -) -= -15632 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -50 -415 -ns -/ -iter -( -+ -/ -- -3 -173 -) -= -11800 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -66 -062 -ns -/ -iter -( -+ -/ -- -2 -807 -) -= -9005 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -720 -097 -ns -/ -iter -( -+ -/ -- -32 -351 -) -= -826 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -591 -049 -ns -/ -iter -( -+ -/ -- -86 -537 -) -= -229 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -65 -860 -ns -/ -iter -( -+ -/ -- -2 -780 -) -= -9033 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -204 -839 -ns -/ -iter -( -+ -/ -- -41 -087 -) -= -493 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -615 -483 -ns -/ -iter -( -+ -/ -- -24 -177 -) -= -966 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -467 -461 -ns -/ -iter -( -+ -/ -- -71 -032 -) -= -405 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -48 -997 -ns -/ -iter -( -+ -/ -- -2 -471 -) -= -12142 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -88 -549 -ns -/ -iter -( -+ -/ -- -4 -814 -) -= -6718 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -38 -309 -ns -/ -iter -( -+ -/ -- -1 -354 -) -= -15529 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -39 -062 -ns -/ -iter -( -+ -/ -- -4 -253 -) -= -15230 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -713 -355 -ns -/ -iter -( -+ -/ -- -77 -990 -) -= -833 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -719 -747 -ns -/ -iter -( -+ -/ -- -85 -736 -) -= -826 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -39 -161 -ns -/ -iter -( -+ -/ -- -3 -678 -) -= -15191 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -35 -574 -ns -/ -iter -( -+ -/ -- -3 -433 -) -= -16723 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -56 -847 -ns -/ -iter -( -+ -/ -- -7 -068 -) -= -10465 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -36 -185 -ns -/ -iter -( -+ -/ -- -4 -938 -) -= -16441 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -454 -135 -ns -/ -iter -( -+ -/ -- -18 -816 -) -= -1310 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -5 -724 -068 -ns -/ -iter -( -+ -/ -- -342 -211 -) -= -103 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -256 -190 -ns -/ -iter -( -+ -/ -- -25 -452 -) -= -2322 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -284 -080 -ns -/ -iter -( -+ -/ -- -17 -165 -) -= -2094 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -56 -120 -ns -/ -iter -( -+ -/ -- -2 -826 -) -= -10601 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -456 -734 -ns -/ -iter -( -+ -/ -- -23 -405 -) -= -1302 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -5 -079 -288 -ns -/ -iter -( -+ -/ -- -214 -895 -) -= -117 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -5 -200 -092 -ns -/ -iter -( -+ -/ -- -250 -085 -) -= -114 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -93 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/06/re2 b/third_party/rust/regex/record/old-bench-log/06/re2 deleted file mode 100644 index d814121b7df50..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/06/re2 +++ /dev/null @@ -1,2622 +0,0 @@ -running -96 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -73 -ns -/ -iter -( -+ -/ -- -8 -) -= -5342 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -1 -) -= -24375 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -73 -ns -/ -iter -( -+ -/ -- -9 -) -= -356 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -1 -) -= -1625 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -119 -ns -/ -iter -( -+ -/ -- -11 -) -= -8831 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -25 -312 -ns -/ -iter -( -+ -/ -- -875 -) -= -41427 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -112 -ns -/ -iter -( -+ -/ -- -5 -) -= -526 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -534 -ns -/ -iter -( -+ -/ -- -43 -) -= -61413 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -109 -ns -/ -iter -( -+ -/ -- -9 -) -= -9577 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -23 -892 -ns -/ -iter -( -+ -/ -- -715 -) -= -43889 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -102 -ns -/ -iter -( -+ -/ -- -8 -) -= -509 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -519 -ns -/ -iter -( -+ -/ -- -54 -) -= -63175 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -859 -ns -/ -iter -( -+ -/ -- -202 -) -= -565 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -1 -871 -446 -ns -/ -iter -( -+ -/ -- -99 -961 -) -= -560 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -162 -ns -/ -iter -( -+ -/ -- -20 -) -= -364 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -57 -459 -ns -/ -iter -( -+ -/ -- -4 -672 -) -= -570 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -70 -ns -/ -iter -( -+ -/ -- -8 -) -= -728 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -130 -995 -ns -/ -iter -( -+ -/ -- -4 -935 -) -= -763 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -129 -668 -ns -/ -iter -( -+ -/ -- -8 -852 -) -= -771 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -195 -ns -/ -iter -( -+ -/ -- -16 -) -= -415 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -194 -ns -/ -iter -( -+ -/ -- -22 -) -= -417 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -630 -ns -/ -iter -( -+ -/ -- -61 -) -= -255 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -699 -ns -/ -iter -( -+ -/ -- -147 -) -= -619 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -1 -633 -131 -ns -/ -iter -( -+ -/ -- -65 -889 -) -= -642 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -169 -ns -/ -iter -( -+ -/ -- -18 -) -= -355 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -51 -313 -ns -/ -iter -( -+ -/ -- -1 -855 -) -= -639 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -216 -ns -/ -iter -( -+ -/ -- -13 -) -= -462 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -140 -ns -/ -iter -( -+ -/ -- -6 -) -= -364 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -71 -ns -/ -iter -( -+ -/ -- -2 -) -= -366 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -109 -ns -/ -iter -( -+ -/ -- -9 -) -= -238 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -99 -ns -/ -iter -( -+ -/ -- -7 -) -= -171 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -96 -ns -/ -iter -( -+ -/ -- -5 -) -= -177 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -1 -405 -ns -/ -iter -( -+ -/ -- -134 -) -= -740 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -875 -ns -/ -iter -( -+ -/ -- -168 -) -= -560 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -853 -207 -ns -/ -iter -( -+ -/ -- -103 -218 -) -= -565 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -157 -ns -/ -iter -( -+ -/ -- -11 -) -= -375 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -57 -880 -ns -/ -iter -( -+ -/ -- -5 -319 -) -= -566 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -12 -686 -ns -/ -iter -( -+ -/ -- -536 -) -= -630 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -28 -761 -913 -ns -/ -iter -( -+ -/ -- -1 -447 -326 -) -= -176 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -4 -629 -782 -ns -/ -iter -( -+ -/ -- -142 -214 -) -= -1097 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -4 -692 -819 -ns -/ -iter -( -+ -/ -- -156 -805 -) -= -1083 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -4 -652 -438 -ns -/ -iter -( -+ -/ -- -206 -457 -) -= -1092 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -4 -682 -943 -ns -/ -iter -( -+ -/ -- -176 -335 -) -= -1085 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -4 -646 -162 -ns -/ -iter -( -+ -/ -- -241 -873 -) -= -1094 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -4 -653 -380 -ns -/ -iter -( -+ -/ -- -188 -899 -) -= -1092 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -4 -770 -480 -ns -/ -iter -( -+ -/ -- -238 -930 -) -= -1065 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -4 -671 -427 -ns -/ -iter -( -+ -/ -- -286 -241 -) -= -1088 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -4 -658 -214 -ns -/ -iter -( -+ -/ -- -210 -723 -) -= -1091 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -4 -909 -600 -ns -/ -iter -( -+ -/ -- -417 -894 -) -= -1035 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -4 -910 -285 -ns -/ -iter -( -+ -/ -- -587 -024 -) -= -1035 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -20 -895 -772 -ns -/ -iter -( -+ -/ -- -2 -313 -771 -) -= -243 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -20 -465 -984 -ns -/ -iter -( -+ -/ -- -1 -913 -613 -) -= -248 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -19 -469 -527 -ns -/ -iter -( -+ -/ -- -1 -367 -226 -) -= -261 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -21 -662 -238 -ns -/ -iter -( -+ -/ -- -1 -489 -235 -) -= -234 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -21 -808 -098 -ns -/ -iter -( -+ -/ -- -2 -294 -522 -) -= -233 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -21 -208 -952 -ns -/ -iter -( -+ -/ -- -986 -848 -) -= -239 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -20 -289 -473 -ns -/ -iter -( -+ -/ -- -595 -084 -) -= -250 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -17 -765 -356 -ns -/ -iter -( -+ -/ -- -503 -529 -) -= -286 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -13 -222 -010 -ns -/ -iter -( -+ -/ -- -509 -278 -) -= -384 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -1 -313 -676 -ns -/ -iter -( -+ -/ -- -52 -992 -) -= -452 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -1 -337 -432 -ns -/ -iter -( -+ -/ -- -37 -054 -) -= -444 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -6 -080 -272 -ns -/ -iter -( -+ -/ -- -110 -011 -) -= -97 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -2 -395 -932 -ns -/ -iter -( -+ -/ -- -123 -521 -) -= -248 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -1 -052 -245 -ns -/ -iter -( -+ -/ -- -33 -929 -) -= -565 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -1 -063 -007 -ns -/ -iter -( -+ -/ -- -34 -462 -) -= -559 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -2 -703 -395 -ns -/ -iter -( -+ -/ -- -63 -263 -) -= -220 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -608 -756 -ns -/ -iter -( -+ -/ -- -42 -100 -) -= -369 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -68 -220 -129 -ns -/ -iter -( -+ -/ -- -3 -602 -216 -) -= -8 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -67 -390 -101 -ns -/ -iter -( -+ -/ -- -6 -032 -867 -) -= -8 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -3 -708 -482 -ns -/ -iter -( -+ -/ -- -235 -128 -) -= -160 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -2 -816 -517 -ns -/ -iter -( -+ -/ -- -99 -081 -) -= -211 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -53 -193 -ns -/ -iter -( -+ -/ -- -1 -575 -) -= -11184 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -1 -133 -704 -ns -/ -iter -( -+ -/ -- -36 -634 -) -= -524 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -227 -785 -ns -/ -iter -( -+ -/ -- -31 -742 -) -= -484 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -451 -285 -ns -/ -iter -( -+ -/ -- -103 -766 -) -= -242 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -1 -168 -955 -ns -/ -iter -( -+ -/ -- -87 -785 -) -= -508 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -699 -899 -ns -/ -iter -( -+ -/ -- -91 -762 -) -= -349 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -1 -167 -232 -ns -/ -iter -( -+ -/ -- -51 -695 -) -= -509 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -805 -463 -ns -/ -iter -( -+ -/ -- -74 -631 -) -= -329 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -108 -195 -ns -/ -iter -( -+ -/ -- -3 -815 -) -= -5498 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -360 -092 -ns -/ -iter -( -+ -/ -- -60 -416 -) -= -437 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -40 -376 -ns -/ -iter -( -+ -/ -- -5 -104 -) -= -14734 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -41 -361 -ns -/ -iter -( -+ -/ -- -2 -553 -) -= -14383 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -317 -594 -ns -/ -iter -( -+ -/ -- -168 -248 -) -= -451 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -284 -026 -ns -/ -iter -( -+ -/ -- -92 -188 -) -= -463 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -44 -973 -ns -/ -iter -( -+ -/ -- -5 -888 -) -= -13228 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -341 -867 -ns -/ -iter -( -+ -/ -- -32 -045 -) -= -1740 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -331 -760 -ns -/ -iter -( -+ -/ -- -43 -608 -) -= -1793 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -14 -285 -ns -/ -iter -( -+ -/ -- -760 -) -= -41647 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -1 -342 -144 -ns -/ -iter -( -+ -/ -- -96 -471 -) -= -443 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -722 -919 -ns -/ -iter -( -+ -/ -- -83 -873 -) -= -345 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -2 -866 -258 -ns -/ -iter -( -+ -/ -- -117 -349 -) -= -207 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -151 -020 -ns -/ -iter -( -+ -/ -- -13 -454 -) -= -3939 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -597 -329 -ns -/ -iter -( -+ -/ -- -149 -689 -) -= -372 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -2 -193 -027 -ns -/ -iter -( -+ -/ -- -136 -408 -) -= -271 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -20 -721 -148 -ns -/ -iter -( -+ -/ -- -1 -968 -912 -) -= -28 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -96 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/06/rust b/third_party/rust/regex/record/old-bench-log/06/rust deleted file mode 100644 index d9f28163aa028..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/06/rust +++ /dev/null @@ -1,2872 +0,0 @@ -running -108 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -2 -) -= -17727 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -27 -ns -/ -iter -( -+ -/ -- -2 -) -= -14444 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -1 -) -= -1181 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -26 -ns -/ -iter -( -+ -/ -- -2 -) -= -1000 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -1 -) -= -65687 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -2 -) -= -55189631 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -1 -) -= -3933 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -2049687 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -2 -) -= -24279 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -45 -ns -/ -iter -( -+ -/ -- -4 -) -= -23302133 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -5 -) -= -1209 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -2 -) -= -762511 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -6 -) -= -19830 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -57 -ns -/ -iter -( -+ -/ -- -1 -) -= -18396543 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -4 -) -= -1113 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -6 -) -= -618773 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -1 -) -= -3923 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -203 -ns -/ -iter -( -+ -/ -- -55 -) -= -83126 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -149 -418 -ns -/ -iter -( -+ -/ -- -13 -825 -) -= -669 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -6 -) -= -1306 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -2 -) -= -3521 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -268 -ns -/ -iter -( -+ -/ -- -30 -) -= -600 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -65750 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -15 -) -= -52430200 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -2 -) -= -3750 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -1 -) -= -2049750 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -353 -ns -/ -iter -( -+ -/ -- -26 -) -= -283 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -97 -ns -/ -iter -( -+ -/ -- -9 -) -= -525 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -5 -) -= -448 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -60 -ns -/ -iter -( -+ -/ -- -6 -) -= -433 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -4 -) -= -395 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -46 -ns -/ -iter -( -+ -/ -- -2 -) -= -369 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -5 -) -= -16774 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -650 -ns -/ -iter -( -+ -/ -- -176 -) -= -636 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -635 -447 -ns -/ -iter -( -+ -/ -- -97 -611 -) -= -641 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -109 -ns -/ -iter -( -+ -/ -- -9 -) -= -541 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -50 -991 -ns -/ -iter -( -+ -/ -- -4 -031 -) -= -643 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -155 -ns -/ -iter -( -+ -/ -- -8 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -254 -ns -/ -iter -( -+ -/ -- -489 -) -= -1880 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -91 -124 -ns -/ -iter -( -+ -/ -- -4 -584 -) -= -87792 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -10 -681 -ns -/ -iter -( -+ -/ -- -420 -) -= -74900 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -3 -240 -ns -/ -iter -( -+ -/ -- -395 -) -= -24694 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -403 -ns -/ -iter -( -+ -/ -- -48 -) -= -19878 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -303 -ns -/ -iter -( -+ -/ -- -27 -) -= -2676 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -272 -ns -/ -iter -( -+ -/ -- -27 -) -= -334 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -264 -ns -/ -iter -( -+ -/ -- -32 -) -= -71 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -269 -ns -/ -iter -( -+ -/ -- -25 -) -= -100 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -264 -ns -/ -iter -( -+ -/ -- -26 -) -= -132 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -271 -ns -/ -iter -( -+ -/ -- -28 -) -= -158 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -13 -700 -405 -ns -/ -iter -( -+ -/ -- -647 -840 -) -= -371 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -806 -342 -ns -/ -iter -( -+ -/ -- -48 -014 -) -= -6304 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -794 -403 -ns -/ -iter -( -+ -/ -- -40 -393 -) -= -6399 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -801 -963 -ns -/ -iter -( -+ -/ -- -46 -164 -) -= -6338 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -779 -768 -ns -/ -iter -( -+ -/ -- -81 -505 -) -= -6519 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -777 -024 -ns -/ -iter -( -+ -/ -- -52 -795 -) -= -6542 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -769 -862 -ns -/ -iter -( -+ -/ -- -48 -980 -) -= -6603 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -779 -754 -ns -/ -iter -( -+ -/ -- -39 -784 -) -= -6519 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -769 -400 -ns -/ -iter -( -+ -/ -- -69 -980 -) -= -6606 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -771 -457 -ns -/ -iter -( -+ -/ -- -40 -490 -) -= -6589 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -808 -468 -ns -/ -iter -( -+ -/ -- -53 -093 -) -= -6287 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -771 -869 -ns -/ -iter -( -+ -/ -- -50 -966 -) -= -6585 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -3 -093 -422 -ns -/ -iter -( -+ -/ -- -222 -818 -) -= -1643 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -6 -520 -178 -ns -/ -iter -( -+ -/ -- -400 -704 -) -= -779 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -7 -297 -818 -ns -/ -iter -( -+ -/ -- -319 -866 -) -= -696 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -7 -356 -045 -ns -/ -iter -( -+ -/ -- -530 -375 -) -= -691 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -5 -977 -343 -ns -/ -iter -( -+ -/ -- -296 -375 -) -= -850 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -6 -045 -776 -ns -/ -iter -( -+ -/ -- -270 -954 -) -= -840 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -5 -447 -060 -ns -/ -iter -( -+ -/ -- -223 -542 -) -= -933 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -5 -615 -676 -ns -/ -iter -( -+ -/ -- -419 -756 -) -= -905 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -5 -457 -949 -ns -/ -iter -( -+ -/ -- -439 -821 -) -= -931 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -957 -660 -ns -/ -iter -( -+ -/ -- -96 -491 -) -= -621 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -65 -680 -ns -/ -iter -( -+ -/ -- -3 -085 -) -= -9058 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -151 -577 -ns -/ -iter -( -+ -/ -- -70 -114 -) -= -276 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -836 -942 -ns -/ -iter -( -+ -/ -- -81 -010 -) -= -710 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -137 -441 -ns -/ -iter -( -+ -/ -- -14 -157 -) -= -4328 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -514 -100 -ns -/ -iter -( -+ -/ -- -48 -210 -) -= -1157 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -409 -126 -ns -/ -iter -( -+ -/ -- -23 -370 -) -= -1454 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -117 -457 -ns -/ -iter -( -+ -/ -- -53 -545 -) -= -532 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -23 -152 -671 -ns -/ -iter -( -+ -/ -- -1 -002 -203 -) -= -25 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -22 -521 -833 -ns -/ -iter -( -+ -/ -- -1 -178 -375 -) -= -26 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -841 -871 -ns -/ -iter -( -+ -/ -- -108 -471 -) -= -323 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -946 -126 -ns -/ -iter -( -+ -/ -- -53 -405 -) -= -628 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -25 -830 -ns -/ -iter -( -+ -/ -- -1 -054 -) -= -23032 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -116 -879 -ns -/ -iter -( -+ -/ -- -6 -000 -) -= -5090 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -125 -746 -ns -/ -iter -( -+ -/ -- -7 -121 -) -= -4731 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -203 -114 -ns -/ -iter -( -+ -/ -- -72 -037 -) -= -494 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -156 -208 -ns -/ -iter -( -+ -/ -- -5 -188 -) -= -3808 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -222 -618 -ns -/ -iter -( -+ -/ -- -30 -017 -) -= -2672 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -133 -440 -ns -/ -iter -( -+ -/ -- -14 -831 -) -= -4458 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -558 -482 -ns -/ -iter -( -+ -/ -- -22 -435 -) -= -1065 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -30 -800 -ns -/ -iter -( -+ -/ -- -2 -933 -) -= -19316 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -190 -736 -ns -/ -iter -( -+ -/ -- -24 -310 -) -= -3119 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -56 -238 -ns -/ -iter -( -+ -/ -- -3 -310 -) -= -10578 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -24 -129 -ns -/ -iter -( -+ -/ -- -2 -662 -) -= -24656 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -174 -649 -ns -/ -iter -( -+ -/ -- -13 -487 -) -= -3406 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -157 -674 -ns -/ -iter -( -+ -/ -- -7 -888 -) -= -3773 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -74 -637 -ns -/ -iter -( -+ -/ -- -6 -523 -) -= -7971 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -15 -140 -ns -/ -iter -( -+ -/ -- -969 -) -= -39295 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -305 -112 -ns -/ -iter -( -+ -/ -- -31 -314 -) -= -1949 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -15 -539 -ns -/ -iter -( -+ -/ -- -1 -269 -) -= -38286 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -482 -180 -ns -/ -iter -( -+ -/ -- -33 -736 -) -= -1233 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -78 -428 -426 -ns -/ -iter -( -+ -/ -- -6 -705 -217 -) -= -7 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -576 -511 -ns -/ -iter -( -+ -/ -- -21 -735 -) -= -1031 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -413 -565 -ns -/ -iter -( -+ -/ -- -42 -941 -) -= -1438 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -34 -491 -ns -/ -iter -( -+ -/ -- -1 -901 -) -= -17248 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -061 -365 -ns -/ -iter -( -+ -/ -- -66 -639 -) -= -560 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -763 -795 -ns -/ -iter -( -+ -/ -- -83 -031 -) -= -337 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -9 -281 -896 -ns -/ -iter -( -+ -/ -- -934 -308 -) -= -64 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -108 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/boost b/third_party/rust/regex/record/old-bench-log/07/boost deleted file mode 100644 index e0c70d71662c8..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/boost +++ /dev/null @@ -1,2502 +0,0 @@ -running -92 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -174 -ns -/ -iter -( -+ -/ -- -0 -) -= -2241 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -329 -ns -/ -iter -( -+ -/ -- -3 -) -= -1185 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -168 -ns -/ -iter -( -+ -/ -- -0 -) -= -154 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -121 -ns -/ -iter -( -+ -/ -- -0 -) -= -214 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -660 -ns -/ -iter -( -+ -/ -- -3 -) -= -1592 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -514 -707 -ns -/ -iter -( -+ -/ -- -2 -689 -) -= -2037 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -170 -ns -/ -iter -( -+ -/ -- -2 -) -= -347 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -16 -208 -ns -/ -iter -( -+ -/ -- -99 -) -= -2023 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -756 -ns -/ -iter -( -+ -/ -- -1 -) -= -1380 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -514 -816 -ns -/ -iter -( -+ -/ -- -2 -832 -) -= -2036 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -271 -ns -/ -iter -( -+ -/ -- -3 -) -= -191 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -16 -316 -ns -/ -iter -( -+ -/ -- -93 -) -= -2009 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -63 -089 -ns -/ -iter -( -+ -/ -- -594 -) -= -16 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -66 -537 -328 -ns -/ -iter -( -+ -/ -- -866 -695 -) -= -15 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -2 -125 -ns -/ -iter -( -+ -/ -- -8 -) -= -27 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -2 -075 -568 -ns -/ -iter -( -+ -/ -- -6 -634 -) -= -15 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -143 -ns -/ -iter -( -+ -/ -- -1 -) -= -356 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -6 -557 -839 -ns -/ -iter -( -+ -/ -- -27 -779 -) -= -15 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -6 -557 -332 -ns -/ -iter -( -+ -/ -- -101 -494 -) -= -15 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -157 -ns -/ -iter -( -+ -/ -- -0 -) -= -515 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -157 -ns -/ -iter -( -+ -/ -- -4 -) -= -515 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -665 -ns -/ -iter -( -+ -/ -- -2 -) -= -1581 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -514 -869 -ns -/ -iter -( -+ -/ -- -5 -832 -) -= -2036 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -167 -ns -/ -iter -( -+ -/ -- -1 -) -= -359 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -16 -253 -ns -/ -iter -( -+ -/ -- -74 -) -= -2017 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -1 -717 -ns -/ -iter -( -+ -/ -- -13 -) -= -58 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -1 -084 -ns -/ -iter -( -+ -/ -- -16 -) -= -47 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -169 -ns -/ -iter -( -+ -/ -- -2 -) -= -153 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -169 -ns -/ -iter -( -+ -/ -- -6 -) -= -153 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -1 -105 -ns -/ -iter -( -+ -/ -- -2 -) -= -15 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -1 -076 -ns -/ -iter -( -+ -/ -- -10 -) -= -15 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -4 -935 -ns -/ -iter -( -+ -/ -- -39 -) -= -210 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -63 -076 -ns -/ -iter -( -+ -/ -- -226 -) -= -16 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -68 -534 -102 -ns -/ -iter -( -+ -/ -- -125 -043 -) -= -15 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -2 -134 -ns -/ -iter -( -+ -/ -- -8 -) -= -27 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -2 -074 -582 -ns -/ -iter -( -+ -/ -- -5 -943 -) -= -15 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -001 -ns -/ -iter -( -+ -/ -- -5 -) -= -1999 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -12 -942 -765 -ns -/ -iter -( -+ -/ -- -21 -828 -) -= -392 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -6 -241 -036 -ns -/ -iter -( -+ -/ -- -13 -806 -) -= -814 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -6 -247 -896 -ns -/ -iter -( -+ -/ -- -28 -406 -) -= -813 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -6 -240 -960 -ns -/ -iter -( -+ -/ -- -20 -660 -) -= -814 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -6 -245 -156 -ns -/ -iter -( -+ -/ -- -17 -639 -) -= -813 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -6 -276 -881 -ns -/ -iter -( -+ -/ -- -14 -851 -) -= -809 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -6 -249 -549 -ns -/ -iter -( -+ -/ -- -30 -600 -) -= -813 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -6 -251 -942 -ns -/ -iter -( -+ -/ -- -33 -889 -) -= -813 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -6 -244 -011 -ns -/ -iter -( -+ -/ -- -11 -642 -) -= -814 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -6 -283 -445 -ns -/ -iter -( -+ -/ -- -11 -693 -) -= -809 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -6 -247 -310 -ns -/ -iter -( -+ -/ -- -11 -590 -) -= -813 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -6 -249 -184 -ns -/ -iter -( -+ -/ -- -8 -159 -) -= -813 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -73 -947 -890 -ns -/ -iter -( -+ -/ -- -930 -039 -) -= -68 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -108 -486 -922 -ns -/ -iter -( -+ -/ -- -181 -287 -) -= -46 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -93 -241 -161 -ns -/ -iter -( -+ -/ -- -143 -224 -) -= -54 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -75 -615 -061 -ns -/ -iter -( -+ -/ -- -107 -918 -) -= -67 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -74 -484 -623 -ns -/ -iter -( -+ -/ -- -121 -807 -) -= -68 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -74 -594 -078 -ns -/ -iter -( -+ -/ -- -121 -252 -) -= -68 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -77 -064 -066 -ns -/ -iter -( -+ -/ -- -123 -262 -) -= -65 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -87 -267 -656 -ns -/ -iter -( -+ -/ -- -128 -639 -) -= -58 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -98 -197 -000 -ns -/ -iter -( -+ -/ -- -149 -379 -) -= -51 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -7 -100 -744 -ns -/ -iter -( -+ -/ -- -29 -939 -) -= -83 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -7 -120 -564 -ns -/ -iter -( -+ -/ -- -32 -659 -) -= -83 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -3 -777 -458 -ns -/ -iter -( -+ -/ -- -8 -802 -) -= -157 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -282 -ns -/ -iter -( -+ -/ -- -2 -) -= -2109691 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -389 -335 -ns -/ -iter -( -+ -/ -- -1 -472 -) -= -1528 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -6 -256 -416 -ns -/ -iter -( -+ -/ -- -8 -735 -) -= -95 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -7 -572 -167 -ns -/ -iter -( -+ -/ -- -15 -521 -) -= -78 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -343 -402 -ns -/ -iter -( -+ -/ -- -3 -693 -) -= -1732 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -347 -605 -ns -/ -iter -( -+ -/ -- -916 -) -= -1711 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -420 -500 -ns -/ -iter -( -+ -/ -- -2 -846 -) -= -1414 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -762 -684 -ns -/ -iter -( -+ -/ -- -3 -834 -) -= -780 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -9 -980 -804 -ns -/ -iter -( -+ -/ -- -49 -424 -) -= -59 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -431 -744 -ns -/ -iter -( -+ -/ -- -682 -) -= -1377 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -3 -464 -135 -ns -/ -iter -( -+ -/ -- -11 -476 -) -= -171 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -472 -923 -ns -/ -iter -( -+ -/ -- -846 -) -= -1257 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -4 -338 -924 -ns -/ -iter -( -+ -/ -- -31 -118 -) -= -137 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -378 -950 -ns -/ -iter -( -+ -/ -- -865 -) -= -1569 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -952 -035 -ns -/ -iter -( -+ -/ -- -8 -233 -) -= -304 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -324 -845 -ns -/ -iter -( -+ -/ -- -8 -376 -) -= -1831 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -324 -647 -ns -/ -iter -( -+ -/ -- -2 -901 -) -= -1832 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -870 -400 -ns -/ -iter -( -+ -/ -- -10 -609 -) -= -318 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -814 -172 -ns -/ -iter -( -+ -/ -- -16 -455 -) -= -327 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -326 -252 -ns -/ -iter -( -+ -/ -- -1 -557 -) -= -1823 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -1 -154 -445 -ns -/ -iter -( -+ -/ -- -8 -544 -) -= -515 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -1 -154 -314 -ns -/ -iter -( -+ -/ -- -5 -467 -) -= -515 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -295 -301 -ns -/ -iter -( -+ -/ -- -906 -) -= -2014 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -863 -138 -ns -/ -iter -( -+ -/ -- -3 -072 -) -= -689 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -13 -594 -294 -ns -/ -iter -( -+ -/ -- -40 -354 -) -= -43 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -2 -171 -731 -ns -/ -iter -( -+ -/ -- -7 -148 -) -= -273 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -3 -556 -278 -ns -/ -iter -( -+ -/ -- -7 -269 -) -= -167 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -404 -851 -ns -/ -iter -( -+ -/ -- -865 -) -= -1469 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -139 -597 -ns -/ -iter -( -+ -/ -- -7 -427 -) -= -278 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -7 -824 -965 -ns -/ -iter -( -+ -/ -- -30 -691 -) -= -76 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -18 -386 -285 -ns -/ -iter -( -+ -/ -- -34 -161 -) -= -32 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -92 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/dphobos-dmd b/third_party/rust/regex/record/old-bench-log/07/dphobos-dmd deleted file mode 100644 index 574bbe826265d..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/dphobos-dmd +++ /dev/null @@ -1,2575 +0,0 @@ -running -95 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -365 -ns -/ -iter -( -+ -/ -- -2 -) -= -1068 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -300 -ns -/ -iter -( -+ -/ -- -0 -) -= -1300 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -364 -ns -/ -iter -( -+ -/ -- -2 -) -= -71 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -306 -ns -/ -iter -( -+ -/ -- -9 -) -= -84 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -768 -ns -/ -iter -( -+ -/ -- -5 -) -= -1368 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -17 -062 -ns -/ -iter -( -+ -/ -- -252 -) -= -61458 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -759 -ns -/ -iter -( -+ -/ -- -7 -) -= -77 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -1 -095 -ns -/ -iter -( -+ -/ -- -20 -) -= -29949 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -723 -ns -/ -iter -( -+ -/ -- -1 -) -= -1443 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -17 -021 -ns -/ -iter -( -+ -/ -- -229 -) -= -61606 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -714 -ns -/ -iter -( -+ -/ -- -1 -) -= -72 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -1 -052 -ns -/ -iter -( -+ -/ -- -12 -) -= -31167 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -17 -044 -ns -/ -iter -( -+ -/ -- -176 -) -= -61 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -17 -965 -420 -ns -/ -iter -( -+ -/ -- -72 -226 -) -= -58 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -2 -171 -ns -/ -iter -( -+ -/ -- -2 -) -= -27 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -561 -207 -ns -/ -iter -( -+ -/ -- -5 -654 -) -= -58 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -240 -ns -/ -iter -( -+ -/ -- -0 -) -= -212 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -76 -640 -ns -/ -iter -( -+ -/ -- -1 -043 -) -= -1304 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -76 -747 -ns -/ -iter -( -+ -/ -- -3 -299 -) -= -1302 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -344 -ns -/ -iter -( -+ -/ -- -1 -) -= -235 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -306 -ns -/ -iter -( -+ -/ -- -9 -) -= -264 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -1 -435 -ns -/ -iter -( -+ -/ -- -9 -) -= -112 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -480 -ns -/ -iter -( -+ -/ -- -16 -) -= -710 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -564 -378 -ns -/ -iter -( -+ -/ -- -18 -695 -) -= -1857 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -941 -ns -/ -iter -( -+ -/ -- -32 -) -= -63 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -18 -465 -ns -/ -iter -( -+ -/ -- -116 -) -= -1776 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -367 -476 -ns -/ -iter -( -+ -/ -- -15 -176 -) -test -misc -: -: -not_literal -. -. -. -bench -: -1 -165 -ns -/ -iter -( -+ -/ -- -9 -) -= -43 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -596 -ns -/ -iter -( -+ -/ -- -2 -) -= -43 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -602 -ns -/ -iter -( -+ -/ -- -6 -) -= -43 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -1 -068 -ns -/ -iter -( -+ -/ -- -3 -) -= -15 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -1 -434 -ns -/ -iter -( -+ -/ -- -11 -) -= -11 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -36 -539 -ns -/ -iter -( -+ -/ -- -281 -) -= -28 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -17 -086 -ns -/ -iter -( -+ -/ -- -94 -) -= -61 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -17 -973 -007 -ns -/ -iter -( -+ -/ -- -64 -010 -) -= -58 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -2 -200 -ns -/ -iter -( -+ -/ -- -16 -) -= -26 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -561 -371 -ns -/ -iter -( -+ -/ -- -8 -688 -) -= -58 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -606 -ns -/ -iter -( -+ -/ -- -16 -) -= -1736 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -31 -579 -756 -ns -/ -iter -( -+ -/ -- -121 -047 -) -= -160 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -7 -930 -333 -ns -/ -iter -( -+ -/ -- -27 -118 -) -= -641 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -7 -942 -534 -ns -/ -iter -( -+ -/ -- -36 -470 -) -= -640 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -7 -934 -646 -ns -/ -iter -( -+ -/ -- -42 -013 -) -= -640 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -7 -947 -802 -ns -/ -iter -( -+ -/ -- -53 -427 -) -= -639 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -7 -941 -691 -ns -/ -iter -( -+ -/ -- -122 -303 -) -= -640 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -7 -928 -228 -ns -/ -iter -( -+ -/ -- -30 -493 -) -= -641 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -7 -936 -901 -ns -/ -iter -( -+ -/ -- -37 -894 -) -= -640 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -7 -936 -211 -ns -/ -iter -( -+ -/ -- -46 -269 -) -= -640 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -7 -946 -477 -ns -/ -iter -( -+ -/ -- -62 -660 -) -= -639 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -7 -930 -830 -ns -/ -iter -( -+ -/ -- -31 -234 -) -= -640 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -7 -937 -951 -ns -/ -iter -( -+ -/ -- -36 -425 -) -= -640 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -5 -104 -224 -ns -/ -iter -( -+ -/ -- -26 -612 -) -= -995 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -6 -847 -162 -ns -/ -iter -( -+ -/ -- -31 -233 -) -= -742 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -11 -153 -739 -ns -/ -iter -( -+ -/ -- -114 -193 -) -= -455 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -9 -665 -797 -ns -/ -iter -( -+ -/ -- -47 -148 -) -= -525 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -9 -645 -193 -ns -/ -iter -( -+ -/ -- -35 -250 -) -= -527 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -7 -280 -069 -ns -/ -iter -( -+ -/ -- -21 -171 -) -= -698 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -7 -841 -177 -ns -/ -iter -( -+ -/ -- -20 -797 -) -= -648 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -9 -783 -978 -ns -/ -iter -( -+ -/ -- -35 -231 -) -= -519 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -19 -157 -329 -ns -/ -iter -( -+ -/ -- -445 -911 -) -= -265 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -20 -995 -307 -ns -/ -iter -( -+ -/ -- -258 -419 -) -= -28 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -20 -899 -416 -ns -/ -iter -( -+ -/ -- -122 -256 -) -= -28 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -904 -439 -ns -/ -iter -( -+ -/ -- -6 -934 -) -= -657 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -103 -706 -930 -ns -/ -iter -( -+ -/ -- -176 -711 -) -= -5 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -14 -927 -612 -ns -/ -iter -( -+ -/ -- -90 -346 -) -= -39 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -19 -743 -662 -ns -/ -iter -( -+ -/ -- -78 -506 -) -= -30 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -112 -708 -213 -ns -/ -iter -( -+ -/ -- -251 -690 -) -= -5 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -111 -058 -829 -ns -/ -iter -( -+ -/ -- -192 -793 -) -= -5 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -4 -072 -062 -ns -/ -iter -( -+ -/ -- -20 -273 -) -= -146 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -399 -796 -ns -/ -iter -( -+ -/ -- -4 -222 -) -= -1488 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -411 -415 -ns -/ -iter -( -+ -/ -- -2 -257 -) -= -1446 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -626 -671 -ns -/ -iter -( -+ -/ -- -5 -745 -) -= -949 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -086 -570 -ns -/ -iter -( -+ -/ -- -6 -105 -) -= -547 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -827 -028 -ns -/ -iter -( -+ -/ -- -12 -788 -) -= -325 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -687 -454 -ns -/ -iter -( -+ -/ -- -11 -421 -) -= -865 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -943 -925 -ns -/ -iter -( -+ -/ -- -4 -108 -) -= -630 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -734 -969 -ns -/ -iter -( -+ -/ -- -7 -215 -) -= -809 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -895 -903 -ns -/ -iter -( -+ -/ -- -5 -647 -) -= -664 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -199 -880 -ns -/ -iter -( -+ -/ -- -1 -654 -) -= -2976 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -529 -590 -ns -/ -iter -( -+ -/ -- -1 -288 -) -= -1123 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -57 -720 -ns -/ -iter -( -+ -/ -- -555 -) -= -10307 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -67 -596 -ns -/ -iter -( -+ -/ -- -580 -) -= -8801 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -393 -903 -ns -/ -iter -( -+ -/ -- -2 -700 -) -= -1510 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -373 -411 -ns -/ -iter -( -+ -/ -- -3 -264 -) -= -1593 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -79 -175 -ns -/ -iter -( -+ -/ -- -1 -288 -) -= -7514 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -276 -503 -ns -/ -iter -( -+ -/ -- -2 -155 -) -= -2151 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -276 -535 -ns -/ -iter -( -+ -/ -- -416 -) -= -2151 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -10 -535 -ns -/ -iter -( -+ -/ -- -105 -) -= -56472 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -5 -746 -202 -ns -/ -iter -( -+ -/ -- -33 -993 -) -= -103 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -46 -124 -528 -ns -/ -iter -( -+ -/ -- -125 -861 -) -= -12 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -2 -527 -960 -ns -/ -iter -( -+ -/ -- -12 -351 -) -= -235 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -3 -210 -112 -ns -/ -iter -( -+ -/ -- -10 -799 -) -= -185 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -240 -272 -ns -/ -iter -( -+ -/ -- -3 -902 -) -= -2476 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -3 -511 -711 -ns -/ -iter -( -+ -/ -- -17 -181 -) -= -169 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -29 -535 -089 -ns -/ -iter -( -+ -/ -- -95 -201 -) -= -20 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -43 -341 -782 -ns -/ -iter -( -+ -/ -- -110 -038 -) -= -13 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -95 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/dphobos-dmd-ct b/third_party/rust/regex/record/old-bench-log/07/dphobos-dmd-ct deleted file mode 100644 index 7c2de80809909..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/dphobos-dmd-ct +++ /dev/null @@ -1,2515 +0,0 @@ -running -93 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -354 -ns -/ -iter -( -+ -/ -- -25 -) -= -1101 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -314 -ns -/ -iter -( -+ -/ -- -3 -) -= -1242 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -331 -ns -/ -iter -( -+ -/ -- -0 -) -= -78 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -314 -ns -/ -iter -( -+ -/ -- -4 -) -= -82 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -430 -ns -/ -iter -( -+ -/ -- -2 -) -= -2444 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -16 -692 -ns -/ -iter -( -+ -/ -- -222 -) -= -62820 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -420 -ns -/ -iter -( -+ -/ -- -4 -) -= -140 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -755 -ns -/ -iter -( -+ -/ -- -5 -) -= -43437 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -407 -ns -/ -iter -( -+ -/ -- -10 -) -= -2565 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -16 -670 -ns -/ -iter -( -+ -/ -- -205 -) -= -62903 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -389 -ns -/ -iter -( -+ -/ -- -0 -) -= -133 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -732 -ns -/ -iter -( -+ -/ -- -6 -) -= -44792 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -35 -518 -ns -/ -iter -( -+ -/ -- -346 -) -= -29 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -31 -657 -473 -ns -/ -iter -( -+ -/ -- -512 -618 -) -= -33 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -1 -057 -ns -/ -iter -( -+ -/ -- -7 -) -= -55 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -950 -905 -ns -/ -iter -( -+ -/ -- -13 -239 -) -= -34 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -320 -ns -/ -iter -( -+ -/ -- -3 -) -= -159 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -73 -954 -ns -/ -iter -( -+ -/ -- -331 -) -= -1352 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -73 -915 -ns -/ -iter -( -+ -/ -- -199 -) -= -1352 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -374 -ns -/ -iter -( -+ -/ -- -3 -) -= -216 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -372 -ns -/ -iter -( -+ -/ -- -0 -) -= -217 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -1 -631 -ns -/ -iter -( -+ -/ -- -8 -) -= -98 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -965 -ns -/ -iter -( -+ -/ -- -10 -) -= -1090 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -563 -242 -ns -/ -iter -( -+ -/ -- -6 -767 -) -= -1861 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -434 -ns -/ -iter -( -+ -/ -- -3 -) -= -138 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -17 -976 -ns -/ -iter -( -+ -/ -- -137 -) -= -1824 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -1 -063 -ns -/ -iter -( -+ -/ -- -2 -) -= -47 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -405 -ns -/ -iter -( -+ -/ -- -4 -) -= -64 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -410 -ns -/ -iter -( -+ -/ -- -2 -) -= -63 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -539 -ns -/ -iter -( -+ -/ -- -12 -) -= -31 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -534 -ns -/ -iter -( -+ -/ -- -1 -) -= -31 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -75 -108 -ns -/ -iter -( -+ -/ -- -699 -) -= -13 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -34 -681 -ns -/ -iter -( -+ -/ -- -268 -) -= -30 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -30 -579 -065 -ns -/ -iter -( -+ -/ -- -389 -443 -) -= -34 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -1 -025 -ns -/ -iter -( -+ -/ -- -22 -) -= -57 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -920 -515 -ns -/ -iter -( -+ -/ -- -26 -281 -) -= -35 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -607 -ns -/ -iter -( -+ -/ -- -36 -) -= -1736 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -34 -122 -227 -ns -/ -iter -( -+ -/ -- -842 -345 -) -= -148 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -9 -932 -271 -ns -/ -iter -( -+ -/ -- -86 -915 -) -= -511 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -9 -977 -738 -ns -/ -iter -( -+ -/ -- -51 -656 -) -= -509 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -9 -945 -085 -ns -/ -iter -( -+ -/ -- -53 -175 -) -= -511 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -9 -928 -284 -ns -/ -iter -( -+ -/ -- -32 -335 -) -= -512 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -9 -968 -901 -ns -/ -iter -( -+ -/ -- -41 -254 -) -= -509 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -9 -912 -463 -ns -/ -iter -( -+ -/ -- -28 -171 -) -= -512 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -9 -948 -128 -ns -/ -iter -( -+ -/ -- -22 -949 -) -= -510 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -9 -916 -200 -ns -/ -iter -( -+ -/ -- -28 -947 -) -= -512 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -9 -996 -277 -ns -/ -iter -( -+ -/ -- -37 -585 -) -= -508 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -9 -974 -849 -ns -/ -iter -( -+ -/ -- -41 -503 -) -= -509 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -9 -961 -948 -ns -/ -iter -( -+ -/ -- -28 -254 -) -= -510 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -3 -504 -049 -ns -/ -iter -( -+ -/ -- -15 -090 -) -= -1450 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -3 -800 -264 -ns -/ -iter -( -+ -/ -- -12 -123 -) -= -1337 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -4 -932 -027 -ns -/ -iter -( -+ -/ -- -15 -553 -) -= -1030 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -4 -709 -109 -ns -/ -iter -( -+ -/ -- -15 -213 -) -= -1079 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -4 -918 -928 -ns -/ -iter -( -+ -/ -- -19 -196 -) -= -1033 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -4 -244 -250 -ns -/ -iter -( -+ -/ -- -24 -367 -) -= -1197 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -4 -245 -530 -ns -/ -iter -( -+ -/ -- -16 -178 -) -= -1197 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -4 -205 -036 -ns -/ -iter -( -+ -/ -- -10 -733 -) -= -1208 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -3 -864 -771 -ns -/ -iter -( -+ -/ -- -11 -864 -) -= -1315 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -22 -490 -817 -ns -/ -iter -( -+ -/ -- -571 -510 -) -= -26 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -22 -603 -264 -ns -/ -iter -( -+ -/ -- -74 -703 -) -= -26 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -519 -710 -ns -/ -iter -( -+ -/ -- -5 -878 -) -= -1144 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -9 -237 -783 -ns -/ -iter -( -+ -/ -- -30 -188 -) -= -64 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -12 -074 -301 -ns -/ -iter -( -+ -/ -- -30 -860 -) -= -49 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -137 -678 -575 -ns -/ -iter -( -+ -/ -- -131 -761 -) -= -4 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -135 -414 -657 -ns -/ -iter -( -+ -/ -- -134 -307 -) -= -4 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -5 -004 -996 -ns -/ -iter -( -+ -/ -- -23 -224 -) -= -118 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -341 -556 -ns -/ -iter -( -+ -/ -- -1 -500 -) -= -1741 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -378 -291 -ns -/ -iter -( -+ -/ -- -1 -545 -) -= -1572 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -528 -403 -ns -/ -iter -( -+ -/ -- -2 -273 -) -= -1125 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -685 -634 -ns -/ -iter -( -+ -/ -- -17 -205 -) -= -867 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -825 -069 -ns -/ -iter -( -+ -/ -- -10 -490 -) -= -721 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -555 -717 -ns -/ -iter -( -+ -/ -- -3 -223 -) -= -1070 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -649 -913 -ns -/ -iter -( -+ -/ -- -4 -543 -) -= -915 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -570 -036 -ns -/ -iter -( -+ -/ -- -543 -) -= -1043 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -580 -445 -ns -/ -iter -( -+ -/ -- -2 -100 -) -= -1024 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -185 -140 -ns -/ -iter -( -+ -/ -- -2 -100 -) -= -3213 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -479 -902 -ns -/ -iter -( -+ -/ -- -5 -898 -) -= -1239 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -51 -053 -ns -/ -iter -( -+ -/ -- -491 -) -= -11653 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -50 -722 -ns -/ -iter -( -+ -/ -- -296 -) -= -11729 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -355 -142 -ns -/ -iter -( -+ -/ -- -1 -424 -) -= -1675 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -354 -932 -ns -/ -iter -( -+ -/ -- -1 -554 -) -= -1676 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -56 -972 -ns -/ -iter -( -+ -/ -- -271 -) -= -10442 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -274 -260 -ns -/ -iter -( -+ -/ -- -3 -092 -) -= -2169 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -273 -984 -ns -/ -iter -( -+ -/ -- -2 -202 -) -= -2171 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -10 -444 -ns -/ -iter -( -+ -/ -- -68 -) -= -56964 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -2 -755 -414 -ns -/ -iter -( -+ -/ -- -11 -488 -) -= -215 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -21 -585 -138 -ns -/ -iter -( -+ -/ -- -50 -347 -) -= -27 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -2 -835 -360 -ns -/ -iter -( -+ -/ -- -10 -083 -) -= -209 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -3 -060 -088 -ns -/ -iter -( -+ -/ -- -10 -321 -) -= -194 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -272 -416 -ns -/ -iter -( -+ -/ -- -3 -308 -) -= -2183 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -991 -214 -ns -/ -iter -( -+ -/ -- -27 -223 -) -= -198 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -30 -726 -303 -ns -/ -iter -( -+ -/ -- -83 -743 -) -= -19 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -42 -256 -710 -ns -/ -iter -( -+ -/ -- -88 -302 -) -= -14 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -93 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/oniguruma b/third_party/rust/regex/record/old-bench-log/07/oniguruma deleted file mode 100644 index bd95c64d21df3..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/oniguruma +++ /dev/null @@ -1,2568 +0,0 @@ -running -94 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -129 -ns -/ -iter -( -+ -/ -- -3 -) -= -3023 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -402 -ns -/ -iter -( -+ -/ -- -1 -) -= -970 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -130 -ns -/ -iter -( -+ -/ -- -1 -) -= -200 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -0 -) -= -530 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -281 -ns -/ -iter -( -+ -/ -- -3 -) -= -3740 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -119 -847 -ns -/ -iter -( -+ -/ -- -713 -) -= -8749 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -154 -ns -/ -iter -( -+ -/ -- -4 -) -= -383 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -3 -985 -ns -/ -iter -( -+ -/ -- -24 -) -= -8229 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -3 -472 -ns -/ -iter -( -+ -/ -- -11 -) -= -300 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -3 -385 -764 -ns -/ -iter -( -+ -/ -- -6 -630 -) -= -309 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -283 -ns -/ -iter -( -+ -/ -- -6 -) -= -183 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -105 -977 -ns -/ -iter -( -+ -/ -- -319 -) -= -309 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -106 -973 -ns -/ -iter -( -+ -/ -- -1 -091 -) -= -9 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -114 -602 -847 -ns -/ -iter -( -+ -/ -- -336 -051 -) -= -9 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -3 -569 -ns -/ -iter -( -+ -/ -- -3 -) -= -16 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -3 -570 -108 -ns -/ -iter -( -+ -/ -- -17 -057 -) -= -9 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -287 -ns -/ -iter -( -+ -/ -- -1 -) -= -177 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -5 -430 -190 -ns -/ -iter -( -+ -/ -- -271 -737 -) -= -18 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -5 -651 -748 -ns -/ -iter -( -+ -/ -- -260 -960 -) -= -17 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -369 -ns -/ -iter -( -+ -/ -- -0 -) -= -219 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -370 -ns -/ -iter -( -+ -/ -- -8 -) -= -218 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -1 -600 -ns -/ -iter -( -+ -/ -- -24 -) -= -100 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -295 -ns -/ -iter -( -+ -/ -- -4 -) -= -3566 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -119 -845 -ns -/ -iter -( -+ -/ -- -707 -) -= -8749 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -166 -ns -/ -iter -( -+ -/ -- -0 -) -= -361 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -3 -995 -ns -/ -iter -( -+ -/ -- -30 -) -= -8209 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -365 -ns -/ -iter -( -+ -/ -- -1 -) -= -139 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -155 -ns -/ -iter -( -+ -/ -- -0 -) -= -167 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -162 -ns -/ -iter -( -+ -/ -- -0 -) -= -160 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -279 -ns -/ -iter -( -+ -/ -- -0 -) -= -60 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -269 -ns -/ -iter -( -+ -/ -- -3 -) -= -63 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -227 -630 -ns -/ -iter -( -+ -/ -- -963 -) -= -4 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -106 -964 -ns -/ -iter -( -+ -/ -- -1 -199 -) -= -9 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -114 -622 -989 -ns -/ -iter -( -+ -/ -- -206 -430 -) -= -9 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -3 -477 -ns -/ -iter -( -+ -/ -- -13 -) -= -16 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -3 -580 -927 -ns -/ -iter -( -+ -/ -- -15 -784 -) -= -9 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -23 -518 -ns -/ -iter -( -+ -/ -- -105 -) -= -340 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -33 -300 -039 -ns -/ -iter -( -+ -/ -- -827 -837 -) -= -152 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -22 -829 -688 -ns -/ -iter -( -+ -/ -- -81 -653 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -22 -843 -694 -ns -/ -iter -( -+ -/ -- -94 -299 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -22 -827 -872 -ns -/ -iter -( -+ -/ -- -84 -129 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -22 -841 -925 -ns -/ -iter -( -+ -/ -- -84 -394 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -22 -885 -409 -ns -/ -iter -( -+ -/ -- -114 -277 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -22 -837 -475 -ns -/ -iter -( -+ -/ -- -58 -938 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -22 -835 -207 -ns -/ -iter -( -+ -/ -- -39 -862 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -22 -833 -199 -ns -/ -iter -( -+ -/ -- -77 -142 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -22 -851 -757 -ns -/ -iter -( -+ -/ -- -322 -186 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -22 -842 -892 -ns -/ -iter -( -+ -/ -- -86 -166 -) -= -222 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -22 -840 -862 -ns -/ -iter -( -+ -/ -- -105 -926 -) -= -222 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -91 -691 -325 -ns -/ -iter -( -+ -/ -- -194 -247 -) -= -55 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -105 -586 -659 -ns -/ -iter -( -+ -/ -- -320 -354 -) -= -48 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -94 -437 -485 -ns -/ -iter -( -+ -/ -- -277 -744 -) -= -53 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -90 -399 -600 -ns -/ -iter -( -+ -/ -- -184 -588 -) -= -56 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -90 -332 -232 -ns -/ -iter -( -+ -/ -- -174 -254 -) -= -56 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -90 -519 -504 -ns -/ -iter -( -+ -/ -- -227 -643 -) -= -56 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -90 -881 -562 -ns -/ -iter -( -+ -/ -- -221 -861 -) -= -55 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -96 -962 -980 -ns -/ -iter -( -+ -/ -- -180 -002 -) -= -52 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -109 -558 -711 -ns -/ -iter -( -+ -/ -- -166 -337 -) -= -46 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -31 -530 -493 -ns -/ -iter -( -+ -/ -- -112 -639 -) -= -18 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -30 -420 -729 -ns -/ -iter -( -+ -/ -- -114 -072 -) -= -19 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -6 -656 -677 -ns -/ -iter -( -+ -/ -- -167 -110 -) -= -89 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -1 -992 -839 -ns -/ -iter -( -+ -/ -- -8 -037 -) -= -298 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -15 -878 -331 -ns -/ -iter -( -+ -/ -- -150 -901 -) -= -37 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -2 -085 -471 -ns -/ -iter -( -+ -/ -- -8 -438 -) -= -285 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -89 -091 -241 -ns -/ -iter -( -+ -/ -- -182 -225 -) -= -6 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -55 -634 -237 -ns -/ -iter -( -+ -/ -- -115 -097 -) -= -10 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -10 -126 -641 -ns -/ -iter -( -+ -/ -- -36 -015 -) -= -58 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -191 -963 -ns -/ -iter -( -+ -/ -- -687 -) -= -3099 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -1 -983 -070 -ns -/ -iter -( -+ -/ -- -5 -863 -) -= -300 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -1 -972 -746 -ns -/ -iter -( -+ -/ -- -14 -082 -) -= -301 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -2 -424 -033 -ns -/ -iter -( -+ -/ -- -13 -209 -) -= -245 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -16 -876 -942 -ns -/ -iter -( -+ -/ -- -77 -218 -) -= -35 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -1 -986 -579 -ns -/ -iter -( -+ -/ -- -9 -195 -) -= -299 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -4 -992 -277 -ns -/ -iter -( -+ -/ -- -10 -882 -) -= -119 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -2 -033 -937 -ns -/ -iter -( -+ -/ -- -13 -627 -) -= -292 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -6 -292 -627 -ns -/ -iter -( -+ -/ -- -14 -666 -) -= -94 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -450 -290 -ns -/ -iter -( -+ -/ -- -1 -882 -) -= -1321 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -3 -032 -489 -ns -/ -iter -( -+ -/ -- -8 -728 -) -= -196 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -265 -379 -ns -/ -iter -( -+ -/ -- -865 -) -= -2241 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -201 -375 -ns -/ -iter -( -+ -/ -- -2 -146 -) -= -2954 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -3 -010 -059 -ns -/ -iter -( -+ -/ -- -7 -093 -) -= -197 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -3 -016 -713 -ns -/ -iter -( -+ -/ -- -11 -280 -) -= -197 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -266 -706 -ns -/ -iter -( -+ -/ -- -908 -) -= -2230 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -544 -428 -ns -/ -iter -( -+ -/ -- -7 -562 -) -= -1092 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -626 -986 -ns -/ -iter -( -+ -/ -- -2 -959 -) -= -948 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -534 -517 -ns -/ -iter -( -+ -/ -- -4 -342 -) -= -1113 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -3 -210 -614 -ns -/ -iter -( -+ -/ -- -15 -699 -) -= -185 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -31 -147 -103 -ns -/ -iter -( -+ -/ -- -117 -471 -) -= -19 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -2 -275 -468 -ns -/ -iter -( -+ -/ -- -19 -220 -) -= -261 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -4 -999 -086 -ns -/ -iter -( -+ -/ -- -20 -184 -) -= -119 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -893 -288 -ns -/ -iter -( -+ -/ -- -11 -368 -) -= -666 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -2 -364 -893 -ns -/ -iter -( -+ -/ -- -21 -124 -) -= -251 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -18 -221 -921 -ns -/ -iter -( -+ -/ -- -62 -927 -) -= -32 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -27 -552 -543 -ns -/ -iter -( -+ -/ -- -89 -437 -) -= -21 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -94 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/pcre1 b/third_party/rust/regex/record/old-bench-log/07/pcre1 deleted file mode 100644 index 2ad14f5f03792..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/pcre1 +++ /dev/null @@ -1,2514 +0,0 @@ -running -93 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -0 -) -= -16956 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -0 -) -= -20526 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -0 -) -= -1130 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -0 -) -= -1368 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -223 -ns -/ -iter -( -+ -/ -- -2 -) -= -4713 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -178 -098 -ns -/ -iter -( -+ -/ -- -3 -124 -) -= -5887 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -0 -) -= -1512 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -5 -600 -ns -/ -iter -( -+ -/ -- -27 -) -= -5856 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -210 -ns -/ -iter -( -+ -/ -- -7 -) -= -4971 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -178 -177 -ns -/ -iter -( -+ -/ -- -1 -024 -) -= -5885 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -0 -) -= -1300 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -5 -592 -ns -/ -iter -( -+ -/ -- -52 -) -= -5863 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -223 -ns -/ -iter -( -+ -/ -- -14 -) -= -859 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -983 -169 -ns -/ -iter -( -+ -/ -- -13 -398 -) -= -1066 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -99 -ns -/ -iter -( -+ -/ -- -0 -) -= -595 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -31 -422 -ns -/ -iter -( -+ -/ -- -326 -) -= -1043 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -0 -) -= -2217 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -464 -932 -ns -/ -iter -( -+ -/ -- -1 -869 -) -= -215 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -462 -587 -ns -/ -iter -( -+ -/ -- -6 -375 -) -= -216 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -73 -ns -/ -iter -( -+ -/ -- -0 -) -= -1109 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -3240 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -263 -ns -/ -iter -( -+ -/ -- -2 -) -= -612 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -213 -ns -/ -iter -( -+ -/ -- -3 -) -= -4938 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -178 -077 -ns -/ -iter -( -+ -/ -- -1 -844 -) -= -5888 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -0 -) -= -1250 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -5 -598 -ns -/ -iter -( -+ -/ -- -38 -) -= -5858 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -131 -ns -/ -iter -( -+ -/ -- -0 -) -= -389 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -0 -) -= -1181 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -0 -) -= -1181 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -44 -ns -/ -iter -( -+ -/ -- -0 -) -= -386 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -44 -ns -/ -iter -( -+ -/ -- -0 -) -= -386 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -3 -503 -ns -/ -iter -( -+ -/ -- -29 -) -= -296 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -276 -ns -/ -iter -( -+ -/ -- -14 -) -= -823 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -003 -152 -ns -/ -iter -( -+ -/ -- -10 -884 -) -= -1045 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -102 -ns -/ -iter -( -+ -/ -- -7 -) -= -578 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -31 -035 -ns -/ -iter -( -+ -/ -- -221 -) -= -1056 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -3 -924 -ns -/ -iter -( -+ -/ -- -23 -) -= -2038 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -2 -398 -578 -ns -/ -iter -( -+ -/ -- -28 -663 -) -= -2119 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -1 -073 -632 -ns -/ -iter -( -+ -/ -- -7 -567 -) -= -4734 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -1 -068 -696 -ns -/ -iter -( -+ -/ -- -14 -896 -) -= -4756 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -1 -071 -991 -ns -/ -iter -( -+ -/ -- -21 -623 -) -= -4742 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -1 -064 -244 -ns -/ -iter -( -+ -/ -- -22 -701 -) -= -4776 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -1 -081 -402 -ns -/ -iter -( -+ -/ -- -25 -919 -) -= -4700 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -1 -078 -319 -ns -/ -iter -( -+ -/ -- -8 -278 -) -= -4714 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -1 -067 -600 -ns -/ -iter -( -+ -/ -- -6 -079 -) -= -4761 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -1 -073 -509 -ns -/ -iter -( -+ -/ -- -8 -068 -) -= -4735 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -1 -075 -462 -ns -/ -iter -( -+ -/ -- -9 -145 -) -= -4726 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -1 -073 -592 -ns -/ -iter -( -+ -/ -- -10 -284 -) -= -4734 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -1 -074 -960 -ns -/ -iter -( -+ -/ -- -11 -802 -) -= -4728 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -14 -120 -901 -ns -/ -iter -( -+ -/ -- -85 -462 -) -= -359 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -15 -606 -152 -ns -/ -iter -( -+ -/ -- -128 -452 -) -= -325 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -18 -892 -502 -ns -/ -iter -( -+ -/ -- -82 -790 -) -= -269 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -17 -988 -621 -ns -/ -iter -( -+ -/ -- -50 -462 -) -= -282 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -15 -854 -890 -ns -/ -iter -( -+ -/ -- -54 -745 -) -= -320 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -16 -126 -069 -ns -/ -iter -( -+ -/ -- -76 -013 -) -= -315 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -17 -997 -470 -ns -/ -iter -( -+ -/ -- -94 -472 -) -= -282 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -23 -004 -949 -ns -/ -iter -( -+ -/ -- -81 -626 -) -= -220 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -20 -272 -633 -ns -/ -iter -( -+ -/ -- -99 -674 -) -= -250 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -3 -660 -138 -ns -/ -iter -( -+ -/ -- -41 -095 -) -= -162 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -3 -632 -955 -ns -/ -iter -( -+ -/ -- -25 -761 -) -= -163 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -458 -639 -ns -/ -iter -( -+ -/ -- -9 -185 -) -= -1297 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -1 -746 -052 -ns -/ -iter -( -+ -/ -- -31 -762 -) -= -340 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -4 -067 -141 -ns -/ -iter -( -+ -/ -- -12 -943 -) -= -146 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -11 -360 -188 -ns -/ -iter -( -+ -/ -- -22 -264 -) -= -52 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -11 -137 -940 -ns -/ -iter -( -+ -/ -- -35 -225 -) -= -53 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -505 -435 -ns -/ -iter -( -+ -/ -- -10 -318 -) -= -395 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -181 -084 -ns -/ -iter -( -+ -/ -- -3 -121 -) -= -3285 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -427 -474 -ns -/ -iter -( -+ -/ -- -1 -601 -) -= -1391 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -434 -858 -ns -/ -iter -( -+ -/ -- -6 -444 -) -= -1368 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -747 -274 -ns -/ -iter -( -+ -/ -- -7 -303 -) -= -796 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -574 -102 -ns -/ -iter -( -+ -/ -- -44 -203 -) -= -231 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -66 -428 -ns -/ -iter -( -+ -/ -- -336 -) -= -8956 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -333 -932 -ns -/ -iter -( -+ -/ -- -6 -683 -) -= -445 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -598 -062 -ns -/ -iter -( -+ -/ -- -4 -936 -) -= -994 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -496 -292 -ns -/ -iter -( -+ -/ -- -6 -595 -) -= -397 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -359 -203 -ns -/ -iter -( -+ -/ -- -6 -202 -) -= -1656 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -454 -624 -ns -/ -iter -( -+ -/ -- -2 -658 -) -= -1308 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -243 -450 -ns -/ -iter -( -+ -/ -- -2 -435 -) -= -2443 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -182 -407 -ns -/ -iter -( -+ -/ -- -878 -) -= -3261 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -940 -244 -ns -/ -iter -( -+ -/ -- -6 -064 -) -= -632 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -904 -285 -ns -/ -iter -( -+ -/ -- -9 -405 -) -= -657 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -244 -114 -ns -/ -iter -( -+ -/ -- -1 -875 -) -= -2437 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -358 -735 -ns -/ -iter -( -+ -/ -- -4 -090 -) -= -1658 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -348 -964 -ns -/ -iter -( -+ -/ -- -6 -060 -) -= -1704 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -21 -256 -ns -/ -iter -( -+ -/ -- -144 -) -= -27988 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -422 -149 -ns -/ -iter -( -+ -/ -- -1 -540 -) -= -1409 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -5 -232 -683 -ns -/ -iter -( -+ -/ -- -21 -609 -) -= -113 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -651 -539 -ns -/ -iter -( -+ -/ -- -1 -763 -) -= -913 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -693 -506 -ns -/ -iter -( -+ -/ -- -13 -143 -) -= -857 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -46 -904 -ns -/ -iter -( -+ -/ -- -657 -) -= -12684 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -788 -070 -ns -/ -iter -( -+ -/ -- -17 -403 -) -= -754 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -4 -545 -774 -ns -/ -iter -( -+ -/ -- -26 -965 -) -= -130 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -5 -493 -039 -ns -/ -iter -( -+ -/ -- -16 -767 -) -= -108 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -93 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/pcre2 b/third_party/rust/regex/record/old-bench-log/07/pcre2 deleted file mode 100644 index 3843e53d2abee..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/pcre2 +++ /dev/null @@ -1,2488 +0,0 @@ -running -93 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -26000 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -32500 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -1857 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -2363 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -81 -ns -/ -iter -( -+ -/ -- -4 -) -= -12975 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -60 -199 -ns -/ -iter -( -+ -/ -- -658 -) -= -17418 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -0 -) -= -2107 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -1 -878 -ns -/ -iter -( -+ -/ -- -25 -) -= -17462 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -81 -ns -/ -iter -( -+ -/ -- -0 -) -= -12888 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -59 -222 -ns -/ -iter -( -+ -/ -- -598 -) -= -17706 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -0 -) -= -1857 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -1 -819 -ns -/ -iter -( -+ -/ -- -6 -) -= -18025 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -147 -ns -/ -iter -( -+ -/ -- -13 -) -= -916 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -990 -924 -ns -/ -iter -( -+ -/ -- -6 -065 -) -= -1058 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -82 -ns -/ -iter -( -+ -/ -- -3 -) -= -719 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -32 -218 -ns -/ -iter -( -+ -/ -- -471 -) -= -1017 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -3400 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -464 -061 -ns -/ -iter -( -+ -/ -- -2 -241 -) -= -215 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -465 -191 -ns -/ -iter -( -+ -/ -- -823 -) -= -214 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -46 -ns -/ -iter -( -+ -/ -- -1 -) -= -1760 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -5062 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -246 -ns -/ -iter -( -+ -/ -- -0 -) -= -654 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -102 -ns -/ -iter -( -+ -/ -- -9 -) -= -10313 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -60 -042 -ns -/ -iter -( -+ -/ -- -585 -) -= -17464 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -29 -ns -/ -iter -( -+ -/ -- -1 -) -= -2068 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -1 -901 -ns -/ -iter -( -+ -/ -- -23 -) -= -17251 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -122 -ns -/ -iter -( -+ -/ -- -2 -) -= -418 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -2000 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -2000 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -0 -) -= -472 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -0 -) -= -472 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -3 -517 -ns -/ -iter -( -+ -/ -- -39 -) -= -295 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -123 -ns -/ -iter -( -+ -/ -- -12 -) -= -935 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -992 -521 -ns -/ -iter -( -+ -/ -- -13 -407 -) -= -1056 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -71 -ns -/ -iter -( -+ -/ -- -0 -) -= -830 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -30 -626 -ns -/ -iter -( -+ -/ -- -206 -) -= -1070 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -2 -824 -ns -/ -iter -( -+ -/ -- -21 -) -= -2832 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -1 -500 -377 -ns -/ -iter -( -+ -/ -- -8 -152 -) -= -3388 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -815 -769 -ns -/ -iter -( -+ -/ -- -14 -286 -) -= -6231 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -820 -459 -ns -/ -iter -( -+ -/ -- -57 -098 -) -= -6195 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -810 -986 -ns -/ -iter -( -+ -/ -- -4 -270 -) -= -6268 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -815 -568 -ns -/ -iter -( -+ -/ -- -35 -148 -) -= -6232 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -812 -590 -ns -/ -iter -( -+ -/ -- -6 -782 -) -= -6255 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -831 -679 -ns -/ -iter -( -+ -/ -- -12 -372 -) -= -6112 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -823 -207 -ns -/ -iter -( -+ -/ -- -12 -977 -) -= -6175 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -815 -506 -ns -/ -iter -( -+ -/ -- -11 -610 -) -= -6233 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -818 -104 -ns -/ -iter -( -+ -/ -- -4 -807 -) -= -6213 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -815 -265 -ns -/ -iter -( -+ -/ -- -21 -504 -) -= -6235 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -809 -236 -ns -/ -iter -( -+ -/ -- -7 -003 -) -= -6281 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -8 -375 -573 -ns -/ -iter -( -+ -/ -- -80 -345 -) -= -606 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -11 -207 -698 -ns -/ -iter -( -+ -/ -- -45 -582 -) -= -453 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -10 -505 -744 -ns -/ -iter -( -+ -/ -- -69 -756 -) -= -483 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -9 -276 -177 -ns -/ -iter -( -+ -/ -- -50 -904 -) -= -548 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -9 -333 -446 -ns -/ -iter -( -+ -/ -- -41 -108 -) -= -544 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -9 -865 -395 -ns -/ -iter -( -+ -/ -- -26 -010 -) -= -515 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -10 -033 -179 -ns -/ -iter -( -+ -/ -- -28 -272 -) -= -506 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -10 -752 -604 -ns -/ -iter -( -+ -/ -- -37 -714 -) -= -472 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -11 -397 -272 -ns -/ -iter -( -+ -/ -- -41 -200 -) -= -446 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -3 -627 -616 -ns -/ -iter -( -+ -/ -- -18 -202 -) -= -164 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -3 -614 -713 -ns -/ -iter -( -+ -/ -- -18 -191 -) -= -164 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -68 -419 -ns -/ -iter -( -+ -/ -- -918 -) -= -8695 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -1 -766 -571 -ns -/ -iter -( -+ -/ -- -16 -612 -) -= -336 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -4 -018 -396 -ns -/ -iter -( -+ -/ -- -11 -822 -) -= -148 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -8 -058 -390 -ns -/ -iter -( -+ -/ -- -39 -083 -) -= -73 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -8 -014 -051 -ns -/ -iter -( -+ -/ -- -33 -500 -) -= -74 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -452 -421 -ns -/ -iter -( -+ -/ -- -157 -023 -) -= -409 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -36 -248 -ns -/ -iter -( -+ -/ -- -252 -) -= -16412 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -45 -538 -ns -/ -iter -( -+ -/ -- -235 -) -= -13064 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -62 -202 -ns -/ -iter -( -+ -/ -- -892 -) -= -9564 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -623 -900 -ns -/ -iter -( -+ -/ -- -3 -139 -) -= -953 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -518 -464 -ns -/ -iter -( -+ -/ -- -31 -943 -) -= -236 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -62 -015 -ns -/ -iter -( -+ -/ -- -712 -) -= -9593 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -162 -489 -ns -/ -iter -( -+ -/ -- -14 -622 -) -= -511 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -589 -686 -ns -/ -iter -( -+ -/ -- -6 -775 -) -= -1008 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -359 -066 -ns -/ -iter -( -+ -/ -- -7 -487 -) -= -437 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -45 -993 -ns -/ -iter -( -+ -/ -- -812 -) -= -12935 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -82 -326 -ns -/ -iter -( -+ -/ -- -758 -) -= -7226 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -36 -848 -ns -/ -iter -( -+ -/ -- -50 -) -= -16145 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -36 -778 -ns -/ -iter -( -+ -/ -- -621 -) -= -16176 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -636 -825 -ns -/ -iter -( -+ -/ -- -2 -957 -) -= -934 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -635 -313 -ns -/ -iter -( -+ -/ -- -10 -776 -) -= -936 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -37 -360 -ns -/ -iter -( -+ -/ -- -132 -) -= -15924 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -34 -545 -ns -/ -iter -( -+ -/ -- -239 -) -= -17221 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -49 -019 -ns -/ -iter -( -+ -/ -- -590 -) -= -12136 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -34 -410 -ns -/ -iter -( -+ -/ -- -182 -) -= -17289 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -414 -599 -ns -/ -iter -( -+ -/ -- -3 -528 -) -= -1434 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -5 -106 -885 -ns -/ -iter -( -+ -/ -- -23 -660 -) -= -116 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -234 -135 -ns -/ -iter -( -+ -/ -- -3 -821 -) -= -2540 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -261 -765 -ns -/ -iter -( -+ -/ -- -2 -272 -) -= -2272 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -50 -816 -ns -/ -iter -( -+ -/ -- -583 -) -= -11707 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -408 -355 -ns -/ -iter -( -+ -/ -- -5 -463 -) -= -1456 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -4 -367 -721 -ns -/ -iter -( -+ -/ -- -55 -474 -) -= -136 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -4 -640 -171 -ns -/ -iter -( -+ -/ -- -20 -462 -) -= -128 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -93 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/re2 b/third_party/rust/regex/record/old-bench-log/07/re2 deleted file mode 100644 index 4f435f742a9fc..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/re2 +++ /dev/null @@ -1,2598 +0,0 @@ -running -96 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -69 -ns -/ -iter -( -+ -/ -- -0 -) -= -5652 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -26000 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -69 -ns -/ -iter -( -+ -/ -- -0 -) -= -376 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -1733 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -106 -ns -/ -iter -( -+ -/ -- -0 -) -= -9915 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -15 -311 -ns -/ -iter -( -+ -/ -- -113 -) -= -68486 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -100 -ns -/ -iter -( -+ -/ -- -3 -) -= -590 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -426 -ns -/ -iter -( -+ -/ -- -1 -) -= -76983 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -98 -ns -/ -iter -( -+ -/ -- -0 -) -= -10653 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -15 -299 -ns -/ -iter -( -+ -/ -- -136 -) -= -68540 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -91 -ns -/ -iter -( -+ -/ -- -0 -) -= -571 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -413 -ns -/ -iter -( -+ -/ -- -5 -) -= -79389 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -815 -ns -/ -iter -( -+ -/ -- -43 -) -= -579 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -1 -842 -293 -ns -/ -iter -( -+ -/ -- -10 -227 -) -= -569 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -146 -ns -/ -iter -( -+ -/ -- -4 -) -= -404 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -57 -638 -ns -/ -iter -( -+ -/ -- -481 -) -= -568 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -64 -ns -/ -iter -( -+ -/ -- -1 -) -= -796 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -122 -154 -ns -/ -iter -( -+ -/ -- -840 -) -= -818 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -122 -105 -ns -/ -iter -( -+ -/ -- -578 -) -= -818 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -178 -ns -/ -iter -( -+ -/ -- -0 -) -= -455 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -178 -ns -/ -iter -( -+ -/ -- -2 -) -= -455 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -293 -ns -/ -iter -( -+ -/ -- -2 -) -= -549 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -1 -610 -ns -/ -iter -( -+ -/ -- -26 -) -= -653 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -1 -537 -932 -ns -/ -iter -( -+ -/ -- -4 -134 -) -= -681 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -158 -ns -/ -iter -( -+ -/ -- -1 -) -= -379 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -48 -172 -ns -/ -iter -( -+ -/ -- -390 -) -= -680 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -216 -ns -/ -iter -( -+ -/ -- -1 -) -= -462 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -127 -ns -/ -iter -( -+ -/ -- -1 -) -= -401 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -64 -ns -/ -iter -( -+ -/ -- -0 -) -= -406 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -100 -ns -/ -iter -( -+ -/ -- -1 -) -= -260 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -0 -) -= -193 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -0 -) -= -197 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -1 -332 -ns -/ -iter -( -+ -/ -- -41 -) -= -780 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -815 -ns -/ -iter -( -+ -/ -- -16 -) -= -579 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -842 -206 -ns -/ -iter -( -+ -/ -- -9 -086 -) -= -569 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -149 -ns -/ -iter -( -+ -/ -- -1 -) -= -395 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -57 -591 -ns -/ -iter -( -+ -/ -- -101 -) -= -569 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -11 -753 -ns -/ -iter -( -+ -/ -- -130 -) -= -680 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -24 -330 -235 -ns -/ -iter -( -+ -/ -- -374 -274 -) -= -208 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -4 -079 -631 -ns -/ -iter -( -+ -/ -- -51 -348 -) -= -1246 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -4 -080 -803 -ns -/ -iter -( -+ -/ -- -30 -966 -) -= -1245 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -4 -154 -389 -ns -/ -iter -( -+ -/ -- -34 -825 -) -= -1223 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -4 -076 -784 -ns -/ -iter -( -+ -/ -- -102 -863 -) -= -1246 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -4 -074 -850 -ns -/ -iter -( -+ -/ -- -52 -106 -) -= -1247 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -4 -078 -456 -ns -/ -iter -( -+ -/ -- -12 -343 -) -= -1246 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -4 -075 -812 -ns -/ -iter -( -+ -/ -- -24 -524 -) -= -1247 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -4 -097 -009 -ns -/ -iter -( -+ -/ -- -13 -240 -) -= -1240 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -4 -069 -096 -ns -/ -iter -( -+ -/ -- -29 -794 -) -= -1249 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -4 -078 -838 -ns -/ -iter -( -+ -/ -- -20 -713 -) -= -1246 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -4 -116 -905 -ns -/ -iter -( -+ -/ -- -14 -130 -) -= -1234 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -21 -411 -252 -ns -/ -iter -( -+ -/ -- -568 -076 -) -= -237 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -21 -082 -571 -ns -/ -iter -( -+ -/ -- -92 -912 -) -= -241 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -20 -302 -954 -ns -/ -iter -( -+ -/ -- -118 -421 -) -= -250 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -21 -290 -669 -ns -/ -iter -( -+ -/ -- -102 -527 -) -= -238 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -21 -451 -671 -ns -/ -iter -( -+ -/ -- -99 -524 -) -= -236 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -21 -057 -017 -ns -/ -iter -( -+ -/ -- -530 -904 -) -= -241 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -20 -394 -037 -ns -/ -iter -( -+ -/ -- -128 -973 -) -= -249 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -17 -839 -069 -ns -/ -iter -( -+ -/ -- -122 -671 -) -= -284 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -12 -720 -049 -ns -/ -iter -( -+ -/ -- -76 -816 -) -= -399 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -1 -044 -129 -ns -/ -iter -( -+ -/ -- -4 -967 -) -= -569 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -1 -067 -879 -ns -/ -iter -( -+ -/ -- -11 -345 -) -= -557 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -5 -193 -222 -ns -/ -iter -( -+ -/ -- -10 -990 -) -= -114 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -2 -038 -599 -ns -/ -iter -( -+ -/ -- -18 -946 -) -= -291 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -909 -342 -ns -/ -iter -( -+ -/ -- -5 -295 -) -= -654 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -939 -154 -ns -/ -iter -( -+ -/ -- -6 -087 -) -= -633 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -2 -729 -081 -ns -/ -iter -( -+ -/ -- -15 -969 -) -= -217 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -373 -143 -ns -/ -iter -( -+ -/ -- -17 -068 -) -= -433 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -56 -266 -035 -ns -/ -iter -( -+ -/ -- -165 -398 -) -= -10 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -54 -590 -671 -ns -/ -iter -( -+ -/ -- -138 -842 -) -= -10 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -2 -702 -242 -ns -/ -iter -( -+ -/ -- -9 -889 -) -= -220 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -2 -430 -065 -ns -/ -iter -( -+ -/ -- -27 -756 -) -= -244 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -45 -514 -ns -/ -iter -( -+ -/ -- -403 -) -= -13071 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -975 -861 -ns -/ -iter -( -+ -/ -- -11 -553 -) -= -609 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -1 -070 -967 -ns -/ -iter -( -+ -/ -- -11 -065 -) -= -555 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -2 -574 -585 -ns -/ -iter -( -+ -/ -- -39 -816 -) -= -231 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -978 -776 -ns -/ -iter -( -+ -/ -- -25 -503 -) -= -607 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -1 -643 -230 -ns -/ -iter -( -+ -/ -- -27 -685 -) -= -362 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -998 -349 -ns -/ -iter -( -+ -/ -- -6 -658 -) -= -595 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -781 -006 -ns -/ -iter -( -+ -/ -- -22 -507 -) -= -334 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -92 -561 -ns -/ -iter -( -+ -/ -- -1 -358 -) -= -6427 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -1 -281 -827 -ns -/ -iter -( -+ -/ -- -7 -651 -) -= -464 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -31 -994 -ns -/ -iter -( -+ -/ -- -326 -) -= -18595 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -34 -272 -ns -/ -iter -( -+ -/ -- -445 -) -= -17359 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -218 -006 -ns -/ -iter -( -+ -/ -- -19 -301 -) -= -488 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -214 -744 -ns -/ -iter -( -+ -/ -- -11 -473 -) -= -489 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -35 -455 -ns -/ -iter -( -+ -/ -- -412 -) -= -16779 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -299 -771 -ns -/ -iter -( -+ -/ -- -7 -799 -) -= -1984 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -299 -595 -ns -/ -iter -( -+ -/ -- -926 -) -= -1985 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -9 -803 -ns -/ -iter -( -+ -/ -- -139 -) -= -60688 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -1 -033 -423 -ns -/ -iter -( -+ -/ -- -9 -177 -) -= -575 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -1 -454 -358 -ns -/ -iter -( -+ -/ -- -75 -304 -) -= -409 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -2 -486 -681 -ns -/ -iter -( -+ -/ -- -9 -026 -) -= -239 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -123 -989 -ns -/ -iter -( -+ -/ -- -1 -097 -) -= -4798 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -1 -454 -732 -ns -/ -iter -( -+ -/ -- -118 -006 -) -= -408 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -922 -008 -ns -/ -iter -( -+ -/ -- -15 -040 -) -= -309 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -16 -054 -888 -ns -/ -iter -( -+ -/ -- -90 -684 -) -= -37 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -96 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/rust b/third_party/rust/regex/record/old-bench-log/07/rust deleted file mode 100644 index 2a9b04b2b23b9..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/rust +++ /dev/null @@ -1,2850 +0,0 @@ -running -108 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -26000 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -24375 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -1857 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -1625 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -95545 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -69906866 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -5363 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -2981363 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -0 -) -= -29000 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -0 -) -= -27594631 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -0 -) -= -1333 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -0 -) -= -910777 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -0 -) -= -21895 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -0 -) -= -20560843 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -1 -) -= -1229 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -0 -) -= -683229 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -5100 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -956 -ns -/ -iter -( -+ -/ -- -14 -) -= -104603 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -538 -237 -ns -/ -iter -( -+ -/ -- -8 -739 -) -= -185 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -57 -ns -/ -iter -( -+ -/ -- -0 -) -= -1421 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -0 -) -= -3681 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -245 -ns -/ -iter -( -+ -/ -- -4 -) -= -657 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -80923 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -69906933 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -5000 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -2733000 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -318 -ns -/ -iter -( -+ -/ -- -0 -) -= -314 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -0 -) -= -600 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -0 -) -= -541 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -0 -) -= -541 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -0 -) -= -500 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -37 -ns -/ -iter -( -+ -/ -- -0 -) -= -459 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -0 -) -= -20392 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -547 -ns -/ -iter -( -+ -/ -- -19 -) -= -679 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -533 -883 -ns -/ -iter -( -+ -/ -- -9 -553 -) -= -683 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -96 -ns -/ -iter -( -+ -/ -- -0 -) -= -614 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -47 -989 -ns -/ -iter -( -+ -/ -- -198 -) -= -683 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -136 -ns -/ -iter -( -+ -/ -- -0 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -016 -ns -/ -iter -( -+ -/ -- -21 -) -= -1992 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -64 -033 -ns -/ -iter -( -+ -/ -- -470 -) -= -124935 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -6 -472 -ns -/ -iter -( -+ -/ -- -44 -) -= -123611 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -1 -906 -ns -/ -iter -( -+ -/ -- -49 -) -= -41978 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -362 -ns -/ -iter -( -+ -/ -- -1 -) -= -22129 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -259 -ns -/ -iter -( -+ -/ -- -2 -) -= -3131 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -228 -ns -/ -iter -( -+ -/ -- -0 -) -= -399 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -223 -ns -/ -iter -( -+ -/ -- -2 -) -= -85 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -224 -ns -/ -iter -( -+ -/ -- -2 -) -= -120 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -221 -ns -/ -iter -( -+ -/ -- -2 -) -= -158 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -223 -ns -/ -iter -( -+ -/ -- -2 -) -= -192 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -11 -885 -905 -ns -/ -iter -( -+ -/ -- -23 -501 -) -= -427 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -712 -544 -ns -/ -iter -( -+ -/ -- -16 -100 -) -= -7134 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -709 -739 -ns -/ -iter -( -+ -/ -- -8 -467 -) -= -7162 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -714 -261 -ns -/ -iter -( -+ -/ -- -8 -495 -) -= -7117 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -711 -197 -ns -/ -iter -( -+ -/ -- -14 -736 -) -= -7147 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -718 -083 -ns -/ -iter -( -+ -/ -- -5 -050 -) -= -7079 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -725 -196 -ns -/ -iter -( -+ -/ -- -20 -044 -) -= -7009 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -709 -301 -ns -/ -iter -( -+ -/ -- -10 -961 -) -= -7166 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -715 -658 -ns -/ -iter -( -+ -/ -- -16 -431 -) -= -7103 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -707 -472 -ns -/ -iter -( -+ -/ -- -5 -764 -) -= -7185 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -707 -300 -ns -/ -iter -( -+ -/ -- -19 -545 -) -= -7187 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -709 -950 -ns -/ -iter -( -+ -/ -- -11 -319 -) -= -7160 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -498 -980 -ns -/ -iter -( -+ -/ -- -67 -933 -) -= -2034 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -5 -544 -923 -ns -/ -iter -( -+ -/ -- -31 -911 -) -= -916 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -6 -441 -568 -ns -/ -iter -( -+ -/ -- -20 -197 -) -= -789 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -6 -421 -276 -ns -/ -iter -( -+ -/ -- -161 -499 -) -= -791 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -5 -093 -567 -ns -/ -iter -( -+ -/ -- -18 -696 -) -= -998 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -5 -094 -859 -ns -/ -iter -( -+ -/ -- -22 -894 -) -= -997 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -4 -540 -111 -ns -/ -iter -( -+ -/ -- -11 -863 -) -= -1119 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -4 -636 -741 -ns -/ -iter -( -+ -/ -- -23 -448 -) -= -1096 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -4 -557 -500 -ns -/ -iter -( -+ -/ -- -16 -168 -) -= -1115 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -880 -959 -ns -/ -iter -( -+ -/ -- -3 -004 -) -= -675 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -54 -416 -ns -/ -iter -( -+ -/ -- -1 -099 -) -= -10933 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -736 -180 -ns -/ -iter -( -+ -/ -- -9 -410 -) -= -342 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -783 -848 -ns -/ -iter -( -+ -/ -- -19 -640 -) -= -758 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -90 -085 -ns -/ -iter -( -+ -/ -- -499 -) -= -6604 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -459 -431 -ns -/ -iter -( -+ -/ -- -830 -) -= -1294 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -348 -103 -ns -/ -iter -( -+ -/ -- -9 -052 -) -= -1709 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -017 -387 -ns -/ -iter -( -+ -/ -- -3 -906 -) -= -584 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -18 -265 -074 -ns -/ -iter -( -+ -/ -- -463 -241 -) -= -32 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -17 -846 -209 -ns -/ -iter -( -+ -/ -- -431 -089 -) -= -33 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -594 -743 -ns -/ -iter -( -+ -/ -- -3 -151 -) -= -373 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -873 -308 -ns -/ -iter -( -+ -/ -- -1 -379 -) -= -681 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -21 -144 -ns -/ -iter -( -+ -/ -- -315 -) -= -28137 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -71 -354 -ns -/ -iter -( -+ -/ -- -1 -432 -) -= -8337 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -79 -167 -ns -/ -iter -( -+ -/ -- -294 -) -= -7514 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -111 -300 -ns -/ -iter -( -+ -/ -- -4 -434 -) -= -535 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -100 -864 -ns -/ -iter -( -+ -/ -- -570 -) -= -5898 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -157 -266 -ns -/ -iter -( -+ -/ -- -4 -048 -) -= -3782 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -74 -375 -ns -/ -iter -( -+ -/ -- -576 -) -= -7999 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -467 -879 -ns -/ -iter -( -+ -/ -- -2 -115 -) -= -1271 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -26 -856 -ns -/ -iter -( -+ -/ -- -345 -) -= -22152 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -124 -140 -ns -/ -iter -( -+ -/ -- -1 -111 -) -= -4792 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -52 -330 -ns -/ -iter -( -+ -/ -- -316 -) -= -11368 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -19 -646 -ns -/ -iter -( -+ -/ -- -355 -) -= -30282 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -107 -973 -ns -/ -iter -( -+ -/ -- -508 -) -= -5510 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -105 -141 -ns -/ -iter -( -+ -/ -- -426 -) -= -5658 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -61 -149 -ns -/ -iter -( -+ -/ -- -350 -) -= -9729 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -11 -735 -ns -/ -iter -( -+ -/ -- -185 -) -= -50697 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -274 -089 -ns -/ -iter -( -+ -/ -- -617 -) -= -2170 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -11 -581 -ns -/ -iter -( -+ -/ -- -298 -) -= -51371 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -447 -749 -ns -/ -iter -( -+ -/ -- -1 -173 -) -= -1328 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -69 -119 -491 -ns -/ -iter -( -+ -/ -- -117 -739 -) -= -8 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -492 -559 -ns -/ -iter -( -+ -/ -- -1 -674 -) -= -1207 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -341 -445 -ns -/ -iter -( -+ -/ -- -6 -455 -) -= -1742 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -30 -555 -ns -/ -iter -( -+ -/ -- -168 -) -= -19470 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -950 -630 -ns -/ -iter -( -+ -/ -- -25 -179 -) -= -625 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -551 -930 -ns -/ -iter -( -+ -/ -- -17 -792 -) -= -383 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -7 -229 -870 -ns -/ -iter -( -+ -/ -- -25 -046 -) -= -82 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -108 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/rust-bytes b/third_party/rust/regex/record/old-bench-log/07/rust-bytes deleted file mode 100644 index 166f5963e7dda..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/rust-bytes +++ /dev/null @@ -1,2551 +0,0 @@ -running -96 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -24375 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -24375 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -1857 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -1625 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -95545 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -74900214 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -5363 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -2981363 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -0 -) -= -29000 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -0 -) -= -27594631 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -0 -) -= -1444 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -0 -) -= -910777 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -46 -ns -/ -iter -( -+ -/ -- -0 -) -= -22847 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -0 -) -= -21400061 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -46 -ns -/ -iter -( -+ -/ -- -0 -) -= -1282 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -46 -ns -/ -iter -( -+ -/ -- -0 -) -= -712934 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -5100 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -119 -ns -/ -iter -( -+ -/ -- -22 -) -= -89366 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -535 -168 -ns -/ -iter -( -+ -/ -- -2 -976 -) -= -186 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -67 -ns -/ -iter -( -+ -/ -- -0 -) -= -1208 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -0 -) -= -3857 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -87666 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -65537750 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -5000 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -2733000 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -320 -ns -/ -iter -( -+ -/ -- -3 -) -= -312 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -0 -) -= -593 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -0 -) -= -541 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -0 -) -= -541 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -0 -) -= -500 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -37 -ns -/ -iter -( -+ -/ -- -0 -) -= -459 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -20800 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -548 -ns -/ -iter -( -+ -/ -- -0 -) -= -678 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -534 -068 -ns -/ -iter -( -+ -/ -- -14 -813 -) -= -683 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -98 -ns -/ -iter -( -+ -/ -- -1 -) -= -602 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -48 -003 -ns -/ -iter -( -+ -/ -- -128 -) -= -683 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -015 -ns -/ -iter -( -+ -/ -- -11 -) -= -1992 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -11 -859 -603 -ns -/ -iter -( -+ -/ -- -22 -707 -) -= -428 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -717 -255 -ns -/ -iter -( -+ -/ -- -3 -261 -) -= -7087 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -719 -600 -ns -/ -iter -( -+ -/ -- -4 -712 -) -= -7064 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -708 -612 -ns -/ -iter -( -+ -/ -- -6 -314 -) -= -7173 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -715 -174 -ns -/ -iter -( -+ -/ -- -5 -097 -) -= -7107 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -711 -261 -ns -/ -iter -( -+ -/ -- -12 -051 -) -= -7147 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -761 -920 -ns -/ -iter -( -+ -/ -- -4 -924 -) -= -6671 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -740 -755 -ns -/ -iter -( -+ -/ -- -12 -762 -) -= -6862 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -713 -936 -ns -/ -iter -( -+ -/ -- -7 -103 -) -= -7120 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -710 -142 -ns -/ -iter -( -+ -/ -- -5 -377 -) -= -7158 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -712 -154 -ns -/ -iter -( -+ -/ -- -4 -485 -) -= -7138 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -713 -214 -ns -/ -iter -( -+ -/ -- -6 -830 -) -= -7127 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -448 -709 -ns -/ -iter -( -+ -/ -- -10 -799 -) -= -2075 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -5 -541 -606 -ns -/ -iter -( -+ -/ -- -26 -197 -) -= -917 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -6 -563 -736 -ns -/ -iter -( -+ -/ -- -163 -805 -) -= -774 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -6 -428 -096 -ns -/ -iter -( -+ -/ -- -38 -372 -) -= -790 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -5 -110 -667 -ns -/ -iter -( -+ -/ -- -141 -363 -) -= -994 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -5 -086 -936 -ns -/ -iter -( -+ -/ -- -25 -675 -) -= -999 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -4 -607 -360 -ns -/ -iter -( -+ -/ -- -31 -834 -) -= -1103 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -4 -636 -550 -ns -/ -iter -( -+ -/ -- -11 -143 -) -= -1096 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -4 -534 -765 -ns -/ -iter -( -+ -/ -- -18 -435 -) -= -1120 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -880 -980 -ns -/ -iter -( -+ -/ -- -1 -386 -) -= -675 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -56 -626 -ns -/ -iter -( -+ -/ -- -612 -) -= -10506 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -715 -022 -ns -/ -iter -( -+ -/ -- -7 -374 -) -= -346 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -778 -398 -ns -/ -iter -( -+ -/ -- -6 -195 -) -= -764 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -91 -093 -ns -/ -iter -( -+ -/ -- -266 -) -= -6531 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -457 -793 -ns -/ -iter -( -+ -/ -- -3 -094 -) -= -1299 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -348 -696 -ns -/ -iter -( -+ -/ -- -2 -174 -) -= -1706 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -017 -664 -ns -/ -iter -( -+ -/ -- -8 -581 -) -= -584 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -19 -098 -779 -ns -/ -iter -( -+ -/ -- -36 -233 -) -= -31 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -17 -748 -386 -ns -/ -iter -( -+ -/ -- -37 -835 -) -= -33 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -592 -729 -ns -/ -iter -( -+ -/ -- -2 -977 -) -= -373 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -873 -365 -ns -/ -iter -( -+ -/ -- -1 -399 -) -= -681 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -21 -965 -ns -/ -iter -( -+ -/ -- -336 -) -= -27085 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -73 -887 -ns -/ -iter -( -+ -/ -- -107 -) -= -8051 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -79 -186 -ns -/ -iter -( -+ -/ -- -274 -) -= -7513 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -111 -949 -ns -/ -iter -( -+ -/ -- -3 -589 -) -= -535 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -102 -493 -ns -/ -iter -( -+ -/ -- -959 -) -= -5804 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -158 -438 -ns -/ -iter -( -+ -/ -- -946 -) -= -3754 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -74 -362 -ns -/ -iter -( -+ -/ -- -139 -) -= -8000 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -469 -720 -ns -/ -iter -( -+ -/ -- -5 -941 -) -= -1266 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -28 -919 -ns -/ -iter -( -+ -/ -- -372 -) -= -20572 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -123 -251 -ns -/ -iter -( -+ -/ -- -786 -) -= -4827 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -53 -032 -ns -/ -iter -( -+ -/ -- -487 -) -= -11218 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -20 -566 -ns -/ -iter -( -+ -/ -- -280 -) -= -28927 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -108 -166 -ns -/ -iter -( -+ -/ -- -303 -) -= -5500 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -105 -034 -ns -/ -iter -( -+ -/ -- -797 -) -= -5664 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -60 -968 -ns -/ -iter -( -+ -/ -- -490 -) -= -9758 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -12 -191 -ns -/ -iter -( -+ -/ -- -128 -) -= -48801 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -274 -528 -ns -/ -iter -( -+ -/ -- -1 -101 -) -= -2167 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -12 -197 -ns -/ -iter -( -+ -/ -- -191 -) -= -48776 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -446 -264 -ns -/ -iter -( -+ -/ -- -5 -936 -) -= -1333 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -69 -728 -764 -ns -/ -iter -( -+ -/ -- -155 -104 -) -= -8 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -493 -734 -ns -/ -iter -( -+ -/ -- -5 -997 -) -= -1204 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -339 -088 -ns -/ -iter -( -+ -/ -- -3 -760 -) -= -1754 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -30 -957 -ns -/ -iter -( -+ -/ -- -313 -) -= -19218 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -921 -059 -ns -/ -iter -( -+ -/ -- -8 -102 -) -= -645 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -530 -899 -ns -/ -iter -( -+ -/ -- -18 -006 -) -= -388 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -6 -959 -355 -ns -/ -iter -( -+ -/ -- -31 -671 -) -= -85 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -96 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/stdcpp b/third_party/rust/regex/record/old-bench-log/07/stdcpp deleted file mode 100644 index 030bfbb89805f..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/stdcpp +++ /dev/null @@ -1,2259 +0,0 @@ -running -82 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -142 -ns -/ -iter -( -+ -/ -- -0 -) -= -2746 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -5 -504 -ns -/ -iter -( -+ -/ -- -20 -) -= -70 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -143 -ns -/ -iter -( -+ -/ -- -0 -) -= -181 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -471 -ns -/ -iter -( -+ -/ -- -1 -) -= -55 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -14 -534 -ns -/ -iter -( -+ -/ -- -87 -) -= -72 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -14 -554 -912 -ns -/ -iter -( -+ -/ -- -33 -264 -) -= -72 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -730 -ns -/ -iter -( -+ -/ -- -1 -) -= -80 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -454 -911 -ns -/ -iter -( -+ -/ -- -526 -) -= -72 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -14 -486 -ns -/ -iter -( -+ -/ -- -45 -) -= -72 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -14 -555 -850 -ns -/ -iter -( -+ -/ -- -108 -290 -) -= -72 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -692 -ns -/ -iter -( -+ -/ -- -1 -) -= -75 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -456 -269 -ns -/ -iter -( -+ -/ -- -2 -856 -) -= -71 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -299 -581 -ns -/ -iter -( -+ -/ -- -7 -493 -) -= -3 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -314 -289 -240 -ns -/ -iter -( -+ -/ -- -128 -869 -) -= -3 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -9 -202 -ns -/ -iter -( -+ -/ -- -17 -) -= -6 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -9 -777 -807 -ns -/ -iter -( -+ -/ -- -19 -451 -) -= -3 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -804 -ns -/ -iter -( -+ -/ -- -2 -) -= -63 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -15 -712 -941 -ns -/ -iter -( -+ -/ -- -23 -893 -) -= -6 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -15 -955 -109 -ns -/ -iter -( -+ -/ -- -26 -652 -) -= -6 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -1 -250 -ns -/ -iter -( -+ -/ -- -4 -) -= -64 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -1 -250 -ns -/ -iter -( -+ -/ -- -4 -) -= -64 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -14 -913 -ns -/ -iter -( -+ -/ -- -108 -) -= -70 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -14 -929 -542 -ns -/ -iter -( -+ -/ -- -38 -890 -) -= -70 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -736 -ns -/ -iter -( -+ -/ -- -0 -) -= -81 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -466 -504 -ns -/ -iter -( -+ -/ -- -1 -488 -) -= -70 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -1 -015 -ns -/ -iter -( -+ -/ -- -8 -) -= -50 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -262 -ns -/ -iter -( -+ -/ -- -0 -) -= -99 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -263 -ns -/ -iter -( -+ -/ -- -3 -) -= -98 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -502 -ns -/ -iter -( -+ -/ -- -2 -) -= -33 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -498 -ns -/ -iter -( -+ -/ -- -0 -) -= -34 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -304 -485 -ns -/ -iter -( -+ -/ -- -762 -) -= -3 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -292 -315 -ns -/ -iter -( -+ -/ -- -1 -985 -) -= -3 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -313 -208 -610 -ns -/ -iter -( -+ -/ -- -163 -013 -) -= -3 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -9 -232 -ns -/ -iter -( -+ -/ -- -21 -) -= -6 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -9 -952 -463 -ns -/ -iter -( -+ -/ -- -22 -317 -) -= -3 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -114 -029 -ns -/ -iter -( -+ -/ -- -734 -) -= -70 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -121 -481 -845 -ns -/ -iter -( -+ -/ -- -289 -966 -) -= -41 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -73 -580 -323 -ns -/ -iter -( -+ -/ -- -82 -998 -) -= -69 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -73 -588 -543 -ns -/ -iter -( -+ -/ -- -95 -250 -) -= -69 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -73 -592 -436 -ns -/ -iter -( -+ -/ -- -86 -358 -) -= -69 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -73 -581 -323 -ns -/ -iter -( -+ -/ -- -88 -210 -) -= -69 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -73 -577 -422 -ns -/ -iter -( -+ -/ -- -48 -215 -) -= -69 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -73 -586 -896 -ns -/ -iter -( -+ -/ -- -82 -117 -) -= -69 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -73 -652 -696 -ns -/ -iter -( -+ -/ -- -95 -155 -) -= -69 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -74 -633 -620 -ns -/ -iter -( -+ -/ -- -74 -754 -) -= -68 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -73 -586 -338 -ns -/ -iter -( -+ -/ -- -82 -645 -) -= -69 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -75 -009 -572 -ns -/ -iter -( -+ -/ -- -116 -800 -) -= -67 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -73 -581 -469 -ns -/ -iter -( -+ -/ -- -146 -286 -) -= -69 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -140 -768 -740 -ns -/ -iter -( -+ -/ -- -113 -580 -) -= -36 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -153 -330 -005 -ns -/ -iter -( -+ -/ -- -11 -581 -095 -) -= -33 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -145 -484 -512 -ns -/ -iter -( -+ -/ -- -150 -566 -) -= -34 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -141 -659 -767 -ns -/ -iter -( -+ -/ -- -123 -940 -) -= -35 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -145 -309 -207 -ns -/ -iter -( -+ -/ -- -129 -675 -) -= -34 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -141 -145 -017 -ns -/ -iter -( -+ -/ -- -164 -414 -) -= -36 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -141 -897 -206 -ns -/ -iter -( -+ -/ -- -212 -981 -) -= -35 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -150 -467 -139 -ns -/ -iter -( -+ -/ -- -120 -619 -) -= -33 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -151 -635 -430 -ns -/ -iter -( -+ -/ -- -128 -912 -) -= -33 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -36 -941 -681 -ns -/ -iter -( -+ -/ -- -36 -199 -) -= -16 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -36 -920 -860 -ns -/ -iter -( -+ -/ -- -38 -258 -) -= -16 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -9 -047 -684 -ns -/ -iter -( -+ -/ -- -18 -290 -) -= -65 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -12 -634 -723 -ns -/ -iter -( -+ -/ -- -36 -086 -) -= -47 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -30 -232 -323 -ns -/ -iter -( -+ -/ -- -49 -084 -) -= -19 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -18 -837 -733 -ns -/ -iter -( -+ -/ -- -39 -569 -) -= -31 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -12 -462 -918 -ns -/ -iter -( -+ -/ -- -17 -158 -) -= -47 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -12 -490 -419 -ns -/ -iter -( -+ -/ -- -26 -214 -) -= -47 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -33 -156 -941 -ns -/ -iter -( -+ -/ -- -47 -236 -) -= -17 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -12 -583 -828 -ns -/ -iter -( -+ -/ -- -26 -121 -) -= -47 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -16 -615 -345 -ns -/ -iter -( -+ -/ -- -22 -930 -) -= -35 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -8 -307 -917 -ns -/ -iter -( -+ -/ -- -17 -452 -) -= -71 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -8 -273 -395 -ns -/ -iter -( -+ -/ -- -25 -717 -) -= -71 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -8 -270 -000 -ns -/ -iter -( -+ -/ -- -19 -702 -) -= -71 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -8 -453 -784 -ns -/ -iter -( -+ -/ -- -19 -604 -) -= -70 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -8 -679 -069 -ns -/ -iter -( -+ -/ -- -27 -721 -) -= -68 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -8 -679 -099 -ns -/ -iter -( -+ -/ -- -17 -665 -) -= -68 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -8 -260 -259 -ns -/ -iter -( -+ -/ -- -147 -913 -) -= -72 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -10 -257 -367 -ns -/ -iter -( -+ -/ -- -25 -054 -) -= -58 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -25 -374 -678 -ns -/ -iter -( -+ -/ -- -23 -494 -) -= -23 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -9 -424 -206 -ns -/ -iter -( -+ -/ -- -23 -231 -) -= -63 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -8 -350 -015 -ns -/ -iter -( -+ -/ -- -23 -176 -) -= -71 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -9 -285 -991 -ns -/ -iter -( -+ -/ -- -16 -835 -) -= -64 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -69 -609 -427 -ns -/ -iter -( -+ -/ -- -52 -974 -) -= -8 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -20 -107 -601 -ns -/ -iter -( -+ -/ -- -36 -086 -) -= -29 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -82 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/stdcpp-libcxx b/third_party/rust/regex/record/old-bench-log/07/stdcpp-libcxx deleted file mode 100644 index 96743fb8bbe8c..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/stdcpp-libcxx +++ /dev/null @@ -1,2253 +0,0 @@ -running -82 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -162 -ns -/ -iter -( -+ -/ -- -0 -) -= -2407 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -21 -901 -ns -/ -iter -( -+ -/ -- -140 -) -= -17 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -162 -ns -/ -iter -( -+ -/ -- -0 -) -= -160 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -1 -501 -ns -/ -iter -( -+ -/ -- -1 -) -= -17 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -39 -405 -ns -/ -iter -( -+ -/ -- -250 -) -= -26 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -39 -706 -678 -ns -/ -iter -( -+ -/ -- -103 -211 -) -= -26 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -1 -415 -ns -/ -iter -( -+ -/ -- -3 -) -= -41 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -1 -241 -085 -ns -/ -iter -( -+ -/ -- -5 -625 -) -= -26 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -39 -421 -ns -/ -iter -( -+ -/ -- -275 -) -= -26 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -39 -725 -158 -ns -/ -iter -( -+ -/ -- -64 -488 -) -= -26 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -1 -421 -ns -/ -iter -( -+ -/ -- -8 -) -= -36 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -1 -240 -953 -ns -/ -iter -( -+ -/ -- -5 -794 -) -= -26 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -1 -263 -948 -ns -/ -iter -( -+ -/ -- -31 -771 -) -test -misc -: -: -hard_1MB -. -. -. -bench -: -1 -331 -000 -673 -ns -/ -iter -( -+ -/ -- -7 -401 -131 -) -test -misc -: -: -hard_32 -. -. -. -bench -: -37 -752 -ns -/ -iter -( -+ -/ -- -109 -) -= -1 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -41 -044 -286 -ns -/ -iter -( -+ -/ -- -57 -765 -) -test -misc -: -: -literal -. -. -. -bench -: -1 -980 -ns -/ -iter -( -+ -/ -- -7 -) -= -25 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -12 -425 -121 -ns -/ -iter -( -+ -/ -- -36 -611 -) -= -8 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -12 -568 -992 -ns -/ -iter -( -+ -/ -- -28 -513 -) -= -7 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -3 -918 -ns -/ -iter -( -+ -/ -- -67 -) -= -20 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -3 -534 -ns -/ -iter -( -+ -/ -- -11 -) -= -22 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -44 -910 -ns -/ -iter -( -+ -/ -- -167 -) -= -23 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -45 -558 -328 -ns -/ -iter -( -+ -/ -- -77 -166 -) -= -23 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -1 -599 -ns -/ -iter -( -+ -/ -- -12 -) -= -37 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -1 -423 -945 -ns -/ -iter -( -+ -/ -- -9 -468 -) -= -23 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -2 -051 -ns -/ -iter -( -+ -/ -- -16 -) -= -24 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -222 -ns -/ -iter -( -+ -/ -- -0 -) -= -117 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -223 -ns -/ -iter -( -+ -/ -- -0 -) -= -116 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -2 -002 -ns -/ -iter -( -+ -/ -- -37 -) -= -8 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -1 -990 -ns -/ -iter -( -+ -/ -- -6 -) -= -8 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -1 -335 -845 -ns -/ -iter -( -+ -/ -- -6 -233 -) -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -208 -846 -ns -/ -iter -( -+ -/ -- -6 -070 -) -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -291 -183 -401 -ns -/ -iter -( -+ -/ -- -4 -281 -775 -) -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -36 -521 -ns -/ -iter -( -+ -/ -- -157 -) -= -1 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -40 -131 -467 -ns -/ -iter -( -+ -/ -- -66 -846 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -506 -352 -ns -/ -iter -( -+ -/ -- -632 -) -= -15 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -510 -954 -670 -ns -/ -iter -( -+ -/ -- -1 -946 -366 -) -= -9 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -198 -786 -137 -ns -/ -iter -( -+ -/ -- -240 -963 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -198 -733 -597 -ns -/ -iter -( -+ -/ -- -770 -484 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -198 -734 -922 -ns -/ -iter -( -+ -/ -- -198 -116 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -198 -735 -715 -ns -/ -iter -( -+ -/ -- -235 -337 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -198 -736 -727 -ns -/ -iter -( -+ -/ -- -157 -633 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -198 -811 -880 -ns -/ -iter -( -+ -/ -- -1 -502 -214 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -198 -697 -281 -ns -/ -iter -( -+ -/ -- -211 -978 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -198 -714 -239 -ns -/ -iter -( -+ -/ -- -1 -187 -050 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -199 -021 -730 -ns -/ -iter -( -+ -/ -- -1 -555 -969 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -199 -033 -133 -ns -/ -iter -( -+ -/ -- -213 -859 -) -= -25 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -199 -466 -527 -ns -/ -iter -( -+ -/ -- -1 -394 -750 -) -= -25 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -403 -588 -578 -ns -/ -iter -( -+ -/ -- -493 -905 -) -= -12 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -440 -582 -945 -ns -/ -iter -( -+ -/ -- -305 -836 -) -= -11 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -417 -460 -804 -ns -/ -iter -( -+ -/ -- -1 -858 -105 -) -= -12 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -407 -209 -088 -ns -/ -iter -( -+ -/ -- -1 -374 -513 -) -= -12 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -408 -665 -895 -ns -/ -iter -( -+ -/ -- -338 -946 -) -= -12 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -408 -640 -565 -ns -/ -iter -( -+ -/ -- -1 -895 -287 -) -= -12 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -406 -340 -097 -ns -/ -iter -( -+ -/ -- -2 -309 -358 -) -= -12 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -413 -195 -331 -ns -/ -iter -( -+ -/ -- -2 -178 -194 -) -= -12 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -438 -844 -927 -ns -/ -iter -( -+ -/ -- -2 -589 -599 -) -= -11 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -165 -435 -560 -ns -/ -iter -( -+ -/ -- -165 -901 -) -= -3 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -164 -466 -984 -ns -/ -iter -( -+ -/ -- -178 -082 -) -= -3 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -34 -680 -745 -ns -/ -iter -( -+ -/ -- -862 -671 -) -= -17 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -59 -712 -596 -ns -/ -iter -( -+ -/ -- -85 -049 -) -= -9 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -135 -611 -524 -ns -/ -iter -( -+ -/ -- -383 -869 -) -= -4 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -73 -398 -446 -ns -/ -iter -( -+ -/ -- -112 -893 -) -= -8 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -42 -274 -906 -ns -/ -iter -( -+ -/ -- -60 -836 -) -= -14 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -42 -159 -449 -ns -/ -iter -( -+ -/ -- -56 -642 -) -= -14 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -121 -926 -811 -ns -/ -iter -( -+ -/ -- -624 -877 -) -= -4 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -58 -912 -788 -ns -/ -iter -( -+ -/ -- -101 -576 -) -= -10 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -63 -891 -303 -ns -/ -iter -( -+ -/ -- -79 -754 -) -= -9 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -22 -995 -759 -ns -/ -iter -( -+ -/ -- -45 -074 -) -= -25 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -23 -024 -135 -ns -/ -iter -( -+ -/ -- -86 -982 -) -= -25 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -23 -026 -357 -ns -/ -iter -( -+ -/ -- -42 -271 -) -= -25 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -32 -485 -572 -ns -/ -iter -( -+ -/ -- -77 -736 -) -= -18 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -23 -544 -207 -ns -/ -iter -( -+ -/ -- -590 -037 -) -= -25 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -23 -543 -480 -ns -/ -iter -( -+ -/ -- -51 -838 -) -= -25 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -23 -024 -692 -ns -/ -iter -( -+ -/ -- -78 -358 -) -= -25 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -42 -376 -602 -ns -/ -iter -( -+ -/ -- -49 -060 -) -= -14 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -92 -701 -274 -ns -/ -iter -( -+ -/ -- -208 -063 -) -= -6 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -23 -553 -163 -ns -/ -iter -( -+ -/ -- -61 -446 -) -= -25 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -23 -281 -951 -ns -/ -iter -( -+ -/ -- -35 -811 -) -= -25 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -33 -011 -779 -ns -/ -iter -( -+ -/ -- -65 -085 -) -= -18 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -64 -965 -762 -ns -/ -iter -( -+ -/ -- -106 -103 -) -= -9 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -47 -466 -153 -ns -/ -iter -( -+ -/ -- -773 -222 -) -= -12 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -82 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/07/tcl b/third_party/rust/regex/record/old-bench-log/07/tcl deleted file mode 100644 index 869c3e3896107..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/07/tcl +++ /dev/null @@ -1,2445 +0,0 @@ -running -89 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -452 -ns -/ -iter -( -+ -/ -- -6 -) -= -862 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -92 -ns -/ -iter -( -+ -/ -- -2 -) -= -4239 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -454 -ns -/ -iter -( -+ -/ -- -6 -) -= -57 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -92 -ns -/ -iter -( -+ -/ -- -1 -) -= -282 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -9 -231 -ns -/ -iter -( -+ -/ -- -59 -) -= -113 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -2 -828 -050 -ns -/ -iter -( -+ -/ -- -9 -104 -) -= -370 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -6 -527 -ns -/ -iter -( -+ -/ -- -78 -) -= -9 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -94 -825 -ns -/ -iter -( -+ -/ -- -410 -) -= -345 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -5 -420 -ns -/ -iter -( -+ -/ -- -54 -) -= -192 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -2 -823 -597 -ns -/ -iter -( -+ -/ -- -8 -534 -) -= -371 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -2 -727 -ns -/ -iter -( -+ -/ -- -80 -) -= -19 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -93 -382 -ns -/ -iter -( -+ -/ -- -108 -) -= -351 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -12 -046 -ns -/ -iter -( -+ -/ -- -88 -) -= -87 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -2 -831 -445 -ns -/ -iter -( -+ -/ -- -9 -713 -) -= -370 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -9 -257 -ns -/ -iter -( -+ -/ -- -63 -) -= -6 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -97 -613 -ns -/ -iter -( -+ -/ -- -533 -) -= -335 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -398 -ns -/ -iter -( -+ -/ -- -14 -) -= -128 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -18 -459 -088 -ns -/ -iter -( -+ -/ -- -162 -391 -) -= -5 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -18 -390 -595 -ns -/ -iter -( -+ -/ -- -96 -143 -) -= -5 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -480 -ns -/ -iter -( -+ -/ -- -1 -) -= -168 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -477 -ns -/ -iter -( -+ -/ -- -10 -) -= -169 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -9 -573 -ns -/ -iter -( -+ -/ -- -94 -) -= -109 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -2 -828 -512 -ns -/ -iter -( -+ -/ -- -28 -270 -) -= -370 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -6 -874 -ns -/ -iter -( -+ -/ -- -68 -) -= -8 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -95 -040 -ns -/ -iter -( -+ -/ -- -517 -) -= -345 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -1 -976 -788 -ns -/ -iter -( -+ -/ -- -20 -661 -) -test -misc -: -: -not_literal -. -. -. -bench -: -1 -548 -ns -/ -iter -( -+ -/ -- -15 -) -= -32 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -5 -063 -ns -/ -iter -( -+ -/ -- -76 -) -= -5 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -4 -933 -ns -/ -iter -( -+ -/ -- -62 -) -= -5 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -486 -ns -/ -iter -( -+ -/ -- -4 -) -= -34 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -579 -ns -/ -iter -( -+ -/ -- -3 -) -= -29 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -88 -153 -ns -/ -iter -( -+ -/ -- -2 -317 -) -= -11 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -12 -157 -ns -/ -iter -( -+ -/ -- -51 -) -= -86 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -2 -866 -126 -ns -/ -iter -( -+ -/ -- -71 -338 -) -= -365 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -9 -321 -ns -/ -iter -( -+ -/ -- -138 -) -= -6 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -97 -799 -ns -/ -iter -( -+ -/ -- -1 -087 -) -= -335 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -22 -679 -ns -/ -iter -( -+ -/ -- -293 -) -= -352 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -38 -700 -951 -ns -/ -iter -( -+ -/ -- -105 -197 -) -= -131 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -22 -123 -470 -ns -/ -iter -( -+ -/ -- -96 -738 -) -= -229 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -22 -125 -412 -ns -/ -iter -( -+ -/ -- -65 -856 -) -= -229 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -22 -178 -791 -ns -/ -iter -( -+ -/ -- -75 -853 -) -= -229 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -22 -348 -278 -ns -/ -iter -( -+ -/ -- -228 -790 -) -= -227 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -22 -187 -493 -ns -/ -iter -( -+ -/ -- -69 -149 -) -= -229 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -22 -134 -373 -ns -/ -iter -( -+ -/ -- -71 -979 -) -= -229 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -22 -183 -169 -ns -/ -iter -( -+ -/ -- -66 -220 -) -= -229 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -22 -263 -432 -ns -/ -iter -( -+ -/ -- -91 -605 -) -= -228 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -22 -256 -481 -ns -/ -iter -( -+ -/ -- -62 -794 -) -= -228 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -22 -134 -314 -ns -/ -iter -( -+ -/ -- -75 -199 -) -= -229 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -22 -144 -129 -ns -/ -iter -( -+ -/ -- -76 -744 -) -= -229 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -13 -846 -793 -ns -/ -iter -( -+ -/ -- -33 -520 -) -= -367 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -14 -248 -239 -ns -/ -iter -( -+ -/ -- -62 -252 -) -= -356 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -15 -702 -520 -ns -/ -iter -( -+ -/ -- -339 -738 -) -= -323 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -15 -143 -136 -ns -/ -iter -( -+ -/ -- -52 -300 -) -= -335 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -16 -324 -698 -ns -/ -iter -( -+ -/ -- -50 -942 -) -= -311 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -14 -508 -593 -ns -/ -iter -( -+ -/ -- -46 -251 -) -= -350 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -14 -443 -485 -ns -/ -iter -( -+ -/ -- -80 -444 -) -= -351 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -14 -430 -571 -ns -/ -iter -( -+ -/ -- -63 -143 -) -= -352 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -14 -883 -129 -ns -/ -iter -( -+ -/ -- -76 -837 -) -= -341 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -2 -227 -807 -ns -/ -iter -( -+ -/ -- -9 -119 -) -= -267 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -2 -700 -579 -ns -/ -iter -( -+ -/ -- -24 -875 -) -= -220 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -2 -211 -847 -ns -/ -iter -( -+ -/ -- -15 -027 -) -= -268 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -4 -398 -150 -ns -/ -iter -( -+ -/ -- -27 -219 -) -= -135 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -17 -992 -130 -ns -/ -iter -( -+ -/ -- -457 -978 -) -= -33 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -1 -845 -704 -ns -/ -iter -( -+ -/ -- -9 -382 -) -= -322 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -1 -890 -373 -ns -/ -iter -( -+ -/ -- -9 -971 -) -= -314 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -2 -626 -524 -ns -/ -iter -( -+ -/ -- -18 -261 -) -= -226 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -4 -468 -643 -ns -/ -iter -( -+ -/ -- -11 -946 -) -= -133 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -7 -226 -342 -ns -/ -iter -( -+ -/ -- -57 -220 -) -= -82 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -2 -395 -105 -ns -/ -iter -( -+ -/ -- -31 -101 -) -= -248 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -2 -895 -153 -ns -/ -iter -( -+ -/ -- -12 -446 -) -= -205 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -3 -253 -560 -ns -/ -iter -( -+ -/ -- -33 -725 -) -= -182 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -4 -008 -656 -ns -/ -iter -( -+ -/ -- -39 -415 -) -= -148 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -2 -076 -117 -ns -/ -iter -( -+ -/ -- -6 -376 -) -= -286 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -2 -157 -634 -ns -/ -iter -( -+ -/ -- -6 -494 -) -= -275 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -1 -757 -317 -ns -/ -iter -( -+ -/ -- -5 -935 -) -= -338 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -1 -897 -004 -ns -/ -iter -( -+ -/ -- -12 -012 -) -= -313 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -1 -939 -722 -ns -/ -iter -( -+ -/ -- -6 -273 -) -= -306 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -1 -801 -334 -ns -/ -iter -( -+ -/ -- -3 -179 -) -= -330 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -1 -910 -996 -ns -/ -iter -( -+ -/ -- -6 -429 -) -= -311 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -1 -601 -431 -ns -/ -iter -( -+ -/ -- -7 -131 -) -= -371 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -1 -601 -153 -ns -/ -iter -( -+ -/ -- -4 -375 -) -= -371 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -1 -600 -840 -ns -/ -iter -( -+ -/ -- -8 -348 -) -= -371 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -7 -620 -650 -ns -/ -iter -( -+ -/ -- -48 -467 -) -= -78 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -55 -564 -521 -ns -/ -iter -( -+ -/ -- -210 -324 -) -= -10 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -5 -628 -558 -ns -/ -iter -( -+ -/ -- -19 -934 -) -= -105 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -6 -063 -195 -ns -/ -iter -( -+ -/ -- -28 -534 -) -= -98 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -1 -992 -703 -ns -/ -iter -( -+ -/ -- -6 -736 -) -= -298 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -7 -159 -423 -ns -/ -iter -( -+ -/ -- -38 -306 -) -= -83 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -38 -358 -421 -ns -/ -iter -( -+ -/ -- -99 -230 -) -= -15 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -89 -measured -; -0 -filtered -out diff --git a/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-after-01 b/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-after-01 deleted file mode 100644 index 0367348395a78..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-after-01 +++ /dev/null @@ -1,3122 +0,0 @@ -running -119 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -1 -) -= -21666 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -2 -) -= -20526 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -1 -) -= -1444 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -0 -) -= -1368 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -2 -) -= -70066 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -0 -) -= -47663772 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -2 -) -= -4214 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -1 -) -= -2186333 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -2 -) -= -26100 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -44 -ns -/ -iter -( -+ -/ -- -5 -) -= -23831727 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -5 -) -= -1333 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -3 -) -= -799707 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -7 -) -= -21020 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -6 -) -= -19065509 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -7 -) -= -1180 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -2 -) -= -655900 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -60 -ns -/ -iter -( -+ -/ -- -2 -) -= -416 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -1 -) -= -4250 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -3 -252 -ns -/ -iter -( -+ -/ -- -168 -) -= -30750 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -355 -576 -ns -/ -iter -( -+ -/ -- -34 -074 -) -= -281 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -67 -ns -/ -iter -( -+ -/ -- -2 -) -= -1208 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -5785 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -256 -ns -/ -iter -( -+ -/ -- -36 -) -= -628 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -458 -ns -/ -iter -( -+ -/ -- -65 -) -= -54 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -1 -) -= -70133 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -2 -) -= -45591478 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -4000 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -2186400 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -406 -ns -/ -iter -( -+ -/ -- -32 -) -= -246 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -90 -ns -/ -iter -( -+ -/ -- -12 -) -= -566 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -1 -) -= -490 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -7 -) -= -509 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -37 -ns -/ -iter -( -+ -/ -- -1 -) -= -459 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -5 -) -= -435 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -75 -ns -/ -iter -( -+ -/ -- -2 -) -= -13866 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -591 -ns -/ -iter -( -+ -/ -- -227 -) -= -660 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -576 -602 -ns -/ -iter -( -+ -/ -- -204 -573 -) -= -665 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -102 -ns -/ -iter -( -+ -/ -- -7 -) -= -578 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -49 -327 -ns -/ -iter -( -+ -/ -- -4 -812 -) -= -664 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -132 -ns -/ -iter -( -+ -/ -- -13 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -190 -ns -/ -iter -( -+ -/ -- -581 -) -= -1909 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -132 -982 -ns -/ -iter -( -+ -/ -- -18 -045 -) -= -60158 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -14 -720 -ns -/ -iter -( -+ -/ -- -946 -) -= -54348 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -5 -993 -ns -/ -iter -( -+ -/ -- -381 -) -= -13350 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -476 -ns -/ -iter -( -+ -/ -- -58 -) -= -16829 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -227 -ns -/ -iter -( -+ -/ -- -22 -) -= -3572 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -211 -ns -/ -iter -( -+ -/ -- -13 -) -= -431 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -204 -ns -/ -iter -( -+ -/ -- -29 -) -= -93 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -206 -ns -/ -iter -( -+ -/ -- -7 -) -= -131 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -212 -ns -/ -iter -( -+ -/ -- -16 -) -= -165 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -207 -ns -/ -iter -( -+ -/ -- -29 -) -= -207 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -12 -053 -740 -ns -/ -iter -( -+ -/ -- -393 -644 -) -= -421 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -786 -112 -ns -/ -iter -( -+ -/ -- -91 -136 -) -= -6466 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -831 -353 -ns -/ -iter -( -+ -/ -- -67 -293 -) -= -6114 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -784 -021 -ns -/ -iter -( -+ -/ -- -28 -112 -) -= -6483 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -785 -838 -ns -/ -iter -( -+ -/ -- -108 -510 -) -= -6468 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -791 -789 -ns -/ -iter -( -+ -/ -- -37 -364 -) -= -6420 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -784 -224 -ns -/ -iter -( -+ -/ -- -23 -802 -) -= -6482 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -788 -368 -ns -/ -iter -( -+ -/ -- -75 -171 -) -= -6448 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -784 -730 -ns -/ -iter -( -+ -/ -- -48 -594 -) -= -6477 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -788 -067 -ns -/ -iter -( -+ -/ -- -88 -333 -) -= -6450 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -810 -784 -ns -/ -iter -( -+ -/ -- -111 -836 -) -= -6269 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -788 -854 -ns -/ -iter -( -+ -/ -- -66 -496 -) -= -6444 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -238 -677 -ns -/ -iter -( -+ -/ -- -144 -752 -) -= -2270 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -3 -258 -761 -ns -/ -iter -( -+ -/ -- -205 -012 -) -= -1559 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -3 -818 -146 -ns -/ -iter -( -+ -/ -- -254 -877 -) -= -1331 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -3 -837 -323 -ns -/ -iter -( -+ -/ -- -349 -373 -) -= -1324 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -2 -698 -901 -ns -/ -iter -( -+ -/ -- -111 -145 -) -= -1883 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -2 -687 -854 -ns -/ -iter -( -+ -/ -- -184 -039 -) -= -1891 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -3 -291 -211 -ns -/ -iter -( -+ -/ -- -220 -992 -) -= -1544 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -3 -359 -262 -ns -/ -iter -( -+ -/ -- -185 -610 -) -= -1513 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -3 -293 -953 -ns -/ -iter -( -+ -/ -- -245 -454 -) -= -1543 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -95 -142 -ns -/ -iter -( -+ -/ -- -10 -195 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -5 -650 -680 -ns -/ -iter -( -+ -/ -- -252 -936 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -10 -867 -986 -ns -/ -iter -( -+ -/ -- -275 -259 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -3 -751 -ns -/ -iter -( -+ -/ -- -310 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -3 -664 -ns -/ -iter -( -+ -/ -- -172 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -22 -078 -ns -/ -iter -( -+ -/ -- -3 -259 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -8 -499 -ns -/ -iter -( -+ -/ -- -942 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -151 -196 -ns -/ -iter -( -+ -/ -- -16 -322 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -309 -597 -ns -/ -iter -( -+ -/ -- -32 -622 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -917 -591 -ns -/ -iter -( -+ -/ -- -55 -643 -) -= -648 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -62 -726 -ns -/ -iter -( -+ -/ -- -8 -861 -) -= -9484 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -036 -050 -ns -/ -iter -( -+ -/ -- -152 -461 -) -= -292 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -796 -690 -ns -/ -iter -( -+ -/ -- -71 -089 -) -= -746 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -106 -258 -ns -/ -iter -( -+ -/ -- -8 -294 -) -= -5598 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -481 -086 -ns -/ -iter -( -+ -/ -- -60 -212 -) -= -1236 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -322 -033 -ns -/ -iter -( -+ -/ -- -8 -912 -) -= -1847 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -067 -523 -ns -/ -iter -( -+ -/ -- -89 -630 -) -= -557 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -22 -745 -932 -ns -/ -iter -( -+ -/ -- -428 -787 -) -= -26 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -22 -228 -365 -ns -/ -iter -( -+ -/ -- -495 -287 -) -= -26 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -775 -941 -ns -/ -iter -( -+ -/ -- -158 -985 -) -= -334 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -897 -327 -ns -/ -iter -( -+ -/ -- -49 -085 -) -= -663 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -32 -008 -ns -/ -iter -( -+ -/ -- -4 -011 -) -= -18587 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -86 -850 -ns -/ -iter -( -+ -/ -- -5 -463 -) -= -6850 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -98 -359 -ns -/ -iter -( -+ -/ -- -14 -052 -) -= -6048 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -381 -147 -ns -/ -iter -( -+ -/ -- -16 -996 -) -= -1560 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -121 -025 -ns -/ -iter -( -+ -/ -- -16 -654 -) -= -4915 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -188 -972 -ns -/ -iter -( -+ -/ -- -26 -145 -) -= -3148 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -91 -832 -ns -/ -iter -( -+ -/ -- -6 -188 -) -= -6478 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -351 -422 -ns -/ -iter -( -+ -/ -- -49 -084 -) -= -1692 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -33 -405 -ns -/ -iter -( -+ -/ -- -3 -113 -) -= -17809 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -134 -899 -ns -/ -iter -( -+ -/ -- -10 -883 -) -= -4410 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -22 -455 -ns -/ -iter -( -+ -/ -- -2 -027 -) -= -26494 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -22 -283 -ns -/ -iter -( -+ -/ -- -2 -281 -) -= -26698 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -97 -492 -ns -/ -iter -( -+ -/ -- -6 -496 -) -= -6102 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -95 -627 -ns -/ -iter -( -+ -/ -- -8 -442 -) -= -6221 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -30 -702 -ns -/ -iter -( -+ -/ -- -4 -194 -) -= -19377 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -19 -616 -ns -/ -iter -( -+ -/ -- -2 -677 -) -= -30328 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -25 -601 -ns -/ -iter -( -+ -/ -- -2 -506 -) -= -23238 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -19 -641 -ns -/ -iter -( -+ -/ -- -2 -175 -) -= -30290 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -369 -048 -ns -/ -iter -( -+ -/ -- -25 -898 -) -= -1612 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -75 -780 -396 -ns -/ -iter -( -+ -/ -- -1 -032 -817 -) -= -7 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -327 -762 -ns -/ -iter -( -+ -/ -- -48 -769 -) -= -1815 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -532 -075 -ns -/ -iter -( -+ -/ -- -40 -117 -) -= -1118 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -45 -197 -ns -/ -iter -( -+ -/ -- -1 -621 -) -= -13163 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -819 -239 -ns -/ -iter -( -+ -/ -- -81 -388 -) -= -726 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -716 -625 -ns -/ -iter -( -+ -/ -- -120 -247 -) -= -346 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -8 -690 -764 -ns -/ -iter -( -+ -/ -- -322 -915 -) -= -68 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -119 -measured -; -0 -filtered -out -; -finished -in -114 -. -31s diff --git a/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-after-02 b/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-after-02 deleted file mode 100644 index 63643b4846f7d..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-after-02 +++ /dev/null @@ -1,3123 +0,0 @@ -running -119 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -2 -) -= -21666 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -1 -) -= -20526 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -1 -) -= -1444 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -2 -) -= -1368 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -1 -) -= -70066 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -1 -) -= -47663772 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -1 -) -= -4214 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -1 -) -= -2186333 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -4 -) -= -26769 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -3 -) -= -24385953 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -4 -) -= -1333 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -3 -) -= -840717 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -5 -) -= -21020 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -7 -) -= -19065509 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -5 -) -= -1180 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -6 -) -= -655900 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -60 -ns -/ -iter -( -+ -/ -- -4 -) -= -416 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -4250 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -3 -251 -ns -/ -iter -( -+ -/ -- -333 -) -= -30760 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -355 -576 -ns -/ -iter -( -+ -/ -- -24 -612 -) -= -281 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -66 -ns -/ -iter -( -+ -/ -- -1 -) -= -1227 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -1 -) -= -5785 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -254 -ns -/ -iter -( -+ -/ -- -25 -) -= -633 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -456 -ns -/ -iter -( -+ -/ -- -17 -) -= -54 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -70133 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -2 -) -= -45591478 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -2 -) -= -4000 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -2 -) -= -2186400 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -403 -ns -/ -iter -( -+ -/ -- -55 -) -= -248 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -90 -ns -/ -iter -( -+ -/ -- -12 -) -= -566 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -7 -) -= -509 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -5 -) -= -509 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -5 -) -= -447 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -1 -) -= -435 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -75 -ns -/ -iter -( -+ -/ -- -2 -) -= -13866 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -592 -ns -/ -iter -( -+ -/ -- -148 -) -= -660 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -576 -299 -ns -/ -iter -( -+ -/ -- -142 -145 -) -= -665 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -103 -ns -/ -iter -( -+ -/ -- -8 -) -= -572 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -49 -326 -ns -/ -iter -( -+ -/ -- -3 -202 -) -= -664 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -132 -ns -/ -iter -( -+ -/ -- -16 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -168 -ns -/ -iter -( -+ -/ -- -227 -) -= -1919 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -132 -733 -ns -/ -iter -( -+ -/ -- -18 -141 -) -= -60271 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -14 -468 -ns -/ -iter -( -+ -/ -- -1 -777 -) -= -55295 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -6 -316 -ns -/ -iter -( -+ -/ -- -360 -) -= -12667 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -474 -ns -/ -iter -( -+ -/ -- -69 -) -= -16900 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -229 -ns -/ -iter -( -+ -/ -- -32 -) -= -3541 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -212 -ns -/ -iter -( -+ -/ -- -18 -) -= -429 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -205 -ns -/ -iter -( -+ -/ -- -28 -) -= -92 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -207 -ns -/ -iter -( -+ -/ -- -20 -) -= -130 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -213 -ns -/ -iter -( -+ -/ -- -7 -) -= -164 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -208 -ns -/ -iter -( -+ -/ -- -9 -) -= -206 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -12 -050 -847 -ns -/ -iter -( -+ -/ -- -346 -484 -) -= -421 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -817 -689 -ns -/ -iter -( -+ -/ -- -104 -629 -) -= -6216 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -788 -728 -ns -/ -iter -( -+ -/ -- -66 -497 -) -= -6445 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -787 -188 -ns -/ -iter -( -+ -/ -- -49 -158 -) -= -6457 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -787 -143 -ns -/ -iter -( -+ -/ -- -108 -541 -) -= -6458 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -792 -452 -ns -/ -iter -( -+ -/ -- -32 -963 -) -= -6414 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -820 -043 -ns -/ -iter -( -+ -/ -- -71 -037 -) -= -6198 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -790 -043 -ns -/ -iter -( -+ -/ -- -39 -234 -) -= -6434 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -785 -007 -ns -/ -iter -( -+ -/ -- -18 -701 -) -= -6475 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -789 -393 -ns -/ -iter -( -+ -/ -- -51 -525 -) -= -6439 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -784 -190 -ns -/ -iter -( -+ -/ -- -90 -675 -) -= -6482 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -789 -021 -ns -/ -iter -( -+ -/ -- -88 -256 -) -= -6442 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -237 -592 -ns -/ -iter -( -+ -/ -- -146 -174 -) -= -2271 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -3 -255 -382 -ns -/ -iter -( -+ -/ -- -179 -473 -) -= -1561 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -3 -812 -799 -ns -/ -iter -( -+ -/ -- -210 -786 -) -= -1333 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -3 -853 -476 -ns -/ -iter -( -+ -/ -- -263 -442 -) -= -1319 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -2 -696 -756 -ns -/ -iter -( -+ -/ -- -161 -353 -) -= -1885 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -2 -683 -221 -ns -/ -iter -( -+ -/ -- -149 -650 -) -= -1894 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -3 -289 -426 -ns -/ -iter -( -+ -/ -- -209 -217 -) -= -1545 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -3 -362 -858 -ns -/ -iter -( -+ -/ -- -274 -273 -) -= -1511 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -3 -287 -253 -ns -/ -iter -( -+ -/ -- -188 -894 -) -= -1546 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -94 -912 -ns -/ -iter -( -+ -/ -- -12 -311 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -5 -534 -281 -ns -/ -iter -( -+ -/ -- -192 -069 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -10 -969 -970 -ns -/ -iter -( -+ -/ -- -312 -230 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -3 -523 -ns -/ -iter -( -+ -/ -- -525 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -3 -564 -ns -/ -iter -( -+ -/ -- -355 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -19 -887 -ns -/ -iter -( -+ -/ -- -1 -885 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -8 -294 -ns -/ -iter -( -+ -/ -- -1 -123 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -153 -070 -ns -/ -iter -( -+ -/ -- -20 -825 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -313 -318 -ns -/ -iter -( -+ -/ -- -28 -271 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -907 -585 -ns -/ -iter -( -+ -/ -- -86 -027 -) -= -655 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -62 -765 -ns -/ -iter -( -+ -/ -- -6 -413 -) -= -9478 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -033 -519 -ns -/ -iter -( -+ -/ -- -97 -963 -) -= -292 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -796 -514 -ns -/ -iter -( -+ -/ -- -48 -247 -) -= -746 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -107 -788 -ns -/ -iter -( -+ -/ -- -15 -545 -) -= -5519 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -482 -686 -ns -/ -iter -( -+ -/ -- -49 -033 -) -= -1232 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -322 -901 -ns -/ -iter -( -+ -/ -- -46 -329 -) -= -1842 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -067 -799 -ns -/ -iter -( -+ -/ -- -57 -022 -) -= -557 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -22 -823 -246 -ns -/ -iter -( -+ -/ -- -472 -094 -) -= -26 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -22 -137 -278 -ns -/ -iter -( -+ -/ -- -443 -188 -) -= -26 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -773 -598 -ns -/ -iter -( -+ -/ -- -96 -994 -) -= -335 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -897 -623 -ns -/ -iter -( -+ -/ -- -48 -509 -) -= -662 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -31 -882 -ns -/ -iter -( -+ -/ -- -3 -354 -) -= -18660 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -86 -500 -ns -/ -iter -( -+ -/ -- -7 -997 -) -= -6877 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -98 -159 -ns -/ -iter -( -+ -/ -- -6 -106 -) -= -6060 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -383 -858 -ns -/ -iter -( -+ -/ -- -19 -224 -) -= -1549 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -122 -489 -ns -/ -iter -( -+ -/ -- -17 -271 -) -= -4857 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -192 -081 -ns -/ -iter -( -+ -/ -- -10 -999 -) -= -3097 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -91 -396 -ns -/ -iter -( -+ -/ -- -6 -399 -) -= -6509 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -354 -804 -ns -/ -iter -( -+ -/ -- -26 -158 -) -= -1676 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -33 -569 -ns -/ -iter -( -+ -/ -- -4 -647 -) -= -17722 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -136 -387 -ns -/ -iter -( -+ -/ -- -14 -005 -) -= -4362 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -22 -468 -ns -/ -iter -( -+ -/ -- -1 -144 -) -= -26479 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -22 -279 -ns -/ -iter -( -+ -/ -- -1 -563 -) -= -26703 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -98 -003 -ns -/ -iter -( -+ -/ -- -10 -978 -) -= -6070 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -96 -130 -ns -/ -iter -( -+ -/ -- -4 -373 -) -= -6188 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -30 -532 -ns -/ -iter -( -+ -/ -- -3 -125 -) -= -19485 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -19 -644 -ns -/ -iter -( -+ -/ -- -2 -118 -) -= -30285 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -25 -374 -ns -/ -iter -( -+ -/ -- -1 -538 -) -= -23446 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -19 -602 -ns -/ -iter -( -+ -/ -- -427 -) -= -30350 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -369 -657 -ns -/ -iter -( -+ -/ -- -52 -406 -) -= -1609 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -76 -922 -839 -ns -/ -iter -( -+ -/ -- -1 -261 -770 -) -= -7 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -326 -221 -ns -/ -iter -( -+ -/ -- -35 -683 -) -= -1823 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -525 -254 -ns -/ -iter -( -+ -/ -- -26 -000 -) -= -1132 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -44 -702 -ns -/ -iter -( -+ -/ -- -5 -012 -) -= -13308 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -814 -494 -ns -/ -iter -( -+ -/ -- -66 -715 -) -= -730 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -705 -139 -ns -/ -iter -( -+ -/ -- -97 -420 -) -= -348 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -8 -632 -437 -ns -/ -iter -( -+ -/ -- -278 -177 -) -= -68 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -119 -measured -; -0 -filtered -out -; -finished -in -106 -. -01s diff --git a/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-before-01 b/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-before-01 deleted file mode 100644 index ec139f2661c30..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-before-01 +++ /dev/null @@ -1,3123 +0,0 @@ -running -119 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -1 -) -= -21666 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -1 -) -= -22941 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -2 -) -= -1625 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -2 -) -= -1529 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -1 -) -= -87583 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -69906866 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -5363 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -2 -) -= -2732916 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -5 -) -= -26769 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -6 -) -= -26214900 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -3 -) -= -1333 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -5 -) -= -840717 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -1 -) -= -21448 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -2 -) -= -20165442 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -2 -) -= -1204 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -3 -) -= -669285 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -59 -ns -/ -iter -( -+ -/ -- -2 -) -= -423 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -1 -) -= -4636 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -161 -ns -/ -iter -( -+ -/ -- -54 -) -= -86133 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -680 -687 -ns -/ -iter -( -+ -/ -- -63 -713 -) -= -146 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -69 -ns -/ -iter -( -+ -/ -- -4 -) -= -1173 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -6230 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -253 -ns -/ -iter -( -+ -/ -- -9 -) -= -636 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -453 -ns -/ -iter -( -+ -/ -- -65 -) -= -55 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -80923 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -2 -) -= -61682588 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -4615 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -2522769 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -330 -ns -/ -iter -( -+ -/ -- -47 -) -= -303 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -9 -) -= -579 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -7 -) -= -520 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -2 -) -= -520 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -4 -) -= -472 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -2 -) -= -435 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -7 -) -= -18909 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -590 -ns -/ -iter -( -+ -/ -- -225 -) -= -661 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -580 -163 -ns -/ -iter -( -+ -/ -- -224 -935 -) -= -663 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -100 -ns -/ -iter -( -+ -/ -- -6 -) -= -590 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -49 -318 -ns -/ -iter -( -+ -/ -- -6 -046 -) -= -664 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -127 -ns -/ -iter -( -+ -/ -- -14 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -240 -ns -/ -iter -( -+ -/ -- -117 -) -= -1886 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -89 -004 -ns -/ -iter -( -+ -/ -- -2 -927 -) -= -89883 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -10 -349 -ns -/ -iter -( -+ -/ -- -334 -) -= -77303 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -5 -835 -ns -/ -iter -( -+ -/ -- -700 -) -= -13712 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -563 -ns -/ -iter -( -+ -/ -- -33 -) -= -14229 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -260 -ns -/ -iter -( -+ -/ -- -21 -) -= -3119 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -221 -ns -/ -iter -( -+ -/ -- -31 -) -= -411 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -211 -ns -/ -iter -( -+ -/ -- -30 -) -= -90 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -213 -ns -/ -iter -( -+ -/ -- -19 -) -= -126 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -212 -ns -/ -iter -( -+ -/ -- -7 -) -= -165 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -221 -ns -/ -iter -( -+ -/ -- -26 -) -= -194 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -12 -035 -248 -ns -/ -iter -( -+ -/ -- -362 -122 -) -= -422 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -787 -853 -ns -/ -iter -( -+ -/ -- -29 -667 -) -= -6452 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -750 -718 -ns -/ -iter -( -+ -/ -- -103 -118 -) -= -6771 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -749 -377 -ns -/ -iter -( -+ -/ -- -103 -312 -) -= -6783 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -748 -785 -ns -/ -iter -( -+ -/ -- -83 -175 -) -= -6788 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -755 -004 -ns -/ -iter -( -+ -/ -- -75 -589 -) -= -6732 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -747 -617 -ns -/ -iter -( -+ -/ -- -70 -600 -) -= -6799 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -752 -458 -ns -/ -iter -( -+ -/ -- -86 -154 -) -= -6755 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -749 -801 -ns -/ -iter -( -+ -/ -- -102 -642 -) -= -6779 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -760 -975 -ns -/ -iter -( -+ -/ -- -105 -159 -) -= -6680 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -749 -002 -ns -/ -iter -( -+ -/ -- -82 -082 -) -= -6786 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -751 -248 -ns -/ -iter -( -+ -/ -- -100 -152 -) -= -6766 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -211 -035 -ns -/ -iter -( -+ -/ -- -150 -147 -) -= -2299 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -3 -210 -193 -ns -/ -iter -( -+ -/ -- -161 -942 -) -= -1583 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -3 -793 -641 -ns -/ -iter -( -+ -/ -- -203 -795 -) -= -1339 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -3 -799 -721 -ns -/ -iter -( -+ -/ -- -140 -933 -) -= -1337 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -2 -652 -750 -ns -/ -iter -( -+ -/ -- -185 -489 -) -= -1916 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -2 -633 -257 -ns -/ -iter -( -+ -/ -- -211 -323 -) -= -1930 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -3 -268 -111 -ns -/ -iter -( -+ -/ -- -176 -273 -) -= -1555 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -3 -331 -333 -ns -/ -iter -( -+ -/ -- -264 -431 -) -= -1525 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -3 -268 -398 -ns -/ -iter -( -+ -/ -- -298 -223 -) -= -1555 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -94 -562 -ns -/ -iter -( -+ -/ -- -2 -194 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -5 -611 -428 -ns -/ -iter -( -+ -/ -- -202 -365 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -10 -933 -505 -ns -/ -iter -( -+ -/ -- -325 -078 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -3 -496 -ns -/ -iter -( -+ -/ -- -156 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -3 -572 -ns -/ -iter -( -+ -/ -- -389 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -20 -283 -ns -/ -iter -( -+ -/ -- -1 -894 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -8 -475 -ns -/ -iter -( -+ -/ -- -1 -008 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -157 -446 -ns -/ -iter -( -+ -/ -- -11 -319 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -316 -041 -ns -/ -iter -( -+ -/ -- -23 -620 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -906 -578 -ns -/ -iter -( -+ -/ -- -129 -507 -) -= -656 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -64 -715 -ns -/ -iter -( -+ -/ -- -9 -107 -) -= -9193 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -065 -017 -ns -/ -iter -( -+ -/ -- -156 -855 -) -= -288 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -810 -672 -ns -/ -iter -( -+ -/ -- -100 -547 -) -= -733 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -106 -124 -ns -/ -iter -( -+ -/ -- -10 -948 -) -= -5606 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -488 -503 -ns -/ -iter -( -+ -/ -- -63 -243 -) -= -1217 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -384 -936 -ns -/ -iter -( -+ -/ -- -25 -316 -) -= -1545 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -060 -294 -ns -/ -iter -( -+ -/ -- -152 -263 -) -= -561 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -22 -127 -059 -ns -/ -iter -( -+ -/ -- -413 -502 -) -= -26 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -21 -535 -012 -ns -/ -iter -( -+ -/ -- -463 -835 -) -= -27 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -758 -480 -ns -/ -iter -( -+ -/ -- -130 -352 -) -= -338 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -897 -329 -ns -/ -iter -( -+ -/ -- -96 -625 -) -= -663 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -31 -585 -ns -/ -iter -( -+ -/ -- -2 -796 -) -= -18835 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -86 -223 -ns -/ -iter -( -+ -/ -- -9 -553 -) -= -6899 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -97 -177 -ns -/ -iter -( -+ -/ -- -11 -479 -) -= -6122 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -381 -511 -ns -/ -iter -( -+ -/ -- -55 -025 -) -= -1559 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -121 -672 -ns -/ -iter -( -+ -/ -- -9 -253 -) -= -4889 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -187 -887 -ns -/ -iter -( -+ -/ -- -26 -932 -) -= -3166 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -90 -732 -ns -/ -iter -( -+ -/ -- -7 -251 -) -= -6557 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -352 -388 -ns -/ -iter -( -+ -/ -- -50 -408 -) -= -1688 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -33 -836 -ns -/ -iter -( -+ -/ -- -3 -388 -) -= -17582 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -133 -068 -ns -/ -iter -( -+ -/ -- -7 -602 -) -= -4470 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -62 -719 -ns -/ -iter -( -+ -/ -- -8 -927 -) -= -9485 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -24 -688 -ns -/ -iter -( -+ -/ -- -2 -482 -) -= -24098 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -97 -793 -ns -/ -iter -( -+ -/ -- -12 -078 -) -= -6083 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -95 -772 -ns -/ -iter -( -+ -/ -- -13 -713 -) -= -6211 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -70 -942 -ns -/ -iter -( -+ -/ -- -5 -565 -) -= -8386 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -14 -645 -ns -/ -iter -( -+ -/ -- -1 -430 -) -= -40623 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -239 -346 -ns -/ -iter -( -+ -/ -- -17 -292 -) -= -2485 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -14 -637 -ns -/ -iter -( -+ -/ -- -1 -360 -) -= -40645 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -367 -945 -ns -/ -iter -( -+ -/ -- -35 -370 -) -= -1616 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -74 -367 -046 -ns -/ -iter -( -+ -/ -- -1 -114 -875 -) -= -7 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -463 -888 -ns -/ -iter -( -+ -/ -- -67 -551 -) -= -1282 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -520 -822 -ns -/ -iter -( -+ -/ -- -76 -131 -) -= -1142 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -37 -354 -ns -/ -iter -( -+ -/ -- -4 -110 -) -= -15926 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -922 -312 -ns -/ -iter -( -+ -/ -- -95 -082 -) -= -645 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -679 -343 -ns -/ -iter -( -+ -/ -- -165 -580 -) -= -354 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -8 -280 -082 -ns -/ -iter -( -+ -/ -- -290 -280 -) -= -71 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -119 -measured -; -0 -filtered -out -; -finished -in -113 -. -49s diff --git a/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-before-02 b/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-before-02 deleted file mode 100644 index 539dd76d5a191..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/08-new-memmem/rust-before-02 +++ /dev/null @@ -1,3121 +0,0 @@ -running -119 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -0 -) -= -22941 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -21666 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -2 -) -= -1625 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -2 -) -= -1529 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -87583 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -1 -) -= -74900214 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -1 -) -= -5363 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -1 -) -= -2732916 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -5 -) -= -27473 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -5 -) -= -26214900 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -1 -) -= -1368 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -1 -) -= -862842 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -4 -) -= -21448 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -7 -) -= -20165442 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -1 -) -= -1204 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -49 -ns -/ -iter -( -+ -/ -- -6 -) -= -669285 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -59 -ns -/ -iter -( -+ -/ -- -2 -) -= -423 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -4636 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -179 -ns -/ -iter -( -+ -/ -- -92 -) -= -84818 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -680 -418 -ns -/ -iter -( -+ -/ -- -27 -142 -) -= -146 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -68 -ns -/ -iter -( -+ -/ -- -6 -) -= -1191 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -1 -) -= -6230 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -253 -ns -/ -iter -( -+ -/ -- -33 -) -= -636 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -453 -ns -/ -iter -( -+ -/ -- -65 -) -= -55 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -1 -) -= -80923 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -2 -) -= -61682588 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -4615 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -2522769 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -330 -ns -/ -iter -( -+ -/ -- -47 -) -= -303 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -12 -) -= -579 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -6 -) -= -520 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -7 -) -= -520 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -2 -) -= -472 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -5 -) -= -447 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -7 -) -= -18909 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -590 -ns -/ -iter -( -+ -/ -- -64 -) -= -661 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -581 -975 -ns -/ -iter -( -+ -/ -- -126 -709 -) -= -662 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -100 -ns -/ -iter -( -+ -/ -- -4 -) -= -590 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -49 -323 -ns -/ -iter -( -+ -/ -- -7 -063 -) -= -664 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -127 -ns -/ -iter -( -+ -/ -- -5 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -171 -ns -/ -iter -( -+ -/ -- -624 -) -= -1918 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -88 -960 -ns -/ -iter -( -+ -/ -- -7 -710 -) -= -89928 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -10 -193 -ns -/ -iter -( -+ -/ -- -952 -) -= -78486 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -5 -798 -ns -/ -iter -( -+ -/ -- -636 -) -= -13799 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -418 -ns -/ -iter -( -+ -/ -- -60 -) -= -19165 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -258 -ns -/ -iter -( -+ -/ -- -21 -) -= -3143 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -216 -ns -/ -iter -( -+ -/ -- -21 -) -= -421 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -205 -ns -/ -iter -( -+ -/ -- -29 -) -= -92 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -206 -ns -/ -iter -( -+ -/ -- -22 -) -= -131 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -205 -ns -/ -iter -( -+ -/ -- -29 -) -= -170 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -214 -ns -/ -iter -( -+ -/ -- -6 -) -= -200 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -12 -039 -715 -ns -/ -iter -( -+ -/ -- -410 -515 -) -= -422 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -750 -454 -ns -/ -iter -( -+ -/ -- -65 -358 -) -= -6773 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -748 -321 -ns -/ -iter -( -+ -/ -- -93 -416 -) -= -6793 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -747 -906 -ns -/ -iter -( -+ -/ -- -92 -141 -) -= -6796 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -755 -082 -ns -/ -iter -( -+ -/ -- -88 -044 -) -= -6732 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -753 -496 -ns -/ -iter -( -+ -/ -- -70 -987 -) -= -6746 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -747 -103 -ns -/ -iter -( -+ -/ -- -102 -992 -) -= -6804 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -750 -805 -ns -/ -iter -( -+ -/ -- -72 -572 -) -= -6770 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -748 -419 -ns -/ -iter -( -+ -/ -- -47 -272 -) -= -6792 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -752 -556 -ns -/ -iter -( -+ -/ -- -95 -329 -) -= -6754 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -756 -009 -ns -/ -iter -( -+ -/ -- -78 -049 -) -= -6724 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -749 -278 -ns -/ -iter -( -+ -/ -- -70 -259 -) -= -6784 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -215 -182 -ns -/ -iter -( -+ -/ -- -114 -543 -) -= -2294 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -3 -207 -983 -ns -/ -iter -( -+ -/ -- -184 -419 -) -= -1584 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -3 -791 -716 -ns -/ -iter -( -+ -/ -- -192 -185 -) -= -1340 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -3 -809 -934 -ns -/ -iter -( -+ -/ -- -222 -872 -) -= -1334 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -2 -651 -345 -ns -/ -iter -( -+ -/ -- -183 -673 -) -= -1917 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -2 -635 -566 -ns -/ -iter -( -+ -/ -- -170 -288 -) -= -1928 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -3 -265 -519 -ns -/ -iter -( -+ -/ -- -234 -923 -) -= -1556 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -3 -340 -830 -ns -/ -iter -( -+ -/ -- -183 -129 -) -= -1521 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -3 -267 -141 -ns -/ -iter -( -+ -/ -- -185 -543 -) -= -1555 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -94 -368 -ns -/ -iter -( -+ -/ -- -13 -293 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -5 -616 -594 -ns -/ -iter -( -+ -/ -- -243 -462 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -10 -862 -100 -ns -/ -iter -( -+ -/ -- -260 -207 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -3 -463 -ns -/ -iter -( -+ -/ -- -350 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -3 -542 -ns -/ -iter -( -+ -/ -- -504 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -20 -562 -ns -/ -iter -( -+ -/ -- -3 -117 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -8 -325 -ns -/ -iter -( -+ -/ -- -641 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -153 -450 -ns -/ -iter -( -+ -/ -- -11 -174 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -315 -871 -ns -/ -iter -( -+ -/ -- -33 -828 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -906 -423 -ns -/ -iter -( -+ -/ -- -34 -801 -) -= -656 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -64 -457 -ns -/ -iter -( -+ -/ -- -8 -343 -) -= -9229 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -058 -675 -ns -/ -iter -( -+ -/ -- -208 -885 -) -= -288 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -810 -638 -ns -/ -iter -( -+ -/ -- -39 -955 -) -= -733 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -106 -048 -ns -/ -iter -( -+ -/ -- -8 -158 -) -= -5610 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -482 -243 -ns -/ -iter -( -+ -/ -- -30 -955 -) -= -1233 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -385 -767 -ns -/ -iter -( -+ -/ -- -24 -902 -) -= -1542 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -060 -762 -ns -/ -iter -( -+ -/ -- -94 -273 -) -= -560 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -22 -127 -007 -ns -/ -iter -( -+ -/ -- -467 -539 -) -= -26 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -21 -719 -871 -ns -/ -iter -( -+ -/ -- -459 -587 -) -= -27 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -753 -028 -ns -/ -iter -( -+ -/ -- -172 -914 -) -= -339 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -897 -091 -ns -/ -iter -( -+ -/ -- -109 -954 -) -= -663 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -31 -636 -ns -/ -iter -( -+ -/ -- -2 -323 -) -= -18805 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -85 -898 -ns -/ -iter -( -+ -/ -- -10 -486 -) -= -6926 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -97 -104 -ns -/ -iter -( -+ -/ -- -8 -851 -) -= -6126 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -381 -487 -ns -/ -iter -( -+ -/ -- -14 -829 -) -= -1559 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -121 -301 -ns -/ -iter -( -+ -/ -- -17 -178 -) -= -4904 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -187 -262 -ns -/ -iter -( -+ -/ -- -17 -478 -) -= -3177 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -90 -773 -ns -/ -iter -( -+ -/ -- -2 -791 -) -= -6554 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -351 -900 -ns -/ -iter -( -+ -/ -- -40 -408 -) -= -1690 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -34 -767 -ns -/ -iter -( -+ -/ -- -3 -334 -) -= -17112 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -132 -953 -ns -/ -iter -( -+ -/ -- -15 -747 -) -= -4474 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -66 -566 -ns -/ -iter -( -+ -/ -- -6 -822 -) -= -8937 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -24 -481 -ns -/ -iter -( -+ -/ -- -2 -330 -) -= -24301 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -97 -531 -ns -/ -iter -( -+ -/ -- -12 -331 -) -= -6099 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -95 -808 -ns -/ -iter -( -+ -/ -- -13 -250 -) -= -6209 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -71 -342 -ns -/ -iter -( -+ -/ -- -9 -877 -) -= -8339 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -14 -704 -ns -/ -iter -( -+ -/ -- -1 -241 -) -= -40460 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -238 -731 -ns -/ -iter -( -+ -/ -- -31 -179 -) -= -2492 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -14 -620 -ns -/ -iter -( -+ -/ -- -1 -250 -) -= -40693 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -367 -740 -ns -/ -iter -( -+ -/ -- -10 -107 -) -= -1617 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -76 -315 -217 -ns -/ -iter -( -+ -/ -- -940 -903 -) -= -7 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -464 -322 -ns -/ -iter -( -+ -/ -- -14 -654 -) -= -1281 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -519 -069 -ns -/ -iter -( -+ -/ -- -59 -161 -) -= -1146 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -37 -575 -ns -/ -iter -( -+ -/ -- -2 -455 -) -= -15833 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -939 -412 -ns -/ -iter -( -+ -/ -- -60 -941 -) -= -633 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -681 -192 -ns -/ -iter -( -+ -/ -- -156 -265 -) -= -353 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -8 -213 -141 -ns -/ -iter -( -+ -/ -- -322 -533 -) -= -72 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -119 -measured -; -0 -filtered -out -; -finished -in -94 -. -52s diff --git a/third_party/rust/regex/record/old-bench-log/09-new-baseline/pcre2 b/third_party/rust/regex/record/old-bench-log/09-new-baseline/pcre2 deleted file mode 100644 index 64a9b90f5662d..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/09-new-baseline/pcre2 +++ /dev/null @@ -1,2494 +0,0 @@ -running -93 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -48750 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -55714 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -3250 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -3714 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -32 -ns -/ -iter -( -+ -/ -- -1 -) -= -32843 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -22 -160 -ns -/ -iter -( -+ -/ -- -3 -887 -) -= -47319 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -5900 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -651 -ns -/ -iter -( -+ -/ -- -2 -) -= -50376 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -1 -) -= -29000 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -22 -982 -ns -/ -iter -( -+ -/ -- -2 -839 -) -= -45626 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -4333 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -654 -ns -/ -iter -( -+ -/ -- -2 -) -= -50134 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -469 -ns -/ -iter -( -+ -/ -- -9 -) -= -2240 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -733 -962 -ns -/ -iter -( -+ -/ -- -28 -297 -) -= -1428 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -4 -) -= -1735 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -19 -567 -ns -/ -iter -( -+ -/ -- -363 -) -= -1676 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -6375 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -257 -858 -ns -/ -iter -( -+ -/ -- -646 -) -= -387 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -259 -045 -ns -/ -iter -( -+ -/ -- -2 -220 -) -= -386 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -1 -) -= -2382 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -9 -ns -/ -iter -( -+ -/ -- -0 -) -= -9000 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -125 -ns -/ -iter -( -+ -/ -- -3 -) -= -1288 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -35 -ns -/ -iter -( -+ -/ -- -3 -) -= -30057 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -21 -126 -ns -/ -iter -( -+ -/ -- -4 -036 -) -= -49635 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -6000 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -714 -ns -/ -iter -( -+ -/ -- -122 -) -= -45932 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -2 -) -= -822 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -3250 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -3250 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -1 -) -= -894 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -1 -) -= -894 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -1 -704 -ns -/ -iter -( -+ -/ -- -17 -) -= -610 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -495 -ns -/ -iter -( -+ -/ -- -9 -) -= -2123 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -682 -371 -ns -/ -iter -( -+ -/ -- -31 -284 -) -= -1536 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -2 -) -= -1735 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -17 -994 -ns -/ -iter -( -+ -/ -- -540 -) -= -1822 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -1 -507 -ns -/ -iter -( -+ -/ -- -10 -) -= -5308 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -849 -983 -ns -/ -iter -( -+ -/ -- -25 -898 -) -= -5980 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -520 -602 -ns -/ -iter -( -+ -/ -- -12 -170 -) -= -9764 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -517 -151 -ns -/ -iter -( -+ -/ -- -19 -060 -) -= -9829 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -519 -209 -ns -/ -iter -( -+ -/ -- -12 -477 -) -= -9790 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -513 -418 -ns -/ -iter -( -+ -/ -- -19 -803 -) -= -9901 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -514 -166 -ns -/ -iter -( -+ -/ -- -13 -019 -) -= -9886 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -517 -808 -ns -/ -iter -( -+ -/ -- -30 -655 -) -= -9817 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -516 -922 -ns -/ -iter -( -+ -/ -- -17 -204 -) -= -9834 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -509 -430 -ns -/ -iter -( -+ -/ -- -20 -608 -) -= -9978 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -519 -437 -ns -/ -iter -( -+ -/ -- -10 -537 -) -= -9786 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -520 -282 -ns -/ -iter -( -+ -/ -- -25 -742 -) -= -9770 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -512 -819 -ns -/ -iter -( -+ -/ -- -11 -443 -) -= -9912 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -5 -302 -526 -ns -/ -iter -( -+ -/ -- -158 -370 -) -= -958 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -7 -421 -107 -ns -/ -iter -( -+ -/ -- -105 -716 -) -= -684 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -7 -310 -968 -ns -/ -iter -( -+ -/ -- -103 -989 -) -= -695 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -6 -152 -891 -ns -/ -iter -( -+ -/ -- -144 -194 -) -= -826 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -5 -717 -515 -ns -/ -iter -( -+ -/ -- -42 -902 -) -= -889 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -5 -840 -938 -ns -/ -iter -( -+ -/ -- -47 -730 -) -= -870 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -6 -624 -859 -ns -/ -iter -( -+ -/ -- -37 -376 -) -= -767 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -7 -308 -342 -ns -/ -iter -( -+ -/ -- -58 -395 -) -= -695 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -7 -372 -260 -ns -/ -iter -( -+ -/ -- -76 -966 -) -= -689 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -2 -817 -108 -ns -/ -iter -( -+ -/ -- -18 -002 -) -= -211 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -2 -841 -515 -ns -/ -iter -( -+ -/ -- -14 -677 -) -= -209 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -33 -066 -ns -/ -iter -( -+ -/ -- -1 -766 -) -= -17992 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -1 -299 -382 -ns -/ -iter -( -+ -/ -- -19 -674 -) -= -457 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -2 -799 -189 -ns -/ -iter -( -+ -/ -- -33 -841 -) -= -212 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -4 -923 -399 -ns -/ -iter -( -+ -/ -- -111 -904 -) -= -120 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -5 -057 -224 -ns -/ -iter -( -+ -/ -- -102 -860 -) -= -117 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -874 -306 -ns -/ -iter -( -+ -/ -- -10 -587 -) -= -680 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -15 -876 -ns -/ -iter -( -+ -/ -- -58 -) -= -37473 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -19 -349 -ns -/ -iter -( -+ -/ -- -201 -) -= -30747 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -29 -916 -ns -/ -iter -( -+ -/ -- -581 -) -= -19886 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -461 -887 -ns -/ -iter -( -+ -/ -- -5 -337 -) -= -1288 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -1 -813 -574 -ns -/ -iter -( -+ -/ -- -27 -519 -) -= -328 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -30 -155 -ns -/ -iter -( -+ -/ -- -1 -407 -) -= -19729 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -822 -605 -ns -/ -iter -( -+ -/ -- -56 -624 -) -= -723 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -426 -318 -ns -/ -iter -( -+ -/ -- -12 -233 -) -= -1395 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -1 -012 -097 -ns -/ -iter -( -+ -/ -- -27 -806 -) -= -587 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -19 -833 -ns -/ -iter -( -+ -/ -- -499 -) -= -29997 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -40 -266 -ns -/ -iter -( -+ -/ -- -2 -089 -) -= -14775 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -14 -589 -ns -/ -iter -( -+ -/ -- -115 -) -= -40779 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -14 -213 -ns -/ -iter -( -+ -/ -- -81 -) -= -41858 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -602 -296 -ns -/ -iter -( -+ -/ -- -98 -066 -) -= -987 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -479 -745 -ns -/ -iter -( -+ -/ -- -18 -070 -) -= -1240 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -14 -584 -ns -/ -iter -( -+ -/ -- -44 -) -= -40793 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -13 -499 -ns -/ -iter -( -+ -/ -- -1 -090 -) -= -44072 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -12 -507 -ns -/ -iter -( -+ -/ -- -1 -238 -) -= -47568 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -11 -534 -ns -/ -iter -( -+ -/ -- -9 -) -= -51580 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -251 -867 -ns -/ -iter -( -+ -/ -- -11 -818 -) -= -2362 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -2 -969 -330 -ns -/ -iter -( -+ -/ -- -287 -150 -) -= -200 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -206 -513 -ns -/ -iter -( -+ -/ -- -3 -294 -) -= -2880 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -237 -655 -ns -/ -iter -( -+ -/ -- -6 -616 -) -= -2503 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -23 -922 -ns -/ -iter -( -+ -/ -- -510 -) -= -24869 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -326 -257 -ns -/ -iter -( -+ -/ -- -10 -038 -) -= -1823 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -3 -264 -085 -ns -/ -iter -( -+ -/ -- -57 -242 -) -= -182 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -3 -161 -731 -ns -/ -iter -( -+ -/ -- -45 -794 -) -= -188 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -93 -measured -; -0 -filtered -out -; -finished -in -184 -. -16s diff --git a/third_party/rust/regex/record/old-bench-log/09-new-baseline/re2 b/third_party/rust/regex/record/old-bench-log/09-new-baseline/re2 deleted file mode 100644 index 8b18eef5c0f71..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/09-new-baseline/re2 +++ /dev/null @@ -1,2572 +0,0 @@ -running -96 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -26 -ns -/ -iter -( -+ -/ -- -0 -) -= -15000 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -4 -ns -/ -iter -( -+ -/ -- -0 -) -= -97500 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -26 -ns -/ -iter -( -+ -/ -- -0 -) -= -1000 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -4 -ns -/ -iter -( -+ -/ -- -0 -) -= -6500 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -21020 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -0 -) -= -20560843 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -1180 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -655900 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -1 -) -= -24279 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -24385953 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -1 -) -= -1209 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -762511 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -21020 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -20972060 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -1180 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -50 -ns -/ -iter -( -+ -/ -- -0 -) -= -655900 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -2040 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -356 -319 -ns -/ -iter -( -+ -/ -- -680 -) -= -280 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -356 -384 -ns -/ -iter -( -+ -/ -- -3 -126 -) -= -280 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -94 -ns -/ -iter -( -+ -/ -- -0 -) -= -861 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -94 -ns -/ -iter -( -+ -/ -- -0 -) -= -861 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -168 -ns -/ -iter -( -+ -/ -- -1 -) -= -958 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -0 -) -= -20627 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -0 -) -= -20560862 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -0 -) -= -1176 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -1 -) -= -643058 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -112 -ns -/ -iter -( -+ -/ -- -0 -) -= -892 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -66 -ns -/ -iter -( -+ -/ -- -0 -) -= -772 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -1040 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -44 -ns -/ -iter -( -+ -/ -- -0 -) -= -590 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -395 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -0 -) -= -414 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -978 -ns -/ -iter -( -+ -/ -- -7 -) -= -1063 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -987 -ns -/ -iter -( -+ -/ -- -11 -) -= -1064 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -957 -501 -ns -/ -iter -( -+ -/ -- -8 -247 -) -= -1095 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -73 -ns -/ -iter -( -+ -/ -- -0 -) -= -808 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -30 -057 -ns -/ -iter -( -+ -/ -- -315 -) -= -1091 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -7 -368 -ns -/ -iter -( -+ -/ -- -105 -) -= -1085 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -15 -567 -882 -ns -/ -iter -( -+ -/ -- -48 -213 -) -= -326 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -2 -011 -288 -ns -/ -iter -( -+ -/ -- -23 -092 -) -= -2527 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -2 -013 -337 -ns -/ -iter -( -+ -/ -- -33 -388 -) -= -2524 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -2 -005 -968 -ns -/ -iter -( -+ -/ -- -25 -799 -) -= -2534 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -2 -022 -572 -ns -/ -iter -( -+ -/ -- -23 -311 -) -= -2513 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -2 -018 -386 -ns -/ -iter -( -+ -/ -- -32 -071 -) -= -2518 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -2 -013 -345 -ns -/ -iter -( -+ -/ -- -32 -599 -) -= -2524 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -2 -015 -871 -ns -/ -iter -( -+ -/ -- -25 -081 -) -= -2521 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -2 -008 -492 -ns -/ -iter -( -+ -/ -- -24 -502 -) -= -2530 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -2 -018 -804 -ns -/ -iter -( -+ -/ -- -38 -700 -) -= -2518 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -2 -010 -856 -ns -/ -iter -( -+ -/ -- -23 -695 -) -= -2527 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -2 -023 -767 -ns -/ -iter -( -+ -/ -- -17 -040 -) -= -2511 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -4 -688 -839 -ns -/ -iter -( -+ -/ -- -19 -258 -) -= -1084 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -4 -693 -463 -ns -/ -iter -( -+ -/ -- -31 -741 -) -= -1083 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -4 -674 -020 -ns -/ -iter -( -+ -/ -- -15 -755 -) -= -1087 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -4 -666 -017 -ns -/ -iter -( -+ -/ -- -16 -318 -) -= -1089 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -4 -682 -965 -ns -/ -iter -( -+ -/ -- -17 -552 -) -= -1085 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -4 -661 -825 -ns -/ -iter -( -+ -/ -- -21 -667 -) -= -1090 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -4 -697 -959 -ns -/ -iter -( -+ -/ -- -24 -282 -) -= -1082 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -4 -700 -703 -ns -/ -iter -( -+ -/ -- -21 -377 -) -= -1081 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -4 -665 -298 -ns -/ -iter -( -+ -/ -- -19 -086 -) -= -1089 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -560 -350 -ns -/ -iter -( -+ -/ -- -3 -852 -) -= -1061 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -574 -423 -ns -/ -iter -( -+ -/ -- -4 -638 -) -= -1035 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -688 -852 -ns -/ -iter -( -+ -/ -- -16 -320 -) -= -221 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -1 -206 -136 -ns -/ -iter -( -+ -/ -- -6 -173 -) -= -493 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -547 -910 -ns -/ -iter -( -+ -/ -- -7 -147 -) -= -1085 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -610 -803 -ns -/ -iter -( -+ -/ -- -1 -029 -) -= -974 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -777 -478 -ns -/ -iter -( -+ -/ -- -3 -028 -) -= -765 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -725 -653 -ns -/ -iter -( -+ -/ -- -4 -746 -) -= -819 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -25 -265 -004 -ns -/ -iter -( -+ -/ -- -120 -234 -) -= -23 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -24 -615 -621 -ns -/ -iter -( -+ -/ -- -134 -875 -) -= -24 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -485 -920 -ns -/ -iter -( -+ -/ -- -21 -446 -) -= -400 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -547 -229 -ns -/ -iter -( -+ -/ -- -3 -726 -) -= -1087 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -18 -148 -ns -/ -iter -( -+ -/ -- -131 -) -= -32782 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -586 -335 -ns -/ -iter -( -+ -/ -- -3 -679 -) -= -1014 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -601 -096 -ns -/ -iter -( -+ -/ -- -3 -781 -) -= -989 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -602 -319 -ns -/ -iter -( -+ -/ -- -7 -872 -) -= -987 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -586 -762 -ns -/ -iter -( -+ -/ -- -3 -465 -) -= -1013 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -595 -539 -ns -/ -iter -( -+ -/ -- -3 -240 -) -= -998 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -592 -474 -ns -/ -iter -( -+ -/ -- -6 -361 -) -= -1004 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -593 -214 -ns -/ -iter -( -+ -/ -- -4 -667 -) -= -1002 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -40 -236 -ns -/ -iter -( -+ -/ -- -514 -) -= -14786 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -215 -216 -ns -/ -iter -( -+ -/ -- -4 -822 -) -= -2764 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -14 -064 -ns -/ -iter -( -+ -/ -- -159 -) -= -42301 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -15 -727 -ns -/ -iter -( -+ -/ -- -166 -) -= -37828 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -552 -042 -ns -/ -iter -( -+ -/ -- -6 -395 -) -= -1077 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -552 -475 -ns -/ -iter -( -+ -/ -- -5 -365 -) -= -1076 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -16 -210 -ns -/ -iter -( -+ -/ -- -194 -) -= -36701 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -147 -489 -ns -/ -iter -( -+ -/ -- -602 -) -= -4033 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -157 -205 -ns -/ -iter -( -+ -/ -- -350 -) -= -3784 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -4 -849 -ns -/ -iter -( -+ -/ -- -5 -) -= -122691 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -619 -880 -ns -/ -iter -( -+ -/ -- -5 -189 -) -= -959 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -685 -396 -ns -/ -iter -( -+ -/ -- -12 -559 -) -= -868 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -771 -051 -ns -/ -iter -( -+ -/ -- -18 -470 -) -= -771 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -59 -139 -ns -/ -iter -( -+ -/ -- -1 -604 -) -= -10059 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -736 -147 -ns -/ -iter -( -+ -/ -- -7 -668 -) -= -808 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -200 -401 -ns -/ -iter -( -+ -/ -- -11 -206 -) -= -495 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -8 -024 -768 -ns -/ -iter -( -+ -/ -- -93 -051 -) -= -74 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -96 -measured -; -0 -filtered -out -; -finished -in -86 -. -80s diff --git a/third_party/rust/regex/record/old-bench-log/09-new-baseline/rust b/third_party/rust/regex/record/old-bench-log/09-new-baseline/rust deleted file mode 100644 index 6be2b6a0ccaab..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/09-new-baseline/rust +++ /dev/null @@ -1,3103 +0,0 @@ -running -119 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -55714 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -39000 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -3714 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -2600 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -131375 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -87383583 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -7375 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -4099375 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -41760 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -26 -ns -/ -iter -( -+ -/ -- -0 -) -= -40330615 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -2080 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -26 -ns -/ -iter -( -+ -/ -- -0 -) -= -1261076 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -33 -ns -/ -iter -( -+ -/ -- -0 -) -= -31848 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -33 -ns -/ -iter -( -+ -/ -- -0 -) -= -31775848 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -0 -) -= -1735 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -33 -ns -/ -iter -( -+ -/ -- -0 -) -= -993787 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -35 -ns -/ -iter -( -+ -/ -- -0 -) -= -714 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -7285 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -517 -ns -/ -iter -( -+ -/ -- -25 -) -= -65920 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -186 -131 -ns -/ -iter -( -+ -/ -- -1 -191 -) -= -537 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -37 -ns -/ -iter -( -+ -/ -- -0 -) -= -2189 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -11571 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -160 -ns -/ -iter -( -+ -/ -- -1 -) -= -1006 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -200 -ns -/ -iter -( -+ -/ -- -4 -) -= -125 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -131500 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -87383666 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -7500 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -4099500 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -262 -ns -/ -iter -( -+ -/ -- -6 -) -= -381 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -1 -) -= -1186 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -1 -) -= -1130 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -1 -) -= -1130 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -1062 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -944 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -1 -) -= -28888 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -155 -ns -/ -iter -( -+ -/ -- -11 -) -= -909 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -152 -983 -ns -/ -iter -( -+ -/ -- -6 -607 -) -= -909 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -2 -) -= -1134 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -36 -194 -ns -/ -iter -( -+ -/ -- -327 -) -= -906 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -81 -ns -/ -iter -( -+ -/ -- -5 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -2 -269 -ns -/ -iter -( -+ -/ -- -3 -) -= -3525 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -63 -956 -ns -/ -iter -( -+ -/ -- -209 -) -= -125086 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -5 -877 -ns -/ -iter -( -+ -/ -- -66 -) -= -136125 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -2 -414 -ns -/ -iter -( -+ -/ -- -10 -) -= -33144 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -195 -ns -/ -iter -( -+ -/ -- -11 -) -= -41082 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -96 -ns -/ -iter -( -+ -/ -- -7 -) -= -8447 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -8 -) -= -1070 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -6 -) -= -223 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -12 -) -= -313 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -22 -) -= -411 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -12 -) -= -505 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -6 -977 -678 -ns -/ -iter -( -+ -/ -- -90 -937 -) -= -728 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -423 -846 -ns -/ -iter -( -+ -/ -- -41 -460 -) -= -11993 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -424 -043 -ns -/ -iter -( -+ -/ -- -55 -743 -) -= -11987 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -418 -549 -ns -/ -iter -( -+ -/ -- -12 -106 -) -= -12145 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -430 -056 -ns -/ -iter -( -+ -/ -- -8 -862 -) -= -11820 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -429 -634 -ns -/ -iter -( -+ -/ -- -26 -807 -) -= -11831 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -419 -313 -ns -/ -iter -( -+ -/ -- -42 -070 -) -= -12123 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -425 -299 -ns -/ -iter -( -+ -/ -- -43 -161 -) -= -11952 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -420 -177 -ns -/ -iter -( -+ -/ -- -49 -394 -) -= -12098 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -425 -118 -ns -/ -iter -( -+ -/ -- -46 -952 -) -= -11957 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -420 -840 -ns -/ -iter -( -+ -/ -- -11 -623 -) -= -12079 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -420 -752 -ns -/ -iter -( -+ -/ -- -10 -186 -) -= -12081 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -1 -445 -103 -ns -/ -iter -( -+ -/ -- -29 -436 -) -= -3517 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -2 -234 -423 -ns -/ -iter -( -+ -/ -- -24 -502 -) -= -2275 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -2 -730 -972 -ns -/ -iter -( -+ -/ -- -26 -961 -) -= -1861 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -2 -708 -975 -ns -/ -iter -( -+ -/ -- -36 -517 -) -= -1876 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -1 -663 -458 -ns -/ -iter -( -+ -/ -- -39 -508 -) -= -3055 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -1 -673 -873 -ns -/ -iter -( -+ -/ -- -14 -846 -) -= -3036 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -2 -322 -347 -ns -/ -iter -( -+ -/ -- -33 -731 -) -= -2188 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -2 -350 -779 -ns -/ -iter -( -+ -/ -- -54 -976 -) -= -2162 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -2 -326 -741 -ns -/ -iter -( -+ -/ -- -20 -836 -) -= -2184 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -47 -700 -ns -/ -iter -( -+ -/ -- -230 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -2 -987 -898 -ns -/ -iter -( -+ -/ -- -32 -819 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -5 -705 -551 -ns -/ -iter -( -+ -/ -- -63 -483 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -1 -963 -ns -/ -iter -( -+ -/ -- -44 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -1 -970 -ns -/ -iter -( -+ -/ -- -32 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -9 -677 -ns -/ -iter -( -+ -/ -- -69 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -4 -501 -ns -/ -iter -( -+ -/ -- -70 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -75 -372 -ns -/ -iter -( -+ -/ -- -2 -007 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -151 -733 -ns -/ -iter -( -+ -/ -- -2 -378 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -655 -827 -ns -/ -iter -( -+ -/ -- -1 -426 -) -= -907 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -24 -653 -ns -/ -iter -( -+ -/ -- -224 -) -= -24132 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -026 -254 -ns -/ -iter -( -+ -/ -- -27 -926 -) -= -579 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -469 -676 -ns -/ -iter -( -+ -/ -- -62 -296 -) -= -1266 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -47 -578 -ns -/ -iter -( -+ -/ -- -1 -730 -) -= -12504 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -321 -318 -ns -/ -iter -( -+ -/ -- -3 -235 -) -= -1851 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -150 -908 -ns -/ -iter -( -+ -/ -- -3 -952 -) -= -3942 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -726 -848 -ns -/ -iter -( -+ -/ -- -5 -314 -) -= -818 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -9 -719 -997 -ns -/ -iter -( -+ -/ -- -67 -717 -) -= -61 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -9 -559 -105 -ns -/ -iter -( -+ -/ -- -79 -257 -) -= -62 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -066 -791 -ns -/ -iter -( -+ -/ -- -13 -193 -) -= -557 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -653 -228 -ns -/ -iter -( -+ -/ -- -881 -) -= -910 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -10 -663 -ns -/ -iter -( -+ -/ -- -76 -) -= -55794 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -33 -831 -ns -/ -iter -( -+ -/ -- -967 -) -= -17585 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -38 -061 -ns -/ -iter -( -+ -/ -- -1 -123 -) -= -15631 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -218 -691 -ns -/ -iter -( -+ -/ -- -2 -345 -) -= -2720 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -52 -408 -ns -/ -iter -( -+ -/ -- -1 -315 -) -= -11351 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -84 -212 -ns -/ -iter -( -+ -/ -- -2 -708 -) -= -7064 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -35 -272 -ns -/ -iter -( -+ -/ -- -1 -784 -) -= -16867 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -193 -585 -ns -/ -iter -( -+ -/ -- -5 -057 -) -= -3073 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -15 -018 -ns -/ -iter -( -+ -/ -- -440 -) -= -39614 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -60 -207 -ns -/ -iter -( -+ -/ -- -1 -046 -) -= -9881 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -10 -344 -ns -/ -iter -( -+ -/ -- -52 -) -= -57514 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -10 -374 -ns -/ -iter -( -+ -/ -- -98 -) -= -57348 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -42 -037 -ns -/ -iter -( -+ -/ -- -1 -363 -) -= -14152 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -41 -192 -ns -/ -iter -( -+ -/ -- -881 -) -= -14442 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -13 -893 -ns -/ -iter -( -+ -/ -- -55 -) -= -42822 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -8 -700 -ns -/ -iter -( -+ -/ -- -10 -) -= -68383 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -10 -368 -ns -/ -iter -( -+ -/ -- -123 -) -= -57381 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -8 -695 -ns -/ -iter -( -+ -/ -- -7 -) -= -68422 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -222 -526 -ns -/ -iter -( -+ -/ -- -5 -362 -) -= -2673 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -35 -869 -193 -ns -/ -iter -( -+ -/ -- -551 -212 -) -= -16 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -187 -208 -ns -/ -iter -( -+ -/ -- -4 -374 -) -= -3177 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -280 -625 -ns -/ -iter -( -+ -/ -- -10 -142 -) -= -2120 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -19 -742 -ns -/ -iter -( -+ -/ -- -692 -) -= -30135 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -396 -099 -ns -/ -iter -( -+ -/ -- -10 -400 -) -= -1501 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -055 -639 -ns -/ -iter -( -+ -/ -- -6 -627 -) -= -563 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -4 -280 -471 -ns -/ -iter -( -+ -/ -- -53 -841 -) -= -138 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -119 -measured -; -0 -filtered -out -; -finished -in -141 -. -25s diff --git a/third_party/rust/regex/record/old-bench-log/09-new-baseline/rust-bytes b/third_party/rust/regex/record/old-bench-log/09-new-baseline/rust-bytes deleted file mode 100644 index f1d2b7ac98639..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/09-new-baseline/rust-bytes +++ /dev/null @@ -1,2803 +0,0 @@ -running -107 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -55714 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -48750 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -3714 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -9 -ns -/ -iter -( -+ -/ -- -0 -) -= -2888 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -150142 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -1 -) -= -95327545 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -8428 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -4685000 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -0 -) -= -61411 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -52429800 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -0 -) -= -3058 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -1 -) -= -1928705 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -43791 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -27 -ns -/ -iter -( -+ -/ -- -0 -) -= -38837148 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -2458 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -1366458 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -35 -ns -/ -iter -( -+ -/ -- -0 -) -= -714 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -7285 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -325 -ns -/ -iter -( -+ -/ -- -18 -) -= -75472 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -186 -021 -ns -/ -iter -( -+ -/ -- -1 -157 -) -= -537 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -3 -) -= -2131 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -11571 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -172 -ns -/ -iter -( -+ -/ -- -4 -) -= -145 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -150285 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -87383666 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -7500 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -4685142 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -272 -ns -/ -iter -( -+ -/ -- -10 -) -= -367 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -1 -) -= -1214 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -1 -) -= -1130 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -0 -) -= -1181 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -1133 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -944 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -36 -ns -/ -iter -( -+ -/ -- -0 -) -= -28888 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -152 -ns -/ -iter -( -+ -/ -- -14 -) -= -912 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -155 -496 -ns -/ -iter -( -+ -/ -- -7 -722 -) -= -907 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -1 -) -= -1156 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -36 -202 -ns -/ -iter -( -+ -/ -- -167 -) -= -905 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -2 -269 -ns -/ -iter -( -+ -/ -- -2 -) -= -3525 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -6 -982 -142 -ns -/ -iter -( -+ -/ -- -70 -086 -) -= -728 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -425 -753 -ns -/ -iter -( -+ -/ -- -15 -075 -) -= -11939 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -431 -401 -ns -/ -iter -( -+ -/ -- -19 -346 -) -= -11783 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -427 -131 -ns -/ -iter -( -+ -/ -- -38 -166 -) -= -11901 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -423 -284 -ns -/ -iter -( -+ -/ -- -9 -016 -) -= -12009 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -425 -850 -ns -/ -iter -( -+ -/ -- -7 -324 -) -= -11937 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -426 -013 -ns -/ -iter -( -+ -/ -- -6 -922 -) -= -11932 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -426 -029 -ns -/ -iter -( -+ -/ -- -8 -697 -) -= -11932 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -427 -781 -ns -/ -iter -( -+ -/ -- -8 -166 -) -= -11883 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -426 -589 -ns -/ -iter -( -+ -/ -- -13 -274 -) -= -11916 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -424 -152 -ns -/ -iter -( -+ -/ -- -14 -879 -) -= -11984 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -428 -066 -ns -/ -iter -( -+ -/ -- -8 -773 -) -= -11875 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -1 -446 -630 -ns -/ -iter -( -+ -/ -- -53 -195 -) -= -3513 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -2 -241 -934 -ns -/ -iter -( -+ -/ -- -42 -563 -) -= -2267 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -2 -741 -736 -ns -/ -iter -( -+ -/ -- -28 -424 -) -= -1854 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -2 -725 -768 -ns -/ -iter -( -+ -/ -- -37 -801 -) -= -1864 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -1 -686 -366 -ns -/ -iter -( -+ -/ -- -25 -054 -) -= -3014 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -1 -689 -225 -ns -/ -iter -( -+ -/ -- -24 -479 -) -= -3009 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -2 -343 -567 -ns -/ -iter -( -+ -/ -- -34 -646 -) -= -2169 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -2 -363 -133 -ns -/ -iter -( -+ -/ -- -69 -696 -) -= -2151 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -2 -337 -512 -ns -/ -iter -( -+ -/ -- -32 -958 -) -= -2174 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -53 -055 -ns -/ -iter -( -+ -/ -- -88 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -2 -979 -724 -ns -/ -iter -( -+ -/ -- -43 -904 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -5 -825 -193 -ns -/ -iter -( -+ -/ -- -61 -322 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -1 -927 -ns -/ -iter -( -+ -/ -- -39 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -1 -924 -ns -/ -iter -( -+ -/ -- -29 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -9 -830 -ns -/ -iter -( -+ -/ -- -108 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -4 -569 -ns -/ -iter -( -+ -/ -- -70 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -74 -875 -ns -/ -iter -( -+ -/ -- -1 -337 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -151 -485 -ns -/ -iter -( -+ -/ -- -3 -063 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -655 -632 -ns -/ -iter -( -+ -/ -- -801 -) -= -907 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -24 -576 -ns -/ -iter -( -+ -/ -- -307 -) -= -24207 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -026 -410 -ns -/ -iter -( -+ -/ -- -57 -265 -) -= -579 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -424 -490 -ns -/ -iter -( -+ -/ -- -7 -188 -) -= -1401 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -46 -935 -ns -/ -iter -( -+ -/ -- -1 -007 -) -= -12675 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -322 -497 -ns -/ -iter -( -+ -/ -- -3 -680 -) -= -1844 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -149 -923 -ns -/ -iter -( -+ -/ -- -2 -936 -) -= -3968 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -732 -021 -ns -/ -iter -( -+ -/ -- -10 -242 -) -= -812 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -9 -716 -641 -ns -/ -iter -( -+ -/ -- -56 -270 -) -= -61 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -9 -541 -922 -ns -/ -iter -( -+ -/ -- -63 -715 -) -= -62 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -070 -240 -ns -/ -iter -( -+ -/ -- -10 -505 -) -= -555 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -652 -312 -ns -/ -iter -( -+ -/ -- -546 -) -= -912 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -10 -832 -ns -/ -iter -( -+ -/ -- -499 -) -= -54923 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -33 -528 -ns -/ -iter -( -+ -/ -- -484 -) -= -17744 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -37 -352 -ns -/ -iter -( -+ -/ -- -1 -173 -) -= -15927 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -217 -570 -ns -/ -iter -( -+ -/ -- -3 -401 -) -= -2734 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -52 -711 -ns -/ -iter -( -+ -/ -- -1 -257 -) -= -11286 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -81 -635 -ns -/ -iter -( -+ -/ -- -1 -740 -) -= -7287 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -34 -935 -ns -/ -iter -( -+ -/ -- -1 -190 -) -= -17029 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -194 -600 -ns -/ -iter -( -+ -/ -- -3 -742 -) -= -3057 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -14 -670 -ns -/ -iter -( -+ -/ -- -153 -) -= -40554 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -59 -906 -ns -/ -iter -( -+ -/ -- -898 -) -= -9931 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -10 -470 -ns -/ -iter -( -+ -/ -- -74 -) -= -56822 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -10 -291 -ns -/ -iter -( -+ -/ -- -29 -) -= -57810 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -41 -316 -ns -/ -iter -( -+ -/ -- -1 -350 -) -= -14399 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -40 -748 -ns -/ -iter -( -+ -/ -- -724 -) -= -14600 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -14 -682 -ns -/ -iter -( -+ -/ -- -52 -) -= -40521 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -8 -822 -ns -/ -iter -( -+ -/ -- -310 -) -= -67437 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -8 -990 -ns -/ -iter -( -+ -/ -- -129 -) -= -66177 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -8 -649 -ns -/ -iter -( -+ -/ -- -192 -) -= -68786 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -218 -225 -ns -/ -iter -( -+ -/ -- -4 -267 -) -= -2726 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -35 -771 -807 -ns -/ -iter -( -+ -/ -- -640 -817 -) -= -16 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -190 -205 -ns -/ -iter -( -+ -/ -- -9 -051 -) -= -3127 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -280 -386 -ns -/ -iter -( -+ -/ -- -5 -346 -) -= -2121 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -19 -325 -ns -/ -iter -( -+ -/ -- -695 -) -= -30785 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -409 -665 -ns -/ -iter -( -+ -/ -- -7 -657 -) -= -1452 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -066 -052 -ns -/ -iter -( -+ -/ -- -7 -072 -) -= -558 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -4 -330 -659 -ns -/ -iter -( -+ -/ -- -53 -403 -) -= -137 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -107 -measured -; -0 -filtered -out -; -finished -in -131 -. -99s diff --git a/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-after-literal.log b/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-after-literal.log deleted file mode 100644 index 2d4b300aa815e..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-after-literal.log +++ /dev/null @@ -1,3110 +0,0 @@ -running -119 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -21666 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -19500 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1444 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -1300 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -2 -) -= -20607 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -56 -ns -/ -iter -( -+ -/ -- -1 -) -= -18725053 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -0 -) -= -1156 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -1 -) -= -618773 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -0 -) -= -25463 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -44 -ns -/ -iter -( -+ -/ -- -1 -) -= -23831727 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -1 -) -= -1300 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -1 -) -= -819700 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -2 -) -= -20607 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -56 -ns -/ -iter -( -+ -/ -- -1 -) -= -18725053 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -2 -) -= -1156 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -1 -) -= -643039 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -2 -) -= -409 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -3923 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -3 -242 -ns -/ -iter -( -+ -/ -- -79 -) -= -30845 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -350 -572 -ns -/ -iter -( -+ -/ -- -6 -860 -) -= -285 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -6 -) -= -1306 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -5785 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -259 -ns -/ -iter -( -+ -/ -- -15 -) -= -621 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -462 -ns -/ -iter -( -+ -/ -- -9 -) -= -54 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -0 -) -= -19849 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -1 -) -= -18079379 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -1 -) -= -1132 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -1 -) -= -618792 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -423 -ns -/ -iter -( -+ -/ -- -13 -) -= -236 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -89 -ns -/ -iter -( -+ -/ -- -0 -) -= -573 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -0 -) -= -500 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -1 -) -= -500 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -1 -) -= -447 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -1 -) -= -414 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -81 -ns -/ -iter -( -+ -/ -- -1 -) -= -12839 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -592 -ns -/ -iter -( -+ -/ -- -1 -) -= -660 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -575 -822 -ns -/ -iter -( -+ -/ -- -39 -203 -) -= -665 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -102 -ns -/ -iter -( -+ -/ -- -0 -) -= -578 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -49 -328 -ns -/ -iter -( -+ -/ -- -2 -598 -) -= -664 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -132 -ns -/ -iter -( -+ -/ -- -3 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -171 -ns -/ -iter -( -+ -/ -- -134 -) -= -1918 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -132 -251 -ns -/ -iter -( -+ -/ -- -729 -) -= -60491 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -13 -184 -ns -/ -iter -( -+ -/ -- -408 -) -= -60680 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -6 -036 -ns -/ -iter -( -+ -/ -- -167 -) -= -13255 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -602 -ns -/ -iter -( -+ -/ -- -14 -) -= -13307 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -230 -ns -/ -iter -( -+ -/ -- -7 -) -= -3526 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -218 -ns -/ -iter -( -+ -/ -- -3 -) -= -417 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -210 -ns -/ -iter -( -+ -/ -- -8 -) -= -90 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -225 -ns -/ -iter -( -+ -/ -- -6 -) -= -120 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -211 -ns -/ -iter -( -+ -/ -- -8 -) -= -165 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -212 -ns -/ -iter -( -+ -/ -- -6 -) -= -202 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -12 -245 -066 -ns -/ -iter -( -+ -/ -- -117 -141 -) -= -415 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -786 -357 -ns -/ -iter -( -+ -/ -- -14 -200 -) -= -6464 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -788 -550 -ns -/ -iter -( -+ -/ -- -26 -456 -) -= -6446 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -782 -161 -ns -/ -iter -( -+ -/ -- -15 -583 -) -= -6499 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -784 -902 -ns -/ -iter -( -+ -/ -- -23 -379 -) -= -6476 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -786 -640 -ns -/ -iter -( -+ -/ -- -27 -063 -) -= -6462 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -785 -591 -ns -/ -iter -( -+ -/ -- -20 -498 -) -= -6470 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -787 -447 -ns -/ -iter -( -+ -/ -- -20 -892 -) -= -6455 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -784 -994 -ns -/ -iter -( -+ -/ -- -19 -687 -) -= -6475 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -801 -921 -ns -/ -iter -( -+ -/ -- -15 -391 -) -= -6339 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -785 -541 -ns -/ -iter -( -+ -/ -- -11 -908 -) -= -6471 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -785 -848 -ns -/ -iter -( -+ -/ -- -28 -020 -) -= -6468 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -195 -058 -ns -/ -iter -( -+ -/ -- -44 -066 -) -= -2315 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -3 -219 -968 -ns -/ -iter -( -+ -/ -- -59 -372 -) -= -1578 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -3 -776 -467 -ns -/ -iter -( -+ -/ -- -54 -326 -) -= -1346 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -3 -803 -674 -ns -/ -iter -( -+ -/ -- -95 -281 -) -= -1336 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -2 -661 -333 -ns -/ -iter -( -+ -/ -- -46 -408 -) -= -1910 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -2 -645 -716 -ns -/ -iter -( -+ -/ -- -38 -659 -) -= -1921 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -3 -228 -352 -ns -/ -iter -( -+ -/ -- -69 -155 -) -= -1574 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -3 -305 -563 -ns -/ -iter -( -+ -/ -- -59 -321 -) -= -1537 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -3 -225 -039 -ns -/ -iter -( -+ -/ -- -49 -720 -) -= -1576 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -100 -381 -ns -/ -iter -( -+ -/ -- -2 -052 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -5 -899 -989 -ns -/ -iter -( -+ -/ -- -114 -363 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -11 -650 -995 -ns -/ -iter -( -+ -/ -- -172 -285 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -4 -082 -ns -/ -iter -( -+ -/ -- -88 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -4 -153 -ns -/ -iter -( -+ -/ -- -120 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -20 -414 -ns -/ -iter -( -+ -/ -- -1 -860 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -9 -114 -ns -/ -iter -( -+ -/ -- -216 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -183 -049 -ns -/ -iter -( -+ -/ -- -9 -917 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -361 -291 -ns -/ -iter -( -+ -/ -- -11 -045 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -907 -103 -ns -/ -iter -( -+ -/ -- -12 -165 -) -= -655 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -62 -501 -ns -/ -iter -( -+ -/ -- -1 -880 -) -= -9518 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -062 -116 -ns -/ -iter -( -+ -/ -- -41 -900 -) -= -288 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -894 -529 -ns -/ -iter -( -+ -/ -- -38 -723 -) -= -665 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -103 -305 -ns -/ -iter -( -+ -/ -- -3 -798 -) -= -5758 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -479 -423 -ns -/ -iter -( -+ -/ -- -13 -924 -) -= -1240 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -318 -300 -ns -/ -iter -( -+ -/ -- -6 -846 -) -= -1869 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -066 -300 -ns -/ -iter -( -+ -/ -- -19 -375 -) -= -557 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -21 -777 -358 -ns -/ -iter -( -+ -/ -- -230 -478 -) -= -27 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -21 -152 -019 -ns -/ -iter -( -+ -/ -- -203 -617 -) -= -28 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -777 -626 -ns -/ -iter -( -+ -/ -- -26 -243 -) -= -334 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -897 -509 -ns -/ -iter -( -+ -/ -- -24 -983 -) -= -662 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -32 -255 -ns -/ -iter -( -+ -/ -- -681 -) -= -18444 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -86 -369 -ns -/ -iter -( -+ -/ -- -2 -494 -) -= -6888 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -97 -618 -ns -/ -iter -( -+ -/ -- -564 -) -= -6094 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -944 -848 -ns -/ -iter -( -+ -/ -- -31 -039 -) -= -629 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -122 -029 -ns -/ -iter -( -+ -/ -- -2 -716 -) -= -4875 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -225 -544 -ns -/ -iter -( -+ -/ -- -5 -783 -) -= -2637 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -91 -897 -ns -/ -iter -( -+ -/ -- -3 -796 -) -= -6473 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -936 -420 -ns -/ -iter -( -+ -/ -- -15 -092 -) -= -635 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -33 -448 -ns -/ -iter -( -+ -/ -- -959 -) -= -17786 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -115 -864 -ns -/ -iter -( -+ -/ -- -1 -645 -) -= -5134 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -22 -474 -ns -/ -iter -( -+ -/ -- -674 -) -= -26472 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -22 -184 -ns -/ -iter -( -+ -/ -- -497 -) -= -26818 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -99 -629 -ns -/ -iter -( -+ -/ -- -2 -398 -) -= -5971 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -99 -523 -ns -/ -iter -( -+ -/ -- -2 -674 -) -= -5977 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -30 -815 -ns -/ -iter -( -+ -/ -- -107 -) -= -19306 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -19 -661 -ns -/ -iter -( -+ -/ -- -656 -) -= -30259 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -27 -544 -ns -/ -iter -( -+ -/ -- -527 -) -= -21599 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -19 -553 -ns -/ -iter -( -+ -/ -- -31 -) -= -30426 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -369 -144 -ns -/ -iter -( -+ -/ -- -45 -316 -) -= -1611 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -68 -838 -857 -ns -/ -iter -( -+ -/ -- -330 -544 -) -= -8 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -321 -692 -ns -/ -iter -( -+ -/ -- -5 -418 -) -= -1849 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -507 -936 -ns -/ -iter -( -+ -/ -- -3 -080 -) -= -1171 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -43 -705 -ns -/ -iter -( -+ -/ -- -788 -) -= -13612 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -819 -179 -ns -/ -iter -( -+ -/ -- -20 -071 -) -= -726 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -700 -300 -ns -/ -iter -( -+ -/ -- -36 -623 -) -= -349 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -8 -249 -767 -ns -/ -iter -( -+ -/ -- -75 -015 -) -= -72 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -119 -measured -; -0 -filtered -out -; -finished -in -111 -. -55s diff --git a/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-before-literal.log b/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-before-literal.log deleted file mode 100644 index dedfae392b9e0..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-before-literal.log +++ /dev/null @@ -1,3112 +0,0 @@ -running -119 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -21666 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -21666 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1444 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1444 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -70066 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -0 -) -= -49933476 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -3933 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -2342500 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -1 -) -= -26100 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -45 -ns -/ -iter -( -+ -/ -- -1 -) -= -23302133 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -5 -) -= -1300 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -1 -) -= -819700 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -1 -) -= -20607 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -56 -ns -/ -iter -( -+ -/ -- -0 -) -= -18725053 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -3 -) -= -1156 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -1 -) -= -643039 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -2 -) -= -409 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -3923 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -3 -259 -ns -/ -iter -( -+ -/ -- -86 -) -= -30684 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -350 -722 -ns -/ -iter -( -+ -/ -- -6 -984 -) -= -285 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -60 -ns -/ -iter -( -+ -/ -- -1 -) -= -1350 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -5785 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -255 -ns -/ -iter -( -+ -/ -- -0 -) -= -631 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -481 -ns -/ -iter -( -+ -/ -- -11 -) -= -51 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -70133 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -0 -) -= -47663818 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -4000 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -2186400 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -442 -ns -/ -iter -( -+ -/ -- -13 -) -= -226 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -89 -ns -/ -iter -( -+ -/ -- -1 -) -= -573 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -54 -ns -/ -iter -( -+ -/ -- -1 -) -= -481 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -1 -) -= -500 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -0 -) -= -435 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -404 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -83 -ns -/ -iter -( -+ -/ -- -6 -) -= -12530 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -592 -ns -/ -iter -( -+ -/ -- -4 -) -= -660 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -575 -691 -ns -/ -iter -( -+ -/ -- -29 -668 -) -= -665 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -101 -ns -/ -iter -( -+ -/ -- -5 -) -= -584 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -49 -325 -ns -/ -iter -( -+ -/ -- -1 -734 -) -= -664 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -134 -ns -/ -iter -( -+ -/ -- -2 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -189 -ns -/ -iter -( -+ -/ -- -274 -) -= -1909 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -132 -182 -ns -/ -iter -( -+ -/ -- -4 -966 -) -= -60522 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -13 -344 -ns -/ -iter -( -+ -/ -- -275 -) -= -59952 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -6 -119 -ns -/ -iter -( -+ -/ -- -285 -) -= -13075 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -617 -ns -/ -iter -( -+ -/ -- -15 -) -= -12983 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -230 -ns -/ -iter -( -+ -/ -- -7 -) -= -3526 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -207 -ns -/ -iter -( -+ -/ -- -8 -) -= -439 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -213 -ns -/ -iter -( -+ -/ -- -7 -) -= -89 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -206 -ns -/ -iter -( -+ -/ -- -6 -) -= -131 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -207 -ns -/ -iter -( -+ -/ -- -10 -) -= -169 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -208 -ns -/ -iter -( -+ -/ -- -7 -) -= -206 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -12 -275 -804 -ns -/ -iter -( -+ -/ -- -145 -331 -) -= -414 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -793 -517 -ns -/ -iter -( -+ -/ -- -44 -203 -) -= -6406 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -794 -922 -ns -/ -iter -( -+ -/ -- -23 -459 -) -= -6394 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -790 -525 -ns -/ -iter -( -+ -/ -- -23 -010 -) -= -6430 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -790 -637 -ns -/ -iter -( -+ -/ -- -17 -962 -) -= -6429 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -793 -559 -ns -/ -iter -( -+ -/ -- -17 -575 -) -= -6405 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -792 -738 -ns -/ -iter -( -+ -/ -- -15 -237 -) -= -6412 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -795 -060 -ns -/ -iter -( -+ -/ -- -26 -172 -) -= -6393 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -792 -357 -ns -/ -iter -( -+ -/ -- -15 -067 -) -= -6415 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -797 -006 -ns -/ -iter -( -+ -/ -- -27 -928 -) -= -6378 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -790 -603 -ns -/ -iter -( -+ -/ -- -22 -754 -) -= -6429 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -793 -055 -ns -/ -iter -( -+ -/ -- -13 -202 -) -= -6409 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -204 -304 -ns -/ -iter -( -+ -/ -- -50 -669 -) -= -2306 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -3 -224 -798 -ns -/ -iter -( -+ -/ -- -45 -705 -) -= -1576 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -3 -802 -774 -ns -/ -iter -( -+ -/ -- -86 -530 -) -= -1336 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -3 -805 -916 -ns -/ -iter -( -+ -/ -- -69 -737 -) -= -1335 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -2 -662 -373 -ns -/ -iter -( -+ -/ -- -61 -259 -) -= -1909 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -2 -654 -072 -ns -/ -iter -( -+ -/ -- -51 -095 -) -= -1915 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -3 -232 -369 -ns -/ -iter -( -+ -/ -- -67 -147 -) -= -1572 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -3 -311 -225 -ns -/ -iter -( -+ -/ -- -66 -086 -) -= -1535 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -3 -241 -601 -ns -/ -iter -( -+ -/ -- -68 -394 -) -= -1568 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -100 -955 -ns -/ -iter -( -+ -/ -- -2 -466 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -5 -936 -732 -ns -/ -iter -( -+ -/ -- -126 -993 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -11 -880 -838 -ns -/ -iter -( -+ -/ -- -211 -387 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -4 -575 -ns -/ -iter -( -+ -/ -- -139 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -4 -653 -ns -/ -iter -( -+ -/ -- -122 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -20 -656 -ns -/ -iter -( -+ -/ -- -535 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -9 -613 -ns -/ -iter -( -+ -/ -- -992 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -188 -349 -ns -/ -iter -( -+ -/ -- -4 -733 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -341 -554 -ns -/ -iter -( -+ -/ -- -9 -774 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -907 -419 -ns -/ -iter -( -+ -/ -- -11 -645 -) -= -655 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -62 -036 -ns -/ -iter -( -+ -/ -- -1 -854 -) -= -9590 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -072 -694 -ns -/ -iter -( -+ -/ -- -45 -192 -) -= -287 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -884 -483 -ns -/ -iter -( -+ -/ -- -25 -710 -) -= -672 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -103 -873 -ns -/ -iter -( -+ -/ -- -1 -310 -) -= -5727 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -481 -491 -ns -/ -iter -( -+ -/ -- -11 -516 -) -= -1235 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -323 -119 -ns -/ -iter -( -+ -/ -- -7 -438 -) -= -1841 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -067 -293 -ns -/ -iter -( -+ -/ -- -18 -661 -) -= -557 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -21 -732 -526 -ns -/ -iter -( -+ -/ -- -253 -563 -) -= -27 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -21 -187 -465 -ns -/ -iter -( -+ -/ -- -191 -023 -) -= -28 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -766 -003 -ns -/ -iter -( -+ -/ -- -17 -494 -) -= -336 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -897 -387 -ns -/ -iter -( -+ -/ -- -26 -674 -) -= -662 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -34 -183 -ns -/ -iter -( -+ -/ -- -885 -) -= -17404 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -87 -151 -ns -/ -iter -( -+ -/ -- -2 -139 -) -= -6826 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -99 -293 -ns -/ -iter -( -+ -/ -- -1 -938 -) -= -5991 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -379 -228 -ns -/ -iter -( -+ -/ -- -22 -539 -) -= -1568 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -123 -040 -ns -/ -iter -( -+ -/ -- -2 -676 -) -= -4835 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -186 -045 -ns -/ -iter -( -+ -/ -- -403 -) -= -3197 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -91 -679 -ns -/ -iter -( -+ -/ -- -2 -543 -) -= -6489 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -343 -668 -ns -/ -iter -( -+ -/ -- -6 -807 -) -= -1731 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -33 -802 -ns -/ -iter -( -+ -/ -- -936 -) -= -17600 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -136 -208 -ns -/ -iter -( -+ -/ -- -4 -317 -) -= -4367 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -22 -534 -ns -/ -iter -( -+ -/ -- -462 -) -= -26401 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -22 -514 -ns -/ -iter -( -+ -/ -- -697 -) -= -26425 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -97 -796 -ns -/ -iter -( -+ -/ -- -2 -037 -) -= -6083 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -95 -809 -ns -/ -iter -( -+ -/ -- -1 -538 -) -= -6209 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -30 -959 -ns -/ -iter -( -+ -/ -- -968 -) -= -19216 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -19 -568 -ns -/ -iter -( -+ -/ -- -616 -) -= -30403 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -26 -273 -ns -/ -iter -( -+ -/ -- -1 -143 -) -= -22644 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -19 -643 -ns -/ -iter -( -+ -/ -- -496 -) -= -30287 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -371 -876 -ns -/ -iter -( -+ -/ -- -2 -494 -) -= -1599 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -76 -963 -104 -ns -/ -iter -( -+ -/ -- -277 -311 -) -= -7 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -331 -250 -ns -/ -iter -( -+ -/ -- -8 -588 -) -= -1796 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -516 -528 -ns -/ -iter -( -+ -/ -- -40 -826 -) -= -1151 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -44 -206 -ns -/ -iter -( -+ -/ -- -1 -277 -) -= -13458 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -822 -577 -ns -/ -iter -( -+ -/ -- -23 -649 -) -= -723 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -685 -110 -ns -/ -iter -( -+ -/ -- -34 -615 -) -= -353 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -8 -333 -499 -ns -/ -iter -( -+ -/ -- -152 -757 -) -= -71 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -119 -measured -; -0 -filtered -out -; -finished -in -124 -. -94s diff --git a/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-bytes-after-literal.log b/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-bytes-after-literal.log deleted file mode 100644 index 31ff33f06f71e..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-bytes-after-literal.log +++ /dev/null @@ -1,2815 +0,0 @@ -running -107 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -21666 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -1 -) -= -19500 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1444 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -1300 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -54 -ns -/ -iter -( -+ -/ -- -2 -) -= -19462 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -56 -ns -/ -iter -( -+ -/ -- -1 -) -= -18725053 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -1 -) -= -1156 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -2 -) -= -643039 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -1 -) -= -25463 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -44 -ns -/ -iter -( -+ -/ -- -1 -) -= -23831727 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -2 -) -= -1300 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -1 -) -= -819700 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -1 -) -= -20211 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -57 -ns -/ -iter -( -+ -/ -- -0 -) -= -18396543 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -0 -) -= -1156 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -3 -) -= -643039 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -2 -) -= -409 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -3642 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -3 -249 -ns -/ -iter -( -+ -/ -- -87 -) -= -30779 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -350 -559 -ns -/ -iter -( -+ -/ -- -7 -154 -) -= -285 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -4 -) -= -1327 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -5785 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -401 -ns -/ -iter -( -+ -/ -- -17 -) -= -62 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -0 -) -= -19849 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -58 -ns -/ -iter -( -+ -/ -- -0 -) -= -18079379 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -0 -) -= -1132 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -2 -) -= -618792 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -421 -ns -/ -iter -( -+ -/ -- -8 -) -= -237 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -90 -ns -/ -iter -( -+ -/ -- -0 -) -= -566 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -1 -) -= -490 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -0 -) -= -490 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -0 -) -= -447 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -3 -) -= -404 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -77 -ns -/ -iter -( -+ -/ -- -1 -) -= -13506 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -592 -ns -/ -iter -( -+ -/ -- -1 -) -= -660 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -575 -759 -ns -/ -iter -( -+ -/ -- -49 -997 -) -= -665 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -102 -ns -/ -iter -( -+ -/ -- -2 -) -= -578 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -49 -326 -ns -/ -iter -( -+ -/ -- -1 -055 -) -= -664 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -161 -ns -/ -iter -( -+ -/ -- -94 -) -= -1922 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -12 -344 -799 -ns -/ -iter -( -+ -/ -- -188 -054 -) -= -411 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -780 -449 -ns -/ -iter -( -+ -/ -- -14 -474 -) -= -6513 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -795 -203 -ns -/ -iter -( -+ -/ -- -40 -742 -) -= -6392 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -816 -444 -ns -/ -iter -( -+ -/ -- -23 -334 -) -= -6226 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -777 -546 -ns -/ -iter -( -+ -/ -- -19 -625 -) -= -6537 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -783 -295 -ns -/ -iter -( -+ -/ -- -8 -266 -) -= -6489 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -775 -154 -ns -/ -iter -( -+ -/ -- -21 -350 -) -= -6557 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -781 -414 -ns -/ -iter -( -+ -/ -- -21 -057 -) -= -6505 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -783 -595 -ns -/ -iter -( -+ -/ -- -23 -835 -) -= -6487 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -821 -620 -ns -/ -iter -( -+ -/ -- -46 -131 -) -= -6187 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -818 -402 -ns -/ -iter -( -+ -/ -- -21 -350 -) -= -6211 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -779 -115 -ns -/ -iter -( -+ -/ -- -21 -335 -) -= -6524 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -189 -308 -ns -/ -iter -( -+ -/ -- -32 -528 -) -= -2321 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -3 -217 -478 -ns -/ -iter -( -+ -/ -- -36 -011 -) -= -1579 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -3 -771 -330 -ns -/ -iter -( -+ -/ -- -74 -944 -) -= -1347 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -3 -787 -593 -ns -/ -iter -( -+ -/ -- -37 -825 -) -= -1342 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -2 -669 -799 -ns -/ -iter -( -+ -/ -- -69 -777 -) -= -1904 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -2 -651 -559 -ns -/ -iter -( -+ -/ -- -33 -895 -) -= -1917 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -3 -222 -991 -ns -/ -iter -( -+ -/ -- -41 -014 -) -= -1577 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -3 -298 -048 -ns -/ -iter -( -+ -/ -- -41 -331 -) -= -1541 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -3 -218 -486 -ns -/ -iter -( -+ -/ -- -50 -318 -) -= -1579 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -100 -031 -ns -/ -iter -( -+ -/ -- -3 -464 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -5 -885 -102 -ns -/ -iter -( -+ -/ -- -130 -016 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -11 -641 -251 -ns -/ -iter -( -+ -/ -- -147 -700 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -4 -263 -ns -/ -iter -( -+ -/ -- -116 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -4 -236 -ns -/ -iter -( -+ -/ -- -91 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -22 -349 -ns -/ -iter -( -+ -/ -- -2 -085 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -9 -537 -ns -/ -iter -( -+ -/ -- -298 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -178 -561 -ns -/ -iter -( -+ -/ -- -3 -796 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -363 -343 -ns -/ -iter -( -+ -/ -- -9 -481 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -907 -022 -ns -/ -iter -( -+ -/ -- -19 -133 -) -= -655 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -63 -729 -ns -/ -iter -( -+ -/ -- -1 -830 -) -= -9335 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -181 -593 -ns -/ -iter -( -+ -/ -- -46 -002 -) -= -272 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -884 -811 -ns -/ -iter -( -+ -/ -- -26 -211 -) -= -672 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -105 -610 -ns -/ -iter -( -+ -/ -- -3 -120 -) -= -5633 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -480 -986 -ns -/ -iter -( -+ -/ -- -13 -228 -) -= -1236 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -322 -921 -ns -/ -iter -( -+ -/ -- -3 -555 -) -= -1842 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -065 -372 -ns -/ -iter -( -+ -/ -- -21 -242 -) -= -558 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -22 -109 -015 -ns -/ -iter -( -+ -/ -- -146 -243 -) -= -26 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -21 -686 -153 -ns -/ -iter -( -+ -/ -- -206 -041 -) -= -27 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -778 -225 -ns -/ -iter -( -+ -/ -- -25 -935 -) -= -334 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -897 -355 -ns -/ -iter -( -+ -/ -- -26 -781 -) -= -662 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -31 -927 -ns -/ -iter -( -+ -/ -- -633 -) -= -18634 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -87 -040 -ns -/ -iter -( -+ -/ -- -1 -859 -) -= -6835 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -97 -715 -ns -/ -iter -( -+ -/ -- -2 -109 -) -= -6088 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -944 -955 -ns -/ -iter -( -+ -/ -- -26 -503 -) -= -629 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -120 -935 -ns -/ -iter -( -+ -/ -- -2 -399 -) -= -4919 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -228 -597 -ns -/ -iter -( -+ -/ -- -7 -137 -) -= -2602 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -91 -174 -ns -/ -iter -( -+ -/ -- -1 -096 -) -= -6525 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -937 -189 -ns -/ -iter -( -+ -/ -- -23 -839 -) -= -634 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -34 -020 -ns -/ -iter -( -+ -/ -- -752 -) -= -17487 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -117 -194 -ns -/ -iter -( -+ -/ -- -3 -444 -) -= -5076 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -22 -557 -ns -/ -iter -( -+ -/ -- -388 -) -= -26374 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -22 -428 -ns -/ -iter -( -+ -/ -- -683 -) -= -26526 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -99 -637 -ns -/ -iter -( -+ -/ -- -636 -) -= -5971 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -97 -895 -ns -/ -iter -( -+ -/ -- -1 -875 -) -= -6077 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -30 -772 -ns -/ -iter -( -+ -/ -- -1 -591 -) -= -19333 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -19 -665 -ns -/ -iter -( -+ -/ -- -296 -) -= -30253 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -27 -403 -ns -/ -iter -( -+ -/ -- -2 -507 -) -= -21710 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -19 -601 -ns -/ -iter -( -+ -/ -- -293 -) -= -30352 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -370 -323 -ns -/ -iter -( -+ -/ -- -1 -345 -) -= -1606 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -68 -414 -794 -ns -/ -iter -( -+ -/ -- -342 -428 -) -= -8 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -327 -767 -ns -/ -iter -( -+ -/ -- -5 -493 -) -= -1815 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -507 -818 -ns -/ -iter -( -+ -/ -- -1 -796 -) -= -1171 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -45 -045 -ns -/ -iter -( -+ -/ -- -1 -400 -) -= -13207 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -822 -080 -ns -/ -iter -( -+ -/ -- -16 -581 -) -= -723 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -690 -084 -ns -/ -iter -( -+ -/ -- -40 -361 -) -= -352 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -8 -573 -617 -ns -/ -iter -( -+ -/ -- -143 -313 -) -= -69 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -107 -measured -; -0 -filtered -out -; -finished -in -110 -. -03s diff --git a/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-bytes-before-literal.log b/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-bytes-before-literal.log deleted file mode 100644 index d01dc770db35a..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/10-last-frontier/rust-bytes-before-literal.log +++ /dev/null @@ -1,2815 +0,0 @@ -running -107 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -21666 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -1 -) -= -20526 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1444 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -1300 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -75071 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -0 -) -= -49933476 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -4214 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -2342500 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -0 -) -= -25463 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -48 -ns -/ -iter -( -+ -/ -- -0 -) -= -21845750 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -0 -) -= -1268 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -1 -) -= -799707 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -1 -) -= -20607 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -56 -ns -/ -iter -( -+ -/ -- -2 -) -= -18725053 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -6 -) -= -1156 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -51 -ns -/ -iter -( -+ -/ -- -1 -) -= -643039 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -2 -) -= -403 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -3923 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -2 -825 -ns -/ -iter -( -+ -/ -- -57 -) -= -35398 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -350 -755 -ns -/ -iter -( -+ -/ -- -11 -905 -) -= -285 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -64 -ns -/ -iter -( -+ -/ -- -1 -) -= -1265 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -0 -) -= -6230 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -422 -ns -/ -iter -( -+ -/ -- -12 -) -= -59 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -70133 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -0 -) -= -49933523 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -4000 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -= -2342571 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -443 -ns -/ -iter -( -+ -/ -- -12 -) -= -225 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -89 -ns -/ -iter -( -+ -/ -- -1 -) -= -573 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -1 -) -= -500 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -52 -ns -/ -iter -( -+ -/ -- -1 -) -= -500 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -1 -) -= -425 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -404 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -0 -) -= -13000 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -592 -ns -/ -iter -( -+ -/ -- -1 -) -= -660 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -575 -789 -ns -/ -iter -( -+ -/ -- -34 -236 -) -= -665 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -101 -ns -/ -iter -( -+ -/ -- -2 -) -= -584 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -49 -321 -ns -/ -iter -( -+ -/ -- -2 -718 -) -= -664 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -4 -158 -ns -/ -iter -( -+ -/ -- -93 -) -= -1924 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -12 -391 -732 -ns -/ -iter -( -+ -/ -- -180 -913 -) -= -410 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -781 -690 -ns -/ -iter -( -+ -/ -- -29 -637 -) -= -6503 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -778 -306 -ns -/ -iter -( -+ -/ -- -22 -706 -) -= -6531 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -777 -716 -ns -/ -iter -( -+ -/ -- -24 -635 -) -= -6536 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -791 -786 -ns -/ -iter -( -+ -/ -- -15 -778 -) -= -6420 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -783 -470 -ns -/ -iter -( -+ -/ -- -25 -543 -) -= -6488 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -814 -902 -ns -/ -iter -( -+ -/ -- -14 -146 -) -= -6238 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -781 -464 -ns -/ -iter -( -+ -/ -- -19 -532 -) -= -6504 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -780 -116 -ns -/ -iter -( -+ -/ -- -16 -558 -) -= -6516 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -795 -982 -ns -/ -iter -( -+ -/ -- -11 -254 -) -= -6386 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -781 -746 -ns -/ -iter -( -+ -/ -- -24 -996 -) -= -6502 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -783 -793 -ns -/ -iter -( -+ -/ -- -14 -943 -) -= -6485 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -2 -188 -940 -ns -/ -iter -( -+ -/ -- -42 -308 -) -= -2322 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -3 -218 -011 -ns -/ -iter -( -+ -/ -- -50 -700 -) -= -1579 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -3 -778 -907 -ns -/ -iter -( -+ -/ -- -90 -543 -) -= -1345 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -3 -803 -852 -ns -/ -iter -( -+ -/ -- -68 -319 -) -= -1336 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -2 -660 -949 -ns -/ -iter -( -+ -/ -- -55 -488 -) -= -1910 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -2 -647 -131 -ns -/ -iter -( -+ -/ -- -26 -846 -) -= -1920 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -3 -235 -032 -ns -/ -iter -( -+ -/ -- -37 -599 -) -= -1571 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -3 -305 -124 -ns -/ -iter -( -+ -/ -- -67 -109 -) -= -1538 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -3 -231 -033 -ns -/ -iter -( -+ -/ -- -55 -626 -) -= -1573 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -99 -387 -ns -/ -iter -( -+ -/ -- -2 -366 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -5 -865 -693 -ns -/ -iter -( -+ -/ -- -62 -255 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -11 -752 -845 -ns -/ -iter -( -+ -/ -- -195 -440 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -4 -117 -ns -/ -iter -( -+ -/ -- -141 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -4 -162 -ns -/ -iter -( -+ -/ -- -67 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -19 -955 -ns -/ -iter -( -+ -/ -- -622 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -9 -140 -ns -/ -iter -( -+ -/ -- -112 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -165 -990 -ns -/ -iter -( -+ -/ -- -5 -876 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -342 -897 -ns -/ -iter -( -+ -/ -- -13 -730 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -906 -789 -ns -/ -iter -( -+ -/ -- -13 -931 -) -= -656 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -62 -319 -ns -/ -iter -( -+ -/ -- -790 -) -= -9546 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -2 -175 -424 -ns -/ -iter -( -+ -/ -- -47 -720 -) -= -273 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -884 -406 -ns -/ -iter -( -+ -/ -- -22 -679 -) -= -672 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -105 -261 -ns -/ -iter -( -+ -/ -- -3 -536 -) -= -5651 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -479 -524 -ns -/ -iter -( -+ -/ -- -7 -749 -) -= -1240 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -321 -401 -ns -/ -iter -( -+ -/ -- -9 -123 -) -= -1851 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -1 -069 -722 -ns -/ -iter -( -+ -/ -- -16 -366 -) -= -556 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -21 -959 -896 -ns -/ -iter -( -+ -/ -- -204 -695 -) -= -27 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -21 -462 -457 -ns -/ -iter -( -+ -/ -- -207 -449 -) -= -27 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -768 -026 -ns -/ -iter -( -+ -/ -- -41 -459 -) -= -336 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -897 -197 -ns -/ -iter -( -+ -/ -- -14 -349 -) -= -663 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -34 -037 -ns -/ -iter -( -+ -/ -- -719 -) -= -17479 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -86 -788 -ns -/ -iter -( -+ -/ -- -1 -203 -) -= -6855 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -98 -225 -ns -/ -iter -( -+ -/ -- -1 -589 -) -= -6056 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -377 -597 -ns -/ -iter -( -+ -/ -- -14 -840 -) -= -1575 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -122 -440 -ns -/ -iter -( -+ -/ -- -8 -123 -) -= -4858 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -187 -282 -ns -/ -iter -( -+ -/ -- -5 -176 -) -= -3176 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -91 -429 -ns -/ -iter -( -+ -/ -- -1 -944 -) -= -6507 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -348 -111 -ns -/ -iter -( -+ -/ -- -12 -721 -) -= -1709 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -33 -547 -ns -/ -iter -( -+ -/ -- -1 -119 -) -= -17734 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -132 -342 -ns -/ -iter -( -+ -/ -- -3 -974 -) -= -4495 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -22 -562 -ns -/ -iter -( -+ -/ -- -364 -) -= -26368 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -22 -313 -ns -/ -iter -( -+ -/ -- -579 -) -= -26663 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -97 -556 -ns -/ -iter -( -+ -/ -- -2 -092 -) -= -6098 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -95 -917 -ns -/ -iter -( -+ -/ -- -4 -054 -) -= -6202 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -30 -997 -ns -/ -iter -( -+ -/ -- -1 -039 -) -= -19193 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -19 -690 -ns -/ -iter -( -+ -/ -- -378 -) -= -30214 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -27 -629 -ns -/ -iter -( -+ -/ -- -465 -) -= -21532 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -19 -681 -ns -/ -iter -( -+ -/ -- -291 -) -= -30228 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -368 -290 -ns -/ -iter -( -+ -/ -- -1 -508 -) -= -1615 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -73 -004 -024 -ns -/ -iter -( -+ -/ -- -1 -040 -743 -) -= -8 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -320 -929 -ns -/ -iter -( -+ -/ -- -12 -287 -) -= -1853 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -514 -946 -ns -/ -iter -( -+ -/ -- -11 -241 -) -= -1155 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -43 -816 -ns -/ -iter -( -+ -/ -- -1 -719 -) -= -13577 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -825 -245 -ns -/ -iter -( -+ -/ -- -20 -797 -) -= -720 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -676 -908 -ns -/ -iter -( -+ -/ -- -40 -650 -) -= -354 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -8 -449 -099 -ns -/ -iter -( -+ -/ -- -123 -842 -) -= -70 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -107 -measured -; -0 -filtered -out -; -finished -in -128 -. -47s diff --git a/third_party/rust/regex/record/old-bench-log/11-regex-1.7.3/rust b/third_party/rust/regex/record/old-bench-log/11-regex-1.7.3/rust deleted file mode 100644 index eb5698310c1b2..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/11-regex-1.7.3/rust +++ /dev/null @@ -1,3103 +0,0 @@ -running -119 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -55714 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -39000 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -3714 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -2600 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -150142 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -1 -) -= -95327545 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -8428 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -4685000 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -1 -) -= -61411 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -52429800 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -1 -) -= -2888 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1821555 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -43791 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -0 -) -= -37450107 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -2458 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -1366458 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -37 -ns -/ -iter -( -+ -/ -- -0 -) -= -675 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -1 -) -= -6375 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -785 -ns -/ -iter -( -+ -/ -- -1 -) -= -56022 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -193 -595 -ns -/ -iter -( -+ -/ -- -1 -486 -) -= -516 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -37 -ns -/ -iter -( -+ -/ -- -1 -) -= -2189 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -10125 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -181 -ns -/ -iter -( -+ -/ -- -1 -) -= -889 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -216 -ns -/ -iter -( -+ -/ -- -9 -) -= -115 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -150285 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -1 -) -= -87383666 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -8571 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -4685142 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -283 -ns -/ -iter -( -+ -/ -- -7 -) -= -353 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -1 -) -= -962 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -2 -) -= -1083 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -2 -) -= -1083 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -1062 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -0 -) -= -894 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -0 -) -= -25365 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -208 -ns -/ -iter -( -+ -/ -- -2 -) -= -870 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -213 -959 -ns -/ -iter -( -+ -/ -- -7 -198 -) -= -863 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -0 -) -= -951 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -38 -231 -ns -/ -iter -( -+ -/ -- -354 -) -= -857 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -3 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -2 -351 -ns -/ -iter -( -+ -/ -- -31 -) -= -3402 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -91 -018 -ns -/ -iter -( -+ -/ -- -203 -) -= -87894 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -9 -277 -ns -/ -iter -( -+ -/ -- -40 -) -= -86235 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -2 -863 -ns -/ -iter -( -+ -/ -- -4 -) -= -27946 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -201 -ns -/ -iter -( -+ -/ -- -3 -) -= -39855 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -100 -ns -/ -iter -( -+ -/ -- -2 -) -= -8110 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -0 -) -= -1034 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -1 -) -= -220 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -87 -ns -/ -iter -( -+ -/ -- -0 -) -= -310 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -1 -) -= -397 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -1 -) -= -488 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -7 -348 -651 -ns -/ -iter -( -+ -/ -- -40 -559 -) -= -691 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -493 -624 -ns -/ -iter -( -+ -/ -- -10 -315 -) -= -10298 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -489 -573 -ns -/ -iter -( -+ -/ -- -18 -151 -) -= -10383 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -492 -501 -ns -/ -iter -( -+ -/ -- -11 -650 -) -= -10321 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -492 -283 -ns -/ -iter -( -+ -/ -- -12 -363 -) -= -10326 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -496 -795 -ns -/ -iter -( -+ -/ -- -20 -704 -) -= -10232 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -489 -245 -ns -/ -iter -( -+ -/ -- -10 -289 -) -= -10390 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -499 -701 -ns -/ -iter -( -+ -/ -- -11 -359 -) -= -10172 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -490 -460 -ns -/ -iter -( -+ -/ -- -8 -758 -) -= -10364 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -496 -398 -ns -/ -iter -( -+ -/ -- -18 -774 -) -= -10240 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -497 -077 -ns -/ -iter -( -+ -/ -- -24 -767 -) -= -10226 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -496 -763 -ns -/ -iter -( -+ -/ -- -12 -477 -) -= -10233 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -1 -454 -747 -ns -/ -iter -( -+ -/ -- -48 -995 -) -= -3494 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -2 -311 -001 -ns -/ -iter -( -+ -/ -- -63 -347 -) -= -2199 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -2 -832 -483 -ns -/ -iter -( -+ -/ -- -33 -976 -) -= -1794 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -2 -796 -710 -ns -/ -iter -( -+ -/ -- -56 -279 -) -= -1817 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -1 -708 -634 -ns -/ -iter -( -+ -/ -- -25 -749 -) -= -2975 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -1 -706 -259 -ns -/ -iter -( -+ -/ -- -22 -151 -) -= -2979 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -2 -400 -436 -ns -/ -iter -( -+ -/ -- -24 -655 -) -= -2117 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -2 -413 -765 -ns -/ -iter -( -+ -/ -- -50 -326 -) -= -2106 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -2 -402 -528 -ns -/ -iter -( -+ -/ -- -26 -150 -) -= -2115 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -51 -936 -ns -/ -iter -( -+ -/ -- -834 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -3 -294 -633 -ns -/ -iter -( -+ -/ -- -40 -585 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -6 -323 -294 -ns -/ -iter -( -+ -/ -- -66 -684 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -1 -992 -ns -/ -iter -( -+ -/ -- -25 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -2 -004 -ns -/ -iter -( -+ -/ -- -20 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -9 -697 -ns -/ -iter -( -+ -/ -- -68 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -4 -261 -ns -/ -iter -( -+ -/ -- -72 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -83 -908 -ns -/ -iter -( -+ -/ -- -1 -405 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -166 -152 -ns -/ -iter -( -+ -/ -- -3 -508 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -699 -767 -ns -/ -iter -( -+ -/ -- -6 -201 -) -= -850 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -29 -284 -ns -/ -iter -( -+ -/ -- -573 -) -= -20315 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -070 -812 -ns -/ -iter -( -+ -/ -- -18 -795 -) -= -555 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -445 -517 -ns -/ -iter -( -+ -/ -- -7 -760 -) -= -1335 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -43 -459 -ns -/ -iter -( -+ -/ -- -901 -) -= -13689 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -335 -772 -ns -/ -iter -( -+ -/ -- -6 -348 -) -= -1771 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -153 -546 -ns -/ -iter -( -+ -/ -- -3 -075 -) -= -3874 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -777 -388 -ns -/ -iter -( -+ -/ -- -8 -447 -) -= -765 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -10 -123 -374 -ns -/ -iter -( -+ -/ -- -90 -059 -) -= -58 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -9 -957 -916 -ns -/ -iter -( -+ -/ -- -63 -766 -) -= -59 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -123 -119 -ns -/ -iter -( -+ -/ -- -17 -972 -) -= -529 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -694 -714 -ns -/ -iter -( -+ -/ -- -7 -006 -) -= -856 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -13 -427 -ns -/ -iter -( -+ -/ -- -331 -) -= -44308 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -33 -171 -ns -/ -iter -( -+ -/ -- -1 -029 -) -= -17935 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -36 -816 -ns -/ -iter -( -+ -/ -- -1 -138 -) -= -16159 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -221 -185 -ns -/ -iter -( -+ -/ -- -3 -268 -) -= -2689 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -49 -883 -ns -/ -iter -( -+ -/ -- -1 -150 -) -= -11926 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -74 -967 -ns -/ -iter -( -+ -/ -- -1 -807 -) -= -7935 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -34 -675 -ns -/ -iter -( -+ -/ -- -1 -335 -) -= -17157 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -192 -109 -ns -/ -iter -( -+ -/ -- -6 -194 -) -= -3096 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -18 -355 -ns -/ -iter -( -+ -/ -- -389 -) -= -32412 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -58 -179 -ns -/ -iter -( -+ -/ -- -917 -) -= -10225 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -14 -307 -ns -/ -iter -( -+ -/ -- -74 -) -= -41583 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -14 -332 -ns -/ -iter -( -+ -/ -- -144 -) -= -41510 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -41 -336 -ns -/ -iter -( -+ -/ -- -736 -) -= -14392 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -40 -029 -ns -/ -iter -( -+ -/ -- -1 -393 -) -= -14862 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -17 -807 -ns -/ -iter -( -+ -/ -- -105 -) -= -33410 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -13 -625 -ns -/ -iter -( -+ -/ -- -15 -) -= -43664 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -13 -818 -ns -/ -iter -( -+ -/ -- -282 -) -= -43054 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -13 -628 -ns -/ -iter -( -+ -/ -- -27 -) -= -43655 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -232 -910 -ns -/ -iter -( -+ -/ -- -1 -883 -) -= -2554 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -36 -892 -964 -ns -/ -iter -( -+ -/ -- -629 -538 -) -= -16 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -203 -077 -ns -/ -iter -( -+ -/ -- -2 -574 -) -= -2929 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -290 -781 -ns -/ -iter -( -+ -/ -- -6 -597 -) -= -2045 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -22 -731 -ns -/ -iter -( -+ -/ -- -439 -) -= -26172 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -423 -983 -ns -/ -iter -( -+ -/ -- -10 -849 -) -= -1403 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -109 -013 -ns -/ -iter -( -+ -/ -- -12 -645 -) -= -536 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -4 -529 -451 -ns -/ -iter -( -+ -/ -- -44 -285 -) -= -131 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -119 -measured -; -0 -filtered -out -; -finished -in -164 -. -08s diff --git a/third_party/rust/regex/record/old-bench-log/11-regex-1.7.3/rust-bytes b/third_party/rust/regex/record/old-bench-log/11-regex-1.7.3/rust-bytes deleted file mode 100644 index 0826f6238a283..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/11-regex-1.7.3/rust-bytes +++ /dev/null @@ -1,2803 +0,0 @@ -running -107 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -48750 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -39000 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -3714 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -2600 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -150142 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -95327545 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -8428 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -4685000 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -17 -ns -/ -iter -( -+ -/ -- -0 -) -= -61411 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -20 -ns -/ -iter -( -+ -/ -- -0 -) -= -52429800 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -2888 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1821555 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -43791 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -0 -) -= -37450107 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -2458 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -1366458 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -37 -ns -/ -iter -( -+ -/ -- -0 -) -= -675 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -7285 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -2 -186 -ns -/ -iter -( -+ -/ -- -19 -) -= -45746 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -210 -378 -ns -/ -iter -( -+ -/ -- -61 -574 -) -= -475 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -39 -ns -/ -iter -( -+ -/ -- -1 -) -= -2076 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -11571 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -176 -ns -/ -iter -( -+ -/ -- -12 -) -= -142 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -131500 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -87383666 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -7500 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -4099500 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -274 -ns -/ -iter -( -+ -/ -- -7 -) -= -364 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -0 -) -= -962 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -2 -) -= -1083 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -1 -) -= -1083 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -1 -) -= -1062 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -0 -) -= -894 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -5 -) -= -27368 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -220 -ns -/ -iter -( -+ -/ -- -15 -) -= -861 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -215 -297 -ns -/ -iter -( -+ -/ -- -5 -229 -) -= -862 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -63 -ns -/ -iter -( -+ -/ -- -1 -) -= -936 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -38 -164 -ns -/ -iter -( -+ -/ -- -232 -) -= -859 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -2 -353 -ns -/ -iter -( -+ -/ -- -8 -) -= -3399 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -7 -346 -276 -ns -/ -iter -( -+ -/ -- -46 -149 -) -= -691 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -486 -203 -ns -/ -iter -( -+ -/ -- -21 -159 -) -= -10455 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -494 -356 -ns -/ -iter -( -+ -/ -- -6 -423 -) -= -10282 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -481 -930 -ns -/ -iter -( -+ -/ -- -19 -639 -) -= -10548 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -486 -672 -ns -/ -iter -( -+ -/ -- -22 -184 -) -= -10445 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -487 -152 -ns -/ -iter -( -+ -/ -- -19 -776 -) -= -10434 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -486 -534 -ns -/ -iter -( -+ -/ -- -23 -897 -) -= -10448 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -481 -412 -ns -/ -iter -( -+ -/ -- -26 -310 -) -= -10559 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -479 -498 -ns -/ -iter -( -+ -/ -- -20 -310 -) -= -10601 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -481 -960 -ns -/ -iter -( -+ -/ -- -18 -492 -) -= -10547 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -482 -282 -ns -/ -iter -( -+ -/ -- -22 -522 -) -= -10540 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -489 -224 -ns -/ -iter -( -+ -/ -- -25 -264 -) -= -10390 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -1 -470 -068 -ns -/ -iter -( -+ -/ -- -65 -563 -) -= -3457 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -2 -298 -112 -ns -/ -iter -( -+ -/ -- -27 -688 -) -= -2211 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -2 -818 -539 -ns -/ -iter -( -+ -/ -- -31 -432 -) -= -1803 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -2 -786 -226 -ns -/ -iter -( -+ -/ -- -30 -699 -) -= -1824 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -1 -716 -429 -ns -/ -iter -( -+ -/ -- -20 -264 -) -= -2961 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -1 -719 -420 -ns -/ -iter -( -+ -/ -- -23 -944 -) -= -2956 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -2 -391 -022 -ns -/ -iter -( -+ -/ -- -23 -192 -) -= -2126 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -2 -418 -744 -ns -/ -iter -( -+ -/ -- -44 -152 -) -= -2101 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -2 -400 -918 -ns -/ -iter -( -+ -/ -- -24 -041 -) -= -2117 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -57 -745 -ns -/ -iter -( -+ -/ -- -816 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -3 -346 -952 -ns -/ -iter -( -+ -/ -- -39 -488 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -6 -344 -293 -ns -/ -iter -( -+ -/ -- -53 -114 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -2 -040 -ns -/ -iter -( -+ -/ -- -32 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -2 -010 -ns -/ -iter -( -+ -/ -- -34 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -9 -632 -ns -/ -iter -( -+ -/ -- -464 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -4 -445 -ns -/ -iter -( -+ -/ -- -77 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -83 -791 -ns -/ -iter -( -+ -/ -- -1 -929 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -164 -948 -ns -/ -iter -( -+ -/ -- -2 -595 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -699 -996 -ns -/ -iter -( -+ -/ -- -6 -647 -) -= -849 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -28 -208 -ns -/ -iter -( -+ -/ -- -233 -) -= -21090 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -033 -048 -ns -/ -iter -( -+ -/ -- -9 -790 -) -= -575 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -424 -081 -ns -/ -iter -( -+ -/ -- -22 -574 -) -= -1402 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -43 -131 -ns -/ -iter -( -+ -/ -- -827 -) -= -13793 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -336 -678 -ns -/ -iter -( -+ -/ -- -6 -985 -) -= -1767 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -153 -589 -ns -/ -iter -( -+ -/ -- -3 -193 -) -= -3873 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -776 -911 -ns -/ -iter -( -+ -/ -- -8 -815 -) -= -765 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -10 -056 -702 -ns -/ -iter -( -+ -/ -- -49 -688 -) -= -59 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -9 -900 -568 -ns -/ -iter -( -+ -/ -- -76 -118 -) -= -60 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -120 -456 -ns -/ -iter -( -+ -/ -- -13 -538 -) -= -530 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -693 -727 -ns -/ -iter -( -+ -/ -- -6 -840 -) -= -857 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -11 -101 -ns -/ -iter -( -+ -/ -- -65 -) -= -53592 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -34 -003 -ns -/ -iter -( -+ -/ -- -966 -) -= -17496 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -37 -975 -ns -/ -iter -( -+ -/ -- -1 -313 -) -= -15666 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -214 -299 -ns -/ -iter -( -+ -/ -- -3 -026 -) -= -2776 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -50 -551 -ns -/ -iter -( -+ -/ -- -1 -377 -) -= -11768 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -74 -713 -ns -/ -iter -( -+ -/ -- -1 -359 -) -= -7962 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -35 -426 -ns -/ -iter -( -+ -/ -- -625 -) -= -16793 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -190 -521 -ns -/ -iter -( -+ -/ -- -4 -903 -) -= -3122 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -18 -070 -ns -/ -iter -( -+ -/ -- -763 -) -= -32923 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -58 -454 -ns -/ -iter -( -+ -/ -- -1 -228 -) -= -10177 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -14 -380 -ns -/ -iter -( -+ -/ -- -227 -) -= -41372 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -14 -491 -ns -/ -iter -( -+ -/ -- -116 -) -= -41055 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -40 -722 -ns -/ -iter -( -+ -/ -- -231 -) -= -14609 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -39 -937 -ns -/ -iter -( -+ -/ -- -623 -) -= -14896 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -17 -979 -ns -/ -iter -( -+ -/ -- -140 -) -= -33090 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -13 -650 -ns -/ -iter -( -+ -/ -- -112 -) -= -43584 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -13 -623 -ns -/ -iter -( -+ -/ -- -295 -) -= -43671 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -13 -641 -ns -/ -iter -( -+ -/ -- -55 -) -= -43613 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -232 -451 -ns -/ -iter -( -+ -/ -- -6 -555 -) -= -2559 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -36 -984 -199 -ns -/ -iter -( -+ -/ -- -623 -153 -) -= -16 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -189 -502 -ns -/ -iter -( -+ -/ -- -4 -870 -) -= -3139 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -294 -945 -ns -/ -iter -( -+ -/ -- -9 -381 -) -= -2017 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -21 -591 -ns -/ -iter -( -+ -/ -- -680 -) -= -27554 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -424 -862 -ns -/ -iter -( -+ -/ -- -7 -197 -) -= -1400 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -126 -768 -ns -/ -iter -( -+ -/ -- -13 -900 -) -= -527 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -4 -517 -167 -ns -/ -iter -( -+ -/ -- -55 -809 -) -= -131 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -107 -measured -; -0 -filtered -out -; -finished -in -150 -. -58s diff --git a/third_party/rust/regex/record/old-bench-log/12-regex-1.8.1/rust b/third_party/rust/regex/record/old-bench-log/12-regex-1.8.1/rust deleted file mode 100644 index 81b263ca7be4f..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/12-regex-1.8.1/rust +++ /dev/null @@ -1,3096 +0,0 @@ -running -119 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -48750 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -9 -ns -/ -iter -( -+ -/ -- -0 -) -= -43333 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -3714 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -9 -ns -/ -iter -( -+ -/ -- -0 -) -= -2888 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -1 -) -= -43791 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -0 -) -= -37450107 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -2360 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -1366458 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -1 -) -= -58000 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -0 -) -= -49933142 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -2888 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1821555 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -43791 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -29 -ns -/ -iter -( -+ -/ -- -0 -) -= -36158724 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -2458 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -1366458 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -37 -ns -/ -iter -( -+ -/ -- -0 -) -= -675 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -7285 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -802 -ns -/ -iter -( -+ -/ -- -6 -) -= -55494 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -207 -353 -ns -/ -iter -( -+ -/ -- -165 -) -= -482 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -2 -) -= -1975 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -11571 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -168 -ns -/ -iter -( -+ -/ -- -3 -) -= -958 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -210 -ns -/ -iter -( -+ -/ -- -5 -) -= -119 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -42080 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -29 -ns -/ -iter -( -+ -/ -- -0 -) -= -36158758 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -2400 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -1311840 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -268 -ns -/ -iter -( -+ -/ -- -7 -) -= -373 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -44 -ns -/ -iter -( -+ -/ -- -4 -) -= -1159 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -2 -) -= -1083 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -2 -) -= -1130 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -= -1062 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -0 -) -= -894 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -1 -) -= -27368 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -215 -ns -/ -iter -( -+ -/ -- -12 -) -= -865 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -215 -907 -ns -/ -iter -( -+ -/ -- -6 -442 -) -= -862 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -2 -) -= -1113 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -38 -162 -ns -/ -iter -( -+ -/ -- -464 -) -= -859 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -5 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -2 -355 -ns -/ -iter -( -+ -/ -- -470 -) -= -3397 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -91 -039 -ns -/ -iter -( -+ -/ -- -157 -) -= -87874 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -7 -595 -ns -/ -iter -( -+ -/ -- -33 -) -= -105333 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -2 -865 -ns -/ -iter -( -+ -/ -- -9 -) -= -27927 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -211 -ns -/ -iter -( -+ -/ -- -2 -) -= -37966 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -98 -ns -/ -iter -( -+ -/ -- -3 -) -= -8275 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -92 -ns -/ -iter -( -+ -/ -- -4 -) -= -989 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -90 -ns -/ -iter -( -+ -/ -- -2 -) -= -211 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -88 -ns -/ -iter -( -+ -/ -- -3 -) -= -306 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -91 -ns -/ -iter -( -+ -/ -- -3 -) -= -384 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -90 -ns -/ -iter -( -+ -/ -- -3 -) -= -477 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -7 -323 -399 -ns -/ -iter -( -+ -/ -- -24 -661 -) -= -694 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -473 -671 -ns -/ -iter -( -+ -/ -- -16 -963 -) -= -10731 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -463 -672 -ns -/ -iter -( -+ -/ -- -13 -433 -) -= -10963 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -470 -891 -ns -/ -iter -( -+ -/ -- -28 -305 -) -= -10795 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -469 -218 -ns -/ -iter -( -+ -/ -- -26 -181 -) -= -10833 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -467 -417 -ns -/ -iter -( -+ -/ -- -30 -700 -) -= -10875 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -469 -373 -ns -/ -iter -( -+ -/ -- -17 -254 -) -= -10830 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -467 -035 -ns -/ -iter -( -+ -/ -- -30 -365 -) -= -10884 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -466 -540 -ns -/ -iter -( -+ -/ -- -18 -283 -) -= -10895 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -470 -291 -ns -/ -iter -( -+ -/ -- -23 -930 -) -= -10809 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -466 -425 -ns -/ -iter -( -+ -/ -- -27 -080 -) -= -10898 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -468 -192 -ns -/ -iter -( -+ -/ -- -17 -296 -) -= -10857 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -653 -471 -ns -/ -iter -( -+ -/ -- -8 -898 -) -= -7779 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -902 -852 -ns -/ -iter -( -+ -/ -- -12 -549 -) -= -5630 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -1 -158 -000 -ns -/ -iter -( -+ -/ -- -14 -075 -) -= -4389 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -1 -149 -520 -ns -/ -iter -( -+ -/ -- -13 -482 -) -= -4422 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -1 -132 -121 -ns -/ -iter -( -+ -/ -- -7 -624 -) -= -4490 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -1 -069 -227 -ns -/ -iter -( -+ -/ -- -13 -436 -) -= -4754 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -1 -150 -436 -ns -/ -iter -( -+ -/ -- -28 -302 -) -= -4418 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -1 -148 -923 -ns -/ -iter -( -+ -/ -- -49 -063 -) -= -4424 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -1 -190 -858 -ns -/ -iter -( -+ -/ -- -15 -044 -) -= -4268 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -52 -168 -ns -/ -iter -( -+ -/ -- -827 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -3 -330 -456 -ns -/ -iter -( -+ -/ -- -57 -242 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -6 -378 -126 -ns -/ -iter -( -+ -/ -- -85 -019 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -2 -291 -ns -/ -iter -( -+ -/ -- -39 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -2 -355 -ns -/ -iter -( -+ -/ -- -37 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -14 -581 -ns -/ -iter -( -+ -/ -- -103 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -10 -443 -ns -/ -iter -( -+ -/ -- -114 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -11 -269 -ns -/ -iter -( -+ -/ -- -150 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -14 -746 -ns -/ -iter -( -+ -/ -- -212 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -699 -736 -ns -/ -iter -( -+ -/ -- -6 -402 -) -= -850 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -28 -001 -ns -/ -iter -( -+ -/ -- -198 -) -= -21246 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -029 -174 -ns -/ -iter -( -+ -/ -- -33 -321 -) -= -578 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -460 -103 -ns -/ -iter -( -+ -/ -- -23 -290 -) -= -1293 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -57 -666 -ns -/ -iter -( -+ -/ -- -907 -) -= -10316 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -345 -016 -ns -/ -iter -( -+ -/ -- -4 -672 -) -= -1724 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -150 -499 -ns -/ -iter -( -+ -/ -- -4 -855 -) -= -3953 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -777 -723 -ns -/ -iter -( -+ -/ -- -8 -076 -) -= -764 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -10 -022 -203 -ns -/ -iter -( -+ -/ -- -77 -897 -) -= -59 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -9 -861 -816 -ns -/ -iter -( -+ -/ -- -76 -172 -) -= -60 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -134 -201 -ns -/ -iter -( -+ -/ -- -11 -926 -) -= -524 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -693 -533 -ns -/ -iter -( -+ -/ -- -6 -686 -) -= -857 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -11 -974 -ns -/ -iter -( -+ -/ -- -292 -) -= -49685 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -44 -708 -ns -/ -iter -( -+ -/ -- -573 -) -= -13307 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -49 -873 -ns -/ -iter -( -+ -/ -- -785 -) -= -11928 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -190 -194 -ns -/ -iter -( -+ -/ -- -2 -944 -) -= -3128 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -52 -028 -ns -/ -iter -( -+ -/ -- -1 -102 -) -= -11434 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -119 -891 -ns -/ -iter -( -+ -/ -- -921 -) -= -4962 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -47 -139 -ns -/ -iter -( -+ -/ -- -1 -617 -) -= -12620 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -200 -159 -ns -/ -iter -( -+ -/ -- -3 -992 -) -= -2972 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -17 -902 -ns -/ -iter -( -+ -/ -- -577 -) -= -33232 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -58 -219 -ns -/ -iter -( -+ -/ -- -1 -215 -) -= -10218 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -14 -314 -ns -/ -iter -( -+ -/ -- -45 -) -= -41563 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -14 -399 -ns -/ -iter -( -+ -/ -- -45 -) -= -41317 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -41 -418 -ns -/ -iter -( -+ -/ -- -591 -) -= -14364 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -39 -877 -ns -/ -iter -( -+ -/ -- -545 -) -= -14919 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -17 -883 -ns -/ -iter -( -+ -/ -- -151 -) -= -33268 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -13 -696 -ns -/ -iter -( -+ -/ -- -123 -) -= -43438 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -10 -157 -ns -/ -iter -( -+ -/ -- -222 -) -= -58573 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -13 -663 -ns -/ -iter -( -+ -/ -- -53 -) -= -43543 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -234 -890 -ns -/ -iter -( -+ -/ -- -4 -574 -) -= -2532 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -36 -406 -680 -ns -/ -iter -( -+ -/ -- -397 -378 -) -= -16 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -192 -028 -ns -/ -iter -( -+ -/ -- -5 -315 -) -= -3098 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -311 -087 -ns -/ -iter -( -+ -/ -- -6 -723 -) -= -1912 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -21 -710 -ns -/ -iter -( -+ -/ -- -1 -269 -) -= -27403 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -425 -246 -ns -/ -iter -( -+ -/ -- -7 -741 -) -= -1399 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -116 -412 -ns -/ -iter -( -+ -/ -- -11 -753 -) -= -532 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -4 -452 -805 -ns -/ -iter -( -+ -/ -- -84 -309 -) -= -133 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -119 -measured -; -0 -filtered -out -; -finished -in -142 -. -33s diff --git a/third_party/rust/regex/record/old-bench-log/12-regex-1.8.1/rust-bytes b/third_party/rust/regex/record/old-bench-log/12-regex-1.8.1/rust-bytes deleted file mode 100644 index 01fa8d61811d4..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/12-regex-1.8.1/rust-bytes +++ /dev/null @@ -1,2799 +0,0 @@ -running -107 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -55714 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -48750 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -3714 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -8 -ns -/ -iter -( -+ -/ -- -0 -) -= -3250 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -43791 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -0 -) -= -37450107 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -2458 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -1366458 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -58000 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -21 -ns -/ -iter -( -+ -/ -- -0 -) -= -49933142 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -2 -) -= -2888 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -18 -ns -/ -iter -( -+ -/ -- -0 -) -= -1821555 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -43791 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -28 -ns -/ -iter -( -+ -/ -- -0 -) -= -37450107 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -2458 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -24 -ns -/ -iter -( -+ -/ -- -0 -) -= -1366458 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -37 -ns -/ -iter -( -+ -/ -- -0 -) -= -675 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -7285 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -801 -ns -/ -iter -( -+ -/ -- -2 -) -= -55525 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -212 -892 -ns -/ -iter -( -+ -/ -- -206 -) -= -469 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -0 -) -= -2025 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -7 -ns -/ -iter -( -+ -/ -- -0 -) -= -11571 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -174 -ns -/ -iter -( -+ -/ -- -2 -) -= -143 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -42080 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -29 -ns -/ -iter -( -+ -/ -- -0 -) -= -36158758 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -2400 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -25 -ns -/ -iter -( -+ -/ -- -0 -) -= -1311840 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -270 -ns -/ -iter -( -+ -/ -- -8 -) -= -370 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -44 -ns -/ -iter -( -+ -/ -- -1 -) -= -1159 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -0 -) -= -1130 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -0 -) -= -1130 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -1 -) -= -1062 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -19 -ns -/ -iter -( -+ -/ -- -0 -) -= -894 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -38 -ns -/ -iter -( -+ -/ -- -2 -) -= -27368 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -1 -215 -ns -/ -iter -( -+ -/ -- -15 -) -= -865 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -1 -217 -631 -ns -/ -iter -( -+ -/ -- -11 -216 -) -= -861 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -53 -ns -/ -iter -( -+ -/ -- -4 -) -= -1113 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -38 -251 -ns -/ -iter -( -+ -/ -- -364 -) -= -857 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -2 -353 -ns -/ -iter -( -+ -/ -- -4 -) -= -3399 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -7 -322 -463 -ns -/ -iter -( -+ -/ -- -37 -966 -) -= -694 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -466 -849 -ns -/ -iter -( -+ -/ -- -12 -252 -) -= -10888 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -465 -011 -ns -/ -iter -( -+ -/ -- -19 -693 -) -= -10931 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -457 -806 -ns -/ -iter -( -+ -/ -- -13 -453 -) -= -11103 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -456 -878 -ns -/ -iter -( -+ -/ -- -32 -828 -) -= -11126 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -465 -531 -ns -/ -iter -( -+ -/ -- -21 -786 -) -= -10919 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -454 -553 -ns -/ -iter -( -+ -/ -- -12 -698 -) -= -11183 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -456 -977 -ns -/ -iter -( -+ -/ -- -13 -155 -) -= -11123 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -466 -105 -ns -/ -iter -( -+ -/ -- -15 -667 -) -= -10906 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -462 -655 -ns -/ -iter -( -+ -/ -- -18 -871 -) -= -10987 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -456 -642 -ns -/ -iter -( -+ -/ -- -19 -218 -) -= -11132 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -456 -307 -ns -/ -iter -( -+ -/ -- -15 -369 -) -= -11140 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -655 -033 -ns -/ -iter -( -+ -/ -- -7 -901 -) -= -7760 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -902 -675 -ns -/ -iter -( -+ -/ -- -15 -165 -) -= -5631 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -1 -159 -521 -ns -/ -iter -( -+ -/ -- -14 -489 -) -= -4384 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -1 -147 -781 -ns -/ -iter -( -+ -/ -- -16 -536 -) -= -4428 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -1 -133 -068 -ns -/ -iter -( -+ -/ -- -13 -938 -) -= -4486 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -1 -061 -174 -ns -/ -iter -( -+ -/ -- -14 -478 -) -= -4790 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -1 -151 -637 -ns -/ -iter -( -+ -/ -- -35 -753 -) -= -4414 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -1 -137 -068 -ns -/ -iter -( -+ -/ -- -37 -678 -) -= -4470 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -1 -185 -082 -ns -/ -iter -( -+ -/ -- -14 -355 -) -= -4289 -MB -/ -s -test -rust_compile -: -: -compile_huge -. -. -. -bench -: -66 -894 -ns -/ -iter -( -+ -/ -- -2 -425 -) -test -rust_compile -: -: -compile_huge_bytes -. -. -. -bench -: -3 -331 -663 -ns -/ -iter -( -+ -/ -- -47 -261 -) -test -rust_compile -: -: -compile_huge_full -. -. -. -bench -: -6 -446 -254 -ns -/ -iter -( -+ -/ -- -65 -334 -) -test -rust_compile -: -: -compile_simple -. -. -. -bench -: -2 -351 -ns -/ -iter -( -+ -/ -- -71 -) -test -rust_compile -: -: -compile_simple_bytes -. -. -. -bench -: -2 -350 -ns -/ -iter -( -+ -/ -- -49 -) -test -rust_compile -: -: -compile_simple_full -. -. -. -bench -: -14 -460 -ns -/ -iter -( -+ -/ -- -144 -) -test -rust_compile -: -: -compile_small -. -. -. -bench -: -10 -350 -ns -/ -iter -( -+ -/ -- -120 -) -test -rust_compile -: -: -compile_small_bytes -. -. -. -bench -: -10 -993 -ns -/ -iter -( -+ -/ -- -89 -) -test -rust_compile -: -: -compile_small_full -. -. -. -bench -: -14 -201 -ns -/ -iter -( -+ -/ -- -139 -) -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -698 -092 -ns -/ -iter -( -+ -/ -- -6 -907 -) -= -852 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -29 -127 -ns -/ -iter -( -+ -/ -- -1 -001 -) -= -20425 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -026 -902 -ns -/ -iter -( -+ -/ -- -86 -299 -) -= -579 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -433 -157 -ns -/ -iter -( -+ -/ -- -10 -129 -) -= -1373 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -57 -103 -ns -/ -iter -( -+ -/ -- -509 -) -= -10418 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -344 -973 -ns -/ -iter -( -+ -/ -- -3 -288 -) -= -1724 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -158 -337 -ns -/ -iter -( -+ -/ -- -2 -492 -) -= -3757 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -776 -703 -ns -/ -iter -( -+ -/ -- -8 -000 -) -= -765 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -10 -179 -909 -ns -/ -iter -( -+ -/ -- -55 -188 -) -= -58 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -10 -007 -465 -ns -/ -iter -( -+ -/ -- -75 -168 -) -= -59 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -116 -201 -ns -/ -iter -( -+ -/ -- -11 -571 -) -= -532 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -693 -124 -ns -/ -iter -( -+ -/ -- -6 -540 -) -= -858 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -12 -079 -ns -/ -iter -( -+ -/ -- -192 -) -= -49253 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -44 -336 -ns -/ -iter -( -+ -/ -- -1 -424 -) -= -13418 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -49 -569 -ns -/ -iter -( -+ -/ -- -721 -) -= -12002 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -189 -812 -ns -/ -iter -( -+ -/ -- -2 -952 -) -= -3134 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -52 -132 -ns -/ -iter -( -+ -/ -- -1 -182 -) -= -11412 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -120 -591 -ns -/ -iter -( -+ -/ -- -2 -521 -) -= -4933 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -46 -956 -ns -/ -iter -( -+ -/ -- -545 -) -= -12670 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -199 -252 -ns -/ -iter -( -+ -/ -- -2 -212 -) -= -2985 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -17 -983 -ns -/ -iter -( -+ -/ -- -591 -) -= -33083 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -58 -139 -ns -/ -iter -( -+ -/ -- -919 -) -= -10232 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -14 -283 -ns -/ -iter -( -+ -/ -- -113 -) -= -41653 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -14 -587 -ns -/ -iter -( -+ -/ -- -82 -) -= -40785 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -40 -947 -ns -/ -iter -( -+ -/ -- -385 -) -= -14529 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -39 -607 -ns -/ -iter -( -+ -/ -- -567 -) -= -15020 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -18 -803 -ns -/ -iter -( -+ -/ -- -232 -) -= -31640 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -13 -704 -ns -/ -iter -( -+ -/ -- -73 -) -= -43413 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -14 -166 -ns -/ -iter -( -+ -/ -- -191 -) -= -41997 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -13 -702 -ns -/ -iter -( -+ -/ -- -36 -) -= -43419 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -232 -609 -ns -/ -iter -( -+ -/ -- -3 -217 -) -= -2557 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -36 -167 -769 -ns -/ -iter -( -+ -/ -- -592 -579 -) -= -16 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -188 -281 -ns -/ -iter -( -+ -/ -- -2 -966 -) -= -3159 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -312 -853 -ns -/ -iter -( -+ -/ -- -23 -145 -) -= -1901 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -20 -987 -ns -/ -iter -( -+ -/ -- -909 -) -= -28347 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -427 -154 -ns -/ -iter -( -+ -/ -- -6 -396 -) -= -1392 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -1 -112 -964 -ns -/ -iter -( -+ -/ -- -15 -393 -) -= -534 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -4 -513 -468 -ns -/ -iter -( -+ -/ -- -35 -410 -) -= -131 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -107 -measured -; -0 -filtered -out -; -finished -in -143 -. -96s diff --git a/third_party/rust/regex/record/old-bench-log/13-regex-1.9.0/rust b/third_party/rust/regex/record/old-bench-log/13-regex-1.9.0/rust deleted file mode 100644 index ccfc5e2e2cfbc..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/13-regex-1.9.0/rust +++ /dev/null @@ -1,2892 +0,0 @@ -running -110 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -26000 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -1 -) -= -32500 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -1733 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -1 -) -= -2166 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -25023 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -24966738 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -1404 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -762674 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -35 -ns -/ -iter -( -+ -/ -- -0 -) -= -29828 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -35 -ns -/ -iter -( -+ -/ -- -0 -) -= -29959885 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -35 -ns -/ -iter -( -+ -/ -- -0 -) -= -1485 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -35 -ns -/ -iter -( -+ -/ -- -0 -) -= -936800 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -24441 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -24966738 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -1404 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -780833 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -46 -ns -/ -iter -( -+ -/ -- -1 -) -= -543 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -9 -ns -/ -iter -( -+ -/ -- -0 -) -= -5666 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -801 -ns -/ -iter -( -+ -/ -- -24 -) -= -55525 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -194 -124 -ns -/ -iter -( -+ -/ -- -289 -) -= -515 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -22 -ns -/ -iter -( -+ -/ -- -1 -) -= -3681 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -8100 -MB -/ -s -test -misc -: -: -match_class_unicode -. -. -. -bench -: -196 -ns -/ -iter -( -+ -/ -- -0 -) -= -821 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -55 -ns -/ -iter -( -+ -/ -- -3 -) -= -454 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -24465 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -24386139 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -1395 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -762697 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -167 -ns -/ -iter -( -+ -/ -- -0 -) -= -598 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -26 -ns -/ -iter -( -+ -/ -- -1 -) -= -1961 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -0 -) -= -650 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -40 -ns -/ -iter -( -+ -/ -- -0 -) -= -650 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -30 -ns -/ -iter -( -+ -/ -- -0 -) -= -566 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -31 -ns -/ -iter -( -+ -/ -- -0 -) -= -548 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -67 -ns -/ -iter -( -+ -/ -- -1 -) -= -15522 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -78 -ns -/ -iter -( -+ -/ -- -1 -) -= -13474 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -19 -310 -ns -/ -iter -( -+ -/ -- -80 -) -= -54303 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -2 -) -= -951 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -543 -ns -/ -iter -( -+ -/ -- -4 -) -= -60395 -MB -/ -s -test -misc -: -: -replace_all -. -. -. -bench -: -151 -ns -/ -iter -( -+ -/ -- -13 -) -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -9 -302 -ns -/ -iter -( -+ -/ -- -25 -) -= -860 -MB -/ -s -test -misc -: -: -short_haystack_1000000x -. -. -. -bench -: -90 -868 -ns -/ -iter -( -+ -/ -- -354 -) -= -88039 -MB -/ -s -test -misc -: -: -short_haystack_100000x -. -. -. -bench -: -7 -215 -ns -/ -iter -( -+ -/ -- -18 -) -= -110881 -MB -/ -s -test -misc -: -: -short_haystack_10000x -. -. -. -bench -: -605 -ns -/ -iter -( -+ -/ -- -2 -) -= -132249 -MB -/ -s -test -misc -: -: -short_haystack_1000x -. -. -. -bench -: -148 -ns -/ -iter -( -+ -/ -- -2 -) -= -54128 -MB -/ -s -test -misc -: -: -short_haystack_100x -. -. -. -bench -: -83 -ns -/ -iter -( -+ -/ -- -3 -) -= -9771 -MB -/ -s -test -misc -: -: -short_haystack_10x -. -. -. -bench -: -89 -ns -/ -iter -( -+ -/ -- -1 -) -= -1022 -MB -/ -s -test -misc -: -: -short_haystack_1x -. -. -. -bench -: -79 -ns -/ -iter -( -+ -/ -- -1 -) -= -240 -MB -/ -s -test -misc -: -: -short_haystack_2x -. -. -. -bench -: -79 -ns -/ -iter -( -+ -/ -- -1 -) -= -341 -MB -/ -s -test -misc -: -: -short_haystack_3x -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -2 -) -= -437 -MB -/ -s -test -misc -: -: -short_haystack_4x -. -. -. -bench -: -79 -ns -/ -iter -( -+ -/ -- -1 -) -= -544 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -1 -748 -215 -ns -/ -iter -( -+ -/ -- -25 -793 -) -= -2907 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -486 -169 -ns -/ -iter -( -+ -/ -- -11 -425 -) -= -10456 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -479 -019 -ns -/ -iter -( -+ -/ -- -7 -468 -) -= -10612 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -481 -118 -ns -/ -iter -( -+ -/ -- -10 -305 -) -= -10565 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -484 -508 -ns -/ -iter -( -+ -/ -- -11 -753 -) -= -10491 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -481 -861 -ns -/ -iter -( -+ -/ -- -7 -991 -) -= -10549 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -477 -043 -ns -/ -iter -( -+ -/ -- -12 -101 -) -= -10656 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -483 -954 -ns -/ -iter -( -+ -/ -- -7 -728 -) -= -10503 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -479 -564 -ns -/ -iter -( -+ -/ -- -13 -514 -) -= -10600 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -481 -345 -ns -/ -iter -( -+ -/ -- -11 -205 -) -= -10560 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -479 -772 -ns -/ -iter -( -+ -/ -- -13 -266 -) -= -10595 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -480 -299 -ns -/ -iter -( -+ -/ -- -9 -997 -) -= -10583 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -693 -230 -ns -/ -iter -( -+ -/ -- -21 -808 -) -= -7332 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -936 -552 -ns -/ -iter -( -+ -/ -- -9 -916 -) -= -5427 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -1 -192 -921 -ns -/ -iter -( -+ -/ -- -11 -038 -) -= -4261 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -1 -170 -341 -ns -/ -iter -( -+ -/ -- -27 -745 -) -= -4343 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -1 -166 -877 -ns -/ -iter -( -+ -/ -- -8 -369 -) -= -4356 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -1 -085 -919 -ns -/ -iter -( -+ -/ -- -9 -594 -) -= -4681 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -1 -248 -718 -ns -/ -iter -( -+ -/ -- -13 -480 -) -= -4070 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -1 -216 -643 -ns -/ -iter -( -+ -/ -- -15 -505 -) -= -4178 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -1 -219 -951 -ns -/ -iter -( -+ -/ -- -14 -109 -) -= -4166 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -27 -363 -ns -/ -iter -( -+ -/ -- -604 -) -= -21742 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -31 -147 -ns -/ -iter -( -+ -/ -- -876 -) -= -19100 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -326 -354 -ns -/ -iter -( -+ -/ -- -22 -628 -) -= -448 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -801 -343 -ns -/ -iter -( -+ -/ -- -895 -) -= -742 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -56 -328 -ns -/ -iter -( -+ -/ -- -1 -009 -) -= -10561 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -301 -186 -ns -/ -iter -( -+ -/ -- -3 -615 -) -= -1975 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -176 -428 -ns -/ -iter -( -+ -/ -- -2 -182 -) -= -3372 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -173 -948 -ns -/ -iter -( -+ -/ -- -5 -073 -) -= -3420 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -7 -226 -608 -ns -/ -iter -( -+ -/ -- -261 -849 -) -= -82 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -7 -024 -589 -ns -/ -iter -( -+ -/ -- -145 -281 -) -= -84 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -004 -841 -ns -/ -iter -( -+ -/ -- -6 -857 -) -= -592 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -15 -978 -ns -/ -iter -( -+ -/ -- -90 -) -= -37234 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -11 -151 -ns -/ -iter -( -+ -/ -- -289 -) -= -53352 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -45 -441 -ns -/ -iter -( -+ -/ -- -960 -) -= -13092 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -51 -934 -ns -/ -iter -( -+ -/ -- -806 -) -= -11455 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -171 -844 -ns -/ -iter -( -+ -/ -- -4 -176 -) -= -3462 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -46 -611 -ns -/ -iter -( -+ -/ -- -1 -072 -) -= -12763 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -74 -956 -ns -/ -iter -( -+ -/ -- -2 -098 -) -= -7937 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -47 -595 -ns -/ -iter -( -+ -/ -- -595 -) -= -12499 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -100 -636 -ns -/ -iter -( -+ -/ -- -814 -) -= -5911 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -19 -293 -ns -/ -iter -( -+ -/ -- -687 -) -= -30836 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -52 -310 -ns -/ -iter -( -+ -/ -- -1 -024 -) -= -11373 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -16 -080 -ns -/ -iter -( -+ -/ -- -327 -) -= -36998 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -14 -605 -ns -/ -iter -( -+ -/ -- -120 -) -= -40734 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -38 -662 -ns -/ -iter -( -+ -/ -- -360 -) -= -15388 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -37 -650 -ns -/ -iter -( -+ -/ -- -316 -) -= -15801 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -16 -234 -ns -/ -iter -( -+ -/ -- -125 -) -= -36647 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -13 -709 -ns -/ -iter -( -+ -/ -- -72 -) -= -43397 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -9 -870 -ns -/ -iter -( -+ -/ -- -133 -) -= -60276 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -13 -735 -ns -/ -iter -( -+ -/ -- -57 -) -= -43315 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -189 -377 -ns -/ -iter -( -+ -/ -- -2 -105 -) -= -3141 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -29 -934 -ns -/ -iter -( -+ -/ -- -1 -249 -) -= -19874 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -213 -236 -ns -/ -iter -( -+ -/ -- -3 -823 -) -= -2790 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -322 -922 -ns -/ -iter -( -+ -/ -- -5 -946 -) -= -1842 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -23 -494 -ns -/ -iter -( -+ -/ -- -718 -) -= -25322 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -392 -113 -ns -/ -iter -( -+ -/ -- -6 -046 -) -= -1517 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -673 -618 -ns -/ -iter -( -+ -/ -- -12 -865 -) -= -883 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -3 -632 -096 -ns -/ -iter -( -+ -/ -- -56 -944 -) -= -163 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -110 -measured -; -0 -filtered -out -; -finished -in -117 -. -87s diff --git a/third_party/rust/regex/record/old-bench-log/13-regex-1.9.0/rust-bytes b/third_party/rust/regex/record/old-bench-log/13-regex-1.9.0/rust-bytes deleted file mode 100644 index e4401af957ca7..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/13-regex-1.9.0/rust-bytes +++ /dev/null @@ -1,2595 +0,0 @@ -running -98 -tests -test -misc -: -: -anchored_literal_long_match -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -26000 -MB -/ -s -test -misc -: -: -anchored_literal_long_non_match -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -32500 -MB -/ -s -test -misc -: -: -anchored_literal_short_match -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -= -1733 -MB -/ -s -test -misc -: -: -anchored_literal_short_non_match -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -= -2166 -MB -/ -s -test -misc -: -: -easy0_1K -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -25023 -MB -/ -s -test -misc -: -: -easy0_1MB -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -24966738 -MB -/ -s -test -misc -: -: -easy0_32 -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -1404 -MB -/ -s -test -misc -: -: -easy0_32K -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -780833 -MB -/ -s -test -misc -: -: -easy1_1K -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -1 -) -= -30705 -MB -/ -s -test -misc -: -: -easy1_1MB -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -0 -) -= -30841058 -MB -/ -s -test -misc -: -: -easy1_32 -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -0 -) -= -1529 -MB -/ -s -test -misc -: -: -easy1_32K -. -. -. -bench -: -34 -ns -/ -iter -( -+ -/ -- -0 -) -= -964352 -MB -/ -s -test -misc -: -: -hard_1K -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -25023 -MB -/ -s -test -misc -: -: -hard_1MB -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -24966738 -MB -/ -s -test -misc -: -: -hard_32 -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -1404 -MB -/ -s -test -misc -: -: -hard_32K -. -. -. -bench -: -42 -ns -/ -iter -( -+ -/ -- -0 -) -= -780833 -MB -/ -s -test -misc -: -: -is_match_set -. -. -. -bench -: -47 -ns -/ -iter -( -+ -/ -- -1 -) -= -531 -MB -/ -s -test -misc -: -: -literal -. -. -. -bench -: -10 -ns -/ -iter -( -+ -/ -- -0 -) -= -5100 -MB -/ -s -test -misc -: -: -long_needle1 -. -. -. -bench -: -1 -808 -ns -/ -iter -( -+ -/ -- -7 -) -= -55310 -MB -/ -s -test -misc -: -: -long_needle2 -. -. -. -bench -: -213 -106 -ns -/ -iter -( -+ -/ -- -416 -) -= -469 -MB -/ -s -test -misc -: -: -match_class -. -. -. -bench -: -23 -ns -/ -iter -( -+ -/ -- -1 -) -= -3521 -MB -/ -s -test -misc -: -: -match_class_in_range -. -. -. -bench -: -11 -ns -/ -iter -( -+ -/ -- -0 -) -= -7363 -MB -/ -s -test -misc -: -: -matches_set -. -. -. -bench -: -56 -ns -/ -iter -( -+ -/ -- -3 -) -= -446 -MB -/ -s -test -misc -: -: -medium_1K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -24465 -MB -/ -s -test -misc -: -: -medium_1MB -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -24386139 -MB -/ -s -test -misc -: -: -medium_32 -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -1395 -MB -/ -s -test -misc -: -: -medium_32K -. -. -. -bench -: -43 -ns -/ -iter -( -+ -/ -- -0 -) -= -762697 -MB -/ -s -test -misc -: -: -no_exponential -. -. -. -bench -: -162 -ns -/ -iter -( -+ -/ -- -4 -) -= -617 -MB -/ -s -test -misc -: -: -not_literal -. -. -. -bench -: -27 -ns -/ -iter -( -+ -/ -- -1 -) -= -1888 -MB -/ -s -test -misc -: -: -one_pass_long_prefix -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -0 -) -= -634 -MB -/ -s -test -misc -: -: -one_pass_long_prefix_not -. -. -. -bench -: -41 -ns -/ -iter -( -+ -/ -- -0 -) -= -634 -MB -/ -s -test -misc -: -: -one_pass_short -. -. -. -bench -: -30 -ns -/ -iter -( -+ -/ -- -0 -) -= -566 -MB -/ -s -test -misc -: -: -one_pass_short_not -. -. -. -bench -: -31 -ns -/ -iter -( -+ -/ -- -0 -) -= -548 -MB -/ -s -test -misc -: -: -reallyhard2_1K -. -. -. -bench -: -70 -ns -/ -iter -( -+ -/ -- -1 -) -= -14857 -MB -/ -s -test -misc -: -: -reallyhard_1K -. -. -. -bench -: -78 -ns -/ -iter -( -+ -/ -- -3 -) -= -13474 -MB -/ -s -test -misc -: -: -reallyhard_1MB -. -. -. -bench -: -19 -850 -ns -/ -iter -( -+ -/ -- -345 -) -= -52826 -MB -/ -s -test -misc -: -: -reallyhard_32 -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -2 -) -= -967 -MB -/ -s -test -misc -: -: -reallyhard_32K -. -. -. -bench -: -546 -ns -/ -iter -( -+ -/ -- -8 -) -= -60064 -MB -/ -s -test -misc -: -: -reverse_suffix_no_quadratic -. -. -. -bench -: -9 -304 -ns -/ -iter -( -+ -/ -- -29 -) -= -859 -MB -/ -s -test -regexdna -: -: -find_new_lines -. -. -. -bench -: -1 -733 -767 -ns -/ -iter -( -+ -/ -- -66 -699 -) -= -2932 -MB -/ -s -test -regexdna -: -: -subst1 -. -. -. -bench -: -486 -442 -ns -/ -iter -( -+ -/ -- -11 -929 -) -= -10450 -MB -/ -s -test -regexdna -: -: -subst10 -. -. -. -bench -: -486 -073 -ns -/ -iter -( -+ -/ -- -12 -157 -) -= -10458 -MB -/ -s -test -regexdna -: -: -subst11 -. -. -. -bench -: -483 -485 -ns -/ -iter -( -+ -/ -- -11 -703 -) -= -10514 -MB -/ -s -test -regexdna -: -: -subst2 -. -. -. -bench -: -487 -298 -ns -/ -iter -( -+ -/ -- -9 -184 -) -= -10431 -MB -/ -s -test -regexdna -: -: -subst3 -. -. -. -bench -: -491 -219 -ns -/ -iter -( -+ -/ -- -9 -614 -) -= -10348 -MB -/ -s -test -regexdna -: -: -subst4 -. -. -. -bench -: -482 -668 -ns -/ -iter -( -+ -/ -- -9 -576 -) -= -10531 -MB -/ -s -test -regexdna -: -: -subst5 -. -. -. -bench -: -489 -673 -ns -/ -iter -( -+ -/ -- -8 -331 -) -= -10381 -MB -/ -s -test -regexdna -: -: -subst6 -. -. -. -bench -: -484 -707 -ns -/ -iter -( -+ -/ -- -5 -276 -) -= -10487 -MB -/ -s -test -regexdna -: -: -subst7 -. -. -. -bench -: -485 -109 -ns -/ -iter -( -+ -/ -- -9 -360 -) -= -10478 -MB -/ -s -test -regexdna -: -: -subst8 -. -. -. -bench -: -485 -790 -ns -/ -iter -( -+ -/ -- -9 -298 -) -= -10464 -MB -/ -s -test -regexdna -: -: -subst9 -. -. -. -bench -: -483 -255 -ns -/ -iter -( -+ -/ -- -12 -434 -) -= -10519 -MB -/ -s -test -regexdna -: -: -variant1 -. -. -. -bench -: -654 -757 -ns -/ -iter -( -+ -/ -- -8 -719 -) -= -7763 -MB -/ -s -test -regexdna -: -: -variant2 -. -. -. -bench -: -905 -052 -ns -/ -iter -( -+ -/ -- -9 -599 -) -= -5616 -MB -/ -s -test -regexdna -: -: -variant3 -. -. -. -bench -: -1 -161 -187 -ns -/ -iter -( -+ -/ -- -13 -798 -) -= -4377 -MB -/ -s -test -regexdna -: -: -variant4 -. -. -. -bench -: -1 -144 -656 -ns -/ -iter -( -+ -/ -- -15 -198 -) -= -4440 -MB -/ -s -test -regexdna -: -: -variant5 -. -. -. -bench -: -1 -136 -222 -ns -/ -iter -( -+ -/ -- -9 -112 -) -= -4473 -MB -/ -s -test -regexdna -: -: -variant6 -. -. -. -bench -: -1 -062 -124 -ns -/ -iter -( -+ -/ -- -12 -336 -) -= -4786 -MB -/ -s -test -regexdna -: -: -variant7 -. -. -. -bench -: -1 -144 -371 -ns -/ -iter -( -+ -/ -- -44 -700 -) -= -4442 -MB -/ -s -test -regexdna -: -: -variant8 -. -. -. -bench -: -1 -143 -064 -ns -/ -iter -( -+ -/ -- -53 -456 -) -= -4447 -MB -/ -s -test -regexdna -: -: -variant9 -. -. -. -bench -: -1 -187 -063 -ns -/ -iter -( -+ -/ -- -14 -341 -) -= -4282 -MB -/ -s -test -sherlock -: -: -before_after_holmes -. -. -. -bench -: -27 -804 -ns -/ -iter -( -+ -/ -- -598 -) -= -21397 -MB -/ -s -test -sherlock -: -: -before_holmes -. -. -. -bench -: -31 -197 -ns -/ -iter -( -+ -/ -- -933 -) -= -19070 -MB -/ -s -test -sherlock -: -: -everything_greedy -. -. -. -bench -: -1 -272 -335 -ns -/ -iter -( -+ -/ -- -12 -466 -) -= -467 -MB -/ -s -test -sherlock -: -: -everything_greedy_nl -. -. -. -bench -: -801 -469 -ns -/ -iter -( -+ -/ -- -955 -) -= -742 -MB -/ -s -test -sherlock -: -: -holmes_cochar_watson -. -. -. -bench -: -56 -790 -ns -/ -iter -( -+ -/ -- -1 -606 -) -= -10476 -MB -/ -s -test -sherlock -: -: -holmes_coword_watson -. -. -. -bench -: -300 -554 -ns -/ -iter -( -+ -/ -- -3 -460 -) -= -1979 -MB -/ -s -test -sherlock -: -: -ing_suffix -. -. -. -bench -: -179 -355 -ns -/ -iter -( -+ -/ -- -5 -486 -) -= -3317 -MB -/ -s -test -sherlock -: -: -ing_suffix_limited_space -. -. -. -bench -: -175 -703 -ns -/ -iter -( -+ -/ -- -2 -380 -) -= -3386 -MB -/ -s -test -sherlock -: -: -letters -. -. -. -bench -: -7 -197 -094 -ns -/ -iter -( -+ -/ -- -181 -502 -) -= -82 -MB -/ -s -test -sherlock -: -: -letters_lower -. -. -. -bench -: -7 -100 -979 -ns -/ -iter -( -+ -/ -- -155 -898 -) -= -83 -MB -/ -s -test -sherlock -: -: -letters_upper -. -. -. -bench -: -1 -018 -217 -ns -/ -iter -( -+ -/ -- -21 -695 -) -= -584 -MB -/ -s -test -sherlock -: -: -line_boundary_sherlock_holmes -. -. -. -bench -: -15 -931 -ns -/ -iter -( -+ -/ -- -140 -) -= -37344 -MB -/ -s -test -sherlock -: -: -name_alt1 -. -. -. -bench -: -10 -932 -ns -/ -iter -( -+ -/ -- -96 -) -= -54421 -MB -/ -s -test -sherlock -: -: -name_alt2 -. -. -. -bench -: -45 -580 -ns -/ -iter -( -+ -/ -- -829 -) -= -13052 -MB -/ -s -test -sherlock -: -: -name_alt3 -. -. -. -bench -: -51 -942 -ns -/ -iter -( -+ -/ -- -1 -418 -) -= -11453 -MB -/ -s -test -sherlock -: -: -name_alt3_nocase -. -. -. -bench -: -171 -749 -ns -/ -iter -( -+ -/ -- -1 -451 -) -= -3463 -MB -/ -s -test -sherlock -: -: -name_alt4 -. -. -. -bench -: -45 -705 -ns -/ -iter -( -+ -/ -- -1 -536 -) -= -13016 -MB -/ -s -test -sherlock -: -: -name_alt4_nocase -. -. -. -bench -: -73 -782 -ns -/ -iter -( -+ -/ -- -1 -679 -) -= -8063 -MB -/ -s -test -sherlock -: -: -name_alt5 -. -. -. -bench -: -48 -045 -ns -/ -iter -( -+ -/ -- -1 -261 -) -= -12382 -MB -/ -s -test -sherlock -: -: -name_alt5_nocase -. -. -. -bench -: -100 -307 -ns -/ -iter -( -+ -/ -- -553 -) -= -5931 -MB -/ -s -test -sherlock -: -: -name_holmes -. -. -. -bench -: -18 -916 -ns -/ -iter -( -+ -/ -- -662 -) -= -31451 -MB -/ -s -test -sherlock -: -: -name_holmes_nocase -. -. -. -bench -: -52 -714 -ns -/ -iter -( -+ -/ -- -774 -) -= -11286 -MB -/ -s -test -sherlock -: -: -name_sherlock -. -. -. -bench -: -14 -575 -ns -/ -iter -( -+ -/ -- -163 -) -= -40818 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes -. -. -. -bench -: -14 -625 -ns -/ -iter -( -+ -/ -- -166 -) -= -40679 -MB -/ -s -test -sherlock -: -: -name_sherlock_holmes_nocase -. -. -. -bench -: -39 -024 -ns -/ -iter -( -+ -/ -- -361 -) -= -15245 -MB -/ -s -test -sherlock -: -: -name_sherlock_nocase -. -. -. -bench -: -38 -025 -ns -/ -iter -( -+ -/ -- -418 -) -= -15645 -MB -/ -s -test -sherlock -: -: -name_whitespace -. -. -. -bench -: -16 -247 -ns -/ -iter -( -+ -/ -- -88 -) -= -36618 -MB -/ -s -test -sherlock -: -: -no_match_common -. -. -. -bench -: -13 -724 -ns -/ -iter -( -+ -/ -- -28 -) -= -43349 -MB -/ -s -test -sherlock -: -: -no_match_really_common -. -. -. -bench -: -13 -798 -ns -/ -iter -( -+ -/ -- -93 -) -= -43117 -MB -/ -s -test -sherlock -: -: -no_match_uncommon -. -. -. -bench -: -13 -671 -ns -/ -iter -( -+ -/ -- -80 -) -= -43517 -MB -/ -s -test -sherlock -: -: -quotes -. -. -. -bench -: -189 -359 -ns -/ -iter -( -+ -/ -- -2 -334 -) -= -3141 -MB -/ -s -test -sherlock -: -: -repeated_class_negation -. -. -. -bench -: -29 -083 -ns -/ -iter -( -+ -/ -- -708 -) -= -20456 -MB -/ -s -test -sherlock -: -: -the_lower -. -. -. -bench -: -204 -122 -ns -/ -iter -( -+ -/ -- -4 -256 -) -= -2914 -MB -/ -s -test -sherlock -: -: -the_nocase -. -. -. -bench -: -319 -388 -ns -/ -iter -( -+ -/ -- -6 -790 -) -= -1862 -MB -/ -s -test -sherlock -: -: -the_upper -. -. -. -bench -: -22 -706 -ns -/ -iter -( -+ -/ -- -961 -) -= -26201 -MB -/ -s -test -sherlock -: -: -the_whitespace -. -. -. -bench -: -386 -276 -ns -/ -iter -( -+ -/ -- -4 -950 -) -= -1540 -MB -/ -s -test -sherlock -: -: -word_ending_n -. -. -. -bench -: -690 -010 -ns -/ -iter -( -+ -/ -- -8 -516 -) -= -862 -MB -/ -s -test -sherlock -: -: -words -. -. -. -bench -: -3 -659 -990 -ns -/ -iter -( -+ -/ -- -104 -505 -) -= -162 -MB -/ -s -test -result -: -ok -. -0 -passed -; -0 -failed -; -0 -ignored -; -98 -measured -; -0 -filtered -out -; -finished -in -105 -. -65s diff --git a/third_party/rust/regex/record/old-bench-log/README.md b/third_party/rust/regex/record/old-bench-log/README.md deleted file mode 100644 index 5819562f3c018..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/README.md +++ /dev/null @@ -1,104 +0,0 @@ -These -represent -an -old -log -of -benchmarks -from -regex -1 -. -7 -. -3 -and -older -. -New -and -much -more -comprehensive -benchmarks -are -now -maintained -as -part -of -the -[ -rebar -] -project -. -We -keep -these -old -benchmark -recordings -for -posterity -but -they -may -be -removed -in -the -future -. -Measurements -can -be -compared -using -the -[ -cargo -- -benchcmp -] -[ -cargo -- -benchcmp -] -tool -. -[ -rebar -] -: -https -: -/ -/ -github -. -com -/ -BurntSushi -/ -rebar -[ -cargo -- -benchcmp -] -: -https -: -/ -/ -github -. -com -/ -BurntSushi -/ -cargo -- -benchcmp diff --git a/third_party/rust/regex/record/old-bench-log/old/01-before b/third_party/rust/regex/record/old-bench-log/old/01-before deleted file mode 100644 index 025263745f43c..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/01-before +++ /dev/null @@ -1,620 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -520 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -236 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -519 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -238 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -7742 -ns -/ -iter -( -+ -/ -- -97 -) -= -132 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -4989 -ns -/ -iter -( -+ -/ -- -20 -) -= -6 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -96347 -ns -/ -iter -( -+ -/ -- -997 -) -= -340 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -9805 -ns -/ -iter -( -+ -/ -- -1846 -) -= -104 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -4930 -ns -/ -iter -( -+ -/ -- -202 -) -= -6 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -163332 -ns -/ -iter -( -+ -/ -- -9207 -) -= -200 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -97455 -ns -/ -iter -( -+ -/ -- -1089 -) -= -10 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -8256 -ns -/ -iter -( -+ -/ -- -148 -) -= -3 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -2948095 -ns -/ -iter -( -+ -/ -- -11988 -) -= -11 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -371 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -match_class -. -. -. -bench -: -2168 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -2379 -ns -/ -iter -( -+ -/ -- -13 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -37073 -ns -/ -iter -( -+ -/ -- -1100 -) -= -27 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -6183 -ns -/ -iter -( -+ -/ -- -218 -) -= -5 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -1032000 -ns -/ -iter -( -+ -/ -- -8278 -) -= -31 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -727975 -ns -/ -iter -( -+ -/ -- -2970 -) -test -bench -: -: -not_literal -. -. -. -bench -: -4670 -ns -/ -iter -( -+ -/ -- -29 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -1562 -ns -/ -iter -( -+ -/ -- -24 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -1539 -ns -/ -iter -( -+ -/ -- -40 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -2688 -ns -/ -iter -( -+ -/ -- -21 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -4197 -ns -/ -iter -( -+ -/ -- -36 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -2198 -ns -/ -iter -( -+ -/ -- -22 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -3761 -ns -/ -iter -( -+ -/ -- -41 -) -test -bench -: -: -replace_all -. -. -. -bench -: -2874 -ns -/ -iter -( -+ -/ -- -25 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/02-new-syntax-crate b/third_party/rust/regex/record/old-bench-log/old/02-new-syntax-crate deleted file mode 100644 index 10f993bae5720..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/02-new-syntax-crate +++ /dev/null @@ -1,620 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -545 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -251 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -521 -ns -/ -iter -( -+ -/ -- -31 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -231 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -7465 -ns -/ -iter -( -+ -/ -- -102 -) -= -137 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -4995 -ns -/ -iter -( -+ -/ -- -27 -) -= -6 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -86985 -ns -/ -iter -( -+ -/ -- -755 -) -= -376 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -9493 -ns -/ -iter -( -+ -/ -- -1727 -) -= -107 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -4955 -ns -/ -iter -( -+ -/ -- -324 -) -= -6 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -155288 -ns -/ -iter -( -+ -/ -- -13016 -) -= -210 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -95925 -ns -/ -iter -( -+ -/ -- -1674 -) -= -10 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -8264 -ns -/ -iter -( -+ -/ -- -151 -) -= -3 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -2886440 -ns -/ -iter -( -+ -/ -- -25807 -) -= -11 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -365 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench -: -: -match_class -. -. -. -bench -: -2313 -ns -/ -iter -( -+ -/ -- -8 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -2596 -ns -/ -iter -( -+ -/ -- -8 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -38136 -ns -/ -iter -( -+ -/ -- -941 -) -= -26 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -6178 -ns -/ -iter -( -+ -/ -- -147 -) -= -5 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -1065698 -ns -/ -iter -( -+ -/ -- -6815 -) -= -30 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -682461 -ns -/ -iter -( -+ -/ -- -2860 -) -test -bench -: -: -not_literal -. -. -. -bench -: -4525 -ns -/ -iter -( -+ -/ -- -67 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -1459 -ns -/ -iter -( -+ -/ -- -13 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -1463 -ns -/ -iter -( -+ -/ -- -8 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -2615 -ns -/ -iter -( -+ -/ -- -10 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -4066 -ns -/ -iter -( -+ -/ -- -48 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -2064 -ns -/ -iter -( -+ -/ -- -10 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -3502 -ns -/ -iter -( -+ -/ -- -24 -) -test -bench -: -: -replace_all -. -. -. -bench -: -2949 -ns -/ -iter -( -+ -/ -- -15 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/03-new-syntax-crate b/third_party/rust/regex/record/old-bench-log/old/03-new-syntax-crate deleted file mode 100644 index a586ebbfeea43..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/03-new-syntax-crate +++ /dev/null @@ -1,620 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -373 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -204 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -376 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -206 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -9136 -ns -/ -iter -( -+ -/ -- -177 -) -= -112 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -6641 -ns -/ -iter -( -+ -/ -- -86 -) -= -4 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -88826 -ns -/ -iter -( -+ -/ -- -1366 -) -= -368 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -10937 -ns -/ -iter -( -+ -/ -- -737 -) -= -93 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -7366 -ns -/ -iter -( -+ -/ -- -219 -) -= -4 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -122324 -ns -/ -iter -( -+ -/ -- -4628 -) -= -267 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -59998 -ns -/ -iter -( -+ -/ -- -965 -) -= -17 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -9058 -ns -/ -iter -( -+ -/ -- -123 -) -= -3 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1694326 -ns -/ -iter -( -+ -/ -- -27226 -) -= -19 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -336 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -match_class -. -. -. -bench -: -2109 -ns -/ -iter -( -+ -/ -- -27 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -2274 -ns -/ -iter -( -+ -/ -- -32 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -38317 -ns -/ -iter -( -+ -/ -- -1075 -) -= -26 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -7969 -ns -/ -iter -( -+ -/ -- -115 -) -= -4 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -1028260 -ns -/ -iter -( -+ -/ -- -12905 -) -= -31 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -257719 -ns -/ -iter -( -+ -/ -- -4939 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1699 -ns -/ -iter -( -+ -/ -- -31 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -750 -ns -/ -iter -( -+ -/ -- -9 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -747 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -1844 -ns -/ -iter -( -+ -/ -- -22 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -2395 -ns -/ -iter -( -+ -/ -- -21 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -1270 -ns -/ -iter -( -+ -/ -- -26 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -1869 -ns -/ -iter -( -+ -/ -- -25 -) -test -bench -: -: -replace_all -. -. -. -bench -: -3124 -ns -/ -iter -( -+ -/ -- -53 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/04-fixed-benchmark b/third_party/rust/regex/record/old-bench-log/old/04-fixed-benchmark deleted file mode 100644 index 58c99d53107d2..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/04-fixed-benchmark +++ /dev/null @@ -1,645 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -373 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -202 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -380 -ns -/ -iter -( -+ -/ -- -135 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -211 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -2 -723 -ns -/ -iter -( -+ -/ -- -101 -) -= -376 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -255 -ns -/ -iter -( -+ -/ -- -2 -) -= -125 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -81 -845 -ns -/ -iter -( -+ -/ -- -598 -) -= -400 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -3 -872 -ns -/ -iter -( -+ -/ -- -783 -) -= -264 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -287 -ns -/ -iter -( -+ -/ -- -143 -) -= -111 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -115 -340 -ns -/ -iter -( -+ -/ -- -4 -717 -) -= -284 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -52 -484 -ns -/ -iter -( -+ -/ -- -472 -) -= -19 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -923 -ns -/ -iter -( -+ -/ -- -49 -) -= -16 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -710 -214 -ns -/ -iter -( -+ -/ -- -9 -733 -) -= -19 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -337 -ns -/ -iter -( -+ -/ -- -13 -) -test -bench -: -: -match_class -. -. -. -bench -: -2 -141 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -2 -301 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -31 -696 -ns -/ -iter -( -+ -/ -- -961 -) -= -32 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -1 -155 -ns -/ -iter -( -+ -/ -- -71 -) -= -27 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -1 -016 -101 -ns -/ -iter -( -+ -/ -- -12 -090 -) -= -32 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -262 -801 -ns -/ -iter -( -+ -/ -- -1 -332 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -729 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -779 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -779 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -1 -943 -ns -/ -iter -( -+ -/ -- -10 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -2 -545 -ns -/ -iter -( -+ -/ -- -9 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -1 -364 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -2 -029 -ns -/ -iter -( -+ -/ -- -22 -) -test -bench -: -: -replace_all -. -. -. -bench -: -3 -185 -ns -/ -iter -( -+ -/ -- -12 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/05-thread-caching b/third_party/rust/regex/record/old-bench-log/old/05-thread-caching deleted file mode 100644 index c5464394c844e..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/05-thread-caching +++ /dev/null @@ -1,640 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -287 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -111 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -286 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -114 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -2562 -ns -/ -iter -( -+ -/ -- -94 -) -= -399 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -95 -ns -/ -iter -( -+ -/ -- -1 -) -= -336 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -81755 -ns -/ -iter -( -+ -/ -- -576 -) -= -400 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -3586 -ns -/ -iter -( -+ -/ -- -917 -) -= -285 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -155 -ns -/ -iter -( -+ -/ -- -132 -) -= -206 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -113980 -ns -/ -iter -( -+ -/ -- -9331 -) -= -287 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -54573 -ns -/ -iter -( -+ -/ -- -565 -) -= -18 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1806 -ns -/ -iter -( -+ -/ -- -44 -) -= -17 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1754465 -ns -/ -iter -( -+ -/ -- -7867 -) -= -18 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -299 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -match_class -. -. -. -bench -: -2399 -ns -/ -iter -( -+ -/ -- -23 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -2142 -ns -/ -iter -( -+ -/ -- -8 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2804 -ns -/ -iter -( -+ -/ -- -9 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -29536 -ns -/ -iter -( -+ -/ -- -537 -) -= -34 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -962 -ns -/ -iter -( -+ -/ -- -59 -) -= -33 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -946483 -ns -/ -iter -( -+ -/ -- -7106 -) -= -34 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -274301 -ns -/ -iter -( -+ -/ -- -552 -) -test -bench -: -: -not_literal -. -. -. -bench -: -2039 -ns -/ -iter -( -+ -/ -- -13 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -573 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -577 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -1951 -ns -/ -iter -( -+ -/ -- -29 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -2464 -ns -/ -iter -( -+ -/ -- -10 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -1301 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -1785 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -replace_all -. -. -. -bench -: -2168 -ns -/ -iter -( -+ -/ -- -152 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/06-major-dynamic b/third_party/rust/regex/record/old-bench-log/old/06-major-dynamic deleted file mode 100644 index d17451353f5f5..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/06-major-dynamic +++ /dev/null @@ -1,768 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -206 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -97 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -193 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -86 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -356 -ns -/ -iter -( -+ -/ -- -136 -) -= -2876 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -352 -434 -ns -/ -iter -( -+ -/ -- -7 -874 -) -= -2974 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -72 -ns -/ -iter -( -+ -/ -- -21 -) -= -444 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -11 -053 -ns -/ -iter -( -+ -/ -- -1 -388 -) -= -2964 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -331 -ns -/ -iter -( -+ -/ -- -162 -) -= -3093 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -353 -723 -ns -/ -iter -( -+ -/ -- -6 -836 -) -= -2964 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -73 -ns -/ -iter -( -+ -/ -- -20 -) -= -438 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -10 -297 -ns -/ -iter -( -+ -/ -- -1 -137 -) -= -3182 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -34 -951 -ns -/ -iter -( -+ -/ -- -171 -) -= -29 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -63 -323 -613 -ns -/ -iter -( -+ -/ -- -279 -582 -) -= -15 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -131 -ns -/ -iter -( -+ -/ -- -13 -) -= -28 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -099 -921 -ns -/ -iter -( -+ -/ -- -1 -338 -) -= -29 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -16 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class -. -. -. -bench -: -188 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -188 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -1 -940 -ns -/ -iter -( -+ -/ -- -10 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -5 -262 -ns -/ -iter -( -+ -/ -- -256 -) -= -194 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -5 -295 -539 -ns -/ -iter -( -+ -/ -- -9 -808 -) -= -197 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -217 -ns -/ -iter -( -+ -/ -- -19 -) -= -147 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -169 -169 -ns -/ -iter -( -+ -/ -- -1 -606 -) -= -193 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -293 -739 -ns -/ -iter -( -+ -/ -- -1 -632 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -371 -ns -/ -iter -( -+ -/ -- -136 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -337 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -341 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -1 -399 -ns -/ -iter -( -+ -/ -- -16 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -1 -229 -ns -/ -iter -( -+ -/ -- -13 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -844 -ns -/ -iter -( -+ -/ -- -24 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -849 -ns -/ -iter -( -+ -/ -- -45 -) -test -bench -: -: -replace_all -. -. -. -bench -: -579 -ns -/ -iter -( -+ -/ -- -3 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/06-major-macro b/third_party/rust/regex/record/old-bench-log/old/06-major-macro deleted file mode 100644 index 20aa8394e18a8..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/06-major-macro +++ /dev/null @@ -1,779 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -225 -ns -/ -iter -( -+ -/ -- -22 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -225 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -60 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -29 -984 -ns -/ -iter -( -+ -/ -- -190 -) -= -34 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -30 -641 -690 -ns -/ -iter -( -+ -/ -- -110 -535 -) -= -33 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -981 -ns -/ -iter -( -+ -/ -- -12 -) -= -32 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -957 -358 -ns -/ -iter -( -+ -/ -- -2 -633 -) -= -34 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -29 -636 -ns -/ -iter -( -+ -/ -- -150 -) -= -34 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -30 -295 -321 -ns -/ -iter -( -+ -/ -- -98 -181 -) -= -34 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -971 -ns -/ -iter -( -+ -/ -- -30 -) -= -32 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -947 -307 -ns -/ -iter -( -+ -/ -- -4 -258 -) -= -34 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -54 -856 -ns -/ -iter -( -+ -/ -- -209 -) -= -18 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -56 -126 -571 -ns -/ -iter -( -+ -/ -- -224 -163 -) -= -17 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -776 -ns -/ -iter -( -+ -/ -- -23 -) -= -18 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -753 -833 -ns -/ -iter -( -+ -/ -- -54 -427 -) -= -18 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -1 -516 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -match_class -. -. -. -bench -: -2 -429 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -2 -398 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -12 -915 -ns -/ -iter -( -+ -/ -- -29 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -31 -914 -ns -/ -iter -( -+ -/ -- -276 -) -= -32 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -32 -617 -173 -ns -/ -iter -( -+ -/ -- -68 -114 -) -= -31 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -1 -046 -ns -/ -iter -( -+ -/ -- -42 -) -= -30 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -1 -019 -516 -ns -/ -iter -( -+ -/ -- -3 -788 -) -= -32 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -303 -239 -ns -/ -iter -( -+ -/ -- -518 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -756 -ns -/ -iter -( -+ -/ -- -115 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -834 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -858 -ns -/ -iter -( -+ -/ -- -15 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -1 -597 -ns -/ -iter -( -+ -/ -- -9 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -1 -950 -ns -/ -iter -( -+ -/ -- -21 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -1 -077 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -1 -596 -ns -/ -iter -( -+ -/ -- -9 -) -test -bench -: -: -replace_all -. -. -. -bench -: -1 -288 -ns -/ -iter -( -+ -/ -- -13 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/07-prefix-improvements b/third_party/rust/regex/record/old-bench-log/old/07-prefix-improvements deleted file mode 100644 index a74bd8401ce17..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/07-prefix-improvements +++ /dev/null @@ -1,764 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -197 -ns -/ -iter -( -+ -/ -- -9 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -95 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -193 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -304 -ns -/ -iter -( -+ -/ -- -119 -) -= -3368 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -281 -912 -ns -/ -iter -( -+ -/ -- -5 -274 -) -= -3719 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -74 -ns -/ -iter -( -+ -/ -- -16 -) -= -432 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -8 -909 -ns -/ -iter -( -+ -/ -- -667 -) -= -3678 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -300 -ns -/ -iter -( -+ -/ -- -111 -) -= -3413 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -282 -250 -ns -/ -iter -( -+ -/ -- -5 -556 -) -= -3714 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -98 -ns -/ -iter -( -+ -/ -- -17 -) -= -326 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -8 -105 -ns -/ -iter -( -+ -/ -- -593 -) -= -4042 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -34 -562 -ns -/ -iter -( -+ -/ -- -211 -) -= -29 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -64 -510 -947 -ns -/ -iter -( -+ -/ -- -308 -627 -) -= -15 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -139 -ns -/ -iter -( -+ -/ -- -26 -) -= -28 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -102 -562 -ns -/ -iter -( -+ -/ -- -1 -850 -) -= -29 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class -. -. -. -bench -: -105 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -105 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2 -270 -ns -/ -iter -( -+ -/ -- -185 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -2 -262 -ns -/ -iter -( -+ -/ -- -73 -) -= -452 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -185 -098 -ns -/ -iter -( -+ -/ -- -3 -007 -) -= -479 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -139 -ns -/ -iter -( -+ -/ -- -1 -) -= -230 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -72 -320 -ns -/ -iter -( -+ -/ -- -193 -) -= -453 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -300 -699 -ns -/ -iter -( -+ -/ -- -494 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -462 -ns -/ -iter -( -+ -/ -- -89 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -283 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -287 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -1 -131 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -1 -259 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -883 -ns -/ -iter -( -+ -/ -- -15 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -799 -ns -/ -iter -( -+ -/ -- -28 -) -test -bench -: -: -replace_all -. -. -. -bench -: -170 -ns -/ -iter -( -+ -/ -- -1 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/08-case-fixes b/third_party/rust/regex/record/old-bench-log/old/08-case-fixes deleted file mode 100644 index 0461c15b261df..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/08-case-fixes +++ /dev/null @@ -1,764 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -192 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -92 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -182 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -82 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -277 -ns -/ -iter -( -+ -/ -- -79 -) -= -3696 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -230 -829 -ns -/ -iter -( -+ -/ -- -5 -712 -) -= -4542 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -70 -ns -/ -iter -( -+ -/ -- -4 -) -= -457 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -8 -444 -ns -/ -iter -( -+ -/ -- -492 -) -= -3880 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -272 -ns -/ -iter -( -+ -/ -- -98 -) -= -3764 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -273 -867 -ns -/ -iter -( -+ -/ -- -6 -351 -) -= -3828 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -72 -ns -/ -iter -( -+ -/ -- -15 -) -= -444 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -8 -109 -ns -/ -iter -( -+ -/ -- -540 -) -= -4040 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -31 -043 -ns -/ -iter -( -+ -/ -- -1 -237 -) -= -32 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -60 -077 -413 -ns -/ -iter -( -+ -/ -- -129 -611 -) -= -16 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -036 -ns -/ -iter -( -+ -/ -- -20 -) -= -30 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -996 -238 -ns -/ -iter -( -+ -/ -- -3 -181 -) -= -32 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -15 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class -. -. -. -bench -: -75 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -77 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2 -057 -ns -/ -iter -( -+ -/ -- -102 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -2 -252 -ns -/ -iter -( -+ -/ -- -63 -) -= -454 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -186 -091 -ns -/ -iter -( -+ -/ -- -7 -496 -) -= -479 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -132 -ns -/ -iter -( -+ -/ -- -2 -) -= -242 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -72 -394 -ns -/ -iter -( -+ -/ -- -342 -) -= -452 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -286 -662 -ns -/ -iter -( -+ -/ -- -1 -150 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -130 -ns -/ -iter -( -+ -/ -- -10 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -271 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -276 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -1 -147 -ns -/ -iter -( -+ -/ -- -10 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -901 -ns -/ -iter -( -+ -/ -- -8 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -887 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -777 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -replace_all -. -. -. -bench -: -154 -ns -/ -iter -( -+ -/ -- -0 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/09-before-compiler-rewrite b/third_party/rust/regex/record/old-bench-log/old/09-before-compiler-rewrite deleted file mode 100644 index 50384d2b9e3a0..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/09-before-compiler-rewrite +++ /dev/null @@ -1,764 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -156 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -145 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -76 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -269 -ns -/ -iter -( -+ -/ -- -63 -) -= -3806 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -232 -461 -ns -/ -iter -( -+ -/ -- -13 -022 -) -= -4509 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -63 -ns -/ -iter -( -+ -/ -- -6 -) -= -507 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -8 -358 -ns -/ -iter -( -+ -/ -- -430 -) -= -3920 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -274 -ns -/ -iter -( -+ -/ -- -101 -) -= -3737 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -278 -949 -ns -/ -iter -( -+ -/ -- -11 -324 -) -= -3758 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -63 -ns -/ -iter -( -+ -/ -- -15 -) -= -507 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -7 -731 -ns -/ -iter -( -+ -/ -- -488 -) -= -4238 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -44 -685 -ns -/ -iter -( -+ -/ -- -661 -) -= -22 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -60 -108 -237 -ns -/ -iter -( -+ -/ -- -814 -810 -) -= -16 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -412 -ns -/ -iter -( -+ -/ -- -38 -) -= -22 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -363 -335 -ns -/ -iter -( -+ -/ -- -21 -316 -) -= -24 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -14 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class -. -. -. -bench -: -81 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -81 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2 -978 -ns -/ -iter -( -+ -/ -- -64 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -2 -239 -ns -/ -iter -( -+ -/ -- -68 -) -= -457 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -215 -729 -ns -/ -iter -( -+ -/ -- -20 -897 -) -= -472 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -124 -ns -/ -iter -( -+ -/ -- -2 -) -= -258 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -72 -486 -ns -/ -iter -( -+ -/ -- -1 -027 -) -= -452 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -282 -992 -ns -/ -iter -( -+ -/ -- -8 -102 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -526 -ns -/ -iter -( -+ -/ -- -32 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -307 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -311 -ns -/ -iter -( -+ -/ -- -8 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -623 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -920 -ns -/ -iter -( -+ -/ -- -19 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -554 -ns -/ -iter -( -+ -/ -- -13 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -740 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench -: -: -replace_all -. -. -. -bench -: -155 -ns -/ -iter -( -+ -/ -- -5 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/10-compiler-rewrite b/third_party/rust/regex/record/old-bench-log/old/10-compiler-rewrite deleted file mode 100644 index e6f1ac4e4e8dc..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/10-compiler-rewrite +++ /dev/null @@ -1,763 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -145 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -92 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -129 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -72 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -268 -ns -/ -iter -( -+ -/ -- -88 -) -= -3820 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -234 -067 -ns -/ -iter -( -+ -/ -- -4 -663 -) -= -4479 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -64 -ns -/ -iter -( -+ -/ -- -4 -) -= -500 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -8 -298 -ns -/ -iter -( -+ -/ -- -521 -) -= -3948 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -275 -ns -/ -iter -( -+ -/ -- -95 -) -= -3723 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -280 -466 -ns -/ -iter -( -+ -/ -- -5 -938 -) -= -3738 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -64 -ns -/ -iter -( -+ -/ -- -16 -) -= -500 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -7 -693 -ns -/ -iter -( -+ -/ -- -595 -) -= -4259 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -27 -844 -ns -/ -iter -( -+ -/ -- -1 -012 -) -= -36 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -52 -323 -489 -ns -/ -iter -( -+ -/ -- -1 -251 -665 -) -= -19 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -970 -ns -/ -iter -( -+ -/ -- -92 -) -= -32 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -896 -945 -ns -/ -iter -( -+ -/ -- -29 -977 -) -= -36 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -match_class -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2 -150 -ns -/ -iter -( -+ -/ -- -18 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -2 -241 -ns -/ -iter -( -+ -/ -- -55 -) -= -456 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -186 -354 -ns -/ -iter -( -+ -/ -- -9 -134 -) -= -479 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -125 -ns -/ -iter -( -+ -/ -- -1 -) -= -256 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -72 -156 -ns -/ -iter -( -+ -/ -- -145 -) -= -454 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -305 -034 -ns -/ -iter -( -+ -/ -- -1 -134 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -169 -ns -/ -iter -( -+ -/ -- -105 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -257 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -276 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -680 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -804 -ns -/ -iter -( -+ -/ -- -48 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -337 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -339 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -replace_all -. -. -. -bench -: -150 -ns -/ -iter -( -+ -/ -- -1 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/11-compiler-rewrite b/third_party/rust/regex/record/old-bench-log/old/11-compiler-rewrite deleted file mode 100644 index b2ea980a62e64..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/11-compiler-rewrite +++ /dev/null @@ -1,766 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -171 -ns -/ -iter -( -+ -/ -- -20 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -90 -ns -/ -iter -( -+ -/ -- -8 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -180 -ns -/ -iter -( -+ -/ -- -33 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -78 -ns -/ -iter -( -+ -/ -- -9 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -272 -ns -/ -iter -( -+ -/ -- -82 -) -= -3764 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -233 -014 -ns -/ -iter -( -+ -/ -- -22 -144 -) -= -4500 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -6 -) -= -516 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -8 -490 -ns -/ -iter -( -+ -/ -- -905 -) -= -3859 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -273 -ns -/ -iter -( -+ -/ -- -100 -) -= -3750 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -279 -901 -ns -/ -iter -( -+ -/ -- -5 -598 -) -= -3746 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -62 -ns -/ -iter -( -+ -/ -- -6 -) -= -516 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -7 -713 -ns -/ -iter -( -+ -/ -- -566 -) -= -4248 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -38 -641 -ns -/ -iter -( -+ -/ -- -605 -) -= -26 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -56 -579 -116 -ns -/ -iter -( -+ -/ -- -1 -193 -231 -) -= -18 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -252 -ns -/ -iter -( -+ -/ -- -24 -) -= -25 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -247 -639 -ns -/ -iter -( -+ -/ -- -12 -774 -) -= -26 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -13 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -match_class -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2 -459 -ns -/ -iter -( -+ -/ -- -77 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -2 -244 -ns -/ -iter -( -+ -/ -- -63 -) -= -456 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -192 -052 -ns -/ -iter -( -+ -/ -- -21 -460 -) -= -478 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -122 -ns -/ -iter -( -+ -/ -- -3 -) -= -262 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -73 -167 -ns -/ -iter -( -+ -/ -- -15 -655 -) -= -447 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -289 -292 -ns -/ -iter -( -+ -/ -- -1 -488 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -480 -ns -/ -iter -( -+ -/ -- -18 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -324 -ns -/ -iter -( -+ -/ -- -15 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -337 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -1 -161 -ns -/ -iter -( -+ -/ -- -10 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -798 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -456 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -452 -ns -/ -iter -( -+ -/ -- -33 -) -test -bench -: -: -replace_all -. -. -. -bench -: -148 -ns -/ -iter -( -+ -/ -- -0 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/12-executor b/third_party/rust/regex/record/old-bench-log/old/12-executor deleted file mode 100644 index 009d95e7cc34b..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/12-executor +++ /dev/null @@ -1,805 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -179 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -90 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -164 -ns -/ -iter -( -+ -/ -- -16 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -79 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -compile_simple -. -. -. -bench -: -3 -708 -ns -/ -iter -( -+ -/ -- -225 -) -test -bench -: -: -compile_unicode -. -. -. -bench -: -5 -871 -ns -/ -iter -( -+ -/ -- -264 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -263 -ns -/ -iter -( -+ -/ -- -92 -) -= -3893 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -217 -835 -ns -/ -iter -( -+ -/ -- -4 -074 -) -= -4813 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -67 -ns -/ -iter -( -+ -/ -- -1 -) -= -477 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -8 -204 -ns -/ -iter -( -+ -/ -- -426 -) -= -3994 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -276 -ns -/ -iter -( -+ -/ -- -100 -) -= -3710 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -284 -086 -ns -/ -iter -( -+ -/ -- -6 -516 -) -= -3691 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -70 -ns -/ -iter -( -+ -/ -- -15 -) -= -457 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -7 -844 -ns -/ -iter -( -+ -/ -- -556 -) -= -4177 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -30 -062 -ns -/ -iter -( -+ -/ -- -1 -684 -) -= -34 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -50 -839 -701 -ns -/ -iter -( -+ -/ -- -104 -343 -) -= -20 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -009 -ns -/ -iter -( -+ -/ -- -48 -) -= -31 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -965 -341 -ns -/ -iter -( -+ -/ -- -45 -075 -) -= -33 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2 -150 -ns -/ -iter -( -+ -/ -- -22 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -2 -262 -ns -/ -iter -( -+ -/ -- -66 -) -= -452 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -193 -428 -ns -/ -iter -( -+ -/ -- -6 -147 -) -= -478 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -129 -ns -/ -iter -( -+ -/ -- -1 -) -= -248 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -72 -629 -ns -/ -iter -( -+ -/ -- -348 -) -= -451 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -289 -043 -ns -/ -iter -( -+ -/ -- -2 -478 -) -test -bench -: -: -not_literal -. -. -. -bench -: -1 -195 -ns -/ -iter -( -+ -/ -- -10 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -265 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -270 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -730 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -712 -ns -/ -iter -( -+ -/ -- -4 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -445 -ns -/ -iter -( -+ -/ -- -49 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -406 -ns -/ -iter -( -+ -/ -- -72 -) -test -bench -: -: -replace_all -. -. -. -bench -: -136 -ns -/ -iter -( -+ -/ -- -2 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/12-executor-bytes b/third_party/rust/regex/record/old-bench-log/old/12-executor-bytes deleted file mode 100644 index 7cb42886941a3..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/12-executor-bytes +++ /dev/null @@ -1,808 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -190 -ns -/ -iter -( -+ -/ -- -12 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -85 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -147 -ns -/ -iter -( -+ -/ -- -9 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -74 -ns -/ -iter -( -+ -/ -- -5 -) -test -bench -: -: -compile_simple -. -. -. -bench -: -4 -218 -ns -/ -iter -( -+ -/ -- -201 -) -test -bench -: -: -compile_unicode -. -. -. -bench -: -402 -353 -ns -/ -iter -( -+ -/ -- -2 -642 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -253 -ns -/ -iter -( -+ -/ -- -79 -) -= -4047 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -215 -308 -ns -/ -iter -( -+ -/ -- -3 -474 -) -= -4870 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -64 -ns -/ -iter -( -+ -/ -- -4 -) -= -500 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -8 -134 -ns -/ -iter -( -+ -/ -- -435 -) -= -4028 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -277 -ns -/ -iter -( -+ -/ -- -105 -) -= -3696 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -283 -435 -ns -/ -iter -( -+ -/ -- -5 -975 -) -= -3699 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -64 -ns -/ -iter -( -+ -/ -- -14 -) -= -500 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -7 -832 -ns -/ -iter -( -+ -/ -- -575 -) -= -4183 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -35 -380 -ns -/ -iter -( -+ -/ -- -772 -) -= -28 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -46 -639 -535 -ns -/ -iter -( -+ -/ -- -456 -010 -) -= -22 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -110 -ns -/ -iter -( -+ -/ -- -53 -) -= -28 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -146 -751 -ns -/ -iter -( -+ -/ -- -17 -290 -) -= -28 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2 -487 -088 -ns -/ -iter -( -+ -/ -- -103 -259 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -2 -253 -ns -/ -iter -( -+ -/ -- -52 -) -= -454 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -193 -344 -ns -/ -iter -( -+ -/ -- -7 -582 -) -= -478 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -119 -ns -/ -iter -( -+ -/ -- -5 -) -= -268 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -72 -569 -ns -/ -iter -( -+ -/ -- -283 -) -= -451 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -292 -840 -ns -/ -iter -( -+ -/ -- -2 -823 -) -test -bench -: -: -not_literal -. -. -. -bench -: -6 -417 -ns -/ -iter -( -+ -/ -- -26 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -304 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -943 -ns -/ -iter -( -+ -/ -- -44 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -688 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -687 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -589 -ns -/ -iter -( -+ -/ -- -6 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -357 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench -: -: -replace_all -. -. -. -bench -: -131 -ns -/ -iter -( -+ -/ -- -1 -) diff --git a/third_party/rust/regex/record/old-bench-log/old/13-cache-byte-range-suffixes b/third_party/rust/regex/record/old-bench-log/old/13-cache-byte-range-suffixes deleted file mode 100644 index 83762a2cb4ee7..0000000000000 --- a/third_party/rust/regex/record/old-bench-log/old/13-cache-byte-range-suffixes +++ /dev/null @@ -1,809 +0,0 @@ -test -bench -: -: -anchored_literal_long_match -. -. -. -bench -: -174 -ns -/ -iter -( -+ -/ -- -65 -) -test -bench -: -: -anchored_literal_long_non_match -. -. -. -bench -: -94 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_short_match -. -. -. -bench -: -142 -ns -/ -iter -( -+ -/ -- -1 -) -test -bench -: -: -anchored_literal_short_non_match -. -. -. -bench -: -82 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -compile_simple -. -. -. -bench -: -4 -878 -ns -/ -iter -( -+ -/ -- -207 -) -test -bench -: -: -compile_unicode -. -. -. -bench -: -679 -701 -ns -/ -iter -( -+ -/ -- -10 -264 -) -test -bench -: -: -easy0_1K -. -. -. -bench -: -257 -ns -/ -iter -( -+ -/ -- -83 -) -= -3984 -MB -/ -s -test -bench -: -: -easy0_1MB -. -. -. -bench -: -217 -698 -ns -/ -iter -( -+ -/ -- -3 -307 -) -= -4816 -MB -/ -s -test -bench -: -: -easy0_32 -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -3 -) -= -524 -MB -/ -s -test -bench -: -: -easy0_32K -. -. -. -bench -: -8 -144 -ns -/ -iter -( -+ -/ -- -449 -) -= -4023 -MB -/ -s -test -bench -: -: -easy1_1K -. -. -. -bench -: -276 -ns -/ -iter -( -+ -/ -- -106 -) -= -3710 -MB -/ -s -test -bench -: -: -easy1_1MB -. -. -. -bench -: -285 -518 -ns -/ -iter -( -+ -/ -- -4 -933 -) -= -3672 -MB -/ -s -test -bench -: -: -easy1_32 -. -. -. -bench -: -61 -ns -/ -iter -( -+ -/ -- -12 -) -= -524 -MB -/ -s -test -bench -: -: -easy1_32K -. -. -. -bench -: -7 -896 -ns -/ -iter -( -+ -/ -- -508 -) -= -4149 -MB -/ -s -test -bench -: -: -hard_1K -. -. -. -bench -: -35 -361 -ns -/ -iter -( -+ -/ -- -684 -) -= -28 -MB -/ -s -test -bench -: -: -hard_1MB -. -. -. -bench -: -48 -691 -236 -ns -/ -iter -( -+ -/ -- -2 -316 -446 -) -= -21 -MB -/ -s -test -bench -: -: -hard_32 -. -. -. -bench -: -1 -087 -ns -/ -iter -( -+ -/ -- -33 -) -= -29 -MB -/ -s -test -bench -: -: -hard_32K -. -. -. -bench -: -1 -147 -627 -ns -/ -iter -( -+ -/ -- -4 -982 -) -= -28 -MB -/ -s -test -bench -: -: -literal -. -. -. -bench -: -12 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_in_range -. -. -. -bench -: -80 -ns -/ -iter -( -+ -/ -- -0 -) -test -bench -: -: -match_class_unicode -. -. -. -bench -: -2 -431 -592 -ns -/ -iter -( -+ -/ -- -89 -268 -) -test -bench -: -: -medium_1K -. -. -. -bench -: -2 -245 -ns -/ -iter -( -+ -/ -- -93 -) -= -456 -MB -/ -s -test -bench -: -: -medium_1MB -. -. -. -bench -: -2 -192 -828 -ns -/ -iter -( -+ -/ -- -4 -343 -) -= -478 -MB -/ -s -test -bench -: -: -medium_32 -. -. -. -bench -: -120 -ns -/ -iter -( -+ -/ -- -2 -) -= -266 -MB -/ -s -test -bench -: -: -medium_32K -. -. -. -bench -: -72 -996 -ns -/ -iter -( -+ -/ -- -627 -) -= -448 -MB -/ -s -test -bench -: -: -no_exponential -. -. -. -bench -: -290 -775 -ns -/ -iter -( -+ -/ -- -1 -176 -) -test -bench -: -: -not_literal -. -. -. -bench -: -5 -282 -ns -/ -iter -( -+ -/ -- -199 -) -test -bench -: -: -one_pass_long_prefix -. -. -. -bench -: -294 -ns -/ -iter -( -+ -/ -- -3 -) -test -bench -: -: -one_pass_long_prefix_not -. -. -. -bench -: -315 -ns -/ -iter -( -+ -/ -- -7 -) -test -bench -: -: -one_pass_short_a -. -. -. -bench -: -708 -ns -/ -iter -( -+ -/ -- -21 -) -test -bench -: -: -one_pass_short_a_not -. -. -. -bench -: -861 -ns -/ -iter -( -+ -/ -- -9 -) -test -bench -: -: -one_pass_short_b -. -. -. -bench -: -607 -ns -/ -iter -( -+ -/ -- -2 -) -test -bench -: -: -one_pass_short_b_not -. -. -. -bench -: -344 -ns -/ -iter -( -+ -/ -- -11 -) -test -bench -: -: -replace_all -. -. -. -bench -: -135 -ns -/ -iter -( -+ -/ -- -1 -) diff --git a/third_party/rust/regex/src/backtrack.rs b/third_party/rust/regex/src/backtrack.rs new file mode 100644 index 0000000000000..9a5f965d1218a --- /dev/null +++ b/third_party/rust/regex/src/backtrack.rs @@ -0,0 +1,1385 @@ +use +crate +: +: +exec +: +: +ProgramCache +; +use +crate +: +: +input +: +: +{ +Input +InputAt +} +; +use +crate +: +: +prog +: +: +{ +InstPtr +Program +} +; +use +crate +: +: +re_trait +: +: +Slot +; +type +Bits += +u32 +; +const +BIT_SIZE +: +usize += +32 +; +const +MAX_SIZE_BYTES +: +usize += +256 +* +( +1 +< +< +10 +) +; +pub +fn +should_exec +( +num_insts +: +usize +text_len +: +usize +) +- +> +bool +{ +let +size += +( +( +num_insts +* +( +text_len ++ +1 +) ++ +BIT_SIZE +- +1 +) +/ +BIT_SIZE +) +* +4 +; +size +< += +MAX_SIZE_BYTES +} +# +[ +derive +( +Debug +) +] +pub +struct +Bounded +< +' +a +' +m +' +r +' +s +I +> +{ +prog +: +& +' +r +Program +input +: +I +matches +: +& +' +m +mut +[ +bool +] +slots +: +& +' +s +mut +[ +Slot +] +m +: +& +' +a +mut +Cache +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +Cache +{ +jobs +: +Vec +< +Job +> +visited +: +Vec +< +Bits +> +} +impl +Cache +{ +pub +fn +new +( +_prog +: +& +Program +) +- +> +Self +{ +Cache +{ +jobs +: +vec +! +[ +] +visited +: +vec +! +[ +] +} +} +} +# +[ +derive +( +Clone +Copy +Debug +) +] +enum +Job +{ +Inst +{ +ip +: +InstPtr +at +: +InputAt +} +SaveRestore +{ +slot +: +usize +old_pos +: +Option +< +usize +> +} +} +impl +< +' +a +' +m +' +r +' +s +I +: +Input +> +Bounded +< +' +a +' +m +' +r +' +s +I +> +{ +pub +fn +exec +( +prog +: +& +' +r +Program +cache +: +& +ProgramCache +matches +: +& +' +m +mut +[ +bool +] +slots +: +& +' +s +mut +[ +Slot +] +input +: +I +start +: +usize +end +: +usize +) +- +> +bool +{ +let +mut +cache += +cache +. +borrow_mut +( +) +; +let +cache += +& +mut +cache +. +backtrack +; +let +start += +input +. +at +( +start +) +; +let +mut +b += +Bounded +{ +prog +input +matches +slots +m +: +cache +} +; +b +. +exec_ +( +start +end +) +} +fn +clear +( +& +mut +self +) +{ +self +. +m +. +jobs +. +clear +( +) +; +let +visited_len += +( +self +. +prog +. +len +( +) +* +( +self +. +input +. +len +( +) ++ +1 +) ++ +BIT_SIZE +- +1 +) +/ +BIT_SIZE +; +self +. +m +. +visited +. +truncate +( +visited_len +) +; +for +v +in +& +mut +self +. +m +. +visited +{ +* +v += +0 +; +} +if +visited_len +> +self +. +m +. +visited +. +len +( +) +{ +let +len += +self +. +m +. +visited +. +len +( +) +; +self +. +m +. +visited +. +reserve_exact +( +visited_len +- +len +) +; +for +_ +in +0 +. +. +( +visited_len +- +len +) +{ +self +. +m +. +visited +. +push +( +0 +) +; +} +} +} +fn +exec_ +( +& +mut +self +mut +at +: +InputAt +end +: +usize +) +- +> +bool +{ +self +. +clear +( +) +; +if +self +. +prog +. +is_anchored_start +{ +return +if +! +at +. +is_start +( +) +{ +false +} +else +{ +self +. +backtrack +( +at +) +} +; +} +let +mut +matched += +false +; +loop +{ +if +! +self +. +prog +. +prefixes +. +is_empty +( +) +{ +at += +match +self +. +input +. +prefix_at +( +& +self +. +prog +. +prefixes +at +) +{ +None += +> +break +Some +( +at +) += +> +at +} +; +} +matched += +self +. +backtrack +( +at +) +| +| +matched +; +if +matched +& +& +self +. +prog +. +matches +. +len +( +) += += +1 +{ +return +true +; +} +if +at +. +pos +( +) +> += +end +{ +break +; +} +at += +self +. +input +. +at +( +at +. +next_pos +( +) +) +; +} +matched +} +fn +backtrack +( +& +mut +self +start +: +InputAt +) +- +> +bool +{ +let +mut +matched += +false +; +self +. +m +. +jobs +. +push +( +Job +: +: +Inst +{ +ip +: +0 +at +: +start +} +) +; +while +let +Some +( +job +) += +self +. +m +. +jobs +. +pop +( +) +{ +match +job +{ +Job +: +: +Inst +{ +ip +at +} += +> +{ +if +self +. +step +( +ip +at +) +{ +if +self +. +prog +. +matches +. +len +( +) += += +1 +{ +return +true +; +} +matched += +true +; +} +} +Job +: +: +SaveRestore +{ +slot +old_pos +} += +> +{ +if +slot +< +self +. +slots +. +len +( +) +{ +self +. +slots +[ +slot +] += +old_pos +; +} +} +} +} +matched +} +fn +step +( +& +mut +self +mut +ip +: +InstPtr +mut +at +: +InputAt +) +- +> +bool +{ +use +crate +: +: +prog +: +: +Inst +: +: +* +; +loop +{ +if +self +. +has_visited +( +ip +at +) +{ +return +false +; +} +match +self +. +prog +[ +ip +] +{ +Match +( +slot +) += +> +{ +if +slot +< +self +. +matches +. +len +( +) +{ +self +. +matches +[ +slot +] += +true +; +} +return +true +; +} +Save +( +ref +inst +) += +> +{ +if +let +Some +( +& +old_pos +) += +self +. +slots +. +get +( +inst +. +slot +) +{ +self +. +m +. +jobs +. +push +( +Job +: +: +SaveRestore +{ +slot +: +inst +. +slot +old_pos +} +) +; +self +. +slots +[ +inst +. +slot +] += +Some +( +at +. +pos +( +) +) +; +} +ip += +inst +. +goto +; +} +Split +( +ref +inst +) += +> +{ +self +. +m +. +jobs +. +push +( +Job +: +: +Inst +{ +ip +: +inst +. +goto2 +at +} +) +; +ip += +inst +. +goto1 +; +} +EmptyLook +( +ref +inst +) += +> +{ +if +self +. +input +. +is_empty_match +( +at +inst +) +{ +ip += +inst +. +goto +; +} +else +{ +return +false +; +} +} +Char +( +ref +inst +) += +> +{ +if +inst +. +c += += +at +. +char +( +) +{ +ip += +inst +. +goto +; +at += +self +. +input +. +at +( +at +. +next_pos +( +) +) +; +} +else +{ +return +false +; +} +} +Ranges +( +ref +inst +) += +> +{ +if +inst +. +matches +( +at +. +char +( +) +) +{ +ip += +inst +. +goto +; +at += +self +. +input +. +at +( +at +. +next_pos +( +) +) +; +} +else +{ +return +false +; +} +} +Bytes +( +ref +inst +) += +> +{ +if +let +Some +( +b +) += +at +. +byte +( +) +{ +if +inst +. +matches +( +b +) +{ +ip += +inst +. +goto +; +at += +self +. +input +. +at +( +at +. +next_pos +( +) +) +; +continue +; +} +} +return +false +; +} +} +} +} +fn +has_visited +( +& +mut +self +ip +: +InstPtr +at +: +InputAt +) +- +> +bool +{ +let +k += +ip +* +( +self +. +input +. +len +( +) ++ +1 +) ++ +at +. +pos +( +) +; +let +k1 += +k +/ +BIT_SIZE +; +let +k2 += +usize_to_u32 +( +1 +< +< +( +k +& +( +BIT_SIZE +- +1 +) +) +) +; +if +self +. +m +. +visited +[ +k1 +] +& +k2 += += +0 +{ +self +. +m +. +visited +[ +k1 +] +| += +k2 +; +false +} +else +{ +true +} +} +} +fn +usize_to_u32 +( +n +: +usize +) +- +> +u32 +{ +if +( +n +as +u64 +) +> +( +: +: +std +: +: +u32 +: +: +MAX +as +u64 +) +{ +panic +! +( +" +BUG +: +{ +} +is +too +big +to +fit +into +u32 +" +n +) +} +n +as +u32 +} diff --git a/third_party/rust/regex/src/builders.rs b/third_party/rust/regex/src/builders.rs deleted file mode 100644 index 7f38d3927dfc1..0000000000000 --- a/third_party/rust/regex/src/builders.rs +++ /dev/null @@ -1,2913 +0,0 @@ -# -! -[ -allow -( -warnings -) -] -use -alloc -: -: -{ -string -: -: -{ -String -ToString -} -sync -: -: -Arc -vec -vec -: -: -Vec -} -; -use -regex_automata -: -: -{ -meta -nfa -: -: -thompson -: -: -WhichCaptures -util -: -: -syntax -MatchKind -} -; -use -crate -: -: -error -: -: -Error -; -# -[ -derive -( -Clone -Debug -) -] -struct -Builder -{ -pats -: -Vec -< -String -> -metac -: -meta -: -: -Config -syntaxc -: -syntax -: -: -Config -} -impl -Default -for -Builder -{ -fn -default -( -) -- -> -Builder -{ -let -metac -= -meta -: -: -Config -: -: -new -( -) -. -nfa_size_limit -( -Some -( -10 -* -( -1 -< -< -20 -) -) -) -. -hybrid_cache_capacity -( -2 -* -( -1 -< -< -20 -) -) -; -Builder -{ -pats -: -vec -! -[ -] -metac -syntaxc -: -syntax -: -: -Config -: -: -default -( -) -} -} -} -impl -Builder -{ -fn -new -< -I -S -> -( -patterns -: -I -) -- -> -Builder -where -S -: -AsRef -< -str -> -I -: -IntoIterator -< -Item -= -S -> -{ -let -mut -b -= -Builder -: -: -default -( -) -; -b -. -pats -. -extend -( -patterns -. -into_iter -( -) -. -map -( -| -p -| -p -. -as_ref -( -) -. -to_string -( -) -) -) -; -b -} -fn -build_one_string -( -& -self -) -- -> -Result -< -crate -: -: -Regex -Error -> -{ -assert_eq -! -( -1 -self -. -pats -. -len -( -) -) -; -let -metac -= -self -. -metac -. -clone -( -) -. -match_kind -( -MatchKind -: -: -LeftmostFirst -) -. -utf8_empty -( -true -) -; -let -syntaxc -= -self -. -syntaxc -. -clone -( -) -. -utf8 -( -true -) -; -let -pattern -= -Arc -: -: -from -( -self -. -pats -[ -0 -] -. -as_str -( -) -) -; -meta -: -: -Builder -: -: -new -( -) -. -configure -( -metac -) -. -syntax -( -syntaxc -) -. -build -( -& -pattern -) -. -map -( -| -meta -| -crate -: -: -Regex -{ -meta -pattern -} -) -. -map_err -( -Error -: -: -from_meta_build_error -) -} -fn -build_one_bytes -( -& -self -) -- -> -Result -< -crate -: -: -bytes -: -: -Regex -Error -> -{ -assert_eq -! -( -1 -self -. -pats -. -len -( -) -) -; -let -metac -= -self -. -metac -. -clone -( -) -. -match_kind -( -MatchKind -: -: -LeftmostFirst -) -. -utf8_empty -( -false -) -; -let -syntaxc -= -self -. -syntaxc -. -clone -( -) -. -utf8 -( -false -) -; -let -pattern -= -Arc -: -: -from -( -self -. -pats -[ -0 -] -. -as_str -( -) -) -; -meta -: -: -Builder -: -: -new -( -) -. -configure -( -metac -) -. -syntax -( -syntaxc -) -. -build -( -& -pattern -) -. -map -( -| -meta -| -crate -: -: -bytes -: -: -Regex -{ -meta -pattern -} -) -. -map_err -( -Error -: -: -from_meta_build_error -) -} -fn -build_many_string -( -& -self -) -- -> -Result -< -crate -: -: -RegexSet -Error -> -{ -let -metac -= -self -. -metac -. -clone -( -) -. -match_kind -( -MatchKind -: -: -All -) -. -utf8_empty -( -true -) -. -which_captures -( -WhichCaptures -: -: -None -) -; -let -syntaxc -= -self -. -syntaxc -. -clone -( -) -. -utf8 -( -true -) -; -let -patterns -= -Arc -: -: -from -( -self -. -pats -. -as_slice -( -) -) -; -meta -: -: -Builder -: -: -new -( -) -. -configure -( -metac -) -. -syntax -( -syntaxc -) -. -build_many -( -& -patterns -) -. -map -( -| -meta -| -crate -: -: -RegexSet -{ -meta -patterns -} -) -. -map_err -( -Error -: -: -from_meta_build_error -) -} -fn -build_many_bytes -( -& -self -) -- -> -Result -< -crate -: -: -bytes -: -: -RegexSet -Error -> -{ -let -metac -= -self -. -metac -. -clone -( -) -. -match_kind -( -MatchKind -: -: -All -) -. -utf8_empty -( -false -) -. -which_captures -( -WhichCaptures -: -: -None -) -; -let -syntaxc -= -self -. -syntaxc -. -clone -( -) -. -utf8 -( -false -) -; -let -patterns -= -Arc -: -: -from -( -self -. -pats -. -as_slice -( -) -) -; -meta -: -: -Builder -: -: -new -( -) -. -configure -( -metac -) -. -syntax -( -syntaxc -) -. -build_many -( -& -patterns -) -. -map -( -| -meta -| -crate -: -: -bytes -: -: -RegexSet -{ -meta -patterns -} -) -. -map_err -( -Error -: -: -from_meta_build_error -) -} -fn -case_insensitive -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -syntaxc -= -self -. -syntaxc -. -case_insensitive -( -yes -) -; -self -} -fn -multi_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -syntaxc -= -self -. -syntaxc -. -multi_line -( -yes -) -; -self -} -fn -dot_matches_new_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -syntaxc -= -self -. -syntaxc -. -dot_matches_new_line -( -yes -) -; -self -} -fn -crlf -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -syntaxc -= -self -. -syntaxc -. -crlf -( -yes -) -; -self -} -fn -line_terminator -( -& -mut -self -byte -: -u8 -) -- -> -& -mut -Builder -{ -self -. -metac -= -self -. -metac -. -clone -( -) -. -line_terminator -( -byte -) -; -self -. -syntaxc -= -self -. -syntaxc -. -line_terminator -( -byte -) -; -self -} -fn -swap_greed -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -syntaxc -= -self -. -syntaxc -. -swap_greed -( -yes -) -; -self -} -fn -ignore_whitespace -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -syntaxc -= -self -. -syntaxc -. -ignore_whitespace -( -yes -) -; -self -} -fn -unicode -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -syntaxc -= -self -. -syntaxc -. -unicode -( -yes -) -; -self -} -fn -octal -( -& -mut -self -yes -: -bool -) -- -> -& -mut -Builder -{ -self -. -syntaxc -= -self -. -syntaxc -. -octal -( -yes -) -; -self -} -fn -size_limit -( -& -mut -self -limit -: -usize -) -- -> -& -mut -Builder -{ -self -. -metac -= -self -. -metac -. -clone -( -) -. -nfa_size_limit -( -Some -( -limit -) -) -; -self -} -fn -dfa_size_limit -( -& -mut -self -limit -: -usize -) -- -> -& -mut -Builder -{ -self -. -metac -= -self -. -metac -. -clone -( -) -. -hybrid_cache_capacity -( -limit -) -; -self -} -fn -nest_limit -( -& -mut -self -limit -: -u32 -) -- -> -& -mut -Builder -{ -self -. -syntaxc -= -self -. -syntaxc -. -nest_limit -( -limit -) -; -self -} -} -pub -( -crate -) -mod -string -{ -use -crate -: -: -{ -error -: -: -Error -Regex -RegexSet -} -; -use -super -: -: -Builder -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -RegexBuilder -{ -builder -: -Builder -} -impl -RegexBuilder -{ -pub -fn -new -( -pattern -: -& -str -) -- -> -RegexBuilder -{ -RegexBuilder -{ -builder -: -Builder -: -: -new -( -[ -pattern -] -) -} -} -pub -fn -build -( -& -self -) -- -> -Result -< -Regex -Error -> -{ -self -. -builder -. -build_one_string -( -) -} -pub -fn -unicode -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -unicode -( -yes -) -; -self -} -pub -fn -case_insensitive -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -case_insensitive -( -yes -) -; -self -} -pub -fn -multi_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -multi_line -( -yes -) -; -self -} -pub -fn -dot_matches_new_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -dot_matches_new_line -( -yes -) -; -self -} -pub -fn -crlf -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -crlf -( -yes -) -; -self -} -pub -fn -line_terminator -( -& -mut -self -byte -: -u8 -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -line_terminator -( -byte -) -; -self -} -pub -fn -swap_greed -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -swap_greed -( -yes -) -; -self -} -pub -fn -ignore_whitespace -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -ignore_whitespace -( -yes -) -; -self -} -pub -fn -octal -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -octal -( -yes -) -; -self -} -pub -fn -size_limit -( -& -mut -self -bytes -: -usize -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -size_limit -( -bytes -) -; -self -} -pub -fn -dfa_size_limit -( -& -mut -self -bytes -: -usize -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -dfa_size_limit -( -bytes -) -; -self -} -pub -fn -nest_limit -( -& -mut -self -limit -: -u32 -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -nest_limit -( -limit -) -; -self -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -RegexSetBuilder -{ -builder -: -Builder -} -impl -RegexSetBuilder -{ -pub -fn -new -< -I -S -> -( -patterns -: -I -) -- -> -RegexSetBuilder -where -I -: -IntoIterator -< -Item -= -S -> -S -: -AsRef -< -str -> -{ -RegexSetBuilder -{ -builder -: -Builder -: -: -new -( -patterns -) -} -} -pub -fn -build -( -& -self -) -- -> -Result -< -RegexSet -Error -> -{ -self -. -builder -. -build_many_string -( -) -} -pub -fn -unicode -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -unicode -( -yes -) -; -self -} -pub -fn -case_insensitive -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -case_insensitive -( -yes -) -; -self -} -pub -fn -multi_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -multi_line -( -yes -) -; -self -} -pub -fn -dot_matches_new_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -dot_matches_new_line -( -yes -) -; -self -} -pub -fn -crlf -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -crlf -( -yes -) -; -self -} -pub -fn -line_terminator -( -& -mut -self -byte -: -u8 -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -line_terminator -( -byte -) -; -self -} -pub -fn -swap_greed -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -swap_greed -( -yes -) -; -self -} -pub -fn -ignore_whitespace -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -ignore_whitespace -( -yes -) -; -self -} -pub -fn -octal -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -octal -( -yes -) -; -self -} -pub -fn -size_limit -( -& -mut -self -bytes -: -usize -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -size_limit -( -bytes -) -; -self -} -pub -fn -dfa_size_limit -( -& -mut -self -bytes -: -usize -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -dfa_size_limit -( -bytes -) -; -self -} -pub -fn -nest_limit -( -& -mut -self -limit -: -u32 -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -nest_limit -( -limit -) -; -self -} -} -} -pub -( -crate -) -mod -bytes -{ -use -crate -: -: -{ -bytes -: -: -{ -Regex -RegexSet -} -error -: -: -Error -} -; -use -super -: -: -Builder -; -# -[ -derive -( -Clone -Debug -) -] -pub -struct -RegexBuilder -{ -builder -: -Builder -} -impl -RegexBuilder -{ -pub -fn -new -( -pattern -: -& -str -) -- -> -RegexBuilder -{ -RegexBuilder -{ -builder -: -Builder -: -: -new -( -[ -pattern -] -) -} -} -pub -fn -build -( -& -self -) -- -> -Result -< -Regex -Error -> -{ -self -. -builder -. -build_one_bytes -( -) -} -pub -fn -unicode -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -unicode -( -yes -) -; -self -} -pub -fn -case_insensitive -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -case_insensitive -( -yes -) -; -self -} -pub -fn -multi_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -multi_line -( -yes -) -; -self -} -pub -fn -dot_matches_new_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -dot_matches_new_line -( -yes -) -; -self -} -pub -fn -crlf -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -crlf -( -yes -) -; -self -} -pub -fn -line_terminator -( -& -mut -self -byte -: -u8 -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -line_terminator -( -byte -) -; -self -} -pub -fn -swap_greed -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -swap_greed -( -yes -) -; -self -} -pub -fn -ignore_whitespace -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -ignore_whitespace -( -yes -) -; -self -} -pub -fn -octal -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -octal -( -yes -) -; -self -} -pub -fn -size_limit -( -& -mut -self -bytes -: -usize -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -size_limit -( -bytes -) -; -self -} -pub -fn -dfa_size_limit -( -& -mut -self -bytes -: -usize -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -dfa_size_limit -( -bytes -) -; -self -} -pub -fn -nest_limit -( -& -mut -self -limit -: -u32 -) -- -> -& -mut -RegexBuilder -{ -self -. -builder -. -nest_limit -( -limit -) -; -self -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -RegexSetBuilder -{ -builder -: -Builder -} -impl -RegexSetBuilder -{ -pub -fn -new -< -I -S -> -( -patterns -: -I -) -- -> -RegexSetBuilder -where -I -: -IntoIterator -< -Item -= -S -> -S -: -AsRef -< -str -> -{ -RegexSetBuilder -{ -builder -: -Builder -: -: -new -( -patterns -) -} -} -pub -fn -build -( -& -self -) -- -> -Result -< -RegexSet -Error -> -{ -self -. -builder -. -build_many_bytes -( -) -} -pub -fn -unicode -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -unicode -( -yes -) -; -self -} -pub -fn -case_insensitive -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -case_insensitive -( -yes -) -; -self -} -pub -fn -multi_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -multi_line -( -yes -) -; -self -} -pub -fn -dot_matches_new_line -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -dot_matches_new_line -( -yes -) -; -self -} -pub -fn -crlf -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -crlf -( -yes -) -; -self -} -pub -fn -line_terminator -( -& -mut -self -byte -: -u8 -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -line_terminator -( -byte -) -; -self -} -pub -fn -swap_greed -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -swap_greed -( -yes -) -; -self -} -pub -fn -ignore_whitespace -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -ignore_whitespace -( -yes -) -; -self -} -pub -fn -octal -( -& -mut -self -yes -: -bool -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -octal -( -yes -) -; -self -} -pub -fn -size_limit -( -& -mut -self -bytes -: -usize -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -size_limit -( -bytes -) -; -self -} -pub -fn -dfa_size_limit -( -& -mut -self -bytes -: -usize -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -dfa_size_limit -( -bytes -) -; -self -} -pub -fn -nest_limit -( -& -mut -self -limit -: -u32 -) -- -> -& -mut -RegexSetBuilder -{ -self -. -builder -. -nest_limit -( -limit -) -; -self -} -} -} diff --git a/third_party/rust/regex/src/bytes.rs b/third_party/rust/regex/src/bytes.rs deleted file mode 100644 index 9bbf8c295387b..0000000000000 --- a/third_party/rust/regex/src/bytes.rs +++ /dev/null @@ -1,29 +0,0 @@ -pub -use -crate -: -: -{ -builders -: -: -bytes -: -: -* -regex -: -: -bytes -: -: -* -regexset -: -: -bytes -: -: -* -} -; diff --git a/third_party/rust/regex/src/compile.rs b/third_party/rust/regex/src/compile.rs new file mode 100644 index 0000000000000..13cd2b68a0995 --- /dev/null +++ b/third_party/rust/regex/src/compile.rs @@ -0,0 +1,7795 @@ +use +std +: +: +collections +: +: +HashMap +; +use +std +: +: +fmt +; +use +std +: +: +iter +; +use +std +: +: +result +; +use +std +: +: +sync +: +: +Arc +; +use +regex_syntax +: +: +hir +: +: +{ +self +Hir +} +; +use +regex_syntax +: +: +is_word_byte +; +use +regex_syntax +: +: +utf8 +: +: +{ +Utf8Range +Utf8Sequence +Utf8Sequences +} +; +use +crate +: +: +prog +: +: +{ +EmptyLook +Inst +InstBytes +InstChar +InstEmptyLook +InstPtr +InstRanges +InstSave +InstSplit +Program +} +; +use +crate +: +: +Error +; +type +Result += +result +: +: +Result +< +Patch +Error +> +; +type +ResultOrEmpty += +result +: +: +Result +< +Option +< +Patch +> +Error +> +; +# +[ +derive +( +Debug +) +] +struct +Patch +{ +hole +: +Hole +entry +: +InstPtr +} +# +[ +allow +( +missing_debug_implementations +) +] +pub +struct +Compiler +{ +insts +: +Vec +< +MaybeInst +> +compiled +: +Program +capture_name_idx +: +HashMap +< +String +usize +> +num_exprs +: +usize +size_limit +: +usize +suffix_cache +: +SuffixCache +utf8_seqs +: +Option +< +Utf8Sequences +> +byte_classes +: +ByteClassSet +extra_inst_bytes +: +usize +} +impl +Compiler +{ +pub +fn +new +( +) +- +> +Self +{ +Compiler +{ +insts +: +vec +! +[ +] +compiled +: +Program +: +: +new +( +) +capture_name_idx +: +HashMap +: +: +new +( +) +num_exprs +: +0 +size_limit +: +10 +* +( +1 +< +< +20 +) +suffix_cache +: +SuffixCache +: +: +new +( +1000 +) +utf8_seqs +: +Some +( +Utf8Sequences +: +: +new +( +' +\ +x00 +' +' +\ +x00 +' +) +) +byte_classes +: +ByteClassSet +: +: +new +( +) +extra_inst_bytes +: +0 +} +} +pub +fn +size_limit +( +mut +self +size_limit +: +usize +) +- +> +Self +{ +self +. +size_limit += +size_limit +; +self +} +pub +fn +bytes +( +mut +self +yes +: +bool +) +- +> +Self +{ +self +. +compiled +. +is_bytes += +yes +; +self +} +pub +fn +only_utf8 +( +mut +self +yes +: +bool +) +- +> +Self +{ +self +. +compiled +. +only_utf8 += +yes +; +self +} +pub +fn +dfa +( +mut +self +yes +: +bool +) +- +> +Self +{ +self +. +compiled +. +is_dfa += +yes +; +self +} +pub +fn +reverse +( +mut +self +yes +: +bool +) +- +> +Self +{ +self +. +compiled +. +is_reverse += +yes +; +self +} +pub +fn +compile +( +mut +self +exprs +: +& +[ +Hir +] +) +- +> +result +: +: +Result +< +Program +Error +> +{ +debug_assert +! +( +! +exprs +. +is_empty +( +) +) +; +self +. +num_exprs += +exprs +. +len +( +) +; +if +exprs +. +len +( +) += += +1 +{ +self +. +compile_one +( +& +exprs +[ +0 +] +) +} +else +{ +self +. +compile_many +( +exprs +) +} +} +fn +compile_one +( +mut +self +expr +: +& +Hir +) +- +> +result +: +: +Result +< +Program +Error +> +{ +let +mut +dotstar_patch += +Patch +{ +hole +: +Hole +: +: +None +entry +: +0 +} +; +self +. +compiled +. +is_anchored_start += +expr +. +is_anchored_start +( +) +; +self +. +compiled +. +is_anchored_end += +expr +. +is_anchored_end +( +) +; +if +self +. +compiled +. +needs_dotstar +( +) +{ +dotstar_patch += +self +. +c_dotstar +( +) +? +; +self +. +compiled +. +start += +dotstar_patch +. +entry +; +} +self +. +compiled +. +captures += +vec +! +[ +None +] +; +let +patch += +self +. +c_capture +( +0 +expr +) +? +. +unwrap_or_else +( +| +| +self +. +next_inst +( +) +) +; +if +self +. +compiled +. +needs_dotstar +( +) +{ +self +. +fill +( +dotstar_patch +. +hole +patch +. +entry +) +; +} +else +{ +self +. +compiled +. +start += +patch +. +entry +; +} +self +. +fill_to_next +( +patch +. +hole +) +; +self +. +compiled +. +matches += +vec +! +[ +self +. +insts +. +len +( +) +] +; +self +. +push_compiled +( +Inst +: +: +Match +( +0 +) +) +; +self +. +compile_finish +( +) +} +fn +compile_many +( +mut +self +exprs +: +& +[ +Hir +] +) +- +> +result +: +: +Result +< +Program +Error +> +{ +debug_assert +! +( +exprs +. +len +( +) +> +1 +) +; +self +. +compiled +. +is_anchored_start += +exprs +. +iter +( +) +. +all +( +| +e +| +e +. +is_anchored_start +( +) +) +; +self +. +compiled +. +is_anchored_end += +exprs +. +iter +( +) +. +all +( +| +e +| +e +. +is_anchored_end +( +) +) +; +let +mut +dotstar_patch += +Patch +{ +hole +: +Hole +: +: +None +entry +: +0 +} +; +if +self +. +compiled +. +needs_dotstar +( +) +{ +dotstar_patch += +self +. +c_dotstar +( +) +? +; +self +. +compiled +. +start += +dotstar_patch +. +entry +; +} +else +{ +self +. +compiled +. +start += +0 +; +} +self +. +fill_to_next +( +dotstar_patch +. +hole +) +; +let +mut +prev_hole += +Hole +: +: +None +; +for +( +i +expr +) +in +exprs +[ +0 +. +. +exprs +. +len +( +) +- +1 +] +. +iter +( +) +. +enumerate +( +) +{ +self +. +fill_to_next +( +prev_hole +) +; +let +split += +self +. +push_split_hole +( +) +; +let +Patch +{ +hole +entry +} += +self +. +c_capture +( +0 +expr +) +? +. +unwrap_or_else +( +| +| +self +. +next_inst +( +) +) +; +self +. +fill_to_next +( +hole +) +; +self +. +compiled +. +matches +. +push +( +self +. +insts +. +len +( +) +) +; +self +. +push_compiled +( +Inst +: +: +Match +( +i +) +) +; +prev_hole += +self +. +fill_split +( +split +Some +( +entry +) +None +) +; +} +let +i += +exprs +. +len +( +) +- +1 +; +let +Patch +{ +hole +entry +} += +self +. +c_capture +( +0 +& +exprs +[ +i +] +) +? +. +unwrap_or_else +( +| +| +self +. +next_inst +( +) +) +; +self +. +fill +( +prev_hole +entry +) +; +self +. +fill_to_next +( +hole +) +; +self +. +compiled +. +matches +. +push +( +self +. +insts +. +len +( +) +) +; +self +. +push_compiled +( +Inst +: +: +Match +( +i +) +) +; +self +. +compile_finish +( +) +} +fn +compile_finish +( +mut +self +) +- +> +result +: +: +Result +< +Program +Error +> +{ +self +. +compiled +. +insts += +self +. +insts +. +into_iter +( +) +. +map +( +| +inst +| +inst +. +unwrap +( +) +) +. +collect +( +) +; +self +. +compiled +. +byte_classes += +self +. +byte_classes +. +byte_classes +( +) +; +self +. +compiled +. +capture_name_idx += +Arc +: +: +new +( +self +. +capture_name_idx +) +; +Ok +( +self +. +compiled +) +} +fn +c +( +& +mut +self +expr +: +& +Hir +) +- +> +ResultOrEmpty +{ +use +crate +: +: +prog +; +use +regex_syntax +: +: +hir +: +: +HirKind +: +: +* +; +self +. +check_size +( +) +? +; +match +* +expr +. +kind +( +) +{ +Empty += +> +self +. +c_empty +( +) +Literal +( +hir +: +: +Literal +: +: +Unicode +( +c +) +) += +> +self +. +c_char +( +c +) +Literal +( +hir +: +: +Literal +: +: +Byte +( +b +) +) += +> +{ +assert +! +( +self +. +compiled +. +uses_bytes +( +) +) +; +self +. +c_byte +( +b +) +} +Class +( +hir +: +: +Class +: +: +Unicode +( +ref +cls +) +) += +> +self +. +c_class +( +cls +. +ranges +( +) +) +Class +( +hir +: +: +Class +: +: +Bytes +( +ref +cls +) +) += +> +{ +if +self +. +compiled +. +uses_bytes +( +) +{ +self +. +c_class_bytes +( +cls +. +ranges +( +) +) +} +else +{ +assert +! +( +cls +. +is_all_ascii +( +) +) +; +let +mut +char_ranges += +vec +! +[ +] +; +for +r +in +cls +. +iter +( +) +{ +let +( +s +e +) += +( +r +. +start +( +) +as +char +r +. +end +( +) +as +char +) +; +char_ranges +. +push +( +hir +: +: +ClassUnicodeRange +: +: +new +( +s +e +) +) +; +} +self +. +c_class +( +& +char_ranges +) +} +} +Anchor +( +hir +: +: +Anchor +: +: +StartLine +) +if +self +. +compiled +. +is_reverse += +> +{ +self +. +byte_classes +. +set_range +( +b +' +\ +n +' +b +' +\ +n +' +) +; +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +EndLine +) +} +Anchor +( +hir +: +: +Anchor +: +: +StartLine +) += +> +{ +self +. +byte_classes +. +set_range +( +b +' +\ +n +' +b +' +\ +n +' +) +; +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +StartLine +) +} +Anchor +( +hir +: +: +Anchor +: +: +EndLine +) +if +self +. +compiled +. +is_reverse += +> +{ +self +. +byte_classes +. +set_range +( +b +' +\ +n +' +b +' +\ +n +' +) +; +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +StartLine +) +} +Anchor +( +hir +: +: +Anchor +: +: +EndLine +) += +> +{ +self +. +byte_classes +. +set_range +( +b +' +\ +n +' +b +' +\ +n +' +) +; +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +EndLine +) +} +Anchor +( +hir +: +: +Anchor +: +: +StartText +) +if +self +. +compiled +. +is_reverse += +> +{ +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +EndText +) +} +Anchor +( +hir +: +: +Anchor +: +: +StartText +) += +> +{ +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +StartText +) +} +Anchor +( +hir +: +: +Anchor +: +: +EndText +) +if +self +. +compiled +. +is_reverse += +> +{ +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +StartText +) +} +Anchor +( +hir +: +: +Anchor +: +: +EndText +) += +> +{ +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +EndText +) +} +WordBoundary +( +hir +: +: +WordBoundary +: +: +Unicode +) += +> +{ +if +! +cfg +! +( +feature += +" +unicode +- +perl +" +) +{ +return +Err +( +Error +: +: +Syntax +( +" +Unicode +word +boundaries +are +unavailable +when +\ +the +unicode +- +perl +feature +is +disabled +" +. +to_string +( +) +) +) +; +} +self +. +compiled +. +has_unicode_word_boundary += +true +; +self +. +byte_classes +. +set_word_boundary +( +) +; +self +. +byte_classes +. +set_range +( +0 +0x7F +) +; +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +WordBoundary +) +} +WordBoundary +( +hir +: +: +WordBoundary +: +: +UnicodeNegate +) += +> +{ +if +! +cfg +! +( +feature += +" +unicode +- +perl +" +) +{ +return +Err +( +Error +: +: +Syntax +( +" +Unicode +word +boundaries +are +unavailable +when +\ +the +unicode +- +perl +feature +is +disabled +" +. +to_string +( +) +) +) +; +} +self +. +compiled +. +has_unicode_word_boundary += +true +; +self +. +byte_classes +. +set_word_boundary +( +) +; +self +. +byte_classes +. +set_range +( +0 +0x7F +) +; +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +NotWordBoundary +) +} +WordBoundary +( +hir +: +: +WordBoundary +: +: +Ascii +) += +> +{ +self +. +byte_classes +. +set_word_boundary +( +) +; +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +WordBoundaryAscii +) +} +WordBoundary +( +hir +: +: +WordBoundary +: +: +AsciiNegate +) += +> +{ +self +. +byte_classes +. +set_word_boundary +( +) +; +self +. +c_empty_look +( +prog +: +: +EmptyLook +: +: +NotWordBoundaryAscii +) +} +Group +( +ref +g +) += +> +match +g +. +kind +{ +hir +: +: +GroupKind +: +: +NonCapturing += +> +self +. +c +( +& +g +. +hir +) +hir +: +: +GroupKind +: +: +CaptureIndex +( +index +) += +> +{ +if +index +as +usize +> += +self +. +compiled +. +captures +. +len +( +) +{ +self +. +compiled +. +captures +. +push +( +None +) +; +} +self +. +c_capture +( +2 +* +index +as +usize +& +g +. +hir +) +} +hir +: +: +GroupKind +: +: +CaptureName +{ +index +ref +name +} += +> +{ +if +index +as +usize +> += +self +. +compiled +. +captures +. +len +( +) +{ +let +n += +name +. +to_string +( +) +; +self +. +compiled +. +captures +. +push +( +Some +( +n +. +clone +( +) +) +) +; +self +. +capture_name_idx +. +insert +( +n +index +as +usize +) +; +} +self +. +c_capture +( +2 +* +index +as +usize +& +g +. +hir +) +} +} +Concat +( +ref +es +) += +> +{ +if +self +. +compiled +. +is_reverse +{ +self +. +c_concat +( +es +. +iter +( +) +. +rev +( +) +) +} +else +{ +self +. +c_concat +( +es +) +} +} +Alternation +( +ref +es +) += +> +self +. +c_alternate +( +& +* +* +es +) +Repetition +( +ref +rep +) += +> +self +. +c_repeat +( +rep +) +} +} +fn +c_empty +( +& +mut +self +) +- +> +ResultOrEmpty +{ +self +. +extra_inst_bytes ++ += +std +: +: +mem +: +: +size_of +: +: +< +Inst +> +( +) +; +Ok +( +None +) +} +fn +c_capture +( +& +mut +self +first_slot +: +usize +expr +: +& +Hir +) +- +> +ResultOrEmpty +{ +if +self +. +num_exprs +> +1 +| +| +self +. +compiled +. +is_dfa +{ +self +. +c +( +expr +) +} +else +{ +let +entry += +self +. +insts +. +len +( +) +; +let +hole += +self +. +push_hole +( +InstHole +: +: +Save +{ +slot +: +first_slot +} +) +; +let +patch += +self +. +c +( +expr +) +? +. +unwrap_or_else +( +| +| +self +. +next_inst +( +) +) +; +self +. +fill +( +hole +patch +. +entry +) +; +self +. +fill_to_next +( +patch +. +hole +) +; +let +hole += +self +. +push_hole +( +InstHole +: +: +Save +{ +slot +: +first_slot ++ +1 +} +) +; +Ok +( +Some +( +Patch +{ +hole +entry +} +) +) +} +} +fn +c_dotstar +( +& +mut +self +) +- +> +Result +{ +Ok +( +if +! +self +. +compiled +. +only_utf8 +( +) +{ +self +. +c +( +& +Hir +: +: +repetition +( +hir +: +: +Repetition +{ +kind +: +hir +: +: +RepetitionKind +: +: +ZeroOrMore +greedy +: +false +hir +: +Box +: +: +new +( +Hir +: +: +any +( +true +) +) +} +) +) +? +. +unwrap +( +) +} +else +{ +self +. +c +( +& +Hir +: +: +repetition +( +hir +: +: +Repetition +{ +kind +: +hir +: +: +RepetitionKind +: +: +ZeroOrMore +greedy +: +false +hir +: +Box +: +: +new +( +Hir +: +: +any +( +false +) +) +} +) +) +? +. +unwrap +( +) +} +) +} +fn +c_char +( +& +mut +self +c +: +char +) +- +> +ResultOrEmpty +{ +if +self +. +compiled +. +uses_bytes +( +) +{ +if +c +. +is_ascii +( +) +{ +let +b += +c +as +u8 +; +let +hole += +self +. +push_hole +( +InstHole +: +: +Bytes +{ +start +: +b +end +: +b +} +) +; +self +. +byte_classes +. +set_range +( +b +b +) +; +Ok +( +Some +( +Patch +{ +hole +entry +: +self +. +insts +. +len +( +) +- +1 +} +) +) +} +else +{ +self +. +c_class +( +& +[ +hir +: +: +ClassUnicodeRange +: +: +new +( +c +c +) +] +) +} +} +else +{ +let +hole += +self +. +push_hole +( +InstHole +: +: +Char +{ +c +} +) +; +Ok +( +Some +( +Patch +{ +hole +entry +: +self +. +insts +. +len +( +) +- +1 +} +) +) +} +} +fn +c_class +( +& +mut +self +ranges +: +& +[ +hir +: +: +ClassUnicodeRange +] +) +- +> +ResultOrEmpty +{ +use +std +: +: +mem +: +: +size_of +; +assert +! +( +! +ranges +. +is_empty +( +) +) +; +if +self +. +compiled +. +uses_bytes +( +) +{ +Ok +( +Some +( +CompileClass +{ +c +: +self +ranges +} +. +compile +( +) +? +) +) +} +else +{ +let +ranges +: +Vec +< +( +char +char +) +> += +ranges +. +iter +( +) +. +map +( +| +r +| +( +r +. +start +( +) +r +. +end +( +) +) +) +. +collect +( +) +; +let +hole += +if +ranges +. +len +( +) += += +1 +& +& +ranges +[ +0 +] +. +0 += += +ranges +[ +0 +] +. +1 +{ +self +. +push_hole +( +InstHole +: +: +Char +{ +c +: +ranges +[ +0 +] +. +0 +} +) +} +else +{ +self +. +extra_inst_bytes ++ += +ranges +. +len +( +) +* +( +size_of +: +: +< +char +> +( +) +* +2 +) +; +self +. +push_hole +( +InstHole +: +: +Ranges +{ +ranges +} +) +} +; +Ok +( +Some +( +Patch +{ +hole +entry +: +self +. +insts +. +len +( +) +- +1 +} +) +) +} +} +fn +c_byte +( +& +mut +self +b +: +u8 +) +- +> +ResultOrEmpty +{ +self +. +c_class_bytes +( +& +[ +hir +: +: +ClassBytesRange +: +: +new +( +b +b +) +] +) +} +fn +c_class_bytes +( +& +mut +self +ranges +: +& +[ +hir +: +: +ClassBytesRange +] +) +- +> +ResultOrEmpty +{ +debug_assert +! +( +! +ranges +. +is_empty +( +) +) +; +let +first_split_entry += +self +. +insts +. +len +( +) +; +let +mut +holes += +vec +! +[ +] +; +let +mut +prev_hole += +Hole +: +: +None +; +for +r +in +& +ranges +[ +0 +. +. +ranges +. +len +( +) +- +1 +] +{ +self +. +fill_to_next +( +prev_hole +) +; +let +split += +self +. +push_split_hole +( +) +; +let +next += +self +. +insts +. +len +( +) +; +self +. +byte_classes +. +set_range +( +r +. +start +( +) +r +. +end +( +) +) +; +holes +. +push +( +self +. +push_hole +( +InstHole +: +: +Bytes +{ +start +: +r +. +start +( +) +end +: +r +. +end +( +) +} +) +) +; +prev_hole += +self +. +fill_split +( +split +Some +( +next +) +None +) +; +} +let +next += +self +. +insts +. +len +( +) +; +let +r += +& +ranges +[ +ranges +. +len +( +) +- +1 +] +; +self +. +byte_classes +. +set_range +( +r +. +start +( +) +r +. +end +( +) +) +; +holes +. +push +( +self +. +push_hole +( +InstHole +: +: +Bytes +{ +start +: +r +. +start +( +) +end +: +r +. +end +( +) +} +) +) +; +self +. +fill +( +prev_hole +next +) +; +Ok +( +Some +( +Patch +{ +hole +: +Hole +: +: +Many +( +holes +) +entry +: +first_split_entry +} +) +) +} +fn +c_empty_look +( +& +mut +self +look +: +EmptyLook +) +- +> +ResultOrEmpty +{ +let +hole += +self +. +push_hole +( +InstHole +: +: +EmptyLook +{ +look +} +) +; +Ok +( +Some +( +Patch +{ +hole +entry +: +self +. +insts +. +len +( +) +- +1 +} +) +) +} +fn +c_concat +< +' +a +I +> +( +& +mut +self +exprs +: +I +) +- +> +ResultOrEmpty +where +I +: +IntoIterator +< +Item += +& +' +a +Hir +> +{ +let +mut +exprs += +exprs +. +into_iter +( +) +; +let +Patch +{ +mut +hole +entry +} += +loop +{ +match +exprs +. +next +( +) +{ +None += +> +return +self +. +c_empty +( +) +Some +( +e +) += +> +{ +if +let +Some +( +p +) += +self +. +c +( +e +) +? +{ +break +p +; +} +} +} +} +; +for +e +in +exprs +{ +if +let +Some +( +p +) += +self +. +c +( +e +) +? +{ +self +. +fill +( +hole +p +. +entry +) +; +hole += +p +. +hole +; +} +} +Ok +( +Some +( +Patch +{ +hole +entry +} +) +) +} +fn +c_alternate +( +& +mut +self +exprs +: +& +[ +Hir +] +) +- +> +ResultOrEmpty +{ +debug_assert +! +( +exprs +. +len +( +) +> += +2 +" +alternates +must +have +at +least +2 +exprs +" +) +; +let +first_split_entry += +self +. +insts +. +len +( +) +; +let +mut +holes += +vec +! +[ +] +; +let +mut +prev_hole += +( +Hole +: +: +None +false +) +; +for +e +in +& +exprs +[ +0 +. +. +exprs +. +len +( +) +- +1 +] +{ +if +prev_hole +. +1 +{ +let +next += +self +. +insts +. +len +( +) +; +self +. +fill_split +( +prev_hole +. +0 +None +Some +( +next +) +) +; +} +else +{ +self +. +fill_to_next +( +prev_hole +. +0 +) +; +} +let +split += +self +. +push_split_hole +( +) +; +if +let +Some +( +Patch +{ +hole +entry +} +) += +self +. +c +( +e +) +? +{ +holes +. +push +( +hole +) +; +prev_hole += +( +self +. +fill_split +( +split +Some +( +entry +) +None +) +false +) +; +} +else +{ +let +( +split1 +split2 +) += +split +. +dup_one +( +) +; +holes +. +push +( +split1 +) +; +prev_hole += +( +split2 +true +) +; +} +} +if +let +Some +( +Patch +{ +hole +entry +} +) += +self +. +c +( +& +exprs +[ +exprs +. +len +( +) +- +1 +] +) +? +{ +holes +. +push +( +hole +) +; +if +prev_hole +. +1 +{ +self +. +fill_split +( +prev_hole +. +0 +None +Some +( +entry +) +) +; +} +else +{ +self +. +fill +( +prev_hole +. +0 +entry +) +; +} +} +else +{ +holes +. +push +( +prev_hole +. +0 +) +; +} +Ok +( +Some +( +Patch +{ +hole +: +Hole +: +: +Many +( +holes +) +entry +: +first_split_entry +} +) +) +} +fn +c_repeat +( +& +mut +self +rep +: +& +hir +: +: +Repetition +) +- +> +ResultOrEmpty +{ +use +regex_syntax +: +: +hir +: +: +RepetitionKind +: +: +* +; +match +rep +. +kind +{ +ZeroOrOne += +> +self +. +c_repeat_zero_or_one +( +& +rep +. +hir +rep +. +greedy +) +ZeroOrMore += +> +self +. +c_repeat_zero_or_more +( +& +rep +. +hir +rep +. +greedy +) +OneOrMore += +> +self +. +c_repeat_one_or_more +( +& +rep +. +hir +rep +. +greedy +) +Range +( +hir +: +: +RepetitionRange +: +: +Exactly +( +min_max +) +) += +> +{ +self +. +c_repeat_range +( +& +rep +. +hir +rep +. +greedy +min_max +min_max +) +} +Range +( +hir +: +: +RepetitionRange +: +: +AtLeast +( +min +) +) += +> +{ +self +. +c_repeat_range_min_or_more +( +& +rep +. +hir +rep +. +greedy +min +) +} +Range +( +hir +: +: +RepetitionRange +: +: +Bounded +( +min +max +) +) += +> +{ +self +. +c_repeat_range +( +& +rep +. +hir +rep +. +greedy +min +max +) +} +} +} +fn +c_repeat_zero_or_one +( +& +mut +self +expr +: +& +Hir +greedy +: +bool +) +- +> +ResultOrEmpty +{ +let +split_entry += +self +. +insts +. +len +( +) +; +let +split += +self +. +push_split_hole +( +) +; +let +Patch +{ +hole +: +hole_rep +entry +: +entry_rep +} += +match +self +. +c +( +expr +) +? +{ +Some +( +p +) += +> +p +None += +> +return +self +. +pop_split_hole +( +) +} +; +let +split_hole += +if +greedy +{ +self +. +fill_split +( +split +Some +( +entry_rep +) +None +) +} +else +{ +self +. +fill_split +( +split +None +Some +( +entry_rep +) +) +} +; +let +holes += +vec +! +[ +hole_rep +split_hole +] +; +Ok +( +Some +( +Patch +{ +hole +: +Hole +: +: +Many +( +holes +) +entry +: +split_entry +} +) +) +} +fn +c_repeat_zero_or_more +( +& +mut +self +expr +: +& +Hir +greedy +: +bool +) +- +> +ResultOrEmpty +{ +let +split_entry += +self +. +insts +. +len +( +) +; +let +split += +self +. +push_split_hole +( +) +; +let +Patch +{ +hole +: +hole_rep +entry +: +entry_rep +} += +match +self +. +c +( +expr +) +? +{ +Some +( +p +) += +> +p +None += +> +return +self +. +pop_split_hole +( +) +} +; +self +. +fill +( +hole_rep +split_entry +) +; +let +split_hole += +if +greedy +{ +self +. +fill_split +( +split +Some +( +entry_rep +) +None +) +} +else +{ +self +. +fill_split +( +split +None +Some +( +entry_rep +) +) +} +; +Ok +( +Some +( +Patch +{ +hole +: +split_hole +entry +: +split_entry +} +) +) +} +fn +c_repeat_one_or_more +( +& +mut +self +expr +: +& +Hir +greedy +: +bool +) +- +> +ResultOrEmpty +{ +let +Patch +{ +hole +: +hole_rep +entry +: +entry_rep +} += +match +self +. +c +( +expr +) +? +{ +Some +( +p +) += +> +p +None += +> +return +Ok +( +None +) +} +; +self +. +fill_to_next +( +hole_rep +) +; +let +split += +self +. +push_split_hole +( +) +; +let +split_hole += +if +greedy +{ +self +. +fill_split +( +split +Some +( +entry_rep +) +None +) +} +else +{ +self +. +fill_split +( +split +None +Some +( +entry_rep +) +) +} +; +Ok +( +Some +( +Patch +{ +hole +: +split_hole +entry +: +entry_rep +} +) +) +} +fn +c_repeat_range_min_or_more +( +& +mut +self +expr +: +& +Hir +greedy +: +bool +min +: +u32 +) +- +> +ResultOrEmpty +{ +let +min += +u32_to_usize +( +min +) +; +let +patch_concat += +self +. +c_concat +( +iter +: +: +repeat +( +expr +) +. +take +( +min +) +) +? +. +unwrap_or_else +( +| +| +self +. +next_inst +( +) +) +; +if +let +Some +( +patch_rep +) += +self +. +c_repeat_zero_or_more +( +expr +greedy +) +? +{ +self +. +fill +( +patch_concat +. +hole +patch_rep +. +entry +) +; +Ok +( +Some +( +Patch +{ +hole +: +patch_rep +. +hole +entry +: +patch_concat +. +entry +} +) +) +} +else +{ +Ok +( +None +) +} +} +fn +c_repeat_range +( +& +mut +self +expr +: +& +Hir +greedy +: +bool +min +: +u32 +max +: +u32 +) +- +> +ResultOrEmpty +{ +let +( +min +max +) += +( +u32_to_usize +( +min +) +u32_to_usize +( +max +) +) +; +debug_assert +! +( +min +< += +max +) +; +let +patch_concat += +self +. +c_concat +( +iter +: +: +repeat +( +expr +) +. +take +( +min +) +) +? +; +if +min += += +max +{ +return +Ok +( +patch_concat +) +; +} +let +patch_concat += +patch_concat +. +unwrap_or_else +( +| +| +self +. +next_inst +( +) +) +; +let +initial_entry += +patch_concat +. +entry +; +let +mut +holes += +vec +! +[ +] +; +let +mut +prev_hole += +patch_concat +. +hole +; +for +_ +in +min +. +. +max +{ +self +. +fill_to_next +( +prev_hole +) +; +let +split += +self +. +push_split_hole +( +) +; +let +Patch +{ +hole +entry +} += +match +self +. +c +( +expr +) +? +{ +Some +( +p +) += +> +p +None += +> +return +self +. +pop_split_hole +( +) +} +; +prev_hole += +hole +; +if +greedy +{ +holes +. +push +( +self +. +fill_split +( +split +Some +( +entry +) +None +) +) +; +} +else +{ +holes +. +push +( +self +. +fill_split +( +split +None +Some +( +entry +) +) +) +; +} +} +holes +. +push +( +prev_hole +) +; +Ok +( +Some +( +Patch +{ +hole +: +Hole +: +: +Many +( +holes +) +entry +: +initial_entry +} +) +) +} +fn +next_inst +( +& +self +) +- +> +Patch +{ +Patch +{ +hole +: +Hole +: +: +None +entry +: +self +. +insts +. +len +( +) +} +} +fn +fill +( +& +mut +self +hole +: +Hole +goto +: +InstPtr +) +{ +match +hole +{ +Hole +: +: +None += +> +{ +} +Hole +: +: +One +( +pc +) += +> +{ +self +. +insts +[ +pc +] +. +fill +( +goto +) +; +} +Hole +: +: +Many +( +holes +) += +> +{ +for +hole +in +holes +{ +self +. +fill +( +hole +goto +) +; +} +} +} +} +fn +fill_to_next +( +& +mut +self +hole +: +Hole +) +{ +let +next += +self +. +insts +. +len +( +) +; +self +. +fill +( +hole +next +) +; +} +fn +fill_split +( +& +mut +self +hole +: +Hole +goto1 +: +Option +< +InstPtr +> +goto2 +: +Option +< +InstPtr +> +) +- +> +Hole +{ +match +hole +{ +Hole +: +: +None += +> +Hole +: +: +None +Hole +: +: +One +( +pc +) += +> +match +( +goto1 +goto2 +) +{ +( +Some +( +goto1 +) +Some +( +goto2 +) +) += +> +{ +self +. +insts +[ +pc +] +. +fill_split +( +goto1 +goto2 +) +; +Hole +: +: +None +} +( +Some +( +goto1 +) +None +) += +> +{ +self +. +insts +[ +pc +] +. +half_fill_split_goto1 +( +goto1 +) +; +Hole +: +: +One +( +pc +) +} +( +None +Some +( +goto2 +) +) += +> +{ +self +. +insts +[ +pc +] +. +half_fill_split_goto2 +( +goto2 +) +; +Hole +: +: +One +( +pc +) +} +( +None +None +) += +> +unreachable +! +( +" +at +least +one +of +the +split +\ +holes +must +be +filled +" +) +} +Hole +: +: +Many +( +holes +) += +> +{ +let +mut +new_holes += +vec +! +[ +] +; +for +hole +in +holes +{ +new_holes +. +push +( +self +. +fill_split +( +hole +goto1 +goto2 +) +) +; +} +if +new_holes +. +is_empty +( +) +{ +Hole +: +: +None +} +else +if +new_holes +. +len +( +) += += +1 +{ +new_holes +. +pop +( +) +. +unwrap +( +) +} +else +{ +Hole +: +: +Many +( +new_holes +) +} +} +} +} +fn +push_compiled +( +& +mut +self +inst +: +Inst +) +{ +self +. +insts +. +push +( +MaybeInst +: +: +Compiled +( +inst +) +) +; +} +fn +push_hole +( +& +mut +self +inst +: +InstHole +) +- +> +Hole +{ +let +hole += +self +. +insts +. +len +( +) +; +self +. +insts +. +push +( +MaybeInst +: +: +Uncompiled +( +inst +) +) +; +Hole +: +: +One +( +hole +) +} +fn +push_split_hole +( +& +mut +self +) +- +> +Hole +{ +let +hole += +self +. +insts +. +len +( +) +; +self +. +insts +. +push +( +MaybeInst +: +: +Split +) +; +Hole +: +: +One +( +hole +) +} +fn +pop_split_hole +( +& +mut +self +) +- +> +ResultOrEmpty +{ +self +. +insts +. +pop +( +) +; +Ok +( +None +) +} +fn +check_size +( +& +self +) +- +> +result +: +: +Result +< +( +) +Error +> +{ +use +std +: +: +mem +: +: +size_of +; +let +size += +self +. +extra_inst_bytes ++ +( +self +. +insts +. +len +( +) +* +size_of +: +: +< +Inst +> +( +) +) +; +if +size +> +self +. +size_limit +{ +Err +( +Error +: +: +CompiledTooBig +( +self +. +size_limit +) +) +} +else +{ +Ok +( +( +) +) +} +} +} +# +[ +derive +( +Debug +) +] +enum +Hole +{ +None +One +( +InstPtr +) +Many +( +Vec +< +Hole +> +) +} +impl +Hole +{ +fn +dup_one +( +self +) +- +> +( +Self +Self +) +{ +match +self +{ +Hole +: +: +One +( +pc +) += +> +( +Hole +: +: +One +( +pc +) +Hole +: +: +One +( +pc +) +) +Hole +: +: +None +| +Hole +: +: +Many +( +_ +) += +> +{ +unreachable +! +( +" +must +be +called +on +single +hole +" +) +} +} +} +} +# +[ +derive +( +Clone +Debug +) +] +enum +MaybeInst +{ +Compiled +( +Inst +) +Uncompiled +( +InstHole +) +Split +Split1 +( +InstPtr +) +Split2 +( +InstPtr +) +} +impl +MaybeInst +{ +fn +fill +( +& +mut +self +goto +: +InstPtr +) +{ +let +maybeinst += +match +* +self +{ +MaybeInst +: +: +Split += +> +MaybeInst +: +: +Split1 +( +goto +) +MaybeInst +: +: +Uncompiled +( +ref +inst +) += +> +{ +MaybeInst +: +: +Compiled +( +inst +. +fill +( +goto +) +) +} +MaybeInst +: +: +Split1 +( +goto1 +) += +> +{ +MaybeInst +: +: +Compiled +( +Inst +: +: +Split +( +InstSplit +{ +goto1 +goto2 +: +goto +} +) +) +} +MaybeInst +: +: +Split2 +( +goto2 +) += +> +{ +MaybeInst +: +: +Compiled +( +Inst +: +: +Split +( +InstSplit +{ +goto1 +: +goto +goto2 +} +) +) +} +_ += +> +unreachable +! +( +" +not +all +instructions +were +compiled +! +\ +found +uncompiled +instruction +: +{ +: +? +} +" +self +) +} +; +* +self += +maybeinst +; +} +fn +fill_split +( +& +mut +self +goto1 +: +InstPtr +goto2 +: +InstPtr +) +{ +let +filled += +match +* +self +{ +MaybeInst +: +: +Split += +> +Inst +: +: +Split +( +InstSplit +{ +goto1 +goto2 +} +) +_ += +> +unreachable +! +( +" +must +be +called +on +Split +instruction +\ +instead +it +was +called +on +: +{ +: +? +} +" +self +) +} +; +* +self += +MaybeInst +: +: +Compiled +( +filled +) +; +} +fn +half_fill_split_goto1 +( +& +mut +self +goto1 +: +InstPtr +) +{ +let +half_filled += +match +* +self +{ +MaybeInst +: +: +Split += +> +goto1 +_ += +> +unreachable +! +( +" +must +be +called +on +Split +instruction +\ +instead +it +was +called +on +: +{ +: +? +} +" +self +) +} +; +* +self += +MaybeInst +: +: +Split1 +( +half_filled +) +; +} +fn +half_fill_split_goto2 +( +& +mut +self +goto2 +: +InstPtr +) +{ +let +half_filled += +match +* +self +{ +MaybeInst +: +: +Split += +> +goto2 +_ += +> +unreachable +! +( +" +must +be +called +on +Split +instruction +\ +instead +it +was +called +on +: +{ +: +? +} +" +self +) +} +; +* +self += +MaybeInst +: +: +Split2 +( +half_filled +) +; +} +fn +unwrap +( +self +) +- +> +Inst +{ +match +self +{ +MaybeInst +: +: +Compiled +( +inst +) += +> +inst +_ += +> +unreachable +! +( +" +must +be +called +on +a +compiled +instruction +\ +instead +it +was +called +on +: +{ +: +? +} +" +self +) +} +} +} +# +[ +derive +( +Clone +Debug +) +] +enum +InstHole +{ +Save +{ +slot +: +usize +} +EmptyLook +{ +look +: +EmptyLook +} +Char +{ +c +: +char +} +Ranges +{ +ranges +: +Vec +< +( +char +char +) +> +} +Bytes +{ +start +: +u8 +end +: +u8 +} +} +impl +InstHole +{ +fn +fill +( +& +self +goto +: +InstPtr +) +- +> +Inst +{ +match +* +self +{ +InstHole +: +: +Save +{ +slot +} += +> +Inst +: +: +Save +( +InstSave +{ +goto +slot +} +) +InstHole +: +: +EmptyLook +{ +look +} += +> +{ +Inst +: +: +EmptyLook +( +InstEmptyLook +{ +goto +look +} +) +} +InstHole +: +: +Char +{ +c +} += +> +Inst +: +: +Char +( +InstChar +{ +goto +c +} +) +InstHole +: +: +Ranges +{ +ref +ranges +} += +> +Inst +: +: +Ranges +( +InstRanges +{ +goto +ranges +: +ranges +. +clone +( +) +. +into_boxed_slice +( +) +} +) +InstHole +: +: +Bytes +{ +start +end +} += +> +{ +Inst +: +: +Bytes +( +InstBytes +{ +goto +start +end +} +) +} +} +} +} +struct +CompileClass +< +' +a +' +b +> +{ +c +: +& +' +a +mut +Compiler +ranges +: +& +' +b +[ +hir +: +: +ClassUnicodeRange +] +} +impl +< +' +a +' +b +> +CompileClass +< +' +a +' +b +> +{ +fn +compile +( +mut +self +) +- +> +Result +{ +let +mut +holes += +vec +! +[ +] +; +let +mut +initial_entry += +None +; +let +mut +last_split += +Hole +: +: +None +; +let +mut +utf8_seqs += +self +. +c +. +utf8_seqs +. +take +( +) +. +unwrap +( +) +; +self +. +c +. +suffix_cache +. +clear +( +) +; +for +( +i +range +) +in +self +. +ranges +. +iter +( +) +. +enumerate +( +) +{ +let +is_last_range += +i ++ +1 += += +self +. +ranges +. +len +( +) +; +utf8_seqs +. +reset +( +range +. +start +( +) +range +. +end +( +) +) +; +let +mut +it += +( +& +mut +utf8_seqs +) +. +peekable +( +) +; +loop +{ +let +utf8_seq += +match +it +. +next +( +) +{ +None += +> +break +Some +( +utf8_seq +) += +> +utf8_seq +} +; +if +is_last_range +& +& +it +. +peek +( +) +. +is_none +( +) +{ +let +Patch +{ +hole +entry +} += +self +. +c_utf8_seq +( +& +utf8_seq +) +? +; +holes +. +push +( +hole +) +; +self +. +c +. +fill +( +last_split +entry +) +; +last_split += +Hole +: +: +None +; +if +initial_entry +. +is_none +( +) +{ +initial_entry += +Some +( +entry +) +; +} +} +else +{ +if +initial_entry +. +is_none +( +) +{ +initial_entry += +Some +( +self +. +c +. +insts +. +len +( +) +) +; +} +self +. +c +. +fill_to_next +( +last_split +) +; +last_split += +self +. +c +. +push_split_hole +( +) +; +let +Patch +{ +hole +entry +} += +self +. +c_utf8_seq +( +& +utf8_seq +) +? +; +holes +. +push +( +hole +) +; +last_split += +self +. +c +. +fill_split +( +last_split +Some +( +entry +) +None +) +; +} +} +} +self +. +c +. +utf8_seqs += +Some +( +utf8_seqs +) +; +Ok +( +Patch +{ +hole +: +Hole +: +: +Many +( +holes +) +entry +: +initial_entry +. +unwrap +( +) +} +) +} +fn +c_utf8_seq +( +& +mut +self +seq +: +& +Utf8Sequence +) +- +> +Result +{ +if +self +. +c +. +compiled +. +is_reverse +{ +self +. +c_utf8_seq_ +( +seq +) +} +else +{ +self +. +c_utf8_seq_ +( +seq +. +into_iter +( +) +. +rev +( +) +) +} +} +fn +c_utf8_seq_ +< +' +r +I +> +( +& +mut +self +seq +: +I +) +- +> +Result +where +I +: +IntoIterator +< +Item += +& +' +r +Utf8Range +> +{ +let +mut +from_inst += +: +: +std +: +: +usize +: +: +MAX +; +let +mut +last_hole += +Hole +: +: +None +; +for +byte_range +in +seq +{ +let +key += +SuffixCacheKey +{ +from_inst +start +: +byte_range +. +start +end +: +byte_range +. +end +} +; +{ +let +pc += +self +. +c +. +insts +. +len +( +) +; +if +let +Some +( +cached_pc +) += +self +. +c +. +suffix_cache +. +get +( +key +pc +) +{ +from_inst += +cached_pc +; +continue +; +} +} +self +. +c +. +byte_classes +. +set_range +( +byte_range +. +start +byte_range +. +end +) +; +if +from_inst += += +: +: +std +: +: +usize +: +: +MAX +{ +last_hole += +self +. +c +. +push_hole +( +InstHole +: +: +Bytes +{ +start +: +byte_range +. +start +end +: +byte_range +. +end +} +) +; +} +else +{ +self +. +c +. +push_compiled +( +Inst +: +: +Bytes +( +InstBytes +{ +goto +: +from_inst +start +: +byte_range +. +start +end +: +byte_range +. +end +} +) +) +; +} +from_inst += +self +. +c +. +insts +. +len +( +) +. +checked_sub +( +1 +) +. +unwrap +( +) +; +debug_assert +! +( +from_inst +< +: +: +std +: +: +usize +: +: +MAX +) +; +} +debug_assert +! +( +from_inst +< +: +: +std +: +: +usize +: +: +MAX +) +; +Ok +( +Patch +{ +hole +: +last_hole +entry +: +from_inst +} +) +} +} +# +[ +derive +( +Debug +) +] +struct +SuffixCache +{ +sparse +: +Box +< +[ +usize +] +> +dense +: +Vec +< +SuffixCacheEntry +> +} +# +[ +derive +( +Clone +Copy +Debug +Default +Eq +Hash +PartialEq +) +] +struct +SuffixCacheEntry +{ +key +: +SuffixCacheKey +pc +: +InstPtr +} +# +[ +derive +( +Clone +Copy +Debug +Default +Eq +Hash +PartialEq +) +] +struct +SuffixCacheKey +{ +from_inst +: +InstPtr +start +: +u8 +end +: +u8 +} +impl +SuffixCache +{ +fn +new +( +size +: +usize +) +- +> +Self +{ +SuffixCache +{ +sparse +: +vec +! +[ +0usize +; +size +] +. +into +( +) +dense +: +Vec +: +: +with_capacity +( +size +) +} +} +fn +get +( +& +mut +self +key +: +SuffixCacheKey +pc +: +InstPtr +) +- +> +Option +< +InstPtr +> +{ +let +hash += +self +. +hash +( +& +key +) +; +let +pos += +& +mut +self +. +sparse +[ +hash +] +; +if +let +Some +( +entry +) += +self +. +dense +. +get +( +* +pos +) +{ +if +entry +. +key += += +key +{ +return +Some +( +entry +. +pc +) +; +} +} +* +pos += +self +. +dense +. +len +( +) +; +self +. +dense +. +push +( +SuffixCacheEntry +{ +key +pc +} +) +; +None +} +fn +clear +( +& +mut +self +) +{ +self +. +dense +. +clear +( +) +; +} +fn +hash +( +& +self +suffix +: +& +SuffixCacheKey +) +- +> +usize +{ +const +FNV_PRIME +: +u64 += +1_099_511_628_211 +; +let +mut +h += +14_695_981_039_346_656_037 +; +h += +( +h +^ +( +suffix +. +from_inst +as +u64 +) +) +. +wrapping_mul +( +FNV_PRIME +) +; +h += +( +h +^ +( +suffix +. +start +as +u64 +) +) +. +wrapping_mul +( +FNV_PRIME +) +; +h += +( +h +^ +( +suffix +. +end +as +u64 +) +) +. +wrapping_mul +( +FNV_PRIME +) +; +( +h +as +usize +) +% +self +. +sparse +. +len +( +) +} +} +struct +ByteClassSet +( +[ +bool +; +256 +] +) +; +impl +ByteClassSet +{ +fn +new +( +) +- +> +Self +{ +ByteClassSet +( +[ +false +; +256 +] +) +} +fn +set_range +( +& +mut +self +start +: +u8 +end +: +u8 +) +{ +debug_assert +! +( +start +< += +end +) +; +if +start +> +0 +{ +self +. +0 +[ +start +as +usize +- +1 +] += +true +; +} +self +. +0 +[ +end +as +usize +] += +true +; +} +fn +set_word_boundary +( +& +mut +self +) +{ +let +iswb += +is_word_byte +; +let +mut +b1 +: +u16 += +0 +; +let +mut +b2 +: +u16 +; +while +b1 +< += +255 +{ +b2 += +b1 ++ +1 +; +while +b2 +< += +255 +& +& +iswb +( +b1 +as +u8 +) += += +iswb +( +b2 +as +u8 +) +{ +b2 ++ += +1 +; +} +self +. +set_range +( +b1 +as +u8 +( +b2 +- +1 +) +as +u8 +) +; +b1 += +b2 +; +} +} +fn +byte_classes +( +& +self +) +- +> +Vec +< +u8 +> +{ +let +mut +byte_classes += +vec +! +[ +0 +; +256 +] +; +let +mut +class += +0u8 +; +let +mut +i += +0 +; +loop +{ +byte_classes +[ +i +] += +class +as +u8 +; +if +i +> += +255 +{ +break +; +} +if +self +. +0 +[ +i +] +{ +class += +class +. +checked_add +( +1 +) +. +unwrap +( +) +; +} +i ++ += +1 +; +} +byte_classes +} +} +impl +fmt +: +: +Debug +for +ByteClassSet +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +f +. +debug_tuple +( +" +ByteClassSet +" +) +. +field +( +& +& +self +. +0 +[ +. +. +] +) +. +finish +( +) +} +} +fn +u32_to_usize +( +n +: +u32 +) +- +> +usize +{ +if +( +n +as +u64 +) +> +( +: +: +std +: +: +usize +: +: +MAX +as +u64 +) +{ +panic +! +( +" +BUG +: +{ +} +is +too +big +to +be +pointer +sized +" +n +) +} +n +as +usize +} +# +[ +cfg +( +test +) +] +mod +tests +{ +use +super +: +: +ByteClassSet +; +# +[ +test +] +fn +byte_classes +( +) +{ +let +mut +set += +ByteClassSet +: +: +new +( +) +; +set +. +set_range +( +b +' +a +' +b +' +z +' +) +; +let +classes += +set +. +byte_classes +( +) +; +assert_eq +! +( +classes +[ +0 +] +0 +) +; +assert_eq +! +( +classes +[ +1 +] +0 +) +; +assert_eq +! +( +classes +[ +2 +] +0 +) +; +assert_eq +! +( +classes +[ +b +' +a +' +as +usize +- +1 +] +0 +) +; +assert_eq +! +( +classes +[ +b +' +a +' +as +usize +] +1 +) +; +assert_eq +! +( +classes +[ +b +' +m +' +as +usize +] +1 +) +; +assert_eq +! +( +classes +[ +b +' +z +' +as +usize +] +1 +) +; +assert_eq +! +( +classes +[ +b +' +z +' +as +usize ++ +1 +] +2 +) +; +assert_eq +! +( +classes +[ +254 +] +2 +) +; +assert_eq +! +( +classes +[ +255 +] +2 +) +; +let +mut +set += +ByteClassSet +: +: +new +( +) +; +set +. +set_range +( +0 +2 +) +; +set +. +set_range +( +4 +6 +) +; +let +classes += +set +. +byte_classes +( +) +; +assert_eq +! +( +classes +[ +0 +] +0 +) +; +assert_eq +! +( +classes +[ +1 +] +0 +) +; +assert_eq +! +( +classes +[ +2 +] +0 +) +; +assert_eq +! +( +classes +[ +3 +] +1 +) +; +assert_eq +! +( +classes +[ +4 +] +2 +) +; +assert_eq +! +( +classes +[ +5 +] +2 +) +; +assert_eq +! +( +classes +[ +6 +] +2 +) +; +assert_eq +! +( +classes +[ +7 +] +3 +) +; +assert_eq +! +( +classes +[ +255 +] +3 +) +; +} +# +[ +test +] +fn +full_byte_classes +( +) +{ +let +mut +set += +ByteClassSet +: +: +new +( +) +; +for +i +in +0 +. +. +256u16 +{ +set +. +set_range +( +i +as +u8 +i +as +u8 +) +; +} +assert_eq +! +( +set +. +byte_classes +( +) +. +len +( +) +256 +) +; +} +} diff --git a/third_party/rust/regex/src/dfa.rs b/third_party/rust/regex/src/dfa.rs new file mode 100644 index 0000000000000..a2918a5639fcc --- /dev/null +++ b/third_party/rust/regex/src/dfa.rs @@ -0,0 +1,8426 @@ +use +std +: +: +collections +: +: +HashMap +; +use +std +: +: +fmt +; +use +std +: +: +iter +: +: +repeat +; +use +std +: +: +mem +; +use +std +: +: +sync +: +: +Arc +; +use +crate +: +: +exec +: +: +ProgramCache +; +use +crate +: +: +prog +: +: +{ +Inst +Program +} +; +use +crate +: +: +sparse +: +: +SparseSet +; +pub +fn +can_exec +( +insts +: +& +Program +) +- +> +bool +{ +use +crate +: +: +prog +: +: +Inst +: +: +* +; +if +insts +. +dfa_size_limit += += +0 +| +| +insts +. +len +( +) +> +: +: +std +: +: +i32 +: +: +MAX +as +usize +{ +return +false +; +} +for +inst +in +insts +{ +match +* +inst +{ +Char +( +_ +) +| +Ranges +( +_ +) += +> +return +false +EmptyLook +( +_ +) +| +Match +( +_ +) +| +Save +( +_ +) +| +Split +( +_ +) +| +Bytes +( +_ +) += +> +{ +} +} +} +true +} +# +[ +derive +( +Debug +) +] +pub +struct +Cache +{ +inner +: +CacheInner +qcur +: +SparseSet +qnext +: +SparseSet +} +# +[ +derive +( +Debug +) +] +struct +CacheInner +{ +compiled +: +StateMap +trans +: +Transitions +start_states +: +Vec +< +StatePtr +> +stack +: +Vec +< +InstPtr +> +flush_count +: +u64 +size +: +usize +insts_scratch_space +: +Vec +< +u8 +> +} +# +[ +derive +( +Clone +) +] +struct +Transitions +{ +table +: +Vec +< +StatePtr +> +num_byte_classes +: +usize +} +# +[ +derive +( +Debug +) +] +pub +struct +Fsm +< +' +a +> +{ +prog +: +& +' +a +Program +start +: +StatePtr +at +: +usize +quit_after_match +: +bool +last_match_si +: +StatePtr +last_cache_flush +: +usize +cache +: +& +' +a +mut +CacheInner +} +# +[ +derive +( +Clone +Debug +) +] +pub +enum +Result +< +T +> +{ +Match +( +T +) +NoMatch +( +usize +) +Quit +} +impl +< +T +> +Result +< +T +> +{ +pub +fn +is_match +( +& +self +) +- +> +bool +{ +match +* +self +{ +Result +: +: +Match +( +_ +) += +> +true +Result +: +: +NoMatch +( +_ +) +| +Result +: +: +Quit += +> +false +} +} +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +pub +fn +map +< +U +F +: +FnMut +( +T +) +- +> +U +> +( +self +mut +f +: +F +) +- +> +Result +< +U +> +{ +match +self +{ +Result +: +: +Match +( +t +) += +> +Result +: +: +Match +( +f +( +t +) +) +Result +: +: +NoMatch +( +x +) += +> +Result +: +: +NoMatch +( +x +) +Result +: +: +Quit += +> +Result +: +: +Quit +} +} +fn +set_non_match +( +self +at +: +usize +) +- +> +Result +< +T +> +{ +match +self +{ +Result +: +: +NoMatch +( +_ +) += +> +Result +: +: +NoMatch +( +at +) +r += +> +r +} +} +} +# +[ +derive +( +Clone +Eq +Hash +PartialEq +) +] +struct +State +{ +data +: +Arc +< +[ +u8 +] +> +} +type +InstPtr += +u32 +; +fn +push_inst_ptr +( +data +: +& +mut +Vec +< +u8 +> +prev +: +& +mut +InstPtr +ip +: +InstPtr +) +{ +let +delta += +( +ip +as +i32 +) +- +( +* +prev +as +i32 +) +; +write_vari32 +( +data +delta +) +; +* +prev += +ip +; +} +struct +InstPtrs +< +' +a +> +{ +base +: +usize +data +: +& +' +a +[ +u8 +] +} +impl +< +' +a +> +Iterator +for +InstPtrs +< +' +a +> +{ +type +Item += +usize +; +fn +next +( +& +mut +self +) +- +> +Option +< +usize +> +{ +if +self +. +data +. +is_empty +( +) +{ +return +None +; +} +let +( +delta +nread +) += +read_vari32 +( +self +. +data +) +; +let +base += +self +. +base +as +i32 ++ +delta +; +debug_assert +! +( +base +> += +0 +) +; +debug_assert +! +( +nread +> +0 +) +; +self +. +data += +& +self +. +data +[ +nread +. +. +] +; +self +. +base += +base +as +usize +; +Some +( +self +. +base +) +} +} +impl +State +{ +fn +flags +( +& +self +) +- +> +StateFlags +{ +StateFlags +( +self +. +data +[ +0 +] +) +} +fn +inst_ptrs +( +& +self +) +- +> +InstPtrs +< +' +_ +> +{ +InstPtrs +{ +base +: +0 +data +: +& +self +. +data +[ +1 +. +. +] +} +} +} +type +StatePtr += +u32 +; +const +STATE_UNKNOWN +: +StatePtr += +1 +< +< +31 +; +const +STATE_DEAD +: +StatePtr += +STATE_UNKNOWN ++ +1 +; +const +STATE_QUIT +: +StatePtr += +STATE_DEAD ++ +1 +; +const +STATE_START +: +StatePtr += +1 +< +< +30 +; +const +STATE_MATCH +: +StatePtr += +1 +< +< +29 +; +const +STATE_MAX +: +StatePtr += +STATE_MATCH +- +1 +; +# +[ +derive +( +Copy +Clone +Debug +) +] +struct +Byte +( +u16 +) +; +# +[ +derive +( +Clone +Copy +Eq +Debug +Default +Hash +PartialEq +) +] +struct +EmptyFlags +{ +start +: +bool +end +: +bool +start_line +: +bool +end_line +: +bool +word_boundary +: +bool +not_word_boundary +: +bool +} +# +[ +derive +( +Clone +Copy +Eq +Default +Hash +PartialEq +) +] +struct +StateFlags +( +u8 +) +; +impl +Cache +{ +pub +fn +new +( +prog +: +& +Program +) +- +> +Self +{ +let +num_byte_classes += +( +prog +. +byte_classes +[ +255 +] +as +usize ++ +1 +) ++ +1 +; +let +starts += +vec +! +[ +STATE_UNKNOWN +; +256 +] +; +let +mut +cache += +Cache +{ +inner +: +CacheInner +{ +compiled +: +StateMap +: +: +new +( +num_byte_classes +) +trans +: +Transitions +: +: +new +( +num_byte_classes +) +start_states +: +starts +stack +: +vec +! +[ +] +flush_count +: +0 +size +: +0 +insts_scratch_space +: +vec +! +[ +] +} +qcur +: +SparseSet +: +: +new +( +prog +. +insts +. +len +( +) +) +qnext +: +SparseSet +: +: +new +( +prog +. +insts +. +len +( +) +) +} +; +cache +. +inner +. +reset_size +( +) +; +cache +} +} +impl +CacheInner +{ +fn +reset_size +( +& +mut +self +) +{ +self +. +size += +( +self +. +start_states +. +len +( +) +* +mem +: +: +size_of +: +: +< +StatePtr +> +( +) +) ++ +( +self +. +stack +. +len +( +) +* +mem +: +: +size_of +: +: +< +InstPtr +> +( +) +) +; +} +} +impl +< +' +a +> +Fsm +< +' +a +> +{ +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +pub +fn +forward +( +prog +: +& +' +a +Program +cache +: +& +ProgramCache +quit_after_match +: +bool +text +: +& +[ +u8 +] +at +: +usize +) +- +> +Result +< +usize +> +{ +let +mut +cache += +cache +. +borrow_mut +( +) +; +let +cache += +& +mut +cache +. +dfa +; +let +mut +dfa += +Fsm +{ +prog +start +: +0 +at +quit_after_match +last_match_si +: +STATE_UNKNOWN +last_cache_flush +: +at +cache +: +& +mut +cache +. +inner +} +; +let +( +empty_flags +state_flags +) += +dfa +. +start_flags +( +text +at +) +; +dfa +. +start += +match +dfa +. +start_state +( +& +mut +cache +. +qcur +empty_flags +state_flags +) +{ +None += +> +return +Result +: +: +Quit +Some +( +STATE_DEAD +) += +> +return +Result +: +: +NoMatch +( +at +) +Some +( +si +) += +> +si +} +; +debug_assert +! +( +dfa +. +start +! += +STATE_UNKNOWN +) +; +dfa +. +exec_at +( +& +mut +cache +. +qcur +& +mut +cache +. +qnext +text +) +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +pub +fn +reverse +( +prog +: +& +' +a +Program +cache +: +& +ProgramCache +quit_after_match +: +bool +text +: +& +[ +u8 +] +at +: +usize +) +- +> +Result +< +usize +> +{ +let +mut +cache += +cache +. +borrow_mut +( +) +; +let +cache += +& +mut +cache +. +dfa_reverse +; +let +mut +dfa += +Fsm +{ +prog +start +: +0 +at +quit_after_match +last_match_si +: +STATE_UNKNOWN +last_cache_flush +: +at +cache +: +& +mut +cache +. +inner +} +; +let +( +empty_flags +state_flags +) += +dfa +. +start_flags_reverse +( +text +at +) +; +dfa +. +start += +match +dfa +. +start_state +( +& +mut +cache +. +qcur +empty_flags +state_flags +) +{ +None += +> +return +Result +: +: +Quit +Some +( +STATE_DEAD +) += +> +return +Result +: +: +NoMatch +( +at +) +Some +( +si +) += +> +si +} +; +debug_assert +! +( +dfa +. +start +! += +STATE_UNKNOWN +) +; +dfa +. +exec_at_reverse +( +& +mut +cache +. +qcur +& +mut +cache +. +qnext +text +) +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +pub +fn +forward_many +( +prog +: +& +' +a +Program +cache +: +& +ProgramCache +matches +: +& +mut +[ +bool +] +text +: +& +[ +u8 +] +at +: +usize +) +- +> +Result +< +usize +> +{ +debug_assert +! +( +matches +. +len +( +) += += +prog +. +matches +. +len +( +) +) +; +let +mut +cache += +cache +. +borrow_mut +( +) +; +let +cache += +& +mut +cache +. +dfa +; +let +mut +dfa += +Fsm +{ +prog +start +: +0 +at +quit_after_match +: +false +last_match_si +: +STATE_UNKNOWN +last_cache_flush +: +at +cache +: +& +mut +cache +. +inner +} +; +let +( +empty_flags +state_flags +) += +dfa +. +start_flags +( +text +at +) +; +dfa +. +start += +match +dfa +. +start_state +( +& +mut +cache +. +qcur +empty_flags +state_flags +) +{ +None += +> +return +Result +: +: +Quit +Some +( +STATE_DEAD +) += +> +return +Result +: +: +NoMatch +( +at +) +Some +( +si +) += +> +si +} +; +debug_assert +! +( +dfa +. +start +! += +STATE_UNKNOWN +) +; +let +result += +dfa +. +exec_at +( +& +mut +cache +. +qcur +& +mut +cache +. +qnext +text +) +; +if +result +. +is_match +( +) +{ +if +matches +. +len +( +) += += +1 +{ +matches +[ +0 +] += +true +; +} +else +{ +debug_assert +! +( +dfa +. +last_match_si +! += +STATE_UNKNOWN +) +; +debug_assert +! +( +dfa +. +last_match_si +! += +STATE_DEAD +) +; +for +ip +in +dfa +. +state +( +dfa +. +last_match_si +) +. +inst_ptrs +( +) +{ +if +let +Inst +: +: +Match +( +slot +) += +dfa +. +prog +[ +ip +] +{ +matches +[ +slot +] += +true +; +} +} +} +} +result +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +exec_at +( +& +mut +self +qcur +: +& +mut +SparseSet +qnext +: +& +mut +SparseSet +text +: +& +[ +u8 +] +) +- +> +Result +< +usize +> +{ +debug_assert +! +( +! +self +. +prog +. +is_reverse +) +; +let +mut +result += +Result +: +: +NoMatch +( +self +. +at +) +; +let +( +mut +prev_si +mut +next_si +) += +( +self +. +start +self +. +start +) +; +let +mut +at += +self +. +at +; +while +at +< +text +. +len +( +) +{ +while +next_si +< += +STATE_MAX +& +& +at +< +text +. +len +( +) +{ +prev_si += +unsafe +{ +self +. +next_si +( +next_si +text +at +) +} +; +at ++ += +1 +; +if +prev_si +> +STATE_MAX +| +| +at ++ +2 +> += +text +. +len +( +) +{ +mem +: +: +swap +( +& +mut +prev_si +& +mut +next_si +) +; +break +; +} +next_si += +unsafe +{ +self +. +next_si +( +prev_si +text +at +) +} +; +at ++ += +1 +; +if +next_si +> +STATE_MAX +{ +break +; +} +prev_si += +unsafe +{ +self +. +next_si +( +next_si +text +at +) +} +; +at ++ += +1 +; +if +prev_si +> +STATE_MAX +{ +mem +: +: +swap +( +& +mut +prev_si +& +mut +next_si +) +; +break +; +} +next_si += +unsafe +{ +self +. +next_si +( +prev_si +text +at +) +} +; +at ++ += +1 +; +} +if +next_si +& +STATE_MATCH +> +0 +{ +next_si +& += +! +STATE_MATCH +; +result += +Result +: +: +Match +( +at +- +1 +) +; +if +self +. +quit_after_match +{ +return +result +; +} +self +. +last_match_si += +next_si +; +prev_si += +next_si +; +if +self +. +prog +. +matches +. +len +( +) +> +1 +{ +let +state += +self +. +state +( +next_si +) +; +let +just_matches += +state +. +inst_ptrs +( +) +. +all +( +| +ip +| +self +. +prog +[ +ip +] +. +is_match +( +) +) +; +if +just_matches +{ +return +result +; +} +} +let +cur += +at +; +while +( +next_si +& +! +STATE_MATCH +) += += +prev_si +& +& +at ++ +2 +< +text +. +len +( +) +{ +next_si += +unsafe +{ +self +. +next_si +( +next_si +& +! +STATE_MATCH +text +at +) +} +; +at ++ += +1 +; +} +if +at +> +cur +{ +result += +Result +: +: +Match +( +at +- +2 +) +; +} +} +else +if +next_si +& +STATE_START +> +0 +{ +debug_assert +! +( +self +. +has_prefix +( +) +) +; +next_si +& += +! +STATE_START +; +prev_si += +next_si +; +at += +match +self +. +prefix_at +( +text +at +) +{ +None += +> +return +Result +: +: +NoMatch +( +text +. +len +( +) +) +Some +( +i +) += +> +i +} +; +} +else +if +next_si +> += +STATE_UNKNOWN +{ +if +next_si += += +STATE_QUIT +{ +return +Result +: +: +Quit +; +} +let +byte += +Byte +: +: +byte +( +text +[ +at +- +1 +] +) +; +prev_si +& += +STATE_MAX +; +self +. +at += +at +; +next_si += +match +self +. +next_state +( +qcur +qnext +prev_si +byte +) +{ +None += +> +return +Result +: +: +Quit +Some +( +STATE_DEAD +) += +> +return +result +. +set_non_match +( +at +) +Some +( +si +) += +> +si +} +; +debug_assert +! +( +next_si +! += +STATE_UNKNOWN +) +; +if +next_si +& +STATE_MATCH +> +0 +{ +next_si +& += +! +STATE_MATCH +; +result += +Result +: +: +Match +( +at +- +1 +) +; +if +self +. +quit_after_match +{ +return +result +; +} +self +. +last_match_si += +next_si +; +} +prev_si += +next_si +; +} +else +{ +prev_si += +next_si +; +} +} +prev_si +& += +STATE_MAX +; +prev_si += +match +self +. +next_state +( +qcur +qnext +prev_si +Byte +: +: +eof +( +) +) +{ +None += +> +return +Result +: +: +Quit +Some +( +STATE_DEAD +) += +> +return +result +. +set_non_match +( +text +. +len +( +) +) +Some +( +si +) += +> +si +& +! +STATE_START +} +; +debug_assert +! +( +prev_si +! += +STATE_UNKNOWN +) +; +if +prev_si +& +STATE_MATCH +> +0 +{ +prev_si +& += +! +STATE_MATCH +; +self +. +last_match_si += +prev_si +; +result += +Result +: +: +Match +( +text +. +len +( +) +) +; +} +result +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +exec_at_reverse +( +& +mut +self +qcur +: +& +mut +SparseSet +qnext +: +& +mut +SparseSet +text +: +& +[ +u8 +] +) +- +> +Result +< +usize +> +{ +debug_assert +! +( +self +. +prog +. +is_reverse +) +; +let +mut +result += +Result +: +: +NoMatch +( +self +. +at +) +; +let +( +mut +prev_si +mut +next_si +) += +( +self +. +start +self +. +start +) +; +let +mut +at += +self +. +at +; +while +at +> +0 +{ +while +next_si +< += +STATE_MAX +& +& +at +> +0 +{ +at +- += +1 +; +prev_si += +unsafe +{ +self +. +next_si +( +next_si +text +at +) +} +; +if +prev_si +> +STATE_MAX +| +| +at +< += +4 +{ +mem +: +: +swap +( +& +mut +prev_si +& +mut +next_si +) +; +break +; +} +at +- += +1 +; +next_si += +unsafe +{ +self +. +next_si +( +prev_si +text +at +) +} +; +if +next_si +> +STATE_MAX +{ +break +; +} +at +- += +1 +; +prev_si += +unsafe +{ +self +. +next_si +( +next_si +text +at +) +} +; +if +prev_si +> +STATE_MAX +{ +mem +: +: +swap +( +& +mut +prev_si +& +mut +next_si +) +; +break +; +} +at +- += +1 +; +next_si += +unsafe +{ +self +. +next_si +( +prev_si +text +at +) +} +; +} +if +next_si +& +STATE_MATCH +> +0 +{ +next_si +& += +! +STATE_MATCH +; +result += +Result +: +: +Match +( +at ++ +1 +) +; +if +self +. +quit_after_match +{ +return +result +; +} +self +. +last_match_si += +next_si +; +prev_si += +next_si +; +let +cur += +at +; +while +( +next_si +& +! +STATE_MATCH +) += += +prev_si +& +& +at +> += +2 +{ +at +- += +1 +; +next_si += +unsafe +{ +self +. +next_si +( +next_si +& +! +STATE_MATCH +text +at +) +} +; +} +if +at +< +cur +{ +result += +Result +: +: +Match +( +at ++ +2 +) +; +} +} +else +if +next_si +> += +STATE_UNKNOWN +{ +if +next_si += += +STATE_QUIT +{ +return +Result +: +: +Quit +; +} +let +byte += +Byte +: +: +byte +( +text +[ +at +] +) +; +prev_si +& += +STATE_MAX +; +self +. +at += +at +; +next_si += +match +self +. +next_state +( +qcur +qnext +prev_si +byte +) +{ +None += +> +return +Result +: +: +Quit +Some +( +STATE_DEAD +) += +> +return +result +. +set_non_match +( +at +) +Some +( +si +) += +> +si +} +; +debug_assert +! +( +next_si +! += +STATE_UNKNOWN +) +; +if +next_si +& +STATE_MATCH +> +0 +{ +next_si +& += +! +STATE_MATCH +; +result += +Result +: +: +Match +( +at ++ +1 +) +; +if +self +. +quit_after_match +{ +return +result +; +} +self +. +last_match_si += +next_si +; +} +prev_si += +next_si +; +} +else +{ +prev_si += +next_si +; +} +} +prev_si += +match +self +. +next_state +( +qcur +qnext +prev_si +Byte +: +: +eof +( +) +) +{ +None += +> +return +Result +: +: +Quit +Some +( +STATE_DEAD +) += +> +return +result +. +set_non_match +( +0 +) +Some +( +si +) += +> +si +} +; +debug_assert +! +( +prev_si +! += +STATE_UNKNOWN +) +; +if +prev_si +& +STATE_MATCH +> +0 +{ +prev_si +& += +! +STATE_MATCH +; +self +. +last_match_si += +prev_si +; +result += +Result +: +: +Match +( +0 +) +; +} +result +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +unsafe +fn +next_si +( +& +self +si +: +StatePtr +text +: +& +[ +u8 +] +i +: +usize +) +- +> +StatePtr +{ +debug_assert +! +( +i +< +text +. +len +( +) +) +; +let +b += +* +text +. +get_unchecked +( +i +) +; +debug_assert +! +( +( +b +as +usize +) +< +self +. +prog +. +byte_classes +. +len +( +) +) +; +let +cls += +* +self +. +prog +. +byte_classes +. +get_unchecked +( +b +as +usize +) +; +self +. +cache +. +trans +. +next_unchecked +( +si +cls +as +usize +) +} +fn +exec_byte +( +& +mut +self +qcur +: +& +mut +SparseSet +qnext +: +& +mut +SparseSet +mut +si +: +StatePtr +b +: +Byte +) +- +> +Option +< +StatePtr +> +{ +use +crate +: +: +prog +: +: +Inst +: +: +* +; +qcur +. +clear +( +) +; +for +ip +in +self +. +state +( +si +) +. +inst_ptrs +( +) +{ +qcur +. +insert +( +ip +) +; +} +let +is_word_last += +self +. +state +( +si +) +. +flags +( +) +. +is_word +( +) +; +let +is_word += +b +. +is_ascii_word +( +) +; +if +self +. +state +( +si +) +. +flags +( +) +. +has_empty +( +) +{ +let +mut +flags += +EmptyFlags +: +: +default +( +) +; +if +b +. +is_eof +( +) +{ +flags +. +end += +true +; +flags +. +end_line += +true +; +} +else +if +b +. +as_byte +( +) +. +map_or +( +false +| +b +| +b += += +b +' +\ +n +' +) +{ +flags +. +end_line += +true +; +} +if +is_word_last += += +is_word +{ +flags +. +not_word_boundary += +true +; +} +else +{ +flags +. +word_boundary += +true +; +} +qnext +. +clear +( +) +; +for +& +ip +in +& +* +qcur +{ +self +. +follow_epsilons +( +usize_to_u32 +( +ip +) +qnext +flags +) +; +} +mem +: +: +swap +( +qcur +qnext +) +; +} +let +mut +empty_flags += +EmptyFlags +: +: +default +( +) +; +let +mut +state_flags += +StateFlags +: +: +default +( +) +; +empty_flags +. +start_line += +b +. +as_byte +( +) +. +map_or +( +false +| +b +| +b += += +b +' +\ +n +' +) +; +if +b +. +is_ascii_word +( +) +{ +state_flags +. +set_word +( +) +; +} +qnext +. +clear +( +) +; +for +& +ip +in +& +* +qcur +{ +match +self +. +prog +[ +ip +as +usize +] +{ +Char +( +_ +) +| +Ranges +( +_ +) += +> +unreachable +! +( +) +Save +( +_ +) +| +Split +( +_ +) +| +EmptyLook +( +_ +) += +> +{ +} +Match +( +_ +) += +> +{ +state_flags +. +set_match +( +) +; +if +! +self +. +continue_past_first_match +( +) +{ +break +; +} +else +if +self +. +prog +. +matches +. +len +( +) +> +1 +& +& +! +qnext +. +contains +( +ip +as +usize +) +{ +qnext +. +insert +( +ip +) +; +} +} +Bytes +( +ref +inst +) += +> +{ +if +b +. +as_byte +( +) +. +map_or +( +false +| +b +| +inst +. +matches +( +b +) +) +{ +self +. +follow_epsilons +( +inst +. +goto +as +InstPtr +qnext +empty_flags +) +; +} +} +} +} +let +cache += +if +b +. +is_eof +( +) +& +& +self +. +prog +. +matches +. +len +( +) +> +1 +{ +mem +: +: +swap +( +qcur +qnext +) +; +false +} +else +{ +true +} +; +let +mut +next += +match +self +. +cached_state +( +qnext +state_flags +Some +( +& +mut +si +) +) +{ +None += +> +return +None +Some +( +next +) += +> +next +} +; +if +( +self +. +start +& +! +STATE_START +) += += +next +{ +debug_assert +! +( +! +self +. +state +( +next +) +. +flags +( +) +. +is_match +( +) +) +; +next += +self +. +start_ptr +( +next +) +; +} +if +next +< += +STATE_MAX +& +& +self +. +state +( +next +) +. +flags +( +) +. +is_match +( +) +{ +next +| += +STATE_MATCH +; +} +debug_assert +! +( +next +! += +STATE_UNKNOWN +) +; +if +cache +{ +let +cls += +self +. +byte_class +( +b +) +; +self +. +cache +. +trans +. +set_next +( +si +cls +next +) +; +} +Some +( +next +) +} +fn +follow_epsilons +( +& +mut +self +ip +: +InstPtr +q +: +& +mut +SparseSet +flags +: +EmptyFlags +) +{ +use +crate +: +: +prog +: +: +EmptyLook +: +: +* +; +use +crate +: +: +prog +: +: +Inst +: +: +* +; +self +. +cache +. +stack +. +push +( +ip +) +; +while +let +Some +( +mut +ip +) += +self +. +cache +. +stack +. +pop +( +) +{ +loop +{ +if +q +. +contains +( +ip +as +usize +) +{ +break +; +} +q +. +insert +( +ip +as +usize +) +; +match +self +. +prog +[ +ip +as +usize +] +{ +Char +( +_ +) +| +Ranges +( +_ +) += +> +unreachable +! +( +) +Match +( +_ +) +| +Bytes +( +_ +) += +> +{ +break +; +} +EmptyLook +( +ref +inst +) += +> +{ +match +inst +. +look +{ +StartLine +if +flags +. +start_line += +> +{ +ip += +inst +. +goto +as +InstPtr +; +} +EndLine +if +flags +. +end_line += +> +{ +ip += +inst +. +goto +as +InstPtr +; +} +StartText +if +flags +. +start += +> +{ +ip += +inst +. +goto +as +InstPtr +; +} +EndText +if +flags +. +end += +> +{ +ip += +inst +. +goto +as +InstPtr +; +} +WordBoundaryAscii +if +flags +. +word_boundary += +> +{ +ip += +inst +. +goto +as +InstPtr +; +} +NotWordBoundaryAscii +if +flags +. +not_word_boundary += +> +{ +ip += +inst +. +goto +as +InstPtr +; +} +WordBoundary +if +flags +. +word_boundary += +> +{ +ip += +inst +. +goto +as +InstPtr +; +} +NotWordBoundary +if +flags +. +not_word_boundary += +> +{ +ip += +inst +. +goto +as +InstPtr +; +} +StartLine +| +EndLine +| +StartText +| +EndText +| +WordBoundaryAscii +| +NotWordBoundaryAscii +| +WordBoundary +| +NotWordBoundary += +> +{ +break +; +} +} +} +Save +( +ref +inst +) += +> +{ +ip += +inst +. +goto +as +InstPtr +; +} +Split +( +ref +inst +) += +> +{ +self +. +cache +. +stack +. +push +( +inst +. +goto2 +as +InstPtr +) +; +ip += +inst +. +goto1 +as +InstPtr +; +} +} +} +} +} +fn +cached_state +( +& +mut +self +q +: +& +SparseSet +mut +state_flags +: +StateFlags +current_state +: +Option +< +& +mut +StatePtr +> +) +- +> +Option +< +StatePtr +> +{ +let +key += +match +self +. +cached_state_key +( +q +& +mut +state_flags +) +{ +None += +> +return +Some +( +STATE_DEAD +) +Some +( +v +) += +> +v +} +; +if +let +Some +( +si +) += +self +. +cache +. +compiled +. +get_ptr +( +& +key +) +{ +return +Some +( +si +) +; +} +if +self +. +approximate_size +( +) +> +self +. +prog +. +dfa_size_limit +& +& +! +self +. +clear_cache_and_save +( +current_state +) +{ +return +None +; +} +self +. +add_state +( +key +) +} +fn +cached_state_key +( +& +mut +self +q +: +& +SparseSet +state_flags +: +& +mut +StateFlags +) +- +> +Option +< +State +> +{ +use +crate +: +: +prog +: +: +Inst +: +: +* +; +let +mut +insts += +mem +: +: +replace +( +& +mut +self +. +cache +. +insts_scratch_space +vec +! +[ +] +) +; +insts +. +clear +( +) +; +insts +. +push +( +0 +) +; +let +mut +prev += +0 +; +for +& +ip +in +q +{ +let +ip += +usize_to_u32 +( +ip +) +; +match +self +. +prog +[ +ip +as +usize +] +{ +Char +( +_ +) +| +Ranges +( +_ +) += +> +unreachable +! +( +) +Save +( +_ +) +| +Split +( +_ +) += +> +{ +} +Bytes +( +_ +) += +> +push_inst_ptr +( +& +mut +insts +& +mut +prev +ip +) +EmptyLook +( +_ +) += +> +{ +state_flags +. +set_empty +( +) +; +push_inst_ptr +( +& +mut +insts +& +mut +prev +ip +) +} +Match +( +_ +) += +> +{ +push_inst_ptr +( +& +mut +insts +& +mut +prev +ip +) +; +if +! +self +. +continue_past_first_match +( +) +{ +break +; +} +} +} +} +let +opt_state += +if +insts +. +len +( +) += += +1 +& +& +! +state_flags +. +is_match +( +) +{ +None +} +else +{ +let +StateFlags +( +f +) += +* +state_flags +; +insts +[ +0 +] += +f +; +Some +( +State +{ +data +: +Arc +: +: +from +( +& +* +insts +) +} +) +} +; +self +. +cache +. +insts_scratch_space += +insts +; +opt_state +} +fn +clear_cache_and_save +( +& +mut +self +current_state +: +Option +< +& +mut +StatePtr +> +) +- +> +bool +{ +if +self +. +cache +. +compiled +. +is_empty +( +) +{ +return +true +; +} +match +current_state +{ +None += +> +self +. +clear_cache +( +) +Some +( +si +) += +> +{ +let +cur += +self +. +state +( +* +si +) +. +clone +( +) +; +if +! +self +. +clear_cache +( +) +{ +return +false +; +} +* +si += +self +. +restore_state +( +cur +) +. +unwrap +( +) +; +true +} +} +} +fn +clear_cache +( +& +mut +self +) +- +> +bool +{ +let +nstates += +self +. +cache +. +compiled +. +len +( +) +; +if +self +. +cache +. +flush_count +> += +3 +& +& +self +. +at +> += +self +. +last_cache_flush +& +& +( +self +. +at +- +self +. +last_cache_flush +) +< += +10 +* +nstates +{ +return +false +; +} +self +. +last_cache_flush += +self +. +at +; +self +. +cache +. +flush_count ++ += +1 +; +let +start += +self +. +state +( +self +. +start +& +! +STATE_START +) +. +clone +( +) +; +let +last_match += +if +self +. +last_match_si +< += +STATE_MAX +{ +Some +( +self +. +state +( +self +. +last_match_si +) +. +clone +( +) +) +} +else +{ +None +} +; +self +. +cache +. +reset_size +( +) +; +self +. +cache +. +trans +. +clear +( +) +; +self +. +cache +. +compiled +. +clear +( +) +; +for +s +in +& +mut +self +. +cache +. +start_states +{ +* +s += +STATE_UNKNOWN +; +} +let +start_ptr += +self +. +restore_state +( +start +) +. +unwrap +( +) +; +self +. +start += +self +. +start_ptr +( +start_ptr +) +; +if +let +Some +( +last_match +) += +last_match +{ +self +. +last_match_si += +self +. +restore_state +( +last_match +) +. +unwrap +( +) +; +} +true +} +fn +restore_state +( +& +mut +self +state +: +State +) +- +> +Option +< +StatePtr +> +{ +if +let +Some +( +si +) += +self +. +cache +. +compiled +. +get_ptr +( +& +state +) +{ +return +Some +( +si +) +; +} +self +. +add_state +( +state +) +} +fn +next_state +( +& +mut +self +qcur +: +& +mut +SparseSet +qnext +: +& +mut +SparseSet +si +: +StatePtr +b +: +Byte +) +- +> +Option +< +StatePtr +> +{ +if +si += += +STATE_DEAD +{ +return +Some +( +STATE_DEAD +) +; +} +match +self +. +cache +. +trans +. +next +( +si +self +. +byte_class +( +b +) +) +{ +STATE_UNKNOWN += +> +self +. +exec_byte +( +qcur +qnext +si +b +) +STATE_QUIT += +> +None +nsi += +> +Some +( +nsi +) +} +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +start_state +( +& +mut +self +q +: +& +mut +SparseSet +empty_flags +: +EmptyFlags +state_flags +: +StateFlags +) +- +> +Option +< +StatePtr +> +{ +let +flagi += +{ +( +( +( +empty_flags +. +start +as +u8 +) +< +< +0 +) +| +( +( +empty_flags +. +end +as +u8 +) +< +< +1 +) +| +( +( +empty_flags +. +start_line +as +u8 +) +< +< +2 +) +| +( +( +empty_flags +. +end_line +as +u8 +) +< +< +3 +) +| +( +( +empty_flags +. +word_boundary +as +u8 +) +< +< +4 +) +| +( +( +empty_flags +. +not_word_boundary +as +u8 +) +< +< +5 +) +| +( +( +state_flags +. +is_word +( +) +as +u8 +) +< +< +6 +) +) +as +usize +} +; +match +self +. +cache +. +start_states +[ +flagi +] +{ +STATE_UNKNOWN += +> +{ +} +si += +> +return +Some +( +si +) +} +q +. +clear +( +) +; +let +start += +usize_to_u32 +( +self +. +prog +. +start +) +; +self +. +follow_epsilons +( +start +q +empty_flags +) +; +let +sp += +match +self +. +cached_state +( +q +state_flags +None +) +{ +None += +> +return +None +Some +( +sp +) += +> +self +. +start_ptr +( +sp +) +} +; +self +. +cache +. +start_states +[ +flagi +] += +sp +; +Some +( +sp +) +} +fn +start_flags +( +& +self +text +: +& +[ +u8 +] +at +: +usize +) +- +> +( +EmptyFlags +StateFlags +) +{ +let +mut +empty_flags += +EmptyFlags +: +: +default +( +) +; +let +mut +state_flags += +StateFlags +: +: +default +( +) +; +empty_flags +. +start += +at += += +0 +; +empty_flags +. +end += +text +. +is_empty +( +) +; +empty_flags +. +start_line += +at += += +0 +| +| +text +[ +at +- +1 +] += += +b +' +\ +n +' +; +empty_flags +. +end_line += +text +. +is_empty +( +) +; +let +is_word_last += +at +> +0 +& +& +Byte +: +: +byte +( +text +[ +at +- +1 +] +) +. +is_ascii_word +( +) +; +let +is_word += +at +< +text +. +len +( +) +& +& +Byte +: +: +byte +( +text +[ +at +] +) +. +is_ascii_word +( +) +; +if +is_word_last +{ +state_flags +. +set_word +( +) +; +} +if +is_word += += +is_word_last +{ +empty_flags +. +not_word_boundary += +true +; +} +else +{ +empty_flags +. +word_boundary += +true +; +} +( +empty_flags +state_flags +) +} +fn +start_flags_reverse +( +& +self +text +: +& +[ +u8 +] +at +: +usize +) +- +> +( +EmptyFlags +StateFlags +) +{ +let +mut +empty_flags += +EmptyFlags +: +: +default +( +) +; +let +mut +state_flags += +StateFlags +: +: +default +( +) +; +empty_flags +. +start += +at += += +text +. +len +( +) +; +empty_flags +. +end += +text +. +is_empty +( +) +; +empty_flags +. +start_line += +at += += +text +. +len +( +) +| +| +text +[ +at +] += += +b +' +\ +n +' +; +empty_flags +. +end_line += +text +. +is_empty +( +) +; +let +is_word_last += +at +< +text +. +len +( +) +& +& +Byte +: +: +byte +( +text +[ +at +] +) +. +is_ascii_word +( +) +; +let +is_word += +at +> +0 +& +& +Byte +: +: +byte +( +text +[ +at +- +1 +] +) +. +is_ascii_word +( +) +; +if +is_word_last +{ +state_flags +. +set_word +( +) +; +} +if +is_word += += +is_word_last +{ +empty_flags +. +not_word_boundary += +true +; +} +else +{ +empty_flags +. +word_boundary += +true +; +} +( +empty_flags +state_flags +) +} +fn +state +( +& +self +si +: +StatePtr +) +- +> +& +State +{ +self +. +cache +. +compiled +. +get_state +( +si +) +. +unwrap +( +) +} +fn +add_state +( +& +mut +self +state +: +State +) +- +> +Option +< +StatePtr +> +{ +let +si += +match +self +. +cache +. +trans +. +add +( +) +{ +None += +> +return +None +Some +( +si +) += +> +si +} +; +if +self +. +prog +. +has_unicode_word_boundary +{ +for +b +in +128 +. +. +256 +{ +let +cls += +self +. +byte_class +( +Byte +: +: +byte +( +b +as +u8 +) +) +; +self +. +cache +. +trans +. +set_next +( +si +cls +STATE_QUIT +) +; +} +} +self +. +cache +. +size ++ += +self +. +cache +. +trans +. +state_heap_size +( +) ++ +state +. +data +. +len +( +) ++ +( +2 +* +mem +: +: +size_of +: +: +< +State +> +( +) +) ++ +mem +: +: +size_of +: +: +< +StatePtr +> +( +) +; +self +. +cache +. +compiled +. +insert +( +state +si +) +; +debug_assert +! +( +self +. +cache +. +compiled +. +len +( +) += += +self +. +cache +. +trans +. +num_states +( +) +) +; +Some +( +si +) +} +fn +prefix_at +( +& +self +text +: +& +[ +u8 +] +at +: +usize +) +- +> +Option +< +usize +> +{ +self +. +prog +. +prefixes +. +find +( +& +text +[ +at +. +. +] +) +. +map +( +| +( +s +_ +) +| +at ++ +s +) +} +fn +num_byte_classes +( +& +self +) +- +> +usize +{ +( +self +. +prog +. +byte_classes +[ +255 +] +as +usize ++ +1 +) ++ +1 +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +byte_class +( +& +self +b +: +Byte +) +- +> +usize +{ +match +b +. +as_byte +( +) +{ +None += +> +self +. +num_byte_classes +( +) +- +1 +Some +( +b +) += +> +self +. +u8_class +( +b +) +} +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +u8_class +( +& +self +b +: +u8 +) +- +> +usize +{ +self +. +prog +. +byte_classes +[ +b +as +usize +] +as +usize +} +fn +continue_past_first_match +( +& +self +) +- +> +bool +{ +self +. +prog +. +is_reverse +| +| +self +. +prog +. +matches +. +len +( +) +> +1 +} +fn +has_prefix +( +& +self +) +- +> +bool +{ +! +self +. +prog +. +is_reverse +& +& +! +self +. +prog +. +prefixes +. +is_empty +( +) +& +& +! +self +. +prog +. +is_anchored_start +} +fn +start_ptr +( +& +self +si +: +StatePtr +) +- +> +StatePtr +{ +if +self +. +has_prefix +( +) +{ +si +| +STATE_START +} +else +{ +si +} +} +fn +approximate_size +( +& +self +) +- +> +usize +{ +self +. +cache +. +size ++ +self +. +prog +. +approximate_size +( +) +} +} +# +[ +derive +( +Debug +) +] +struct +StateMap +{ +map +: +HashMap +< +State +StatePtr +> +states +: +Vec +< +State +> +num_byte_classes +: +usize +} +impl +StateMap +{ +fn +new +( +num_byte_classes +: +usize +) +- +> +StateMap +{ +StateMap +{ +map +: +HashMap +: +: +new +( +) +states +: +vec +! +[ +] +num_byte_classes +} +} +fn +len +( +& +self +) +- +> +usize +{ +self +. +states +. +len +( +) +} +fn +is_empty +( +& +self +) +- +> +bool +{ +self +. +states +. +is_empty +( +) +} +fn +get_ptr +( +& +self +state +: +& +State +) +- +> +Option +< +StatePtr +> +{ +self +. +map +. +get +( +state +) +. +cloned +( +) +} +fn +get_state +( +& +self +si +: +StatePtr +) +- +> +Option +< +& +State +> +{ +self +. +states +. +get +( +si +as +usize +/ +self +. +num_byte_classes +) +} +fn +insert +( +& +mut +self +state +: +State +si +: +StatePtr +) +{ +self +. +map +. +insert +( +state +. +clone +( +) +si +) +; +self +. +states +. +push +( +state +) +; +} +fn +clear +( +& +mut +self +) +{ +self +. +map +. +clear +( +) +; +self +. +states +. +clear +( +) +; +} +} +impl +Transitions +{ +fn +new +( +num_byte_classes +: +usize +) +- +> +Transitions +{ +Transitions +{ +table +: +vec +! +[ +] +num_byte_classes +} +} +fn +num_states +( +& +self +) +- +> +usize +{ +self +. +table +. +len +( +) +/ +self +. +num_byte_classes +} +fn +add +( +& +mut +self +) +- +> +Option +< +StatePtr +> +{ +let +si += +self +. +table +. +len +( +) +; +if +si +> +STATE_MAX +as +usize +{ +return +None +; +} +self +. +table +. +extend +( +repeat +( +STATE_UNKNOWN +) +. +take +( +self +. +num_byte_classes +) +) +; +Some +( +usize_to_u32 +( +si +) +) +} +fn +clear +( +& +mut +self +) +{ +self +. +table +. +clear +( +) +; +} +fn +set_next +( +& +mut +self +si +: +StatePtr +cls +: +usize +next +: +StatePtr +) +{ +self +. +table +[ +si +as +usize ++ +cls +] += +next +; +} +fn +next +( +& +self +si +: +StatePtr +cls +: +usize +) +- +> +StatePtr +{ +self +. +table +[ +si +as +usize ++ +cls +] +} +fn +state_heap_size +( +& +self +) +- +> +usize +{ +self +. +num_byte_classes +* +mem +: +: +size_of +: +: +< +StatePtr +> +( +) +} +unsafe +fn +next_unchecked +( +& +self +si +: +StatePtr +cls +: +usize +) +- +> +StatePtr +{ +debug_assert +! +( +( +si +as +usize +) +< +self +. +table +. +len +( +) +) +; +debug_assert +! +( +cls +< +self +. +num_byte_classes +) +; +* +self +. +table +. +get_unchecked +( +si +as +usize ++ +cls +) +} +} +impl +StateFlags +{ +fn +is_match +( +& +self +) +- +> +bool +{ +self +. +0 +& +0b0000_0001 +> +0 +} +fn +set_match +( +& +mut +self +) +{ +self +. +0 +| += +0b0000_0001 +; +} +fn +is_word +( +& +self +) +- +> +bool +{ +self +. +0 +& +0b0000_0010 +> +0 +} +fn +set_word +( +& +mut +self +) +{ +self +. +0 +| += +0b0000_0010 +; +} +fn +has_empty +( +& +self +) +- +> +bool +{ +self +. +0 +& +0b0000_0100 +> +0 +} +fn +set_empty +( +& +mut +self +) +{ +self +. +0 +| += +0b0000_0100 +; +} +} +impl +Byte +{ +fn +byte +( +b +: +u8 +) +- +> +Self +{ +Byte +( +b +as +u16 +) +} +fn +eof +( +) +- +> +Self +{ +Byte +( +256 +) +} +fn +is_eof +( +& +self +) +- +> +bool +{ +self +. +0 += += +256 +} +fn +is_ascii_word +( +& +self +) +- +> +bool +{ +let +b += +match +self +. +as_byte +( +) +{ +None += +> +return +false +Some +( +b +) += +> +b +} +; +match +b +{ +b +' +A +' +. +. += +b +' +Z +' +| +b +' +a +' +. +. += +b +' +z +' +| +b +' +0 +' +. +. += +b +' +9 +' +| +b +' +_ +' += +> +true +_ += +> +false +} +} +fn +as_byte +( +& +self +) +- +> +Option +< +u8 +> +{ +if +self +. +is_eof +( +) +{ +None +} +else +{ +Some +( +self +. +0 +as +u8 +) +} +} +} +impl +fmt +: +: +Debug +for +State +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +let +ips +: +Vec +< +usize +> += +self +. +inst_ptrs +( +) +. +collect +( +) +; +f +. +debug_struct +( +" +State +" +) +. +field +( +" +flags +" +& +self +. +flags +( +) +) +. +field +( +" +insts +" +& +ips +) +. +finish +( +) +} +} +impl +fmt +: +: +Debug +for +Transitions +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +let +mut +fmtd += +f +. +debug_map +( +) +; +for +si +in +0 +. +. +self +. +num_states +( +) +{ +let +s += +si +* +self +. +num_byte_classes +; +let +e += +s ++ +self +. +num_byte_classes +; +fmtd +. +entry +( +& +si +. +to_string +( +) +& +TransitionsRow +( +& +self +. +table +[ +s +. +. +e +] +) +) +; +} +fmtd +. +finish +( +) +} +} +struct +TransitionsRow +< +' +a +> +( +& +' +a +[ +StatePtr +] +) +; +impl +< +' +a +> +fmt +: +: +Debug +for +TransitionsRow +< +' +a +> +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +let +mut +fmtd += +f +. +debug_map +( +) +; +for +( +b +si +) +in +self +. +0 +. +iter +( +) +. +enumerate +( +) +{ +match +* +si +{ +STATE_UNKNOWN += +> +{ +} +STATE_DEAD += +> +{ +fmtd +. +entry +( +& +vb +( +b +as +usize +) +& +" +DEAD +" +) +; +} +si += +> +{ +fmtd +. +entry +( +& +vb +( +b +as +usize +) +& +si +. +to_string +( +) +) +; +} +} +} +fmtd +. +finish +( +) +} +} +impl +fmt +: +: +Debug +for +StateFlags +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +f +. +debug_struct +( +" +StateFlags +" +) +. +field +( +" +is_match +" +& +self +. +is_match +( +) +) +. +field +( +" +is_word +" +& +self +. +is_word +( +) +) +. +field +( +" +has_empty +" +& +self +. +has_empty +( +) +) +. +finish +( +) +} +} +fn +vb +( +b +: +usize +) +- +> +String +{ +use +std +: +: +ascii +: +: +escape_default +; +if +b +> +: +: +std +: +: +u8 +: +: +MAX +as +usize +{ +" +EOF +" +. +to_owned +( +) +} +else +{ +let +escaped += +escape_default +( +b +as +u8 +) +. +collect +: +: +< +Vec +< +u8 +> +> +( +) +; +String +: +: +from_utf8_lossy +( +& +escaped +) +. +into_owned +( +) +} +} +fn +usize_to_u32 +( +n +: +usize +) +- +> +u32 +{ +if +( +n +as +u64 +) +> +( +: +: +std +: +: +u32 +: +: +MAX +as +u64 +) +{ +panic +! +( +" +BUG +: +{ +} +is +too +big +to +fit +into +u32 +" +n +) +} +n +as +u32 +} +# +[ +allow +( +dead_code +) +] +fn +show_state_ptr +( +si +: +StatePtr +) +- +> +String +{ +let +mut +s += +format +! +( +" +{ +: +? +} +" +si +& +STATE_MAX +) +; +if +si += += +STATE_UNKNOWN +{ +s += +format +! +( +" +{ +} +( +unknown +) +" +s +) +; +} +if +si += += +STATE_DEAD +{ +s += +format +! +( +" +{ +} +( +dead +) +" +s +) +; +} +if +si += += +STATE_QUIT +{ +s += +format +! +( +" +{ +} +( +quit +) +" +s +) +; +} +if +si +& +STATE_START +> +0 +{ +s += +format +! +( +" +{ +} +( +start +) +" +s +) +; +} +if +si +& +STATE_MATCH +> +0 +{ +s += +format +! +( +" +{ +} +( +match +) +" +s +) +; +} +s +} +fn +write_vari32 +( +data +: +& +mut +Vec +< +u8 +> +n +: +i32 +) +{ +let +mut +un += +( +n +as +u32 +) +< +< +1 +; +if +n +< +0 +{ +un += +! +un +; +} +write_varu32 +( +data +un +) +} +fn +read_vari32 +( +data +: +& +[ +u8 +] +) +- +> +( +i32 +usize +) +{ +let +( +un +i +) += +read_varu32 +( +data +) +; +let +mut +n += +( +un +> +> +1 +) +as +i32 +; +if +un +& +1 +! += +0 +{ +n += +! +n +; +} +( +n +i +) +} +fn +write_varu32 +( +data +: +& +mut +Vec +< +u8 +> +mut +n +: +u32 +) +{ +while +n +> += +0b1000_0000 +{ +data +. +push +( +( +n +as +u8 +) +| +0b1000_0000 +) +; +n +> +> += +7 +; +} +data +. +push +( +n +as +u8 +) +; +} +fn +read_varu32 +( +data +: +& +[ +u8 +] +) +- +> +( +u32 +usize +) +{ +let +mut +n +: +u32 += +0 +; +let +mut +shift +: +u32 += +0 +; +for +( +i +& +b +) +in +data +. +iter +( +) +. +enumerate +( +) +{ +if +b +< +0b1000_0000 +{ +return +( +n +| +( +( +b +as +u32 +) +< +< +shift +) +i ++ +1 +) +; +} +n +| += +( +( +b +as +u32 +) +& +0b0111_1111 +) +< +< +shift +; +shift ++ += +7 +; +} +( +0 +0 +) +} +# +[ +cfg +( +test +) +] +mod +tests +{ +use +super +: +: +{ +push_inst_ptr +read_vari32 +read_varu32 +write_vari32 +write_varu32 +State +StateFlags +} +; +use +quickcheck +: +: +{ +quickcheck +Gen +QuickCheck +} +; +use +std +: +: +sync +: +: +Arc +; +# +[ +test +] +fn +prop_state_encode_decode +( +) +{ +fn +p +( +mut +ips +: +Vec +< +u32 +> +flags +: +u8 +) +- +> +bool +{ +for +ip +in +& +mut +ips +{ +if +* +ip +> += +1 +< +< +31 +{ +* +ip += +( +1 +< +< +31 +) +- +1 +; +} +} +let +mut +data += +vec +! +[ +flags +] +; +let +mut +prev += +0 +; +for +& +ip +in +ips +. +iter +( +) +{ +push_inst_ptr +( +& +mut +data +& +mut +prev +ip +) +; +} +let +state += +State +{ +data +: +Arc +: +: +from +( +& +data +[ +. +. +] +) +} +; +let +expected +: +Vec +< +usize +> += +ips +. +into_iter +( +) +. +map +( +| +ip +| +ip +as +usize +) +. +collect +( +) +; +let +got +: +Vec +< +usize +> += +state +. +inst_ptrs +( +) +. +collect +( +) +; +expected += += +got +& +& +state +. +flags +( +) += += +StateFlags +( +flags +) +} +QuickCheck +: +: +new +( +) +. +gen +( +Gen +: +: +new +( +10_000 +) +) +. +quickcheck +( +p +as +fn +( +Vec +< +u32 +> +u8 +) +- +> +bool +) +; +} +# +[ +test +] +fn +prop_read_write_u32 +( +) +{ +fn +p +( +n +: +u32 +) +- +> +bool +{ +let +mut +buf += +vec +! +[ +] +; +write_varu32 +( +& +mut +buf +n +) +; +let +( +got +nread +) += +read_varu32 +( +& +buf +) +; +nread += += +buf +. +len +( +) +& +& +got += += +n +} +quickcheck +( +p +as +fn +( +u32 +) +- +> +bool +) +; +} +# +[ +test +] +fn +prop_read_write_i32 +( +) +{ +fn +p +( +n +: +i32 +) +- +> +bool +{ +let +mut +buf += +vec +! +[ +] +; +write_vari32 +( +& +mut +buf +n +) +; +let +( +got +nread +) += +read_vari32 +( +& +buf +) +; +nread += += +buf +. +len +( +) +& +& +got += += +n +} +quickcheck +( +p +as +fn +( +i32 +) +- +> +bool +) +; +} +} diff --git a/third_party/rust/regex/src/error.rs b/third_party/rust/regex/src/error.rs index aff12b9c916ad..eb5551590d282 100644 --- a/third_party/rust/regex/src/error.rs +++ b/third_party/rust/regex/src/error.rs @@ -1,27 +1,20 @@ use -alloc -: -: -string +std : : -{ -String -ToString -} +fmt ; use -regex_automata +std +: +: +iter : : -meta +repeat ; # [ -non_exhaustive -] -# -[ derive ( Clone @@ -40,104 +33,18 @@ CompiledTooBig ( usize ) -} -impl -Error -{ -pub -( -crate -) -fn -from_meta_build_error -( -err -: -meta -: -: -BuildError -) -- -> -Error -{ -if -let -Some -( -size_limit -) -= -err -. -size_limit -( -) -{ -Error -: -: -CompiledTooBig -( -size_limit -) -} -else -if -let -Some -( -ref -err -) -= -err -. -syntax_error -( -) -{ -Error -: -: -Syntax -( -err -. -to_string -( -) -) -} -else -{ -Error -: -: -Syntax -( -err -. -to_string -( -) -) -} -} -} # [ -cfg +doc ( -feature -= -" -std -" +hidden ) ] +__Nonexhaustive +} impl +: +: std : : @@ -196,13 +103,20 @@ program too big " +Error +: +: +__Nonexhaustive += +> +unreachable +! +( +) } } } impl -core -: -: fmt : : @@ -219,9 +133,6 @@ f : & mut -core -: -: fmt : : @@ -233,9 +144,6 @@ _ ) - > -core -: -: fmt : : @@ -288,13 +196,20 @@ bytes " limit ) +Error +: +: +__Nonexhaustive += +> +unreachable +! +( +) } } } impl -core -: -: fmt : : @@ -311,9 +226,6 @@ f : & mut -core -: -: fmt : : @@ -325,9 +237,6 @@ _ ) - > -core -: -: fmt : : @@ -353,12 +262,6 @@ hr : String = -core -: -: -iter -: -: repeat ( ' @@ -467,6 +370,26 @@ finish ( ) } +Error +: +: +__Nonexhaustive += +> +{ +f +. +debug_tuple +( +" +__Nonexhaustive +" +) +. +finish +( +) +} } } } diff --git a/third_party/rust/regex/src/exec.rs b/third_party/rust/regex/src/exec.rs new file mode 100644 index 0000000000000..745cf591a8110 --- /dev/null +++ b/third_party/rust/regex/src/exec.rs @@ -0,0 +1,8612 @@ +use +std +: +: +cell +: +: +RefCell +; +use +std +: +: +collections +: +: +HashMap +; +use +std +: +: +panic +: +: +AssertUnwindSafe +; +use +std +: +: +sync +: +: +Arc +; +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +use +aho_corasick +: +: +{ +AhoCorasick +AhoCorasickBuilder +MatchKind +} +; +use +regex_syntax +: +: +hir +: +: +literal +: +: +Literals +; +use +regex_syntax +: +: +hir +: +: +Hir +; +use +regex_syntax +: +: +ParserBuilder +; +use +crate +: +: +backtrack +; +use +crate +: +: +compile +: +: +Compiler +; +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +use +crate +: +: +dfa +; +use +crate +: +: +error +: +: +Error +; +use +crate +: +: +input +: +: +{ +ByteInput +CharInput +} +; +use +crate +: +: +literal +: +: +LiteralSearcher +; +use +crate +: +: +pikevm +; +use +crate +: +: +pool +: +: +{ +Pool +PoolGuard +} +; +use +crate +: +: +prog +: +: +Program +; +use +crate +: +: +re_builder +: +: +RegexOptions +; +use +crate +: +: +re_bytes +; +use +crate +: +: +re_set +; +use +crate +: +: +re_trait +: +: +{ +Locations +RegularExpression +Slot +} +; +use +crate +: +: +re_unicode +; +use +crate +: +: +utf8 +: +: +next_utf8 +; +# +[ +derive +( +Debug +) +] +pub +struct +Exec +{ +ro +: +Arc +< +ExecReadOnly +> +pool +: +Box +< +Pool +< +ProgramCache +> +> +} +# +[ +derive +( +Debug +) +] +pub +struct +ExecNoSync +< +' +c +> +{ +ro +: +& +' +c +Arc +< +ExecReadOnly +> +cache +: +PoolGuard +< +' +c +ProgramCache +> +} +# +[ +derive +( +Debug +) +] +pub +struct +ExecNoSyncStr +< +' +c +> +( +ExecNoSync +< +' +c +> +) +; +# +[ +derive +( +Debug +) +] +struct +ExecReadOnly +{ +res +: +Vec +< +String +> +nfa +: +Program +dfa +: +Program +dfa_reverse +: +Program +suffixes +: +LiteralSearcher +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +ac +: +Option +< +AhoCorasick +< +u32 +> +> +match_type +: +MatchType +} +# +[ +allow +( +missing_debug_implementations +) +] +pub +struct +ExecBuilder +{ +options +: +RegexOptions +match_type +: +Option +< +MatchType +> +bytes +: +bool +only_utf8 +: +bool +} +struct +Parsed +{ +exprs +: +Vec +< +Hir +> +prefixes +: +Literals +suffixes +: +Literals +bytes +: +bool +} +impl +ExecBuilder +{ +pub +fn +new +( +re +: +& +str +) +- +> +Self +{ +Self +: +: +new_many +( +& +[ +re +] +) +} +pub +fn +new_many +< +I +S +> +( +res +: +I +) +- +> +Self +where +S +: +AsRef +< +str +> +I +: +IntoIterator +< +Item += +S +> +{ +let +mut +opts += +RegexOptions +: +: +default +( +) +; +opts +. +pats += +res +. +into_iter +( +) +. +map +( +| +s +| +s +. +as_ref +( +) +. +to_owned +( +) +) +. +collect +( +) +; +Self +: +: +new_options +( +opts +) +} +pub +fn +new_options +( +opts +: +RegexOptions +) +- +> +Self +{ +ExecBuilder +{ +options +: +opts +match_type +: +None +bytes +: +false +only_utf8 +: +true +} +} +pub +fn +automatic +( +mut +self +) +- +> +Self +{ +self +. +match_type += +None +; +self +} +pub +fn +nfa +( +mut +self +) +- +> +Self +{ +self +. +match_type += +Some +( +MatchType +: +: +Nfa +( +MatchNfaType +: +: +PikeVM +) +) +; +self +} +pub +fn +bounded_backtracking +( +mut +self +) +- +> +Self +{ +self +. +match_type += +Some +( +MatchType +: +: +Nfa +( +MatchNfaType +: +: +Backtrack +) +) +; +self +} +pub +fn +bytes +( +mut +self +yes +: +bool +) +- +> +Self +{ +self +. +bytes += +yes +; +self +} +pub +fn +only_utf8 +( +mut +self +yes +: +bool +) +- +> +Self +{ +self +. +only_utf8 += +yes +; +self +} +pub +fn +unicode +( +mut +self +yes +: +bool +) +- +> +Self +{ +self +. +options +. +unicode += +yes +; +self +} +fn +parse +( +& +self +) +- +> +Result +< +Parsed +Error +> +{ +let +mut +exprs += +Vec +: +: +with_capacity +( +self +. +options +. +pats +. +len +( +) +) +; +let +mut +prefixes += +Some +( +Literals +: +: +empty +( +) +) +; +let +mut +suffixes += +Some +( +Literals +: +: +empty +( +) +) +; +let +mut +bytes += +false +; +let +is_set += +self +. +options +. +pats +. +len +( +) +> +1 +; +for +pat +in +& +self +. +options +. +pats +{ +let +mut +parser += +ParserBuilder +: +: +new +( +) +. +octal +( +self +. +options +. +octal +) +. +case_insensitive +( +self +. +options +. +case_insensitive +) +. +multi_line +( +self +. +options +. +multi_line +) +. +dot_matches_new_line +( +self +. +options +. +dot_matches_new_line +) +. +swap_greed +( +self +. +options +. +swap_greed +) +. +ignore_whitespace +( +self +. +options +. +ignore_whitespace +) +. +unicode +( +self +. +options +. +unicode +) +. +allow_invalid_utf8 +( +! +self +. +only_utf8 +) +. +nest_limit +( +self +. +options +. +nest_limit +) +. +build +( +) +; +let +expr += +parser +. +parse +( +pat +) +. +map_err +( +| +e +| +Error +: +: +Syntax +( +e +. +to_string +( +) +) +) +? +; +bytes += +bytes +| +| +! +expr +. +is_always_utf8 +( +) +; +if +cfg +! +( +feature += +" +perf +- +literal +" +) +{ +if +! +expr +. +is_anchored_start +( +) +& +& +expr +. +is_any_anchored_start +( +) +{ +prefixes += +None +; +} +else +if +is_set +& +& +expr +. +is_anchored_start +( +) +{ +prefixes += +None +; +} +prefixes += +prefixes +. +and_then +( +| +mut +prefixes +| +{ +if +! +prefixes +. +union_prefixes +( +& +expr +) +{ +None +} +else +{ +Some +( +prefixes +) +} +} +) +; +if +! +expr +. +is_anchored_end +( +) +& +& +expr +. +is_any_anchored_end +( +) +{ +suffixes += +None +; +} +else +if +is_set +& +& +expr +. +is_anchored_end +( +) +{ +suffixes += +None +; +} +suffixes += +suffixes +. +and_then +( +| +mut +suffixes +| +{ +if +! +suffixes +. +union_suffixes +( +& +expr +) +{ +None +} +else +{ +Some +( +suffixes +) +} +} +) +; +} +exprs +. +push +( +expr +) +; +} +Ok +( +Parsed +{ +exprs +prefixes +: +prefixes +. +unwrap_or_else +( +Literals +: +: +empty +) +suffixes +: +suffixes +. +unwrap_or_else +( +Literals +: +: +empty +) +bytes +} +) +} +pub +fn +build +( +self +) +- +> +Result +< +Exec +Error +> +{ +if +self +. +options +. +pats +. +is_empty +( +) +{ +let +ro += +Arc +: +: +new +( +ExecReadOnly +{ +res +: +vec +! +[ +] +nfa +: +Program +: +: +new +( +) +dfa +: +Program +: +: +new +( +) +dfa_reverse +: +Program +: +: +new +( +) +suffixes +: +LiteralSearcher +: +: +empty +( +) +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +ac +: +None +match_type +: +MatchType +: +: +Nothing +} +) +; +let +pool += +ExecReadOnly +: +: +new_pool +( +& +ro +) +; +return +Ok +( +Exec +{ +ro +pool +} +) +; +} +let +parsed += +self +. +parse +( +) +? +; +let +mut +nfa += +Compiler +: +: +new +( +) +. +size_limit +( +self +. +options +. +size_limit +) +. +bytes +( +self +. +bytes +| +| +parsed +. +bytes +) +. +only_utf8 +( +self +. +only_utf8 +) +. +compile +( +& +parsed +. +exprs +) +? +; +let +mut +dfa += +Compiler +: +: +new +( +) +. +size_limit +( +self +. +options +. +size_limit +) +. +dfa +( +true +) +. +only_utf8 +( +self +. +only_utf8 +) +. +compile +( +& +parsed +. +exprs +) +? +; +let +mut +dfa_reverse += +Compiler +: +: +new +( +) +. +size_limit +( +self +. +options +. +size_limit +) +. +dfa +( +true +) +. +only_utf8 +( +self +. +only_utf8 +) +. +reverse +( +true +) +. +compile +( +& +parsed +. +exprs +) +? +; +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +let +ac += +self +. +build_aho_corasick +( +& +parsed +) +; +nfa +. +prefixes += +LiteralSearcher +: +: +prefixes +( +parsed +. +prefixes +) +; +dfa +. +prefixes += +nfa +. +prefixes +. +clone +( +) +; +dfa +. +dfa_size_limit += +self +. +options +. +dfa_size_limit +; +dfa_reverse +. +dfa_size_limit += +self +. +options +. +dfa_size_limit +; +let +mut +ro += +ExecReadOnly +{ +res +: +self +. +options +. +pats +nfa +dfa +dfa_reverse +suffixes +: +LiteralSearcher +: +: +suffixes +( +parsed +. +suffixes +) +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +ac +match_type +: +MatchType +: +: +Nothing +} +; +ro +. +match_type += +ro +. +choose_match_type +( +self +. +match_type +) +; +let +ro += +Arc +: +: +new +( +ro +) +; +let +pool += +ExecReadOnly +: +: +new_pool +( +& +ro +) +; +Ok +( +Exec +{ +ro +pool +} +) +} +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +fn +build_aho_corasick +( +& +self +parsed +: +& +Parsed +) +- +> +Option +< +AhoCorasick +< +u32 +> +> +{ +if +parsed +. +exprs +. +len +( +) +! += +1 +{ +return +None +; +} +let +lits += +match +alternation_literals +( +& +parsed +. +exprs +[ +0 +] +) +{ +None += +> +return +None +Some +( +lits +) += +> +lits +} +; +if +lits +. +len +( +) +< += +32 +{ +return +None +; +} +Some +( +AhoCorasickBuilder +: +: +new +( +) +. +match_kind +( +MatchKind +: +: +LeftmostFirst +) +. +auto_configure +( +& +lits +) +. +build_with_size +: +: +< +u32 +_ +_ +> +( +& +lits +) +. +expect +( +" +AC +automaton +too +big +" +) +) +} +} +impl +< +' +c +> +RegularExpression +for +ExecNoSyncStr +< +' +c +> +{ +type +Text += +str +; +fn +slots_len +( +& +self +) +- +> +usize +{ +self +. +0 +. +slots_len +( +) +} +fn +next_after_empty +( +& +self +text +: +& +str +i +: +usize +) +- +> +usize +{ +next_utf8 +( +text +. +as_bytes +( +) +i +) +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +shortest_match_at +( +& +self +text +: +& +str +start +: +usize +) +- +> +Option +< +usize +> +{ +self +. +0 +. +shortest_match_at +( +text +. +as_bytes +( +) +start +) +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +is_match_at +( +& +self +text +: +& +str +start +: +usize +) +- +> +bool +{ +self +. +0 +. +is_match_at +( +text +. +as_bytes +( +) +start +) +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +find_at +( +& +self +text +: +& +str +start +: +usize +) +- +> +Option +< +( +usize +usize +) +> +{ +self +. +0 +. +find_at +( +text +. +as_bytes +( +) +start +) +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +captures_read_at +( +& +self +locs +: +& +mut +Locations +text +: +& +str +start +: +usize +) +- +> +Option +< +( +usize +usize +) +> +{ +self +. +0 +. +captures_read_at +( +locs +text +. +as_bytes +( +) +start +) +} +} +impl +< +' +c +> +RegularExpression +for +ExecNoSync +< +' +c +> +{ +type +Text += +[ +u8 +] +; +fn +slots_len +( +& +self +) +- +> +usize +{ +self +. +ro +. +nfa +. +captures +. +len +( +) +* +2 +} +fn +next_after_empty +( +& +self +_text +: +& +[ +u8 +] +i +: +usize +) +- +> +usize +{ +i ++ +1 +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +shortest_match_at +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +Option +< +usize +> +{ +if +! +self +. +is_anchor_end_match +( +text +) +{ +return +None +; +} +match +self +. +ro +. +match_type +{ +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +MatchType +: +: +Literal +( +ty +) += +> +{ +self +. +find_literals +( +ty +text +start +) +. +map +( +| +( +_ +e +) +| +e +) +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +Dfa +| +MatchType +: +: +DfaMany += +> +{ +match +self +. +shortest_dfa +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +end +) += +> +Some +( +end +) +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +None +dfa +: +: +Result +: +: +Quit += +> +self +. +shortest_nfa +( +text +start +) +} +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +DfaAnchoredReverse += +> +{ +match +dfa +: +: +Fsm +: +: +reverse +( +& +self +. +ro +. +dfa_reverse +self +. +cache +. +value +( +) +true +& +text +[ +start +. +. +] +text +. +len +( +) +) +{ +dfa +: +: +Result +: +: +Match +( +_ +) += +> +Some +( +text +. +len +( +) +) +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +None +dfa +: +: +Result +: +: +Quit += +> +self +. +shortest_nfa +( +text +start +) +} +} +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +MatchType +: +: +DfaSuffix += +> +{ +match +self +. +shortest_dfa_reverse_suffix +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +e +) += +> +Some +( +e +) +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +None +dfa +: +: +Result +: +: +Quit += +> +self +. +shortest_nfa +( +text +start +) +} +} +MatchType +: +: +Nfa +( +ty +) += +> +self +. +shortest_nfa_type +( +ty +text +start +) +MatchType +: +: +Nothing += +> +None +} +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +is_match_at +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +bool +{ +if +! +self +. +is_anchor_end_match +( +text +) +{ +return +false +; +} +match +self +. +ro +. +match_type +{ +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +MatchType +: +: +Literal +( +ty +) += +> +{ +self +. +find_literals +( +ty +text +start +) +. +is_some +( +) +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +Dfa +| +MatchType +: +: +DfaMany += +> +{ +match +self +. +shortest_dfa +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +_ +) += +> +true +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +false +dfa +: +: +Result +: +: +Quit += +> +self +. +match_nfa +( +text +start +) +} +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +DfaAnchoredReverse += +> +{ +match +dfa +: +: +Fsm +: +: +reverse +( +& +self +. +ro +. +dfa_reverse +self +. +cache +. +value +( +) +true +& +text +[ +start +. +. +] +text +. +len +( +) +) +{ +dfa +: +: +Result +: +: +Match +( +_ +) += +> +true +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +false +dfa +: +: +Result +: +: +Quit += +> +self +. +match_nfa +( +text +start +) +} +} +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +MatchType +: +: +DfaSuffix += +> +{ +match +self +. +shortest_dfa_reverse_suffix +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +_ +) += +> +true +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +false +dfa +: +: +Result +: +: +Quit += +> +self +. +match_nfa +( +text +start +) +} +} +MatchType +: +: +Nfa +( +ty +) += +> +self +. +match_nfa_type +( +ty +text +start +) +MatchType +: +: +Nothing += +> +false +} +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +find_at +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +Option +< +( +usize +usize +) +> +{ +if +! +self +. +is_anchor_end_match +( +text +) +{ +return +None +; +} +match +self +. +ro +. +match_type +{ +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +MatchType +: +: +Literal +( +ty +) += +> +self +. +find_literals +( +ty +text +start +) +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +Dfa += +> +match +self +. +find_dfa_forward +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +( +s +e +) +) += +> +Some +( +( +s +e +) +) +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +None +dfa +: +: +Result +: +: +Quit += +> +{ +self +. +find_nfa +( +MatchNfaType +: +: +Auto +text +start +) +} +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +DfaAnchoredReverse += +> +{ +match +self +. +find_dfa_anchored_reverse +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +( +s +e +) +) += +> +Some +( +( +s +e +) +) +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +None +dfa +: +: +Result +: +: +Quit += +> +{ +self +. +find_nfa +( +MatchNfaType +: +: +Auto +text +start +) +} +} +} +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +MatchType +: +: +DfaSuffix += +> +{ +match +self +. +find_dfa_reverse_suffix +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +( +s +e +) +) += +> +Some +( +( +s +e +) +) +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +None +dfa +: +: +Result +: +: +Quit += +> +{ +self +. +find_nfa +( +MatchNfaType +: +: +Auto +text +start +) +} +} +} +MatchType +: +: +Nfa +( +ty +) += +> +self +. +find_nfa +( +ty +text +start +) +MatchType +: +: +Nothing += +> +None +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +DfaMany += +> +{ +unreachable +! +( +" +BUG +: +RegexSet +cannot +be +used +with +find +" +) +} +} +} +fn +captures_read_at +( +& +self +locs +: +& +mut +Locations +text +: +& +[ +u8 +] +start +: +usize +) +- +> +Option +< +( +usize +usize +) +> +{ +let +slots += +locs +. +as_slots +( +) +; +for +slot +in +slots +. +iter_mut +( +) +{ +* +slot += +None +; +} +match +slots +. +len +( +) +{ +0 += +> +return +self +. +find_at +( +text +start +) +2 += +> +{ +return +self +. +find_at +( +text +start +) +. +map +( +| +( +s +e +) +| +{ +slots +[ +0 +] += +Some +( +s +) +; +slots +[ +1 +] += +Some +( +e +) +; +( +s +e +) +} +) +; +} +_ += +> +{ +} +} +if +! +self +. +is_anchor_end_match +( +text +) +{ +return +None +; +} +match +self +. +ro +. +match_type +{ +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +MatchType +: +: +Literal +( +ty +) += +> +{ +self +. +find_literals +( +ty +text +start +) +. +and_then +( +| +( +s +e +) +| +{ +self +. +captures_nfa_type +( +MatchNfaType +: +: +Auto +slots +text +s +e +) +} +) +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +Dfa += +> +{ +if +self +. +ro +. +nfa +. +is_anchored_start +{ +self +. +captures_nfa +( +slots +text +start +) +} +else +{ +match +self +. +find_dfa_forward +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +( +s +e +) +) += +> +self +. +captures_nfa_type +( +MatchNfaType +: +: +Auto +slots +text +s +e +) +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +None +dfa +: +: +Result +: +: +Quit += +> +{ +self +. +captures_nfa +( +slots +text +start +) +} +} +} +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +DfaAnchoredReverse += +> +{ +match +self +. +find_dfa_anchored_reverse +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +( +s +e +) +) += +> +self +. +captures_nfa_type +( +MatchNfaType +: +: +Auto +slots +text +s +e +) +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +None +dfa +: +: +Result +: +: +Quit += +> +self +. +captures_nfa +( +slots +text +start +) +} +} +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +MatchType +: +: +DfaSuffix += +> +{ +match +self +. +find_dfa_reverse_suffix +( +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +( +s +e +) +) += +> +self +. +captures_nfa_type +( +MatchNfaType +: +: +Auto +slots +text +s +e +) +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +None +dfa +: +: +Result +: +: +Quit += +> +self +. +captures_nfa +( +slots +text +start +) +} +} +MatchType +: +: +Nfa +( +ty +) += +> +{ +self +. +captures_nfa_type +( +ty +slots +text +start +text +. +len +( +) +) +} +MatchType +: +: +Nothing += +> +None +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +MatchType +: +: +DfaMany += +> +{ +unreachable +! +( +" +BUG +: +RegexSet +cannot +be +used +with +captures +" +) +} +} +} +} +impl +< +' +c +> +ExecNoSync +< +' +c +> +{ +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +find_literals +( +& +self +ty +: +MatchLiteralType +text +: +& +[ +u8 +] +start +: +usize +) +- +> +Option +< +( +usize +usize +) +> +{ +use +self +: +: +MatchLiteralType +: +: +* +; +match +ty +{ +Unanchored += +> +{ +let +lits += +& +self +. +ro +. +nfa +. +prefixes +; +lits +. +find +( +& +text +[ +start +. +. +] +) +. +map +( +| +( +s +e +) +| +( +start ++ +s +start ++ +e +) +) +} +AnchoredStart += +> +{ +let +lits += +& +self +. +ro +. +nfa +. +prefixes +; +if +start += += +0 +| +| +! +self +. +ro +. +nfa +. +is_anchored_start +{ +lits +. +find_start +( +& +text +[ +start +. +. +] +) +. +map +( +| +( +s +e +) +| +( +start ++ +s +start ++ +e +) +) +} +else +{ +None +} +} +AnchoredEnd += +> +{ +let +lits += +& +self +. +ro +. +suffixes +; +lits +. +find_end +( +& +text +[ +start +. +. +] +) +. +map +( +| +( +s +e +) +| +( +start ++ +s +start ++ +e +) +) +} +AhoCorasick += +> +self +. +ro +. +ac +. +as_ref +( +) +. +unwrap +( +) +. +find +( +& +text +[ +start +. +. +] +) +. +map +( +| +m +| +( +start ++ +m +. +start +( +) +start ++ +m +. +end +( +) +) +) +} +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +find_dfa_forward +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +dfa +: +: +Result +< +( +usize +usize +) +> +{ +use +crate +: +: +dfa +: +: +Result +: +: +* +; +let +end += +match +dfa +: +: +Fsm +: +: +forward +( +& +self +. +ro +. +dfa +self +. +cache +. +value +( +) +false +text +start +) +{ +NoMatch +( +i +) += +> +return +NoMatch +( +i +) +Quit += +> +return +Quit +Match +( +end +) +if +start += += +end += +> +return +Match +( +( +start +start +) +) +Match +( +end +) += +> +end +} +; +match +dfa +: +: +Fsm +: +: +reverse +( +& +self +. +ro +. +dfa_reverse +self +. +cache +. +value +( +) +false +& +text +[ +start +. +. +] +end +- +start +) +{ +Match +( +s +) += +> +Match +( +( +start ++ +s +end +) +) +NoMatch +( +i +) += +> +NoMatch +( +i +) +Quit += +> +Quit +} +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +find_dfa_anchored_reverse +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +dfa +: +: +Result +< +( +usize +usize +) +> +{ +use +crate +: +: +dfa +: +: +Result +: +: +* +; +match +dfa +: +: +Fsm +: +: +reverse +( +& +self +. +ro +. +dfa_reverse +self +. +cache +. +value +( +) +false +& +text +[ +start +. +. +] +text +. +len +( +) +- +start +) +{ +Match +( +s +) += +> +Match +( +( +start ++ +s +text +. +len +( +) +) +) +NoMatch +( +i +) += +> +NoMatch +( +i +) +Quit += +> +Quit +} +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +shortest_dfa +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +dfa +: +: +Result +< +usize +> +{ +dfa +: +: +Fsm +: +: +forward +( +& +self +. +ro +. +dfa +self +. +cache +. +value +( +) +true +text +start +) +} +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +shortest_dfa_reverse_suffix +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +dfa +: +: +Result +< +usize +> +{ +match +self +. +exec_dfa_reverse_suffix +( +text +start +) +{ +None += +> +self +. +shortest_dfa +( +text +start +) +Some +( +r +) += +> +r +. +map +( +| +( +_ +end +) +| +end +) +} +} +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +exec_dfa_reverse_suffix +( +& +self +text +: +& +[ +u8 +] +original_start +: +usize +) +- +> +Option +< +dfa +: +: +Result +< +( +usize +usize +) +> +> +{ +use +crate +: +: +dfa +: +: +Result +: +: +* +; +let +lcs += +self +. +ro +. +suffixes +. +lcs +( +) +; +debug_assert +! +( +lcs +. +len +( +) +> += +1 +) +; +let +mut +start += +original_start +; +let +mut +end += +start +; +let +mut +last_literal += +start +; +while +end +< += +text +. +len +( +) +{ +last_literal ++ += +match +lcs +. +find +( +& +text +[ +last_literal +. +. +] +) +{ +None += +> +return +Some +( +NoMatch +( +text +. +len +( +) +) +) +Some +( +i +) += +> +i +} +; +end += +last_literal ++ +lcs +. +len +( +) +; +match +dfa +: +: +Fsm +: +: +reverse +( +& +self +. +ro +. +dfa_reverse +self +. +cache +. +value +( +) +false +& +text +[ +start +. +. +end +] +end +- +start +) +{ +Match +( +0 +) +| +NoMatch +( +0 +) += +> +return +None +Match +( +i +) += +> +return +Some +( +Match +( +( +start ++ +i +end +) +) +) +NoMatch +( +i +) += +> +{ +start ++ += +i +; +last_literal ++ += +1 +; +continue +; +} +Quit += +> +return +Some +( +Quit +) +} +; +} +Some +( +NoMatch +( +text +. +len +( +) +) +) +} +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +find_dfa_reverse_suffix +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +dfa +: +: +Result +< +( +usize +usize +) +> +{ +use +crate +: +: +dfa +: +: +Result +: +: +* +; +let +match_start += +match +self +. +exec_dfa_reverse_suffix +( +text +start +) +{ +None += +> +return +self +. +find_dfa_forward +( +text +start +) +Some +( +Match +( +( +start +_ +) +) +) += +> +start +Some +( +r +) += +> +return +r +} +; +match +dfa +: +: +Fsm +: +: +forward +( +& +self +. +ro +. +dfa +self +. +cache +. +value +( +) +false +text +match_start +) +{ +NoMatch +( +_ +) += +> +panic +! +( +" +BUG +: +reverse +match +implies +forward +match +" +) +Quit += +> +Quit +Match +( +e +) += +> +Match +( +( +match_start +e +) +) +} +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +fn +match_nfa +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +bool +{ +self +. +match_nfa_type +( +MatchNfaType +: +: +Auto +text +start +) +} +fn +match_nfa_type +( +& +self +ty +: +MatchNfaType +text +: +& +[ +u8 +] +start +: +usize +) +- +> +bool +{ +self +. +exec_nfa +( +ty +& +mut +[ +false +] +& +mut +[ +] +true +false +text +start +text +. +len +( +) +) +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +fn +shortest_nfa +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +Option +< +usize +> +{ +self +. +shortest_nfa_type +( +MatchNfaType +: +: +Auto +text +start +) +} +fn +shortest_nfa_type +( +& +self +ty +: +MatchNfaType +text +: +& +[ +u8 +] +start +: +usize +) +- +> +Option +< +usize +> +{ +let +mut +slots += +[ +None +None +] +; +if +self +. +exec_nfa +( +ty +& +mut +[ +false +] +& +mut +slots +true +true +text +start +text +. +len +( +) +) +{ +slots +[ +1 +] +} +else +{ +None +} +} +fn +find_nfa +( +& +self +ty +: +MatchNfaType +text +: +& +[ +u8 +] +start +: +usize +) +- +> +Option +< +( +usize +usize +) +> +{ +let +mut +slots += +[ +None +None +] +; +if +self +. +exec_nfa +( +ty +& +mut +[ +false +] +& +mut +slots +false +false +text +start +text +. +len +( +) +) +{ +match +( +slots +[ +0 +] +slots +[ +1 +] +) +{ +( +Some +( +s +) +Some +( +e +) +) += +> +Some +( +( +s +e +) +) +_ += +> +None +} +} +else +{ +None +} +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +fn +captures_nfa +( +& +self +slots +: +& +mut +[ +Slot +] +text +: +& +[ +u8 +] +start +: +usize +) +- +> +Option +< +( +usize +usize +) +> +{ +self +. +captures_nfa_type +( +MatchNfaType +: +: +Auto +slots +text +start +text +. +len +( +) +) +} +fn +captures_nfa_type +( +& +self +ty +: +MatchNfaType +slots +: +& +mut +[ +Slot +] +text +: +& +[ +u8 +] +start +: +usize +end +: +usize +) +- +> +Option +< +( +usize +usize +) +> +{ +if +self +. +exec_nfa +( +ty +& +mut +[ +false +] +slots +false +false +text +start +end +) +{ +match +( +slots +[ +0 +] +slots +[ +1 +] +) +{ +( +Some +( +s +) +Some +( +e +) +) += +> +Some +( +( +s +e +) +) +_ += +> +None +} +} +else +{ +None +} +} +fn +exec_nfa +( +& +self +mut +ty +: +MatchNfaType +matches +: +& +mut +[ +bool +] +slots +: +& +mut +[ +Slot +] +quit_after_match +: +bool +quit_after_match_with_pos +: +bool +text +: +& +[ +u8 +] +start +: +usize +end +: +usize +) +- +> +bool +{ +use +self +: +: +MatchNfaType +: +: +* +; +if +let +Auto += +ty +{ +if +backtrack +: +: +should_exec +( +self +. +ro +. +nfa +. +len +( +) +text +. +len +( +) +) +{ +ty += +Backtrack +; +} +else +{ +ty += +PikeVM +; +} +} +if +quit_after_match_with_pos +| +| +ty += += +PikeVM +{ +self +. +exec_pikevm +( +matches +slots +quit_after_match +text +start +end +) +} +else +{ +self +. +exec_backtrack +( +matches +slots +text +start +end +) +} +} +fn +exec_pikevm +( +& +self +matches +: +& +mut +[ +bool +] +slots +: +& +mut +[ +Slot +] +quit_after_match +: +bool +text +: +& +[ +u8 +] +start +: +usize +end +: +usize +) +- +> +bool +{ +if +self +. +ro +. +nfa +. +uses_bytes +( +) +{ +pikevm +: +: +Fsm +: +: +exec +( +& +self +. +ro +. +nfa +self +. +cache +. +value +( +) +matches +slots +quit_after_match +ByteInput +: +: +new +( +text +self +. +ro +. +nfa +. +only_utf8 +) +start +end +) +} +else +{ +pikevm +: +: +Fsm +: +: +exec +( +& +self +. +ro +. +nfa +self +. +cache +. +value +( +) +matches +slots +quit_after_match +CharInput +: +: +new +( +text +) +start +end +) +} +} +fn +exec_backtrack +( +& +self +matches +: +& +mut +[ +bool +] +slots +: +& +mut +[ +Slot +] +text +: +& +[ +u8 +] +start +: +usize +end +: +usize +) +- +> +bool +{ +if +self +. +ro +. +nfa +. +uses_bytes +( +) +{ +backtrack +: +: +Bounded +: +: +exec +( +& +self +. +ro +. +nfa +self +. +cache +. +value +( +) +matches +slots +ByteInput +: +: +new +( +text +self +. +ro +. +nfa +. +only_utf8 +) +start +end +) +} +else +{ +backtrack +: +: +Bounded +: +: +exec +( +& +self +. +ro +. +nfa +self +. +cache +. +value +( +) +matches +slots +CharInput +: +: +new +( +text +) +start +end +) +} +} +pub +fn +many_matches_at +( +& +self +matches +: +& +mut +[ +bool +] +text +: +& +[ +u8 +] +start +: +usize +) +- +> +bool +{ +use +self +: +: +MatchType +: +: +* +; +if +! +self +. +is_anchor_end_match +( +text +) +{ +return +false +; +} +match +self +. +ro +. +match_type +{ +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +Literal +( +ty +) += +> +{ +debug_assert_eq +! +( +matches +. +len +( +) +1 +) +; +matches +[ +0 +] += +self +. +find_literals +( +ty +text +start +) +. +is_some +( +) +; +matches +[ +0 +] +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +Dfa +| +DfaAnchoredReverse +| +DfaMany += +> +{ +match +dfa +: +: +Fsm +: +: +forward_many +( +& +self +. +ro +. +dfa +self +. +cache +. +value +( +) +matches +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +_ +) += +> +true +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +false +dfa +: +: +Result +: +: +Quit += +> +self +. +exec_nfa +( +MatchNfaType +: +: +Auto +matches +& +mut +[ +] +false +false +text +start +text +. +len +( +) +) +} +} +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +DfaSuffix += +> +{ +match +dfa +: +: +Fsm +: +: +forward_many +( +& +self +. +ro +. +dfa +self +. +cache +. +value +( +) +matches +text +start +) +{ +dfa +: +: +Result +: +: +Match +( +_ +) += +> +true +dfa +: +: +Result +: +: +NoMatch +( +_ +) += +> +false +dfa +: +: +Result +: +: +Quit += +> +self +. +exec_nfa +( +MatchNfaType +: +: +Auto +matches +& +mut +[ +] +false +false +text +start +text +. +len +( +) +) +} +} +Nfa +( +ty +) += +> +self +. +exec_nfa +( +ty +matches +& +mut +[ +] +false +false +text +start +text +. +len +( +) +) +Nothing += +> +false +} +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +is_anchor_end_match +( +& +self +text +: +& +[ +u8 +] +) +- +> +bool +{ +# +[ +cfg +( +not +( +feature += +" +perf +- +literal +" +) +) +] +fn +imp +( +_ +: +& +ExecReadOnly +_ +: +& +[ +u8 +] +) +- +> +bool +{ +true +} +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +fn +imp +( +ro +: +& +ExecReadOnly +text +: +& +[ +u8 +] +) +- +> +bool +{ +if +text +. +len +( +) +> +( +1 +< +< +20 +) +& +& +ro +. +nfa +. +is_anchored_end +{ +let +lcs += +ro +. +suffixes +. +lcs +( +) +; +if +lcs +. +len +( +) +> += +1 +& +& +! +lcs +. +is_suffix +( +text +) +{ +return +false +; +} +} +true +} +imp +( +& +self +. +ro +text +) +} +pub +fn +capture_name_idx +( +& +self +) +- +> +& +Arc +< +HashMap +< +String +usize +> +> +{ +& +self +. +ro +. +nfa +. +capture_name_idx +} +} +impl +< +' +c +> +ExecNoSyncStr +< +' +c +> +{ +pub +fn +capture_name_idx +( +& +self +) +- +> +& +Arc +< +HashMap +< +String +usize +> +> +{ +self +. +0 +. +capture_name_idx +( +) +} +} +impl +Exec +{ +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +pub +fn +searcher +( +& +self +) +- +> +ExecNoSync +< +' +_ +> +{ +ExecNoSync +{ +ro +: +& +self +. +ro +cache +: +self +. +pool +. +get +( +) +} +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +pub +fn +searcher_str +( +& +self +) +- +> +ExecNoSyncStr +< +' +_ +> +{ +ExecNoSyncStr +( +self +. +searcher +( +) +) +} +pub +fn +into_regex +( +self +) +- +> +re_unicode +: +: +Regex +{ +re_unicode +: +: +Regex +: +: +from +( +self +) +} +pub +fn +into_regex_set +( +self +) +- +> +re_set +: +: +unicode +: +: +RegexSet +{ +re_set +: +: +unicode +: +: +RegexSet +: +: +from +( +self +) +} +pub +fn +into_byte_regex +( +self +) +- +> +re_bytes +: +: +Regex +{ +re_bytes +: +: +Regex +: +: +from +( +self +) +} +pub +fn +into_byte_regex_set +( +self +) +- +> +re_set +: +: +bytes +: +: +RegexSet +{ +re_set +: +: +bytes +: +: +RegexSet +: +: +from +( +self +) +} +pub +fn +regex_strings +( +& +self +) +- +> +& +[ +String +] +{ +& +self +. +ro +. +res +} +pub +fn +capture_names +( +& +self +) +- +> +& +[ +Option +< +String +> +] +{ +& +self +. +ro +. +nfa +. +captures +} +pub +fn +capture_name_idx +( +& +self +) +- +> +& +Arc +< +HashMap +< +String +usize +> +> +{ +& +self +. +ro +. +nfa +. +capture_name_idx +} +} +impl +Clone +for +Exec +{ +fn +clone +( +& +self +) +- +> +Exec +{ +let +pool += +ExecReadOnly +: +: +new_pool +( +& +self +. +ro +) +; +Exec +{ +ro +: +self +. +ro +. +clone +( +) +pool +} +} +} +impl +ExecReadOnly +{ +fn +choose_match_type +( +& +self +hint +: +Option +< +MatchType +> +) +- +> +MatchType +{ +if +let +Some +( +MatchType +: +: +Nfa +( +_ +) +) += +hint +{ +return +hint +. +unwrap +( +) +; +} +if +self +. +nfa +. +insts +. +is_empty +( +) +{ +return +MatchType +: +: +Nothing +; +} +if +let +Some +( +literalty +) += +self +. +choose_literal_match_type +( +) +{ +return +literalty +; +} +if +let +Some +( +dfaty +) += +self +. +choose_dfa_match_type +( +) +{ +return +dfaty +; +} +MatchType +: +: +Nfa +( +MatchNfaType +: +: +Auto +) +} +fn +choose_literal_match_type +( +& +self +) +- +> +Option +< +MatchType +> +{ +# +[ +cfg +( +not +( +feature += +" +perf +- +literal +" +) +) +] +fn +imp +( +_ +: +& +ExecReadOnly +) +- +> +Option +< +MatchType +> +{ +None +} +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +fn +imp +( +ro +: +& +ExecReadOnly +) +- +> +Option +< +MatchType +> +{ +if +ro +. +res +. +len +( +) +! += +1 +{ +return +None +; +} +if +ro +. +ac +. +is_some +( +) +{ +return +Some +( +MatchType +: +: +Literal +( +MatchLiteralType +: +: +AhoCorasick +) +) +; +} +if +ro +. +nfa +. +prefixes +. +complete +( +) +{ +return +if +ro +. +nfa +. +is_anchored_start +{ +Some +( +MatchType +: +: +Literal +( +MatchLiteralType +: +: +AnchoredStart +) +) +} +else +{ +Some +( +MatchType +: +: +Literal +( +MatchLiteralType +: +: +Unanchored +) +) +} +; +} +if +ro +. +suffixes +. +complete +( +) +{ +return +if +ro +. +nfa +. +is_anchored_end +{ +Some +( +MatchType +: +: +Literal +( +MatchLiteralType +: +: +AnchoredEnd +) +) +} +else +{ +Some +( +MatchType +: +: +Literal +( +MatchLiteralType +: +: +Unanchored +) +) +} +; +} +None +} +imp +( +self +) +} +fn +choose_dfa_match_type +( +& +self +) +- +> +Option +< +MatchType +> +{ +# +[ +cfg +( +not +( +feature += +" +perf +- +dfa +" +) +) +] +fn +imp +( +_ +: +& +ExecReadOnly +) +- +> +Option +< +MatchType +> +{ +None +} +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +fn +imp +( +ro +: +& +ExecReadOnly +) +- +> +Option +< +MatchType +> +{ +if +! +dfa +: +: +can_exec +( +& +ro +. +dfa +) +{ +return +None +; +} +if +ro +. +res +. +len +( +) +> += +2 +{ +return +Some +( +MatchType +: +: +DfaMany +) +; +} +if +! +ro +. +nfa +. +is_anchored_start +& +& +ro +. +nfa +. +is_anchored_end +{ +return +Some +( +MatchType +: +: +DfaAnchoredReverse +) +; +} +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +{ +if +ro +. +should_suffix_scan +( +) +{ +return +Some +( +MatchType +: +: +DfaSuffix +) +; +} +} +Some +( +MatchType +: +: +Dfa +) +} +imp +( +self +) +} +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +fn +should_suffix_scan +( +& +self +) +- +> +bool +{ +if +self +. +suffixes +. +is_empty +( +) +{ +return +false +; +} +let +lcs_len += +self +. +suffixes +. +lcs +( +) +. +char_len +( +) +; +lcs_len +> += +3 +& +& +lcs_len +> +self +. +dfa +. +prefixes +. +lcp +( +) +. +char_len +( +) +} +fn +new_pool +( +ro +: +& +Arc +< +ExecReadOnly +> +) +- +> +Box +< +Pool +< +ProgramCache +> +> +{ +let +ro += +ro +. +clone +( +) +; +Box +: +: +new +( +Pool +: +: +new +( +Box +: +: +new +( +move +| +| +{ +AssertUnwindSafe +( +RefCell +: +: +new +( +ProgramCacheInner +: +: +new +( +& +ro +) +) +) +} +) +) +) +} +} +# +[ +derive +( +Clone +Copy +Debug +) +] +enum +MatchType +{ +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +Literal +( +MatchLiteralType +) +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +Dfa +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +DfaAnchoredReverse +# +[ +cfg +( +all +( +feature += +" +perf +- +dfa +" +feature += +" +perf +- +literal +" +) +) +] +DfaSuffix +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +DfaMany +Nfa +( +MatchNfaType +) +Nothing +} +# +[ +derive +( +Clone +Copy +Debug +) +] +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +enum +MatchLiteralType +{ +Unanchored +AnchoredStart +AnchoredEnd +AhoCorasick +} +# +[ +derive +( +Clone +Copy +Debug +Eq +PartialEq +) +] +enum +MatchNfaType +{ +Auto +Backtrack +PikeVM +} +pub +type +ProgramCache += +AssertUnwindSafe +< +RefCell +< +ProgramCacheInner +> +> +; +# +[ +derive +( +Debug +) +] +pub +struct +ProgramCacheInner +{ +pub +pikevm +: +pikevm +: +: +Cache +pub +backtrack +: +backtrack +: +: +Cache +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +pub +dfa +: +dfa +: +: +Cache +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +pub +dfa_reverse +: +dfa +: +: +Cache +} +impl +ProgramCacheInner +{ +fn +new +( +ro +: +& +ExecReadOnly +) +- +> +Self +{ +ProgramCacheInner +{ +pikevm +: +pikevm +: +: +Cache +: +: +new +( +& +ro +. +nfa +) +backtrack +: +backtrack +: +: +Cache +: +: +new +( +& +ro +. +nfa +) +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +dfa +: +dfa +: +: +Cache +: +: +new +( +& +ro +. +dfa +) +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] +dfa_reverse +: +dfa +: +: +Cache +: +: +new +( +& +ro +. +dfa_reverse +) +} +} +} +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +fn +alternation_literals +( +expr +: +& +Hir +) +- +> +Option +< +Vec +< +Vec +< +u8 +> +> +> +{ +use +regex_syntax +: +: +hir +: +: +{ +HirKind +Literal +} +; +if +! +expr +. +is_alternation_literal +( +) +{ +return +None +; +} +let +alts += +match +* +expr +. +kind +( +) +{ +HirKind +: +: +Alternation +( +ref +alts +) += +> +alts +_ += +> +return +None +} +; +let +extendlit += +| +lit +: +& +Literal +dst +: +& +mut +Vec +< +u8 +> +| +match +* +lit +{ +Literal +: +: +Unicode +( +c +) += +> +{ +let +mut +buf += +[ +0 +; +4 +] +; +dst +. +extend_from_slice +( +c +. +encode_utf8 +( +& +mut +buf +) +. +as_bytes +( +) +) +; +} +Literal +: +: +Byte +( +b +) += +> +{ +dst +. +push +( +b +) +; +} +} +; +let +mut +lits += +vec +! +[ +] +; +for +alt +in +alts +{ +let +mut +lit += +vec +! +[ +] +; +match +* +alt +. +kind +( +) +{ +HirKind +: +: +Literal +( +ref +x +) += +> +extendlit +( +x +& +mut +lit +) +HirKind +: +: +Concat +( +ref +exprs +) += +> +{ +for +e +in +exprs +{ +match +* +e +. +kind +( +) +{ +HirKind +: +: +Literal +( +ref +x +) += +> +extendlit +( +x +& +mut +lit +) +_ += +> +unreachable +! +( +" +expected +literal +got +{ +: +? +} +" +e +) +} +} +} +_ += +> +unreachable +! +( +" +expected +literal +or +concat +got +{ +: +? +} +" +alt +) +} +lits +. +push +( +lit +) +; +} +Some +( +lits +) +} +# +[ +cfg +( +test +) +] +mod +test +{ +# +[ +test +] +fn +uppercut_s_backtracking_bytes_default_bytes_mismatch +( +) +{ +use +crate +: +: +internal +: +: +ExecBuilder +; +let +backtrack_bytes_re += +ExecBuilder +: +: +new +( +" +^ +S +" +) +. +bounded_backtracking +( +) +. +only_utf8 +( +false +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_byte_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +. +unwrap +( +) +; +let +default_bytes_re += +ExecBuilder +: +: +new +( +" +^ +S +" +) +. +only_utf8 +( +false +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_byte_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +. +unwrap +( +) +; +let +input += +vec +! +[ +83 +83 +] +; +let +s1 += +backtrack_bytes_re +. +split +( +& +input +) +; +let +s2 += +default_bytes_re +. +split +( +& +input +) +; +for +( +chunk1 +chunk2 +) +in +s1 +. +zip +( +s2 +) +{ +assert_eq +! +( +chunk1 +chunk2 +) +; +} +} +# +[ +test +] +fn +unicode_lit_star_backtracking_utf8bytes_default_utf8bytes_mismatch +( +) +{ +use +crate +: +: +internal +: +: +ExecBuilder +; +let +backtrack_bytes_re += +ExecBuilder +: +: +new +( +r +" +^ +( +? +u +: +\ +* +) +" +) +. +bounded_backtracking +( +) +. +bytes +( +true +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +. +unwrap +( +) +; +let +default_bytes_re += +ExecBuilder +: +: +new +( +r +" +^ +( +? +u +: +\ +* +) +" +) +. +bytes +( +true +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +. +unwrap +( +) +; +let +input += +" +* +* +" +; +let +s1 += +backtrack_bytes_re +. +split +( +input +) +; +let +s2 += +default_bytes_re +. +split +( +input +) +; +for +( +chunk1 +chunk2 +) +in +s1 +. +zip +( +s2 +) +{ +assert_eq +! +( +chunk1 +chunk2 +) +; +} +} +} diff --git a/third_party/rust/regex-automata/src/util/interpolate.rs b/third_party/rust/regex/src/expand.rs similarity index 57% rename from third_party/rust/regex-automata/src/util/interpolate.rs rename to third_party/rust/regex/src/expand.rs index 19d479d79b187..5b513701ffc2f 100644 --- a/third_party/rust/regex-automata/src/util/interpolate.rs +++ b/third_party/rust/regex/src/expand.rs @@ -1,65 +1,50 @@ use -alloc +std : : -{ -string +str +; +use +crate : : -String -vec +find_byte : : -Vec -} +find_byte ; use crate : : -util -: -: -memchr +re_bytes +; +use +crate : : -memchr +re_unicode ; pub fn -string +expand_str ( -mut -replacement +caps : & -str -mut -append +re_unicode : -impl -FnMut -( -usize -& -mut -String -) +: +Captures +< +' +_ +> mut -name_to_index +replacement : -impl -FnMut -( & str -) -- -> -Option -< -usize -> dst : & @@ -76,7 +61,7 @@ is_empty ) { match -memchr +find_byte ( b ' @@ -256,11 +241,38 @@ i ) = > -append +{ +dst +. +push_str +( +caps +. +get ( i -dst ) +. +map +( +| +m +| +m +. +as_str +( +) +) +. +unwrap_or +( +" +" +) +) +; +} Ref : : @@ -271,28 +283,39 @@ name = > { -if -let -Some +dst +. +push_str ( -i -) -= -name_to_index +caps +. +name ( name ) -{ -append +. +map ( -i -dst +| +m +| +m +. +as_str +( +) +) +. +unwrap_or +( +" +" +) ) ; } } } -} dst . push_str @@ -303,44 +326,26 @@ replacement } pub fn -bytes +expand_bytes ( -mut -replacement +caps : & -[ -u8 -] -mut -append +re_bytes : -impl -FnMut -( -usize -& -mut -Vec +: +Captures < -u8 +' +_ > -) mut -name_to_index +replacement : -impl -FnMut -( & -str -) -- -> -Option -< -usize -> +[ +u8 +] dst : & @@ -360,7 +365,7 @@ is_empty ) { match -memchr +find_byte ( b ' @@ -381,7 +386,7 @@ i { dst . -extend_from_slice +extend ( & replacement @@ -530,11 +535,39 @@ i ) = > -append +{ +dst +. +extend +( +caps +. +get ( i -dst ) +. +map +( +| +m +| +m +. +as_bytes +( +) +) +. +unwrap_or +( +b +" +" +) +) +; +} Ref : : @@ -545,31 +578,43 @@ name = > { -if -let -Some +dst +. +extend ( -i -) -= -name_to_index +caps +. +name ( name ) -{ -append +. +map ( -i -dst +| +m +| +m +. +as_bytes +( +) +) +. +unwrap_or +( +b +" +" +) ) ; } } } -} dst . -extend_from_slice +extend ( replacement ) @@ -848,9 +893,6 @@ None let cap = -core -: -: str : : @@ -891,7 +933,7 @@ parse : : < -usize +u32 > ( ) @@ -908,6 +950,8 @@ Ref Number ( i +as +usize ) Err ( @@ -954,28 +998,6 @@ _ > > { -assert_eq -! -( -b -' -{ -' -rep -[ -i -. -checked_sub -( -1 -) -. -unwrap -( -) -] -) -; let start = @@ -1044,9 +1066,6 @@ let cap = match -core -: -: str : : @@ -1092,7 +1111,7 @@ parse : : < -usize +u32 > ( ) @@ -1109,6 +1128,8 @@ Ref Number ( i +as +usize ) Err ( @@ -1206,22 +1227,6 @@ mod tests { use -alloc -: -: -{ -string -: -: -String -vec -vec -: -: -Vec -} -; -use super : : @@ -1627,1103 +1632,4 @@ Z ) ) ; -find -! -( -find_cap_ref20 -" -{ -} -" -c -! -( -" -" -5 -) -) -; -find -! -( -find_cap_ref21 -" -{ -a -} -" -c -! -( -" -a -" -6 -) -) -; -find -! -( -find_cap_ref22 -" -{ -a -} -" -c -! -( -" -a -" -6 -) -) -; -find -! -( -find_cap_ref23 -" -{ -} -" -c -! -( -" -" -6 -) -) -; -find -! -( -find_cap_ref24 -" -{ -a -} -" -c -! -( -" -a -" -7 -) -) -; -find -! -( -find_cap_ref25 -" -{ -a -} -" -c -! -( -" -a -" -7 -) -) -; -find -! -( -find_cap_ref26 -" -{ -} -" -c -! -( -" -" -9 -) -) -; -fn -interpolate_string -( -mut -name_to_index -: -Vec -< -( -& -' -static -str -usize -) -> -caps -: -Vec -< -& -' -static -str -> -replacement -: -& -str -) -- -> -String -{ -name_to_index -. -sort_by_key -( -| -x -| -x -. -0 -) -; -let -mut -dst -= -String -: -: -new -( -) -; -super -: -: -string -( -replacement -| -i -dst -| -{ -if -let -Some -( -& -s -) -= -caps -. -get -( -i -) -{ -dst -. -push_str -( -s -) -; -} -} -| -name -| -- -> -Option -< -usize -> -{ -name_to_index -. -binary_search_by_key -( -& -name -| -x -| -x -. -0 -) -. -ok -( -) -. -map -( -| -i -| -name_to_index -[ -i -] -. -1 -) -} -& -mut -dst -) -; -dst -} -fn -interpolate_bytes -( -mut -name_to_index -: -Vec -< -( -& -' -static -str -usize -) -> -caps -: -Vec -< -& -' -static -str -> -replacement -: -& -str -) -- -> -String -{ -name_to_index -. -sort_by_key -( -| -x -| -x -. -0 -) -; -let -mut -dst -= -vec -! -[ -] -; -super -: -: -bytes -( -replacement -. -as_bytes -( -) -| -i -dst -| -{ -if -let -Some -( -& -s -) -= -caps -. -get -( -i -) -{ -dst -. -extend_from_slice -( -s -. -as_bytes -( -) -) -; -} -} -| -name -| -- -> -Option -< -usize -> -{ -name_to_index -. -binary_search_by_key -( -& -name -| -x -| -x -. -0 -) -. -ok -( -) -. -map -( -| -i -| -name_to_index -[ -i -] -. -1 -) -} -& -mut -dst -) -; -String -: -: -from_utf8 -( -dst -) -. -unwrap -( -) -} -macro_rules -! -interp -{ -( -name -: -ident -map -: -expr -caps -: -expr -hay -: -expr -expected -: -expr -( -) -* -) -= -> -{ -# -[ -test -] -fn -name -( -) -{ -assert_eq -! -( -expected -interpolate_string -( -map -caps -hay -) -" -interpolate -: -: -string -failed -" -) -; -assert_eq -! -( -expected -interpolate_bytes -( -map -caps -hay -) -" -interpolate -: -: -bytes -failed -" -) -; -} -} -; -} -interp -! -( -interp1 -vec -! -[ -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -" -" -xxx -" -] -" -test -foo -test -" -" -test -xxx -test -" -) -; -interp -! -( -interp2 -vec -! -[ -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -" -" -xxx -" -] -" -test -footest -" -" -test -" -) -; -interp -! -( -interp3 -vec -! -[ -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -" -" -xxx -" -] -" -test -{ -foo -} -test -" -" -testxxxtest -" -) -; -interp -! -( -interp4 -vec -! -[ -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -" -" -xxx -" -] -" -test -2test -" -" -test -" -) -; -interp -! -( -interp5 -vec -! -[ -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -" -" -xxx -" -] -" -test -{ -2 -} -test -" -" -testxxxtest -" -) -; -interp -! -( -interp6 -vec -! -[ -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -" -" -xxx -" -] -" -test -foo -test -" -" -test -foo -test -" -) -; -interp -! -( -interp7 -vec -! -[ -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -" -" -xxx -" -] -" -test -foo -" -" -test -xxx -" -) -; -interp -! -( -interp8 -vec -! -[ -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -" -" -xxx -" -] -" -foo -test -" -" -xxx -test -" -) -; -interp -! -( -interp9 -vec -! -[ -( -" -bar -" -1 -) -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -yyy -" -" -xxx -" -] -" -test -bar -foo -" -" -test -yyyxxx -" -) -; -interp -! -( -interp10 -vec -! -[ -( -" -bar -" -1 -) -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -yyy -" -" -xxx -" -] -" -test -test -" -" -test -test -" -) -; -interp -! -( -interp11 -vec -! -[ -( -" -bar -" -1 -) -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -yyy -" -" -xxx -" -] -" -test -{ -} -test -" -" -test -test -" -) -; -interp -! -( -interp12 -vec -! -[ -( -" -bar -" -1 -) -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -yyy -" -" -xxx -" -] -" -test -{ -} -test -" -" -test -test -" -) -; -interp -! -( -interp13 -vec -! -[ -( -" -bar -" -1 -) -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -yyy -" -" -xxx -" -] -" -test -{ -a -b -} -test -" -" -test -test -" -) -; -interp -! -( -interp14 -vec -! -[ -( -" -bar -" -1 -) -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -yyy -" -" -xxx -" -] -" -test -{ -a -} -test -" -" -test -test -" -) -; -interp -! -( -interp15 -vec -! -[ -( -" -bar -" -1 -) -( -" -foo -" -2 -) -] -vec -! -[ -" -" -" -yyy -" -" -xxx -" -] -" -test -{ -wat -bar -ok -" -" -test -{ -wat -yyy -ok -" -) -; } diff --git a/third_party/rust/regex/src/find_byte.rs b/third_party/rust/regex/src/find_byte.rs index d3a32c74847d6..ddae241299cc4 100644 --- a/third_party/rust/regex/src/find_byte.rs +++ b/third_party/rust/regex/src/find_byte.rs @@ -1,7 +1,4 @@ pub -( -crate -) fn find_byte ( @@ -109,10 +106,13 @@ Option usize > { +use memchr : : memchr +; +memchr ( needle haystack diff --git a/third_party/rust/regex-syntax/src/rank.rs b/third_party/rust/regex/src/freqs.rs similarity index 99% rename from third_party/rust/regex-syntax/src/rank.rs rename to third_party/rust/regex/src/freqs.rs index ace2539231fff..093083e368316 100644 --- a/third_party/rust/regex-syntax/src/rank.rs +++ b/third_party/rust/regex/src/freqs.rs @@ -1,7 +1,4 @@ pub -( -crate -) const BYTE_FREQUENCIES : diff --git a/third_party/rust/regex/src/input.rs b/third_party/rust/regex/src/input.rs new file mode 100644 index 0000000000000..7479a0229ac81 --- /dev/null +++ b/third_party/rust/regex/src/input.rs @@ -0,0 +1,2456 @@ +use +std +: +: +char +; +use +std +: +: +cmp +: +: +Ordering +; +use +std +: +: +fmt +; +use +std +: +: +ops +; +use +std +: +: +u32 +; +use +crate +: +: +literal +: +: +LiteralSearcher +; +use +crate +: +: +prog +: +: +InstEmptyLook +; +use +crate +: +: +utf8 +: +: +{ +decode_last_utf8 +decode_utf8 +} +; +# +[ +derive +( +Clone +Copy +Debug +) +] +pub +struct +InputAt +{ +pos +: +usize +c +: +Char +byte +: +Option +< +u8 +> +len +: +usize +} +impl +InputAt +{ +pub +fn +is_start +( +& +self +) +- +> +bool +{ +self +. +pos += += +0 +} +pub +fn +is_end +( +& +self +) +- +> +bool +{ +self +. +c +. +is_none +( +) +& +& +self +. +byte +. +is_none +( +) +} +pub +fn +char +( +& +self +) +- +> +Char +{ +self +. +c +} +pub +fn +byte +( +& +self +) +- +> +Option +< +u8 +> +{ +self +. +byte +} +pub +fn +len +( +& +self +) +- +> +usize +{ +self +. +len +} +pub +fn +is_empty +( +& +self +) +- +> +bool +{ +self +. +len += += +0 +} +pub +fn +pos +( +& +self +) +- +> +usize +{ +self +. +pos +} +pub +fn +next_pos +( +& +self +) +- +> +usize +{ +self +. +pos ++ +self +. +len +} +} +pub +trait +Input +: +fmt +: +: +Debug +{ +fn +at +( +& +self +i +: +usize +) +- +> +InputAt +; +fn +next_char +( +& +self +at +: +InputAt +) +- +> +Char +; +fn +previous_char +( +& +self +at +: +InputAt +) +- +> +Char +; +fn +is_empty_match +( +& +self +at +: +InputAt +empty +: +& +InstEmptyLook +) +- +> +bool +; +fn +prefix_at +( +& +self +prefixes +: +& +LiteralSearcher +at +: +InputAt +) +- +> +Option +< +InputAt +> +; +fn +len +( +& +self +) +- +> +usize +; +fn +is_empty +( +& +self +) +- +> +bool +{ +self +. +len +( +) += += +0 +} +fn +as_bytes +( +& +self +) +- +> +& +[ +u8 +] +; +} +impl +< +' +a +T +: +Input +> +Input +for +& +' +a +T +{ +fn +at +( +& +self +i +: +usize +) +- +> +InputAt +{ +( +* +* +self +) +. +at +( +i +) +} +fn +next_char +( +& +self +at +: +InputAt +) +- +> +Char +{ +( +* +* +self +) +. +next_char +( +at +) +} +fn +previous_char +( +& +self +at +: +InputAt +) +- +> +Char +{ +( +* +* +self +) +. +previous_char +( +at +) +} +fn +is_empty_match +( +& +self +at +: +InputAt +empty +: +& +InstEmptyLook +) +- +> +bool +{ +( +* +* +self +) +. +is_empty_match +( +at +empty +) +} +fn +prefix_at +( +& +self +prefixes +: +& +LiteralSearcher +at +: +InputAt +) +- +> +Option +< +InputAt +> +{ +( +* +* +self +) +. +prefix_at +( +prefixes +at +) +} +fn +len +( +& +self +) +- +> +usize +{ +( +* +* +self +) +. +len +( +) +} +fn +as_bytes +( +& +self +) +- +> +& +[ +u8 +] +{ +( +* +* +self +) +. +as_bytes +( +) +} +} +# +[ +derive +( +Clone +Copy +Debug +) +] +pub +struct +CharInput +< +' +t +> +( +& +' +t +[ +u8 +] +) +; +impl +< +' +t +> +CharInput +< +' +t +> +{ +pub +fn +new +( +s +: +& +' +t +[ +u8 +] +) +- +> +CharInput +< +' +t +> +{ +CharInput +( +s +) +} +} +impl +< +' +t +> +ops +: +: +Deref +for +CharInput +< +' +t +> +{ +type +Target += +[ +u8 +] +; +fn +deref +( +& +self +) +- +> +& +[ +u8 +] +{ +self +. +0 +} +} +impl +< +' +t +> +Input +for +CharInput +< +' +t +> +{ +fn +at +( +& +self +i +: +usize +) +- +> +InputAt +{ +if +i +> += +self +. +len +( +) +{ +InputAt +{ +pos +: +self +. +len +( +) +c +: +None +. +into +( +) +byte +: +None +len +: +0 +} +} +else +{ +let +c += +decode_utf8 +( +& +self +[ +i +. +. +] +) +. +map +( +| +( +c +_ +) +| +c +) +. +into +( +) +; +InputAt +{ +pos +: +i +c +byte +: +None +len +: +c +. +len_utf8 +( +) +} +} +} +fn +next_char +( +& +self +at +: +InputAt +) +- +> +Char +{ +at +. +char +( +) +} +fn +previous_char +( +& +self +at +: +InputAt +) +- +> +Char +{ +decode_last_utf8 +( +& +self +[ +. +. +at +. +pos +( +) +] +) +. +map +( +| +( +c +_ +) +| +c +) +. +into +( +) +} +fn +is_empty_match +( +& +self +at +: +InputAt +empty +: +& +InstEmptyLook +) +- +> +bool +{ +use +crate +: +: +prog +: +: +EmptyLook +: +: +* +; +match +empty +. +look +{ +StartLine += +> +{ +let +c += +self +. +previous_char +( +at +) +; +at +. +pos +( +) += += +0 +| +| +c += += +' +\ +n +' +} +EndLine += +> +{ +let +c += +self +. +next_char +( +at +) +; +at +. +pos +( +) += += +self +. +len +( +) +| +| +c += += +' +\ +n +' +} +StartText += +> +at +. +pos +( +) += += +0 +EndText += +> +at +. +pos +( +) += += +self +. +len +( +) +WordBoundary += +> +{ +let +( +c1 +c2 +) += +( +self +. +previous_char +( +at +) +self +. +next_char +( +at +) +) +; +c1 +. +is_word_char +( +) +! += +c2 +. +is_word_char +( +) +} +NotWordBoundary += +> +{ +let +( +c1 +c2 +) += +( +self +. +previous_char +( +at +) +self +. +next_char +( +at +) +) +; +c1 +. +is_word_char +( +) += += +c2 +. +is_word_char +( +) +} +WordBoundaryAscii += +> +{ +let +( +c1 +c2 +) += +( +self +. +previous_char +( +at +) +self +. +next_char +( +at +) +) +; +c1 +. +is_word_byte +( +) +! += +c2 +. +is_word_byte +( +) +} +NotWordBoundaryAscii += +> +{ +let +( +c1 +c2 +) += +( +self +. +previous_char +( +at +) +self +. +next_char +( +at +) +) +; +c1 +. +is_word_byte +( +) += += +c2 +. +is_word_byte +( +) +} +} +} +fn +prefix_at +( +& +self +prefixes +: +& +LiteralSearcher +at +: +InputAt +) +- +> +Option +< +InputAt +> +{ +prefixes +. +find +( +& +self +[ +at +. +pos +( +) +. +. +] +) +. +map +( +| +( +s +_ +) +| +self +. +at +( +at +. +pos +( +) ++ +s +) +) +} +fn +len +( +& +self +) +- +> +usize +{ +self +. +0 +. +len +( +) +} +fn +as_bytes +( +& +self +) +- +> +& +[ +u8 +] +{ +self +. +0 +} +} +# +[ +derive +( +Clone +Copy +Debug +) +] +pub +struct +ByteInput +< +' +t +> +{ +text +: +& +' +t +[ +u8 +] +only_utf8 +: +bool +} +impl +< +' +t +> +ByteInput +< +' +t +> +{ +pub +fn +new +( +text +: +& +' +t +[ +u8 +] +only_utf8 +: +bool +) +- +> +ByteInput +< +' +t +> +{ +ByteInput +{ +text +only_utf8 +} +} +} +impl +< +' +t +> +ops +: +: +Deref +for +ByteInput +< +' +t +> +{ +type +Target += +[ +u8 +] +; +fn +deref +( +& +self +) +- +> +& +[ +u8 +] +{ +self +. +text +} +} +impl +< +' +t +> +Input +for +ByteInput +< +' +t +> +{ +fn +at +( +& +self +i +: +usize +) +- +> +InputAt +{ +if +i +> += +self +. +len +( +) +{ +InputAt +{ +pos +: +self +. +len +( +) +c +: +None +. +into +( +) +byte +: +None +len +: +0 +} +} +else +{ +InputAt +{ +pos +: +i +c +: +None +. +into +( +) +byte +: +self +. +get +( +i +) +. +cloned +( +) +len +: +1 +} +} +} +fn +next_char +( +& +self +at +: +InputAt +) +- +> +Char +{ +decode_utf8 +( +& +self +[ +at +. +pos +( +) +. +. +] +) +. +map +( +| +( +c +_ +) +| +c +) +. +into +( +) +} +fn +previous_char +( +& +self +at +: +InputAt +) +- +> +Char +{ +decode_last_utf8 +( +& +self +[ +. +. +at +. +pos +( +) +] +) +. +map +( +| +( +c +_ +) +| +c +) +. +into +( +) +} +fn +is_empty_match +( +& +self +at +: +InputAt +empty +: +& +InstEmptyLook +) +- +> +bool +{ +use +crate +: +: +prog +: +: +EmptyLook +: +: +* +; +match +empty +. +look +{ +StartLine += +> +{ +let +c += +self +. +previous_char +( +at +) +; +at +. +pos +( +) += += +0 +| +| +c += += +' +\ +n +' +} +EndLine += +> +{ +let +c += +self +. +next_char +( +at +) +; +at +. +pos +( +) += += +self +. +len +( +) +| +| +c += += +' +\ +n +' +} +StartText += +> +at +. +pos +( +) += += +0 +EndText += +> +at +. +pos +( +) += += +self +. +len +( +) +WordBoundary += +> +{ +let +( +c1 +c2 +) += +( +self +. +previous_char +( +at +) +self +. +next_char +( +at +) +) +; +c1 +. +is_word_char +( +) +! += +c2 +. +is_word_char +( +) +} +NotWordBoundary += +> +{ +let +( +c1 +c2 +) += +( +self +. +previous_char +( +at +) +self +. +next_char +( +at +) +) +; +c1 +. +is_word_char +( +) += += +c2 +. +is_word_char +( +) +} +WordBoundaryAscii += +> +{ +let +( +c1 +c2 +) += +( +self +. +previous_char +( +at +) +self +. +next_char +( +at +) +) +; +if +self +. +only_utf8 +{ +if +c1 +. +is_none +( +) +& +& +! +at +. +is_start +( +) +{ +return +false +; +} +if +c2 +. +is_none +( +) +& +& +! +at +. +is_end +( +) +{ +return +false +; +} +} +c1 +. +is_word_byte +( +) +! += +c2 +. +is_word_byte +( +) +} +NotWordBoundaryAscii += +> +{ +let +( +c1 +c2 +) += +( +self +. +previous_char +( +at +) +self +. +next_char +( +at +) +) +; +if +self +. +only_utf8 +{ +if +c1 +. +is_none +( +) +& +& +! +at +. +is_start +( +) +{ +return +false +; +} +if +c2 +. +is_none +( +) +& +& +! +at +. +is_end +( +) +{ +return +false +; +} +} +c1 +. +is_word_byte +( +) += += +c2 +. +is_word_byte +( +) +} +} +} +fn +prefix_at +( +& +self +prefixes +: +& +LiteralSearcher +at +: +InputAt +) +- +> +Option +< +InputAt +> +{ +prefixes +. +find +( +& +self +[ +at +. +pos +( +) +. +. +] +) +. +map +( +| +( +s +_ +) +| +self +. +at +( +at +. +pos +( +) ++ +s +) +) +} +fn +len +( +& +self +) +- +> +usize +{ +self +. +text +. +len +( +) +} +fn +as_bytes +( +& +self +) +- +> +& +[ +u8 +] +{ +self +. +text +} +} +# +[ +derive +( +Clone +Copy +Hash +PartialEq +Eq +PartialOrd +Ord +) +] +pub +struct +Char +( +u32 +) +; +impl +fmt +: +: +Debug +for +Char +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +match +char +: +: +from_u32 +( +self +. +0 +) +{ +None += +> +write +! +( +f +" +Empty +" +) +Some +( +c +) += +> +write +! +( +f +" +{ +: +? +} +" +c +) +} +} +} +impl +Char +{ +# +[ +inline +] +pub +fn +is_none +( +self +) +- +> +bool +{ +self +. +0 += += +u32 +: +: +MAX +} +# +[ +inline +] +pub +fn +len_utf8 +( +self +) +- +> +usize +{ +char +: +: +from_u32 +( +self +. +0 +) +. +map_or +( +1 +| +c +| +c +. +len_utf8 +( +) +) +} +pub +fn +is_word_char +( +self +) +- +> +bool +{ +char +: +: +from_u32 +( +self +. +0 +) +. +map_or +( +false +regex_syntax +: +: +is_word_character +) +} +pub +fn +is_word_byte +( +self +) +- +> +bool +{ +match +char +: +: +from_u32 +( +self +. +0 +) +{ +Some +( +c +) +if +c +< += +' +\ +u +{ +7F +} +' += +> +regex_syntax +: +: +is_word_byte +( +c +as +u8 +) +None +| +Some +( +_ +) += +> +false +} +} +} +impl +From +< +char +> +for +Char +{ +fn +from +( +c +: +char +) +- +> +Char +{ +Char +( +c +as +u32 +) +} +} +impl +From +< +Option +< +char +> +> +for +Char +{ +fn +from +( +c +: +Option +< +char +> +) +- +> +Char +{ +c +. +map_or +( +Char +( +u32 +: +: +MAX +) +| +c +| +c +. +into +( +) +) +} +} +impl +PartialEq +< +char +> +for +Char +{ +# +[ +inline +] +fn +eq +( +& +self +other +: +& +char +) +- +> +bool +{ +self +. +0 += += +* +other +as +u32 +} +} +impl +PartialEq +< +Char +> +for +char +{ +# +[ +inline +] +fn +eq +( +& +self +other +: +& +Char +) +- +> +bool +{ +* +self +as +u32 += += +other +. +0 +} +} +impl +PartialOrd +< +char +> +for +Char +{ +# +[ +inline +] +fn +partial_cmp +( +& +self +other +: +& +char +) +- +> +Option +< +Ordering +> +{ +self +. +0 +. +partial_cmp +( +& +( +* +other +as +u32 +) +) +} +} +impl +PartialOrd +< +Char +> +for +char +{ +# +[ +inline +] +fn +partial_cmp +( +& +self +other +: +& +Char +) +- +> +Option +< +Ordering +> +{ +( +* +self +as +u32 +) +. +partial_cmp +( +& +other +. +0 +) +} +} diff --git a/third_party/rust/regex/src/lib.rs b/third_party/rust/regex/src/lib.rs index 116de44d5a963..d79eeb26d847f 100644 --- a/third_party/rust/regex/src/lib.rs +++ b/third_party/rust/regex/src/lib.rs @@ -1,11 +1,6 @@ # ! [ -no_std -] -# -! -[ deny ( missing_docs @@ -39,100 +34,267 @@ missing_debug_implementations [ cfg ( -doctest +not +( +feature += +" +std +" +) ) ] -doc_comment -: -: -doctest +compile_error ! ( " -. -. -/ -README -. -md +std +feature +is +currently +required +to +build +this +crate " ) ; -extern +# +[ +cfg +( +feature += +" +std +" +) +] +pub +use crate -alloc +: +: +error +: +: +Error ; # [ cfg ( -any +feature += +" +std +" +) +] +pub +use +crate +: +: +re_builder +: +: +set_unicode +: +: +* +; +# +[ +cfg ( -test feature = " std " ) +] +pub +use +crate +: +: +re_builder +: +: +unicode +: +: +* +; +# +[ +cfg +( +feature += +" +std +" ) ] -extern +pub +use crate +: +: +re_set +: +: +unicode +: +: +* +; +# +[ +cfg +( +feature += +" std +" +) +] +pub +use +crate +: +: +re_unicode +: +: +{ +escape +CaptureLocations +CaptureMatches +CaptureNames +Captures +Locations +Match +Matches +NoExpand +Regex +Replacer +ReplacerRef +Split +SplitN +SubCaptureMatches +} ; +# +[ +cfg +( +feature += +" +std +" +) +] +pub +mod +bytes +{ pub use crate : : -error +re_builder : : -Error +bytes +: +: +* ; pub use crate : : -{ -builders +re_builder : : -string +set_bytes : : * -regex +; +pub +use +crate : : -string +re_bytes : : * -regexset +; +pub +use +crate : : -string +re_set +: +: +bytes : : * +; } +mod +backtrack ; mod -builders +compile ; -pub +# +[ +cfg +( +feature += +" +perf +- +dfa +" +) +] mod -bytes +dfa ; mod error ; mod +exec +; +mod +expand +; +mod find_byte ; +mod +input +; +mod +literal +; # [ cfg @@ -148,35 +310,118 @@ mod pattern ; mod -regex +pikevm ; mod -regexset +pool ; -pub -fn -escape +mod +prog +; +mod +re_builder +; +mod +re_bytes +; +mod +re_set +; +mod +re_trait +; +mod +re_unicode +; +mod +sparse +; +mod +utf8 +; +# +[ +doc ( -pattern -: -& -str +hidden ) -- -> -alloc +] +# +[ +cfg +( +feature += +" +std +" +) +] +pub +mod +internal +{ +pub +use +crate : : -string +compile +: +: +Compiler +; +pub +use +crate +: +: +exec : : -String { -regex_syntax +Exec +ExecBuilder +} +; +pub +use +crate : : -escape -( -pattern -) +input +: +: +{ +Char +CharInput +Input +InputAt +} +; +pub +use +crate +: +: +literal +: +: +LiteralSearcher +; +pub +use +crate +: +: +prog +: +: +{ +EmptyLook +Inst +InstRanges +Program +} +; } diff --git a/third_party/rust/regex/src/literal/imp.rs b/third_party/rust/regex/src/literal/imp.rs new file mode 100644 index 0000000000000..b24dcb4525801 --- /dev/null +++ b/third_party/rust/regex/src/literal/imp.rs @@ -0,0 +1,2474 @@ +use +std +: +: +mem +; +use +aho_corasick +: +: +{ +self +packed +AhoCorasick +AhoCorasickBuilder +} +; +use +memchr +: +: +{ +memchr +memchr2 +memchr3 +memmem +} +; +use +regex_syntax +: +: +hir +: +: +literal +: +: +{ +Literal +Literals +} +; +# +[ +derive +( +Clone +Debug +) +] +pub +struct +LiteralSearcher +{ +complete +: +bool +lcp +: +Memmem +lcs +: +Memmem +matcher +: +Matcher +} +# +[ +derive +( +Clone +Debug +) +] +enum +Matcher +{ +Empty +Bytes +( +SingleByteSet +) +Memmem +( +Memmem +) +AC +{ +ac +: +AhoCorasick +< +u32 +> +lits +: +Vec +< +Literal +> +} +Packed +{ +s +: +packed +: +: +Searcher +lits +: +Vec +< +Literal +> +} +} +impl +LiteralSearcher +{ +pub +fn +empty +( +) +- +> +Self +{ +Self +: +: +new +( +Literals +: +: +empty +( +) +Matcher +: +: +Empty +) +} +pub +fn +prefixes +( +lits +: +Literals +) +- +> +Self +{ +let +matcher += +Matcher +: +: +prefixes +( +& +lits +) +; +Self +: +: +new +( +lits +matcher +) +} +pub +fn +suffixes +( +lits +: +Literals +) +- +> +Self +{ +let +matcher += +Matcher +: +: +suffixes +( +& +lits +) +; +Self +: +: +new +( +lits +matcher +) +} +fn +new +( +lits +: +Literals +matcher +: +Matcher +) +- +> +Self +{ +let +complete += +lits +. +all_complete +( +) +; +LiteralSearcher +{ +complete +lcp +: +Memmem +: +: +new +( +lits +. +longest_common_prefix +( +) +) +lcs +: +Memmem +: +: +new +( +lits +. +longest_common_suffix +( +) +) +matcher +} +} +pub +fn +complete +( +& +self +) +- +> +bool +{ +self +. +complete +& +& +! +self +. +is_empty +( +) +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +pub +fn +find +( +& +self +haystack +: +& +[ +u8 +] +) +- +> +Option +< +( +usize +usize +) +> +{ +use +self +: +: +Matcher +: +: +* +; +match +self +. +matcher +{ +Empty += +> +Some +( +( +0 +0 +) +) +Bytes +( +ref +sset +) += +> +sset +. +find +( +haystack +) +. +map +( +| +i +| +( +i +i ++ +1 +) +) +Memmem +( +ref +s +) += +> +s +. +find +( +haystack +) +. +map +( +| +i +| +( +i +i ++ +s +. +len +( +) +) +) +AC +{ +ref +ac +. +. +} += +> +{ +ac +. +find +( +haystack +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +} +Packed +{ +ref +s +. +. +} += +> +{ +s +. +find +( +haystack +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +} +} +} +pub +fn +find_start +( +& +self +haystack +: +& +[ +u8 +] +) +- +> +Option +< +( +usize +usize +) +> +{ +for +lit +in +self +. +iter +( +) +{ +if +lit +. +len +( +) +> +haystack +. +len +( +) +{ +continue +; +} +if +lit += += +& +haystack +[ +0 +. +. +lit +. +len +( +) +] +{ +return +Some +( +( +0 +lit +. +len +( +) +) +) +; +} +} +None +} +pub +fn +find_end +( +& +self +haystack +: +& +[ +u8 +] +) +- +> +Option +< +( +usize +usize +) +> +{ +for +lit +in +self +. +iter +( +) +{ +if +lit +. +len +( +) +> +haystack +. +len +( +) +{ +continue +; +} +if +lit += += +& +haystack +[ +haystack +. +len +( +) +- +lit +. +len +( +) +. +. +] +{ +return +Some +( +( +haystack +. +len +( +) +- +lit +. +len +( +) +haystack +. +len +( +) +) +) +; +} +} +None +} +pub +fn +iter +( +& +self +) +- +> +LiteralIter +< +' +_ +> +{ +match +self +. +matcher +{ +Matcher +: +: +Empty += +> +LiteralIter +: +: +Empty +Matcher +: +: +Bytes +( +ref +sset +) += +> +LiteralIter +: +: +Bytes +( +& +sset +. +dense +) +Matcher +: +: +Memmem +( +ref +s +) += +> +LiteralIter +: +: +Single +( +& +s +. +finder +. +needle +( +) +) +Matcher +: +: +AC +{ +ref +lits +. +. +} += +> +LiteralIter +: +: +AC +( +lits +) +Matcher +: +: +Packed +{ +ref +lits +. +. +} += +> +LiteralIter +: +: +Packed +( +lits +) +} +} +pub +fn +lcp +( +& +self +) +- +> +& +Memmem +{ +& +self +. +lcp +} +pub +fn +lcs +( +& +self +) +- +> +& +Memmem +{ +& +self +. +lcs +} +pub +fn +is_empty +( +& +self +) +- +> +bool +{ +self +. +len +( +) += += +0 +} +pub +fn +len +( +& +self +) +- +> +usize +{ +use +self +: +: +Matcher +: +: +* +; +match +self +. +matcher +{ +Empty += +> +0 +Bytes +( +ref +sset +) += +> +sset +. +dense +. +len +( +) +Memmem +( +_ +) += +> +1 +AC +{ +ref +ac +. +. +} += +> +ac +. +pattern_count +( +) +Packed +{ +ref +lits +. +. +} += +> +lits +. +len +( +) +} +} +pub +fn +approximate_size +( +& +self +) +- +> +usize +{ +use +self +: +: +Matcher +: +: +* +; +match +self +. +matcher +{ +Empty += +> +0 +Bytes +( +ref +sset +) += +> +sset +. +approximate_size +( +) +Memmem +( +ref +single +) += +> +single +. +approximate_size +( +) +AC +{ +ref +ac +. +. +} += +> +ac +. +heap_bytes +( +) +Packed +{ +ref +s +. +. +} += +> +s +. +heap_bytes +( +) +} +} +} +impl +Matcher +{ +fn +prefixes +( +lits +: +& +Literals +) +- +> +Self +{ +let +sset += +SingleByteSet +: +: +prefixes +( +lits +) +; +Matcher +: +: +new +( +lits +sset +) +} +fn +suffixes +( +lits +: +& +Literals +) +- +> +Self +{ +let +sset += +SingleByteSet +: +: +suffixes +( +lits +) +; +Matcher +: +: +new +( +lits +sset +) +} +fn +new +( +lits +: +& +Literals +sset +: +SingleByteSet +) +- +> +Self +{ +if +lits +. +literals +( +) +. +is_empty +( +) +{ +return +Matcher +: +: +Empty +; +} +if +sset +. +dense +. +len +( +) +> += +26 +{ +return +Matcher +: +: +Empty +; +} +if +sset +. +complete +{ +return +Matcher +: +: +Bytes +( +sset +) +; +} +if +lits +. +literals +( +) +. +len +( +) += += +1 +{ +return +Matcher +: +: +Memmem +( +Memmem +: +: +new +( +& +lits +. +literals +( +) +[ +0 +] +) +) +; +} +let +pats += +lits +. +literals +( +) +. +to_owned +( +) +; +let +is_aho_corasick_fast += +sset +. +dense +. +len +( +) +< += +1 +& +& +sset +. +all_ascii +; +if +lits +. +literals +( +) +. +len +( +) +< += +100 +& +& +! +is_aho_corasick_fast +{ +let +mut +builder += +packed +: +: +Config +: +: +new +( +) +. +match_kind +( +packed +: +: +MatchKind +: +: +LeftmostFirst +) +. +builder +( +) +; +if +let +Some +( +s +) += +builder +. +extend +( +& +pats +) +. +build +( +) +{ +return +Matcher +: +: +Packed +{ +s +lits +: +pats +} +; +} +} +let +ac += +AhoCorasickBuilder +: +: +new +( +) +. +match_kind +( +aho_corasick +: +: +MatchKind +: +: +LeftmostFirst +) +. +dfa +( +true +) +. +build_with_size +: +: +< +u32 +_ +_ +> +( +& +pats +) +. +unwrap +( +) +; +Matcher +: +: +AC +{ +ac +lits +: +pats +} +} +} +# +[ +derive +( +Debug +) +] +pub +enum +LiteralIter +< +' +a +> +{ +Empty +Bytes +( +& +' +a +[ +u8 +] +) +Single +( +& +' +a +[ +u8 +] +) +AC +( +& +' +a +[ +Literal +] +) +Packed +( +& +' +a +[ +Literal +] +) +} +impl +< +' +a +> +Iterator +for +LiteralIter +< +' +a +> +{ +type +Item += +& +' +a +[ +u8 +] +; +fn +next +( +& +mut +self +) +- +> +Option +< +Self +: +: +Item +> +{ +match +* +self +{ +LiteralIter +: +: +Empty += +> +None +LiteralIter +: +: +Bytes +( +ref +mut +many +) += +> +{ +if +many +. +is_empty +( +) +{ +None +} +else +{ +let +next += +& +many +[ +0 +. +. +1 +] +; +* +many += +& +many +[ +1 +. +. +] +; +Some +( +next +) +} +} +LiteralIter +: +: +Single +( +ref +mut +one +) += +> +{ +if +one +. +is_empty +( +) +{ +None +} +else +{ +let +next += +& +one +[ +. +. +] +; +* +one += +& +[ +] +; +Some +( +next +) +} +} +LiteralIter +: +: +AC +( +ref +mut +lits +) += +> +{ +if +lits +. +is_empty +( +) +{ +None +} +else +{ +let +next += +& +lits +[ +0 +] +; +* +lits += +& +lits +[ +1 +. +. +] +; +Some +( +& +* +* +next +) +} +} +LiteralIter +: +: +Packed +( +ref +mut +lits +) += +> +{ +if +lits +. +is_empty +( +) +{ +None +} +else +{ +let +next += +& +lits +[ +0 +] +; +* +lits += +& +lits +[ +1 +. +. +] +; +Some +( +& +* +* +next +) +} +} +} +} +} +# +[ +derive +( +Clone +Debug +) +] +struct +SingleByteSet +{ +sparse +: +Vec +< +bool +> +dense +: +Vec +< +u8 +> +complete +: +bool +all_ascii +: +bool +} +impl +SingleByteSet +{ +fn +new +( +) +- +> +SingleByteSet +{ +SingleByteSet +{ +sparse +: +vec +! +[ +false +; +256 +] +dense +: +vec +! +[ +] +complete +: +true +all_ascii +: +true +} +} +fn +prefixes +( +lits +: +& +Literals +) +- +> +SingleByteSet +{ +let +mut +sset += +SingleByteSet +: +: +new +( +) +; +for +lit +in +lits +. +literals +( +) +{ +sset +. +complete += +sset +. +complete +& +& +lit +. +len +( +) += += +1 +; +if +let +Some +( +& +b +) += +lit +. +get +( +0 +) +{ +if +! +sset +. +sparse +[ +b +as +usize +] +{ +if +b +> +0x7F +{ +sset +. +all_ascii += +false +; +} +sset +. +dense +. +push +( +b +) +; +sset +. +sparse +[ +b +as +usize +] += +true +; +} +} +} +sset +} +fn +suffixes +( +lits +: +& +Literals +) +- +> +SingleByteSet +{ +let +mut +sset += +SingleByteSet +: +: +new +( +) +; +for +lit +in +lits +. +literals +( +) +{ +sset +. +complete += +sset +. +complete +& +& +lit +. +len +( +) += += +1 +; +if +let +Some +( +& +b +) += +lit +. +get +( +lit +. +len +( +) +. +checked_sub +( +1 +) +. +unwrap +( +) +) +{ +if +! +sset +. +sparse +[ +b +as +usize +] +{ +if +b +> +0x7F +{ +sset +. +all_ascii += +false +; +} +sset +. +dense +. +push +( +b +) +; +sset +. +sparse +[ +b +as +usize +] += +true +; +} +} +} +sset +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +find +( +& +self +text +: +& +[ +u8 +] +) +- +> +Option +< +usize +> +{ +match +self +. +dense +. +len +( +) +{ +0 += +> +None +1 += +> +memchr +( +self +. +dense +[ +0 +] +text +) +2 += +> +memchr2 +( +self +. +dense +[ +0 +] +self +. +dense +[ +1 +] +text +) +3 += +> +memchr3 +( +self +. +dense +[ +0 +] +self +. +dense +[ +1 +] +self +. +dense +[ +2 +] +text +) +_ += +> +self +. +_find +( +text +) +} +} +fn +_find +( +& +self +haystack +: +& +[ +u8 +] +) +- +> +Option +< +usize +> +{ +for +( +i +& +b +) +in +haystack +. +iter +( +) +. +enumerate +( +) +{ +if +self +. +sparse +[ +b +as +usize +] +{ +return +Some +( +i +) +; +} +} +None +} +fn +approximate_size +( +& +self +) +- +> +usize +{ +( +self +. +dense +. +len +( +) +* +mem +: +: +size_of +: +: +< +u8 +> +( +) +) ++ +( +self +. +sparse +. +len +( +) +* +mem +: +: +size_of +: +: +< +bool +> +( +) +) +} +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +Memmem +{ +finder +: +memmem +: +: +Finder +< +' +static +> +char_len +: +usize +} +impl +Memmem +{ +fn +new +( +pat +: +& +[ +u8 +] +) +- +> +Memmem +{ +Memmem +{ +finder +: +memmem +: +: +Finder +: +: +new +( +pat +) +. +into_owned +( +) +char_len +: +char_len_lossy +( +pat +) +} +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +pub +fn +find +( +& +self +haystack +: +& +[ +u8 +] +) +- +> +Option +< +usize +> +{ +self +. +finder +. +find +( +haystack +) +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +pub +fn +is_suffix +( +& +self +text +: +& +[ +u8 +] +) +- +> +bool +{ +if +text +. +len +( +) +< +self +. +len +( +) +{ +return +false +; +} +& +text +[ +text +. +len +( +) +- +self +. +len +( +) +. +. +] += += +self +. +finder +. +needle +( +) +} +pub +fn +len +( +& +self +) +- +> +usize +{ +self +. +finder +. +needle +( +) +. +len +( +) +} +pub +fn +char_len +( +& +self +) +- +> +usize +{ +self +. +char_len +} +fn +approximate_size +( +& +self +) +- +> +usize +{ +self +. +finder +. +needle +( +) +. +len +( +) +* +mem +: +: +size_of +: +: +< +u8 +> +( +) +} +} +fn +char_len_lossy +( +bytes +: +& +[ +u8 +] +) +- +> +usize +{ +String +: +: +from_utf8_lossy +( +bytes +) +. +chars +( +) +. +count +( +) +} diff --git a/third_party/rust/regex/src/literal/mod.rs b/third_party/rust/regex/src/literal/mod.rs new file mode 100644 index 0000000000000..415b69e735a0a --- /dev/null +++ b/third_party/rust/regex/src/literal/mod.rs @@ -0,0 +1,272 @@ +pub +use +self +: +: +imp +: +: +* +; +# +[ +cfg +( +feature += +" +perf +- +literal +" +) +] +mod +imp +; +# +[ +allow +( +missing_docs +) +] +# +[ +cfg +( +not +( +feature += +" +perf +- +literal +" +) +) +] +mod +imp +{ +use +regex_syntax +: +: +hir +: +: +literal +: +: +Literals +; +# +[ +derive +( +Clone +Debug +) +] +pub +struct +LiteralSearcher +( +( +) +) +; +impl +LiteralSearcher +{ +pub +fn +empty +( +) +- +> +Self +{ +LiteralSearcher +( +( +) +) +} +pub +fn +prefixes +( +_ +: +Literals +) +- +> +Self +{ +LiteralSearcher +( +( +) +) +} +pub +fn +suffixes +( +_ +: +Literals +) +- +> +Self +{ +LiteralSearcher +( +( +) +) +} +pub +fn +complete +( +& +self +) +- +> +bool +{ +false +} +pub +fn +find +( +& +self +_ +: +& +[ +u8 +] +) +- +> +Option +< +( +usize +usize +) +> +{ +unreachable +! +( +) +} +pub +fn +find_start +( +& +self +_ +: +& +[ +u8 +] +) +- +> +Option +< +( +usize +usize +) +> +{ +unreachable +! +( +) +} +pub +fn +find_end +( +& +self +_ +: +& +[ +u8 +] +) +- +> +Option +< +( +usize +usize +) +> +{ +unreachable +! +( +) +} +pub +fn +is_empty +( +& +self +) +- +> +bool +{ +true +} +pub +fn +len +( +& +self +) +- +> +usize +{ +0 +} +pub +fn +approximate_size +( +& +self +) +- +> +usize +{ +0 +} +} +} diff --git a/third_party/rust/regex/src/pattern.rs b/third_party/rust/regex/src/pattern.rs index 0498a1c8cbac3..61cdb482e38bc 100644 --- a/third_party/rust/regex/src/pattern.rs +++ b/third_party/rust/regex/src/pattern.rs @@ -1,5 +1,5 @@ use -core +std : : str @@ -18,6 +18,9 @@ use crate : : +re_unicode +: +: { Matches Regex diff --git a/third_party/rust/regex/src/pikevm.rs b/third_party/rust/regex/src/pikevm.rs new file mode 100644 index 0000000000000..4753755009ff7 --- /dev/null +++ b/third_party/rust/regex/src/pikevm.rs @@ -0,0 +1,1508 @@ +use +std +: +: +mem +; +use +crate +: +: +exec +: +: +ProgramCache +; +use +crate +: +: +input +: +: +{ +Input +InputAt +} +; +use +crate +: +: +prog +: +: +{ +InstPtr +Program +} +; +use +crate +: +: +re_trait +: +: +Slot +; +use +crate +: +: +sparse +: +: +SparseSet +; +# +[ +derive +( +Debug +) +] +pub +struct +Fsm +< +' +r +I +> +{ +prog +: +& +' +r +Program +stack +: +& +' +r +mut +Vec +< +FollowEpsilon +> +input +: +I +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +Cache +{ +clist +: +Threads +nlist +: +Threads +stack +: +Vec +< +FollowEpsilon +> +} +# +[ +derive +( +Clone +Debug +) +] +struct +Threads +{ +set +: +SparseSet +caps +: +Vec +< +Slot +> +slots_per_thread +: +usize +} +# +[ +derive +( +Clone +Debug +) +] +enum +FollowEpsilon +{ +IP +( +InstPtr +) +Capture +{ +slot +: +usize +pos +: +Slot +} +} +impl +Cache +{ +pub +fn +new +( +_prog +: +& +Program +) +- +> +Self +{ +Cache +{ +clist +: +Threads +: +: +new +( +) +nlist +: +Threads +: +: +new +( +) +stack +: +vec +! +[ +] +} +} +} +impl +< +' +r +I +: +Input +> +Fsm +< +' +r +I +> +{ +pub +fn +exec +( +prog +: +& +' +r +Program +cache +: +& +ProgramCache +matches +: +& +mut +[ +bool +] +slots +: +& +mut +[ +Slot +] +quit_after_match +: +bool +input +: +I +start +: +usize +end +: +usize +) +- +> +bool +{ +let +mut +cache += +cache +. +borrow_mut +( +) +; +let +cache += +& +mut +cache +. +pikevm +; +cache +. +clist +. +resize +( +prog +. +len +( +) +prog +. +captures +. +len +( +) +) +; +cache +. +nlist +. +resize +( +prog +. +len +( +) +prog +. +captures +. +len +( +) +) +; +let +at += +input +. +at +( +start +) +; +Fsm +{ +prog +stack +: +& +mut +cache +. +stack +input +} +. +exec_ +( +& +mut +cache +. +clist +& +mut +cache +. +nlist +matches +slots +quit_after_match +at +end +) +} +fn +exec_ +( +& +mut +self +mut +clist +: +& +mut +Threads +mut +nlist +: +& +mut +Threads +matches +: +& +mut +[ +bool +] +slots +: +& +mut +[ +Slot +] +quit_after_match +: +bool +mut +at +: +InputAt +end +: +usize +) +- +> +bool +{ +let +mut +matched += +false +; +let +mut +all_matched += +false +; +clist +. +set +. +clear +( +) +; +nlist +. +set +. +clear +( +) +; +' +LOOP +: +loop +{ +if +clist +. +set +. +is_empty +( +) +{ +if +( +matched +& +& +matches +. +len +( +) +< += +1 +) +| +| +all_matched +| +| +( +! +at +. +is_start +( +) +& +& +self +. +prog +. +is_anchored_start +) +{ +break +; +} +if +! +self +. +prog +. +prefixes +. +is_empty +( +) +{ +at += +match +self +. +input +. +prefix_at +( +& +self +. +prog +. +prefixes +at +) +{ +None += +> +break +Some +( +at +) += +> +at +} +; +} +} +if +clist +. +set +. +is_empty +( +) +| +| +( +! +self +. +prog +. +is_anchored_start +& +& +! +all_matched +) +{ +self +. +add +( +& +mut +clist +slots +0 +at +) +; +} +let +at_next += +self +. +input +. +at +( +at +. +next_pos +( +) +) +; +for +i +in +0 +. +. +clist +. +set +. +len +( +) +{ +let +ip += +clist +. +set +[ +i +] +; +if +self +. +step +( +& +mut +nlist +matches +slots +clist +. +caps +( +ip +) +ip +at +at_next +) +{ +matched += +true +; +all_matched += +all_matched +| +| +matches +. +iter +( +) +. +all +( +| +& +b +| +b +) +; +if +quit_after_match +{ +break +' +LOOP +; +} +if +self +. +prog +. +matches +. +len +( +) += += +1 +{ +break +; +} +} +} +if +at +. +pos +( +) +> += +end +{ +break +; +} +at += +at_next +; +mem +: +: +swap +( +clist +nlist +) +; +nlist +. +set +. +clear +( +) +; +} +matched +} +fn +step +( +& +mut +self +nlist +: +& +mut +Threads +matches +: +& +mut +[ +bool +] +slots +: +& +mut +[ +Slot +] +thread_caps +: +& +mut +[ +Option +< +usize +> +] +ip +: +usize +at +: +InputAt +at_next +: +InputAt +) +- +> +bool +{ +use +crate +: +: +prog +: +: +Inst +: +: +* +; +match +self +. +prog +[ +ip +] +{ +Match +( +match_slot +) += +> +{ +if +match_slot +< +matches +. +len +( +) +{ +matches +[ +match_slot +] += +true +; +} +for +( +slot +val +) +in +slots +. +iter_mut +( +) +. +zip +( +thread_caps +. +iter +( +) +) +{ +* +slot += +* +val +; +} +true +} +Char +( +ref +inst +) += +> +{ +if +inst +. +c += += +at +. +char +( +) +{ +self +. +add +( +nlist +thread_caps +inst +. +goto +at_next +) +; +} +false +} +Ranges +( +ref +inst +) += +> +{ +if +inst +. +matches +( +at +. +char +( +) +) +{ +self +. +add +( +nlist +thread_caps +inst +. +goto +at_next +) +; +} +false +} +Bytes +( +ref +inst +) += +> +{ +if +let +Some +( +b +) += +at +. +byte +( +) +{ +if +inst +. +matches +( +b +) +{ +self +. +add +( +nlist +thread_caps +inst +. +goto +at_next +) +; +} +} +false +} +EmptyLook +( +_ +) +| +Save +( +_ +) +| +Split +( +_ +) += +> +false +} +} +fn +add +( +& +mut +self +nlist +: +& +mut +Threads +thread_caps +: +& +mut +[ +Option +< +usize +> +] +ip +: +usize +at +: +InputAt +) +{ +self +. +stack +. +push +( +FollowEpsilon +: +: +IP +( +ip +) +) +; +while +let +Some +( +frame +) += +self +. +stack +. +pop +( +) +{ +match +frame +{ +FollowEpsilon +: +: +IP +( +ip +) += +> +{ +self +. +add_step +( +nlist +thread_caps +ip +at +) +; +} +FollowEpsilon +: +: +Capture +{ +slot +pos +} += +> +{ +thread_caps +[ +slot +] += +pos +; +} +} +} +} +fn +add_step +( +& +mut +self +nlist +: +& +mut +Threads +thread_caps +: +& +mut +[ +Option +< +usize +> +] +mut +ip +: +usize +at +: +InputAt +) +{ +use +crate +: +: +prog +: +: +Inst +: +: +* +; +loop +{ +if +nlist +. +set +. +contains +( +ip +) +{ +return +; +} +nlist +. +set +. +insert +( +ip +) +; +match +self +. +prog +[ +ip +] +{ +EmptyLook +( +ref +inst +) += +> +{ +if +self +. +input +. +is_empty_match +( +at +inst +) +{ +ip += +inst +. +goto +; +} +} +Save +( +ref +inst +) += +> +{ +if +inst +. +slot +< +thread_caps +. +len +( +) +{ +self +. +stack +. +push +( +FollowEpsilon +: +: +Capture +{ +slot +: +inst +. +slot +pos +: +thread_caps +[ +inst +. +slot +] +} +) +; +thread_caps +[ +inst +. +slot +] += +Some +( +at +. +pos +( +) +) +; +} +ip += +inst +. +goto +; +} +Split +( +ref +inst +) += +> +{ +self +. +stack +. +push +( +FollowEpsilon +: +: +IP +( +inst +. +goto2 +) +) +; +ip += +inst +. +goto1 +; +} +Match +( +_ +) +| +Char +( +_ +) +| +Ranges +( +_ +) +| +Bytes +( +_ +) += +> +{ +let +t += +& +mut +nlist +. +caps +( +ip +) +; +for +( +slot +val +) +in +t +. +iter_mut +( +) +. +zip +( +thread_caps +. +iter +( +) +) +{ +* +slot += +* +val +; +} +return +; +} +} +} +} +} +impl +Threads +{ +fn +new +( +) +- +> +Self +{ +Threads +{ +set +: +SparseSet +: +: +new +( +0 +) +caps +: +vec +! +[ +] +slots_per_thread +: +0 +} +} +fn +resize +( +& +mut +self +num_insts +: +usize +ncaps +: +usize +) +{ +if +num_insts += += +self +. +set +. +capacity +( +) +{ +return +; +} +self +. +slots_per_thread += +ncaps +* +2 +; +self +. +set += +SparseSet +: +: +new +( +num_insts +) +; +self +. +caps += +vec +! +[ +None +; +self +. +slots_per_thread +* +num_insts +] +; +} +fn +caps +( +& +mut +self +pc +: +usize +) +- +> +& +mut +[ +Option +< +usize +> +] +{ +let +i += +pc +* +self +. +slots_per_thread +; +& +mut +self +. +caps +[ +i +. +. +i ++ +self +. +slots_per_thread +] +} +} diff --git a/third_party/rust/regex/src/pool.rs b/third_party/rust/regex/src/pool.rs new file mode 100644 index 0000000000000..ce5a10549c723 --- /dev/null +++ b/third_party/rust/regex/src/pool.rs @@ -0,0 +1,1287 @@ +use +std +: +: +panic +: +: +{ +RefUnwindSafe +UnwindSafe +} +; +use +std +: +: +sync +: +: +atomic +: +: +{ +AtomicUsize +Ordering +} +; +use +std +: +: +sync +: +: +Mutex +; +static +COUNTER +: +AtomicUsize += +AtomicUsize +: +: +new +( +1 +) +; +thread_local +! +( +/ +/ +/ +A +thread +local +used +to +assign +an +ID +to +a +thread +. +static +THREAD_ID +: +usize += +{ +let +next += +COUNTER +. +fetch_add +( +1 +Ordering +: +: +Relaxed +) +; +/ +/ +SAFETY +: +We +cannot +permit +the +reuse +of +thread +IDs +since +reusing +a +/ +/ +thread +ID +might +result +in +more +than +one +thread +" +owning +" +a +pool +/ +/ +and +thus +permit +accessing +a +mutable +value +from +multiple +threads +/ +/ +simultaneously +without +synchronization +. +The +intent +of +this +panic +is +/ +/ +to +be +a +sanity +check +. +It +is +not +expected +that +the +thread +ID +space +/ +/ +will +actually +be +exhausted +in +practice +. +/ +/ +/ +/ +This +checks +that +the +counter +never +wraps +around +since +atomic +/ +/ +addition +wraps +around +on +overflow +. +if +next += += +0 +{ +panic +! +( +" +regex +: +thread +ID +allocation +space +exhausted +" +) +; +} +next +} +; +) +; +type +CreateFn +< +T +> += +Box +< +dyn +Fn +( +) +- +> +T ++ +Send ++ +Sync ++ +UnwindSafe ++ +RefUnwindSafe ++ +' +static +> +; +pub +struct +Pool +< +T +> +{ +stack +: +Mutex +< +Vec +< +Box +< +T +> +> +> +create +: +CreateFn +< +T +> +owner +: +AtomicUsize +owner_val +: +T +} +unsafe +impl +< +T +: +Send +> +Sync +for +Pool +< +T +> +{ +} +impl +< +T +: +: +: +std +: +: +fmt +: +: +Debug +> +: +: +std +: +: +fmt +: +: +Debug +for +Pool +< +T +> +{ +fn +fmt +( +& +self +f +: +& +mut +: +: +std +: +: +fmt +: +: +Formatter +< +' +_ +> +) +- +> +: +: +std +: +: +fmt +: +: +Result +{ +f +. +debug_struct +( +" +Pool +" +) +. +field +( +" +stack +" +& +self +. +stack +) +. +field +( +" +owner +" +& +self +. +owner +) +. +field +( +" +owner_val +" +& +self +. +owner_val +) +. +finish +( +) +} +} +# +[ +derive +( +Debug +) +] +pub +struct +PoolGuard +< +' +a +T +: +Send +> +{ +pool +: +& +' +a +Pool +< +T +> +value +: +Option +< +Box +< +T +> +> +} +impl +< +T +: +Send +> +Pool +< +T +> +{ +pub +fn +new +( +create +: +CreateFn +< +T +> +) +- +> +Pool +< +T +> +{ +let +owner += +AtomicUsize +: +: +new +( +0 +) +; +let +owner_val += +create +( +) +; +Pool +{ +stack +: +Mutex +: +: +new +( +vec +! +[ +] +) +create +owner +owner_val +} +} +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +pub +fn +get +( +& +self +) +- +> +PoolGuard +< +' +_ +T +> +{ +let +caller += +THREAD_ID +. +with +( +| +id +| +* +id +) +; +let +owner += +self +. +owner +. +load +( +Ordering +: +: +Relaxed +) +; +if +caller += += +owner +{ +return +self +. +guard_owned +( +) +; +} +self +. +get_slow +( +caller +owner +) +} +# +[ +cold +] +fn +get_slow +( +& +self +caller +: +usize +owner +: +usize +) +- +> +PoolGuard +< +' +_ +T +> +{ +use +std +: +: +sync +: +: +atomic +: +: +Ordering +: +: +Relaxed +; +if +owner += += +0 +{ +let +res += +self +. +owner +. +compare_exchange +( +0 +caller +Relaxed +Relaxed +) +; +if +res +. +is_ok +( +) +{ +return +self +. +guard_owned +( +) +; +} +} +let +mut +stack += +self +. +stack +. +lock +( +) +. +unwrap +( +) +; +let +value += +match +stack +. +pop +( +) +{ +None += +> +Box +: +: +new +( +( +self +. +create +) +( +) +) +Some +( +value +) += +> +value +} +; +self +. +guard_stack +( +value +) +} +fn +put +( +& +self +value +: +Box +< +T +> +) +{ +let +mut +stack += +self +. +stack +. +lock +( +) +. +unwrap +( +) +; +stack +. +push +( +value +) +; +} +fn +guard_owned +( +& +self +) +- +> +PoolGuard +< +' +_ +T +> +{ +PoolGuard +{ +pool +: +self +value +: +None +} +} +fn +guard_stack +( +& +self +value +: +Box +< +T +> +) +- +> +PoolGuard +< +' +_ +T +> +{ +PoolGuard +{ +pool +: +self +value +: +Some +( +value +) +} +} +} +impl +< +' +a +T +: +Send +> +PoolGuard +< +' +a +T +> +{ +pub +fn +value +( +& +self +) +- +> +& +T +{ +match +self +. +value +{ +None += +> +& +self +. +pool +. +owner_val +Some +( +ref +v +) += +> +& +* +* +v +} +} +} +impl +< +' +a +T +: +Send +> +Drop +for +PoolGuard +< +' +a +T +> +{ +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +drop +( +& +mut +self +) +{ +if +let +Some +( +value +) += +self +. +value +. +take +( +) +{ +self +. +pool +. +put +( +value +) +; +} +} +} +# +[ +cfg +( +test +) +] +mod +tests +{ +use +std +: +: +panic +: +: +{ +RefUnwindSafe +UnwindSafe +} +; +use +super +: +: +* +; +# +[ +test +] +fn +oibits +( +) +{ +use +crate +: +: +exec +: +: +ProgramCache +; +fn +has_oibits +< +T +: +Send ++ +Sync ++ +UnwindSafe ++ +RefUnwindSafe +> +( +) +{ +} +has_oibits +: +: +< +Pool +< +ProgramCache +> +> +( +) +; +} +# +[ +test +] +fn +thread_owner_optimization +( +) +{ +use +std +: +: +cell +: +: +RefCell +; +use +std +: +: +sync +: +: +Arc +; +let +pool +: +Arc +< +Pool +< +RefCell +< +Vec +< +char +> +> +> +> += +Arc +: +: +new +( +Pool +: +: +new +( +Box +: +: +new +( +| +| +RefCell +: +: +new +( +vec +! +[ +' +a +' +] +) +) +) +) +; +pool +. +get +( +) +. +value +( +) +. +borrow_mut +( +) +. +push +( +' +x +' +) +; +let +pool1 += +pool +. +clone +( +) +; +let +t1 += +std +: +: +thread +: +: +spawn +( +move +| +| +{ +let +guard += +pool1 +. +get +( +) +; +let +v += +guard +. +value +( +) +; +v +. +borrow_mut +( +) +. +push +( +' +y +' +) +; +} +) +; +let +pool2 += +pool +. +clone +( +) +; +let +t2 += +std +: +: +thread +: +: +spawn +( +move +| +| +{ +let +guard += +pool2 +. +get +( +) +; +let +v += +guard +. +value +( +) +; +v +. +borrow_mut +( +) +. +push +( +' +z +' +) +; +} +) +; +t1 +. +join +( +) +. +unwrap +( +) +; +t2 +. +join +( +) +. +unwrap +( +) +; +assert_eq +! +( +vec +! +[ +' +a +' +' +x +' +] +* +pool +. +get +( +) +. +value +( +) +. +borrow +( +) +) +; +} +} diff --git a/third_party/rust/regex/src/prog.rs b/third_party/rust/regex/src/prog.rs new file mode 100644 index 0000000000000..81def0b3bd5eb --- /dev/null +++ b/third_party/rust/regex/src/prog.rs @@ -0,0 +1,1740 @@ +use +std +: +: +cmp +: +: +Ordering +; +use +std +: +: +collections +: +: +HashMap +; +use +std +: +: +fmt +; +use +std +: +: +mem +; +use +std +: +: +ops +: +: +Deref +; +use +std +: +: +slice +; +use +std +: +: +sync +: +: +Arc +; +use +crate +: +: +input +: +: +Char +; +use +crate +: +: +literal +: +: +LiteralSearcher +; +pub +type +InstPtr += +usize +; +# +[ +derive +( +Clone +) +] +pub +struct +Program +{ +pub +insts +: +Vec +< +Inst +> +pub +matches +: +Vec +< +InstPtr +> +pub +captures +: +Vec +< +Option +< +String +> +> +pub +capture_name_idx +: +Arc +< +HashMap +< +String +usize +> +> +pub +start +: +InstPtr +pub +byte_classes +: +Vec +< +u8 +> +pub +only_utf8 +: +bool +pub +is_bytes +: +bool +pub +is_dfa +: +bool +pub +is_reverse +: +bool +pub +is_anchored_start +: +bool +pub +is_anchored_end +: +bool +pub +has_unicode_word_boundary +: +bool +pub +prefixes +: +LiteralSearcher +pub +dfa_size_limit +: +usize +} +impl +Program +{ +pub +fn +new +( +) +- +> +Self +{ +Program +{ +insts +: +vec +! +[ +] +matches +: +vec +! +[ +] +captures +: +vec +! +[ +] +capture_name_idx +: +Arc +: +: +new +( +HashMap +: +: +new +( +) +) +start +: +0 +byte_classes +: +vec +! +[ +0 +; +256 +] +only_utf8 +: +true +is_bytes +: +false +is_dfa +: +false +is_reverse +: +false +is_anchored_start +: +false +is_anchored_end +: +false +has_unicode_word_boundary +: +false +prefixes +: +LiteralSearcher +: +: +empty +( +) +dfa_size_limit +: +2 +* +( +1 +< +< +20 +) +} +} +pub +fn +skip +( +& +self +mut +pc +: +usize +) +- +> +usize +{ +loop +{ +match +self +[ +pc +] +{ +Inst +: +: +Save +( +ref +i +) += +> +pc += +i +. +goto +_ += +> +return +pc +} +} +} +pub +fn +leads_to_match +( +& +self +pc +: +usize +) +- +> +bool +{ +if +self +. +matches +. +len +( +) +> +1 +{ +return +false +; +} +match +self +[ +self +. +skip +( +pc +) +] +{ +Inst +: +: +Match +( +_ +) += +> +true +_ += +> +false +} +} +pub +fn +needs_dotstar +( +& +self +) +- +> +bool +{ +self +. +is_dfa +& +& +! +self +. +is_reverse +& +& +! +self +. +is_anchored_start +} +pub +fn +uses_bytes +( +& +self +) +- +> +bool +{ +self +. +is_bytes +| +| +self +. +is_dfa +} +pub +fn +only_utf8 +( +& +self +) +- +> +bool +{ +self +. +only_utf8 +} +pub +fn +approximate_size +( +& +self +) +- +> +usize +{ +( +self +. +len +( +) +* +mem +: +: +size_of +: +: +< +Inst +> +( +) +) ++ +( +self +. +matches +. +len +( +) +* +mem +: +: +size_of +: +: +< +InstPtr +> +( +) +) ++ +( +self +. +captures +. +len +( +) +* +mem +: +: +size_of +: +: +< +Option +< +String +> +> +( +) +) ++ +( +self +. +capture_name_idx +. +len +( +) +* +( +mem +: +: +size_of +: +: +< +String +> +( +) ++ +mem +: +: +size_of +: +: +< +usize +> +( +) +) +) ++ +( +self +. +byte_classes +. +len +( +) +* +mem +: +: +size_of +: +: +< +u8 +> +( +) +) ++ +self +. +prefixes +. +approximate_size +( +) +} +} +impl +Deref +for +Program +{ +type +Target += +[ +Inst +] +; +# +[ +cfg_attr +( +feature += +" +perf +- +inline +" +inline +( +always +) +) +] +fn +deref +( +& +self +) +- +> +& +Self +: +: +Target +{ +& +* +self +. +insts +} +} +impl +fmt +: +: +Debug +for +Program +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +use +self +: +: +Inst +: +: +* +; +fn +with_goto +( +cur +: +usize +goto +: +usize +fmtd +: +String +) +- +> +String +{ +if +goto += += +cur ++ +1 +{ +fmtd +} +else +{ +format +! +( +" +{ +} +( +goto +: +{ +} +) +" +fmtd +goto +) +} +} +fn +visible_byte +( +b +: +u8 +) +- +> +String +{ +use +std +: +: +ascii +: +: +escape_default +; +let +escaped += +escape_default +( +b +) +. +collect +: +: +< +Vec +< +u8 +> +> +( +) +; +String +: +: +from_utf8_lossy +( +& +escaped +) +. +into_owned +( +) +} +for +( +pc +inst +) +in +self +. +iter +( +) +. +enumerate +( +) +{ +match +* +inst +{ +Match +( +slot +) += +> +write +! +( +f +" +{ +: +04 +} +Match +( +{ +: +? +} +) +" +pc +slot +) +? +Save +( +ref +inst +) += +> +{ +let +s += +format +! +( +" +{ +: +04 +} +Save +( +{ +} +) +" +pc +inst +. +slot +) +; +write +! +( +f +" +{ +} +" +with_goto +( +pc +inst +. +goto +s +) +) +? +; +} +Split +( +ref +inst +) += +> +{ +write +! +( +f +" +{ +: +04 +} +Split +( +{ +} +{ +} +) +" +pc +inst +. +goto1 +inst +. +goto2 +) +? +; +} +EmptyLook +( +ref +inst +) += +> +{ +let +s += +format +! +( +" +{ +: +? +} +" +inst +. +look +) +; +write +! +( +f +" +{ +: +04 +} +{ +} +" +pc +with_goto +( +pc +inst +. +goto +s +) +) +? +; +} +Char +( +ref +inst +) += +> +{ +let +s += +format +! +( +" +{ +: +? +} +" +inst +. +c +) +; +write +! +( +f +" +{ +: +04 +} +{ +} +" +pc +with_goto +( +pc +inst +. +goto +s +) +) +? +; +} +Ranges +( +ref +inst +) += +> +{ +let +ranges += +inst +. +ranges +. +iter +( +) +. +map +( +| +r +| +format +! +( +" +{ +: +? +} +- +{ +: +? +} +" +r +. +0 +r +. +1 +) +) +. +collect +: +: +< +Vec +< +String +> +> +( +) +. +join +( +" +" +) +; +write +! +( +f +" +{ +: +04 +} +{ +} +" +pc +with_goto +( +pc +inst +. +goto +ranges +) +) +? +; +} +Bytes +( +ref +inst +) += +> +{ +let +s += +format +! +( +" +Bytes +( +{ +} +{ +} +) +" +visible_byte +( +inst +. +start +) +visible_byte +( +inst +. +end +) +) +; +write +! +( +f +" +{ +: +04 +} +{ +} +" +pc +with_goto +( +pc +inst +. +goto +s +) +) +? +; +} +} +if +pc += += +self +. +start +{ +write +! +( +f +" +( +start +) +" +) +? +; +} +writeln +! +( +f +) +? +; +} +Ok +( +( +) +) +} +} +impl +< +' +a +> +IntoIterator +for +& +' +a +Program +{ +type +Item += +& +' +a +Inst +; +type +IntoIter += +slice +: +: +Iter +< +' +a +Inst +> +; +fn +into_iter +( +self +) +- +> +Self +: +: +IntoIter +{ +self +. +iter +( +) +} +} +# +[ +derive +( +Clone +Debug +) +] +pub +enum +Inst +{ +Match +( +usize +) +Save +( +InstSave +) +Split +( +InstSplit +) +EmptyLook +( +InstEmptyLook +) +Char +( +InstChar +) +Ranges +( +InstRanges +) +Bytes +( +InstBytes +) +} +impl +Inst +{ +pub +fn +is_match +( +& +self +) +- +> +bool +{ +match +* +self +{ +Inst +: +: +Match +( +_ +) += +> +true +_ += +> +false +} +} +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +InstSave +{ +pub +goto +: +InstPtr +pub +slot +: +usize +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +InstSplit +{ +pub +goto1 +: +InstPtr +pub +goto2 +: +InstPtr +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +InstEmptyLook +{ +pub +goto +: +InstPtr +pub +look +: +EmptyLook +} +# +[ +derive +( +Clone +Copy +Debug +PartialEq +Eq +) +] +pub +enum +EmptyLook +{ +StartLine +EndLine +StartText +EndText +WordBoundary +NotWordBoundary +WordBoundaryAscii +NotWordBoundaryAscii +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +InstChar +{ +pub +goto +: +InstPtr +pub +c +: +char +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +InstRanges +{ +pub +goto +: +InstPtr +pub +ranges +: +Box +< +[ +( +char +char +) +] +> +} +impl +InstRanges +{ +pub +fn +matches +( +& +self +c +: +Char +) +- +> +bool +{ +for +r +in +self +. +ranges +. +iter +( +) +. +take +( +4 +) +{ +if +c +< +r +. +0 +{ +return +false +; +} +if +c +< += +r +. +1 +{ +return +true +; +} +} +self +. +ranges +. +binary_search_by +( +| +r +| +{ +if +r +. +1 +< +c +{ +Ordering +: +: +Less +} +else +if +r +. +0 +> +c +{ +Ordering +: +: +Greater +} +else +{ +Ordering +: +: +Equal +} +} +) +. +is_ok +( +) +} +pub +fn +num_chars +( +& +self +) +- +> +usize +{ +self +. +ranges +. +iter +( +) +. +map +( +| +& +( +s +e +) +| +1 ++ +( +e +as +u32 +) +- +( +s +as +u32 +) +) +. +sum +: +: +< +u32 +> +( +) +as +usize +} +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +InstBytes +{ +pub +goto +: +InstPtr +pub +start +: +u8 +pub +end +: +u8 +} +impl +InstBytes +{ +pub +fn +matches +( +& +self +byte +: +u8 +) +- +> +bool +{ +self +. +start +< += +byte +& +& +byte +< += +self +. +end +} +} +# +[ +cfg +( +test +) +] +mod +test +{ +# +[ +test +] +# +[ +cfg +( +target_pointer_width += +" +64 +" +) +] +fn +test_size_of_inst +( +) +{ +use +std +: +: +mem +: +: +size_of +; +use +super +: +: +Inst +; +assert_eq +! +( +32 +size_of +: +: +< +Inst +> +( +) +) +; +} +} diff --git a/third_party/rust/regex/src/re_builder.rs b/third_party/rust/regex/src/re_builder.rs new file mode 100644 index 0000000000000..2960e83da39d0 --- /dev/null +++ b/third_party/rust/regex/src/re_builder.rs @@ -0,0 +1,3179 @@ +# +[ +derive +( +Clone +Debug +) +] +# +[ +allow +( +missing_docs +) +] +pub +struct +RegexOptions +{ +pub +pats +: +Vec +< +String +> +pub +size_limit +: +usize +pub +dfa_size_limit +: +usize +pub +nest_limit +: +u32 +pub +case_insensitive +: +bool +pub +multi_line +: +bool +pub +dot_matches_new_line +: +bool +pub +swap_greed +: +bool +pub +ignore_whitespace +: +bool +pub +unicode +: +bool +pub +octal +: +bool +} +impl +Default +for +RegexOptions +{ +fn +default +( +) +- +> +Self +{ +RegexOptions +{ +pats +: +vec +! +[ +] +size_limit +: +10 +* +( +1 +< +< +20 +) +dfa_size_limit +: +2 +* +( +1 +< +< +20 +) +nest_limit +: +250 +case_insensitive +: +false +multi_line +: +false +dot_matches_new_line +: +false +swap_greed +: +false +ignore_whitespace +: +false +unicode +: +true +octal +: +false +} +} +} +macro_rules +! +define_builder +{ +( +name +: +ident +regex_mod +: +ident +only_utf8 +: +expr +) += +> +{ +pub +mod +name +{ +use +super +: +: +RegexOptions +; +use +crate +: +: +error +: +: +Error +; +use +crate +: +: +exec +: +: +ExecBuilder +; +use +crate +: +: +regex_mod +: +: +Regex +; +/ +/ +/ +A +configurable +builder +for +a +regular +expression +. +/ +/ +/ +/ +/ +/ +A +builder +can +be +used +to +configure +how +the +regex +is +built +for +example +by +/ +/ +/ +setting +the +default +flags +( +which +can +be +overridden +in +the +expression +/ +/ +/ +itself +) +or +setting +various +limits +. +# +[ +derive +( +Debug +) +] +pub +struct +RegexBuilder +( +RegexOptions +) +; +impl +RegexBuilder +{ +/ +/ +/ +Create +a +new +regular +expression +builder +with +the +given +pattern +. +/ +/ +/ +/ +/ +/ +If +the +pattern +is +invalid +then +an +error +will +be +returned +when +/ +/ +/ +build +is +called +. +pub +fn +new +( +pattern +: +& +str +) +- +> +RegexBuilder +{ +let +mut +builder += +RegexBuilder +( +RegexOptions +: +: +default +( +) +) +; +builder +. +0 +. +pats +. +push +( +pattern +. +to_owned +( +) +) +; +builder +} +/ +/ +/ +Consume +the +builder +and +compile +the +regular +expression +. +/ +/ +/ +/ +/ +/ +Note +that +calling +as_str +on +the +resulting +Regex +will +produce +the +/ +/ +/ +pattern +given +to +new +verbatim +. +Notably +it +will +not +incorporate +any +/ +/ +/ +of +the +flags +set +on +this +builder +. +pub +fn +build +( +& +self +) +- +> +Result +< +Regex +Error +> +{ +ExecBuilder +: +: +new_options +( +self +. +0 +. +clone +( +) +) +. +only_utf8 +( +only_utf8 +) +. +build +( +) +. +map +( +Regex +: +: +from +) +} +/ +/ +/ +Set +the +value +for +the +case +insensitive +( +i +) +flag +. +/ +/ +/ +/ +/ +/ +When +enabled +letters +in +the +pattern +will +match +both +upper +case +and +/ +/ +/ +lower +case +variants +. +pub +fn +case_insensitive +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +case_insensitive += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +multi +- +line +matching +( +m +) +flag +. +/ +/ +/ +/ +/ +/ +When +enabled +^ +matches +the +beginning +of +lines +and +matches +the +/ +/ +/ +end +of +lines +. +/ +/ +/ +/ +/ +/ +By +default +they +match +beginning +/ +end +of +the +input +. +pub +fn +multi_line +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +multi_line += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +any +character +( +s +) +flag +where +in +. +matches +/ +/ +/ +anything +when +s +is +set +and +matches +anything +except +for +new +line +when +/ +/ +/ +it +is +not +set +( +the +default +) +. +/ +/ +/ +/ +/ +/ +N +. +B +. +" +matches +anything +" +means +" +any +byte +" +when +Unicode +is +disabled +and +/ +/ +/ +means +" +any +valid +UTF +- +8 +encoding +of +any +Unicode +scalar +value +" +when +/ +/ +/ +Unicode +is +enabled +. +pub +fn +dot_matches_new_line +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +dot_matches_new_line += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +greedy +swap +( +U +) +flag +. +/ +/ +/ +/ +/ +/ +When +enabled +a +pattern +like +a +* +is +lazy +( +tries +to +find +shortest +/ +/ +/ +match +) +and +a +* +? +is +greedy +( +tries +to +find +longest +match +) +. +/ +/ +/ +/ +/ +/ +By +default +a +* +is +greedy +and +a +* +? +is +lazy +. +pub +fn +swap_greed +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +swap_greed += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +ignore +whitespace +( +x +) +flag +. +/ +/ +/ +/ +/ +/ +When +enabled +whitespace +such +as +new +lines +and +spaces +will +be +ignored +/ +/ +/ +between +expressions +of +the +pattern +and +# +can +be +used +to +start +a +/ +/ +/ +comment +until +the +next +new +line +. +pub +fn +ignore_whitespace +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +ignore_whitespace += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +Unicode +( +u +) +flag +. +/ +/ +/ +/ +/ +/ +Enabled +by +default +. +When +disabled +character +classes +such +as +\ +w +only +/ +/ +/ +match +ASCII +word +characters +instead +of +all +Unicode +word +characters +. +pub +fn +unicode +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +unicode += +yes +; +self +} +/ +/ +/ +Whether +to +support +octal +syntax +or +not +. +/ +/ +/ +/ +/ +/ +Octal +syntax +is +a +little +- +known +way +of +uttering +Unicode +codepoints +in +/ +/ +/ +a +regular +expression +. +For +example +a +\ +x61 +\ +u0061 +and +/ +/ +/ +\ +141 +are +all +equivalent +regular +expressions +where +the +last +example +/ +/ +/ +shows +octal +syntax +. +/ +/ +/ +/ +/ +/ +While +supporting +octal +syntax +isn +' +t +in +and +of +itself +a +problem +it +does +/ +/ +/ +make +good +error +messages +harder +. +That +is +in +PCRE +based +regex +engines +/ +/ +/ +syntax +like +\ +0 +invokes +a +backreference +which +is +explicitly +/ +/ +/ +unsupported +in +Rust +' +s +regex +engine +. +However +many +users +expect +it +to +/ +/ +/ +be +supported +. +Therefore +when +octal +support +is +disabled +the +error +/ +/ +/ +message +will +explicitly +mention +that +backreferences +aren +' +t +supported +. +/ +/ +/ +/ +/ +/ +Octal +syntax +is +disabled +by +default +. +pub +fn +octal +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +octal += +yes +; +self +} +/ +/ +/ +Set +the +approximate +size +limit +of +the +compiled +regular +expression +. +/ +/ +/ +/ +/ +/ +This +roughly +corresponds +to +the +number +of +bytes +occupied +by +a +single +/ +/ +/ +compiled +program +. +If +the +program +exceeds +this +number +then +a +/ +/ +/ +compilation +error +is +returned +. +pub +fn +size_limit +( +& +mut +self +limit +: +usize +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +size_limit += +limit +; +self +} +/ +/ +/ +Set +the +approximate +size +of +the +cache +used +by +the +DFA +. +/ +/ +/ +/ +/ +/ +This +roughly +corresponds +to +the +number +of +bytes +that +the +DFA +will +/ +/ +/ +use +while +searching +. +/ +/ +/ +/ +/ +/ +Note +that +this +is +a +* +per +thread +* +limit +. +There +is +no +way +to +set +a +global +/ +/ +/ +limit +. +In +particular +if +a +regex +is +used +from +multiple +threads +/ +/ +/ +simultaneously +then +each +thread +may +use +up +to +the +number +of +bytes +/ +/ +/ +specified +here +. +pub +fn +dfa_size_limit +( +& +mut +self +limit +: +usize +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +dfa_size_limit += +limit +; +self +} +/ +/ +/ +Set +the +nesting +limit +for +this +parser +. +/ +/ +/ +/ +/ +/ +The +nesting +limit +controls +how +deep +the +abstract +syntax +tree +is +allowed +/ +/ +/ +to +be +. +If +the +AST +exceeds +the +given +limit +( +e +. +g +. +with +too +many +nested +/ +/ +/ +groups +) +then +an +error +is +returned +by +the +parser +. +/ +/ +/ +/ +/ +/ +The +purpose +of +this +limit +is +to +act +as +a +heuristic +to +prevent +stack +/ +/ +/ +overflow +for +consumers +that +do +structural +induction +on +an +Ast +using +/ +/ +/ +explicit +recursion +. +While +this +crate +never +does +this +( +instead +using +/ +/ +/ +constant +stack +space +and +moving +the +call +stack +to +the +heap +) +other +/ +/ +/ +crates +may +. +/ +/ +/ +/ +/ +/ +This +limit +is +not +checked +until +the +entire +Ast +is +parsed +. +Therefore +/ +/ +/ +if +callers +want +to +put +a +limit +on +the +amount +of +heap +space +used +then +/ +/ +/ +they +should +impose +a +limit +on +the +length +in +bytes +of +the +concrete +/ +/ +/ +pattern +string +. +In +particular +this +is +viable +since +this +parser +/ +/ +/ +implementation +will +limit +itself +to +heap +space +proportional +to +the +/ +/ +/ +length +of +the +pattern +string +. +/ +/ +/ +/ +/ +/ +Note +that +a +nest +limit +of +0 +will +return +a +nest +limit +error +for +most +/ +/ +/ +patterns +but +not +all +. +For +example +a +nest +limit +of +0 +permits +a +but +/ +/ +/ +not +ab +since +ab +requires +a +concatenation +which +results +in +a +nest +/ +/ +/ +depth +of +1 +. +In +general +a +nest +limit +is +not +something +that +manifests +/ +/ +/ +in +an +obvious +way +in +the +concrete +syntax +therefore +it +should +not +be +/ +/ +/ +used +in +a +granular +way +. +pub +fn +nest_limit +( +& +mut +self +limit +: +u32 +) +- +> +& +mut +RegexBuilder +{ +self +. +0 +. +nest_limit += +limit +; +self +} +} +} +} +; +} +define_builder +! +( +bytes +re_bytes +false +) +; +define_builder +! +( +unicode +re_unicode +true +) +; +macro_rules +! +define_set_builder +{ +( +name +: +ident +regex_mod +: +ident +only_utf8 +: +expr +) += +> +{ +pub +mod +name +{ +use +super +: +: +RegexOptions +; +use +crate +: +: +error +: +: +Error +; +use +crate +: +: +exec +: +: +ExecBuilder +; +use +crate +: +: +re_set +: +: +regex_mod +: +: +RegexSet +; +/ +/ +/ +A +configurable +builder +for +a +set +of +regular +expressions +. +/ +/ +/ +/ +/ +/ +A +builder +can +be +used +to +configure +how +the +regexes +are +built +for +example +/ +/ +/ +by +setting +the +default +flags +( +which +can +be +overridden +in +the +expression +/ +/ +/ +itself +) +or +setting +various +limits +. +# +[ +derive +( +Debug +) +] +pub +struct +RegexSetBuilder +( +RegexOptions +) +; +impl +RegexSetBuilder +{ +/ +/ +/ +Create +a +new +regular +expression +builder +with +the +given +pattern +. +/ +/ +/ +/ +/ +/ +If +the +pattern +is +invalid +then +an +error +will +be +returned +when +/ +/ +/ +build +is +called +. +pub +fn +new +< +I +S +> +( +patterns +: +I +) +- +> +RegexSetBuilder +where +S +: +AsRef +< +str +> +I +: +IntoIterator +< +Item += +S +> +{ +let +mut +builder += +RegexSetBuilder +( +RegexOptions +: +: +default +( +) +) +; +for +pat +in +patterns +{ +builder +. +0 +. +pats +. +push +( +pat +. +as_ref +( +) +. +to_owned +( +) +) +; +} +builder +} +/ +/ +/ +Consume +the +builder +and +compile +the +regular +expressions +into +a +set +. +pub +fn +build +( +& +self +) +- +> +Result +< +RegexSet +Error +> +{ +ExecBuilder +: +: +new_options +( +self +. +0 +. +clone +( +) +) +. +only_utf8 +( +only_utf8 +) +. +build +( +) +. +map +( +RegexSet +: +: +from +) +} +/ +/ +/ +Set +the +value +for +the +case +insensitive +( +i +) +flag +. +pub +fn +case_insensitive +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +case_insensitive += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +multi +- +line +matching +( +m +) +flag +. +pub +fn +multi_line +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +multi_line += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +any +character +( +s +) +flag +where +in +. +matches +/ +/ +/ +anything +when +s +is +set +and +matches +anything +except +for +new +line +when +/ +/ +/ +it +is +not +set +( +the +default +) +. +/ +/ +/ +/ +/ +/ +N +. +B +. +" +matches +anything +" +means +" +any +byte +" +for +regex +: +: +bytes +: +: +RegexSet +/ +/ +/ +expressions +and +means +" +any +Unicode +scalar +value +" +for +regex +: +: +RegexSet +/ +/ +/ +expressions +. +pub +fn +dot_matches_new_line +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +dot_matches_new_line += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +greedy +swap +( +U +) +flag +. +pub +fn +swap_greed +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +swap_greed += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +ignore +whitespace +( +x +) +flag +. +pub +fn +ignore_whitespace +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +ignore_whitespace += +yes +; +self +} +/ +/ +/ +Set +the +value +for +the +Unicode +( +u +) +flag +. +pub +fn +unicode +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +unicode += +yes +; +self +} +/ +/ +/ +Whether +to +support +octal +syntax +or +not +. +/ +/ +/ +/ +/ +/ +Octal +syntax +is +a +little +- +known +way +of +uttering +Unicode +codepoints +in +/ +/ +/ +a +regular +expression +. +For +example +a +\ +x61 +\ +u0061 +and +/ +/ +/ +\ +141 +are +all +equivalent +regular +expressions +where +the +last +example +/ +/ +/ +shows +octal +syntax +. +/ +/ +/ +/ +/ +/ +While +supporting +octal +syntax +isn +' +t +in +and +of +itself +a +problem +it +does +/ +/ +/ +make +good +error +messages +harder +. +That +is +in +PCRE +based +regex +engines +/ +/ +/ +syntax +like +\ +0 +invokes +a +backreference +which +is +explicitly +/ +/ +/ +unsupported +in +Rust +' +s +regex +engine +. +However +many +users +expect +it +to +/ +/ +/ +be +supported +. +Therefore +when +octal +support +is +disabled +the +error +/ +/ +/ +message +will +explicitly +mention +that +backreferences +aren +' +t +supported +. +/ +/ +/ +/ +/ +/ +Octal +syntax +is +disabled +by +default +. +pub +fn +octal +( +& +mut +self +yes +: +bool +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +octal += +yes +; +self +} +/ +/ +/ +Set +the +approximate +size +limit +of +the +compiled +regular +expression +. +/ +/ +/ +/ +/ +/ +This +roughly +corresponds +to +the +number +of +bytes +occupied +by +a +single +/ +/ +/ +compiled +program +. +If +the +program +exceeds +this +number +then +a +/ +/ +/ +compilation +error +is +returned +. +pub +fn +size_limit +( +& +mut +self +limit +: +usize +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +size_limit += +limit +; +self +} +/ +/ +/ +Set +the +approximate +size +of +the +cache +used +by +the +DFA +. +/ +/ +/ +/ +/ +/ +This +roughly +corresponds +to +the +number +of +bytes +that +the +DFA +will +/ +/ +/ +use +while +searching +. +/ +/ +/ +/ +/ +/ +Note +that +this +is +a +* +per +thread +* +limit +. +There +is +no +way +to +set +a +global +/ +/ +/ +limit +. +In +particular +if +a +regex +is +used +from +multiple +threads +/ +/ +/ +simultaneously +then +each +thread +may +use +up +to +the +number +of +bytes +/ +/ +/ +specified +here +. +pub +fn +dfa_size_limit +( +& +mut +self +limit +: +usize +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +dfa_size_limit += +limit +; +self +} +/ +/ +/ +Set +the +nesting +limit +for +this +parser +. +/ +/ +/ +/ +/ +/ +The +nesting +limit +controls +how +deep +the +abstract +syntax +tree +is +allowed +/ +/ +/ +to +be +. +If +the +AST +exceeds +the +given +limit +( +e +. +g +. +with +too +many +nested +/ +/ +/ +groups +) +then +an +error +is +returned +by +the +parser +. +/ +/ +/ +/ +/ +/ +The +purpose +of +this +limit +is +to +act +as +a +heuristic +to +prevent +stack +/ +/ +/ +overflow +for +consumers +that +do +structural +induction +on +an +Ast +using +/ +/ +/ +explicit +recursion +. +While +this +crate +never +does +this +( +instead +using +/ +/ +/ +constant +stack +space +and +moving +the +call +stack +to +the +heap +) +other +/ +/ +/ +crates +may +. +/ +/ +/ +/ +/ +/ +This +limit +is +not +checked +until +the +entire +Ast +is +parsed +. +Therefore +/ +/ +/ +if +callers +want +to +put +a +limit +on +the +amount +of +heap +space +used +then +/ +/ +/ +they +should +impose +a +limit +on +the +length +in +bytes +of +the +concrete +/ +/ +/ +pattern +string +. +In +particular +this +is +viable +since +this +parser +/ +/ +/ +implementation +will +limit +itself +to +heap +space +proportional +to +the +/ +/ +/ +length +of +the +pattern +string +. +/ +/ +/ +/ +/ +/ +Note +that +a +nest +limit +of +0 +will +return +a +nest +limit +error +for +most +/ +/ +/ +patterns +but +not +all +. +For +example +a +nest +limit +of +0 +permits +a +but +/ +/ +/ +not +ab +since +ab +requires +a +concatenation +which +results +in +a +nest +/ +/ +/ +depth +of +1 +. +In +general +a +nest +limit +is +not +something +that +manifests +/ +/ +/ +in +an +obvious +way +in +the +concrete +syntax +therefore +it +should +not +be +/ +/ +/ +used +in +a +granular +way +. +pub +fn +nest_limit +( +& +mut +self +limit +: +u32 +) +- +> +& +mut +RegexSetBuilder +{ +self +. +0 +. +nest_limit += +limit +; +self +} +} +} +} +; +} +define_set_builder +! +( +set_bytes +bytes +false +) +; +define_set_builder +! +( +set_unicode +unicode +true +) +; diff --git a/third_party/rust/regex/src/regex/bytes.rs b/third_party/rust/regex/src/re_bytes.rs similarity index 69% rename from third_party/rust/regex/src/regex/bytes.rs rename to third_party/rust/regex/src/re_bytes.rs index 8a23aa7899f06..a181638556411 100644 --- a/third_party/rust/regex/src/regex/bytes.rs +++ b/third_party/rust/regex/src/re_bytes.rs @@ -1,360 +1,212 @@ use -alloc +std : : -{ borrow : : Cow -string +; +use +std : : -String -sync +collections : : -Arc -vec +HashMap +; +use +std : : -Vec -} +fmt ; use -regex_automata +std : : -{ -meta -util +iter : : -captures -Input -PatternID -} +FusedIterator ; use -crate +std +: +: +ops : : { -bytes +Index +Range +} +; +use +std : : -RegexBuilder -error +str : : -Error -} +FromStr ; -# -[ -derive -( -Clone -) -] -pub -struct -Regex -{ -pub -( -crate -) -meta +use +std : -meta : +sync : -Regex -pub -( -crate -) -pattern : Arc -< -str -> -} -impl -core -: +; +use +crate : -fmt : +find_byte : -Display -for -Regex -{ -fn -fmt -( -& -self -f : -& -mut -core +find_byte +; +use +crate : : -fmt +error : : -Formatter -< -' -_ -> -) -- -> -core +Error +; +use +crate : : -fmt +exec : : -Result -{ -write -! -( -f -" { +Exec +ExecNoSync } -" -self -. -as_str -( -) -) -} -} -impl -core +; +use +crate : : -fmt +expand : : -Debug -for -Regex -{ -fn -fmt -( -& -self -f +expand_bytes +; +use +crate : -& -mut -core : +re_builder : -fmt : +bytes : -Formatter -< -' -_ -> -) -- -> -core +: +RegexBuilder +; +use +crate : : -fmt +re_trait : : -Result { -f -. -debug_tuple -( -" -Regex -" -) -. -field -( -& self -. -as_str -( -) -) -. -finish -( -) -} +RegularExpression +SubCapturesPosIter } -impl -core -: -: -str -: -: -FromStr -for -Regex -{ -type -Err -= -Error ; -fn -from_str +# +[ +derive ( -s -: -& -str +Copy +Clone +Debug +Eq +PartialEq ) -- -> -Result +] +pub +struct +Match < -Regex -Error +' +t > { -Regex +text : +& +' +t +[ +u8 +] +start : -new -( -s -) -} +usize +end +: +usize } impl -TryFrom < -& -str +' +t +> +Match +< +' +t > -for -Regex { -type -Error -= -Error -; +# +[ +inline +] +pub fn -try_from +start ( -s -: & -str +self ) - > -Result -< -Regex -Error -> +usize { -Regex -: -: -new -( -s -) -} -} -impl -TryFrom -< -String -> -for -Regex -{ -type -Error -= -Error -; -fn -try_from -( -s -: -String -) -- -> -Result -< -Regex -Error -> -{ -Regex -: -: -new -( -& -s -) -} +self +. +start } -impl -Regex -{ +# +[ +inline +] pub fn -new +end ( -re -: & -str +self ) - > -Result -< -Regex -Error -> +usize { -RegexBuilder -: -: -new -( -re -) +self . -build -( -) +end } # [ @@ -362,28 +214,26 @@ inline ] pub fn -is_match +range ( & self -haystack -: -& -[ -u8 -] ) - > -bool +Range +< +usize +> { self . -is_match_at -( -haystack -0 -) +start +. +. +self +. +end } # [ @@ -391,604 +241,817 @@ inline ] pub fn -find -< -' -h -> +as_bytes ( & self -haystack -: +) +- +> & ' -h +t [ u8 ] -) -- -> -Option -< -Match -< -' -h -> -> { +& self . -find_at +text +[ +self +. +range ( -haystack -0 ) +] } # [ inline ] -pub fn -find_iter -< -' -r -' -h -> +new ( -& -' -r -self haystack : & ' -h +t [ u8 ] +start +: +usize +end +: +usize ) - > -Matches +Match < ' -r -' -h +t > { -Matches +Match { -haystack -it +text : -self -. -meta -. -find_iter -( haystack -) +start +end } } -# -[ -inline -] -pub -fn -captures +} +impl +< +' +t +> +From +< +Match < ' -h +t +> +> +for +Range +< +usize > +{ +fn +from ( -& -self -haystack +m : -& +Match +< ' -h -[ -u8 -] +t +> ) - > -Option -< -Captures +Range < -' -h -> +usize > { -self +m . -captures_at +range ( -haystack -0 ) } +} # [ -inline +derive +( +Clone +) ] pub +struct +Regex +( +Exec +) +; +impl +fmt +: +: +Display +for +Regex +{ fn -captures_iter -< -' -r -' -h -> +fmt ( & -' -r self -haystack +f : & +mut +fmt +: +: +Formatter +< ' -h -[ -u8 -] +_ +> ) - > -CaptureMatches -< -' -r -' -h -> +fmt +: +: +Result { -CaptureMatches +write +! +( +f +" { -haystack -it -: +} +" self . -meta -. -captures_iter +as_str ( -haystack +) ) } } -# -[ -inline -] -pub +impl +fmt +: +: +Debug +for +Regex +{ fn -split -< -' -r -' -h -> +fmt ( & -' -r self -haystack +f : & +mut +fmt +: +: +Formatter +< ' -h +_ +> +) +- +> +fmt +: +: +Result +{ +fmt +: +: +Display +: +: +fmt +( +self +f +) +} +} +# [ -u8 +doc +( +hidden +) ] +impl +From +< +Exec +> +for +Regex +{ +fn +from +( +exec +: +Exec ) - > -Split +Regex +{ +Regex +( +exec +) +} +} +impl +FromStr +for +Regex +{ +type +Err += +Error +; +fn +from_str +( +s +: +& +str +) +- +> +Result < -' -r -' -h +Regex +Error > { -Split -{ -haystack -it +Regex : -self -. -meta -. -split +: +new ( -haystack +s ) } } -# -[ -inline -] +impl +Regex +{ pub fn -splitn +new +( +re +: +& +str +) +- +> +Result < -' -r -' -h +Regex +Error > +{ +RegexBuilder +: +: +new +( +re +) +. +build +( +) +} +pub +fn +is_match ( & -' -r self -haystack +text : & -' -h [ u8 ] -limit -: -usize ) - > -SplitN -< -' -r -' -h -> -{ -SplitN +bool { -haystack -it -: self . -meta -. -splitn +is_match_at ( -haystack -limit +text +0 ) } -} -# -[ -inline -] pub fn -replace +find < ' -h -R -: -Replacer +t > ( & self -haystack +text : & ' -h +t [ u8 ] -rep -: -R ) - > -Cow +Option +< +Match < ' -h -[ -u8 -] +t +> > { self . -replacen +find_at ( -haystack -1 -rep +text +0 ) } -# -[ -inline -] pub fn -replace_all +find_iter < ' -h -R -: -Replacer +r +' +t > ( & +' +r self -haystack +text : & ' -h +t [ u8 ] -rep -: -R ) - > -Cow +Matches < ' -h -[ -u8 -] +r +' +t > { +Matches +( self . -replacen -( -haystack 0 -rep +. +searcher +( +) +. +find_iter +( +text +) ) } -# -[ -inline -] pub fn -replacen +captures < ' -h -R -: -Replacer +t > ( & self -haystack +text : & ' -h +t [ u8 ] -limit -: -usize -mut -rep -: -R ) - > -Cow +Option +< +Captures < ' -h -[ -u8 -] +t +> > -{ -if -let -Some -( -rep -) -= -rep -. -no_expansion -( -) { let mut -it +locs = self . -find_iter -( -haystack -) -. -enumerate -( -) -. -peekable +capture_locations ( ) ; -if -it +self . -peek +captures_read_at ( +& +mut +locs +text +0 ) . -is_none +map ( -) +move +| +_ +| +Captures { -return -Cow +text +locs : +locs +. +0 +named_groups : -Borrowed +self +. +0 +. +capture_name_idx ( -haystack ) -; -} -let -mut -new -= -Vec -: -: -with_capacity -( -haystack . -len +clone ( ) +} ) -; -let -mut -last_match -= -0 -; -for +} +pub +fn +captures_iter +< +' +r +' +t +> ( -i -m +& +' +r +self +text +: +& +' +t +[ +u8 +] ) -in -it +- +> +CaptureMatches +< +' +r +' +t +> { -new -. -extend_from_slice +CaptureMatches ( -& -haystack -[ -last_match -. +self . -m +0 . -start +searcher ( ) -] -) -; -new . -extend_from_slice +captures_iter ( -& -rep +text ) -; -last_match -= -m -. -end -( ) -; -if -limit +} +pub +fn +split +< +' +r +' +t > -0 +( & +' +r +self +text +: & -i -> -= -limit +' +t +[ +u8 +] +) - -1 +> +Split +< +' +r +' +t +> { -break -; +Split +{ +finder +: +self +. +find_iter +( +text +) +last +: +0 } } -new -. -extend_from_slice +pub +fn +splitn +< +' +r +' +t +> ( & -haystack +' +r +self +text +: +& +' +t [ -last_match -. -. +u8 ] -) -; -return -Cow -: +limit : -Owned -( -new +usize +) +- +> +SplitN +< +' +r +' +t +> +{ +SplitN +{ +splits +: +self +. +split +( +text +) +n +: +limit +} +} +pub +fn +replace +< +' +t +R +: +Replacer +> +( +& +self +text +: +& +' +t +[ +u8 +] +rep +: +R +) +- +> +Cow +< +' +t +[ +u8 +] +> +{ +self +. +replacen +( +text +1 +rep +) +} +pub +fn +replace_all +< +' +t +R +: +Replacer +> +( +& +self +text +: +& +' +t +[ +u8 +] +rep +: +R +) +- +> +Cow +< +' +t +[ +u8 +] +> +{ +self +. +replacen +( +text +0 +rep +) +} +pub +fn +replacen +< +' +t +R +: +Replacer +> +( +& +self +text +: +& +' +t +[ +u8 +] +limit +: +usize +mut +rep +: +R +) +- +> +Cow +< +' +t +[ +u8 +] +> +{ +if +let +Some +( +rep ) -; -} -let -mut -it += +rep +. +no_expansion +( +) +{ +let +mut +it = self . -captures_iter +find_iter ( -haystack +text ) . enumerate @@ -1016,7 +1079,7 @@ Cow : Borrowed ( -haystack +text ) ; } @@ -1029,7 +1092,7 @@ Vec : with_capacity ( -haystack +text . len ( @@ -1045,31 +1108,17 @@ last_match for ( i -cap +m ) in it { -let -m -= -cap -. -get -( -0 -) -. -unwrap -( -) -; new . extend_from_slice ( & -haystack +text [ last_match . @@ -1082,15 +1131,12 @@ start ] ) ; -rep +new . -replace_append +extend_from_slice ( & -cap -& -mut -new +rep ) ; last_match @@ -1123,7 +1169,7 @@ new extend_from_slice ( & -haystack +text [ last_match . @@ -1131,6 +1177,7 @@ last_match ] ) ; +return Cow : : @@ -1138,131 +1185,206 @@ Owned ( new ) +; } -} -impl -Regex -{ -# -[ -inline -] -pub -fn -shortest_match -( -& +let +mut +it += self -haystack -: -& -[ -u8 -] +. +captures_iter +( +text ) -- -> -Option -< -usize -> -{ -self . -shortest_match_at +enumerate ( -haystack -0 ) -} -# -[ -inline -] -pub -fn -shortest_match_at +. +peekable ( -& -self -haystack -: -& -[ -u8 -] -start -: -usize ) -- -> -Option -< -usize -> -{ -let -input -= -Input +; +if +it +. +peek +( +) +. +is_none +( +) +{ +return +Cow : : +Borrowed +( +text +) +; +} +let +mut new += +Vec +: +: +with_capacity ( -haystack +text +. +len +( +) +) +; +let +mut +last_match += +0 +; +for +( +i +cap ) +in +it +{ +let +m += +cap . -earliest +get ( -true +0 ) . -span +unwrap ( -start +) +; +new . +extend_from_slice +( +& +text +[ +last_match . -haystack . -len +m +. +start ( ) +] ) ; -self -. -meta +rep . -search_half +replace_append ( & -input +cap +& +mut +new ) +; +last_match += +m . -map +end ( -| -hm -| -hm +) +; +if +limit +> +0 +& +& +i +> += +limit +- +1 +{ +break +; +} +} +new . -offset +extend_from_slice ( +& +text +[ +last_match +. +. +] ) +; +Cow +: +: +Owned +( +new ) } -# +} +impl +Regex +{ +pub +fn +shortest_match +( +& +self +text +: +& [ -inline +u8 ] +) +- +> +Option +< +usize +> +{ +self +. +shortest_match_at +( +text +0 +) +} pub fn -is_match_at +shortest_match_at ( & self -haystack +text : & [ @@ -1274,54 +1396,74 @@ usize ) - > -bool +Option +< +usize +> { self . -meta +0 . -is_match -( -Input -: -: -new +searcher ( -haystack ) . -span +shortest_match_at ( +text start +) +} +pub +fn +is_match_at +( +& +self +text +: +& +[ +u8 +] +start +: +usize +) +- +> +bool +{ +self . +0 . -haystack -. -len +searcher ( ) -) +. +is_match_at +( +text +start ) } -# -[ -inline -] pub fn find_at < ' -h +t > ( & self -haystack +text : & ' -h +t [ u8 ] @@ -1336,217 +1478,75 @@ Option Match < ' -h +t > > { -let -input -= -Input -: -: -new -( -haystack -) -. -span -( -start -. +self . -haystack +0 . -len +searcher ( ) -) -; -self -. -meta . -find +find_at ( -input +text +start ) . map ( | -m +( +s +e +) | Match : : new ( -haystack -m -. -start -( -) -m -. -end -( -) +text +s +e ) ) } -# -[ -inline -] pub fn -captures_at +captures_read < ' -h +t > ( & self -haystack +locs +: +& +mut +CaptureLocations +text : & ' -h +t [ u8 ] -start -: -usize ) - > Option < -Captures +Match < ' -h -> -> -{ -let -input -= -Input -: -: -new -( -haystack -) -. -span -( -start -. -. -haystack -. -len -( -) -) -; -let -mut -caps -= -self -. -meta -. -create_captures -( -) -; -self -. -meta -. -captures -( -input -& -mut -caps -) -; -if -caps -. -is_match -( -) -{ -let -static_captures_len -= -self -. -static_captures_len -( -) -; -Some -( -Captures -{ -haystack -caps -static_captures_len -} -) -} -else -{ -None -} -} -# -[ -inline -] -pub -fn -captures_read -< -' -h -> -( -& -self -locs -: -& -mut -CaptureLocations -haystack -: -& -' -h -[ -u8 -] -) -- -> -Option -< -Match -< -' -h +t > > { @@ -1555,20 +1555,16 @@ self captures_read_at ( locs -haystack +text 0 ) } -# -[ -inline -] pub fn captures_read_at < ' -h +t > ( & @@ -1578,11 +1574,11 @@ locs & mut CaptureLocations -haystack +text : & ' -h +t [ u8 ] @@ -1597,77 +1593,45 @@ Option Match < ' -h +t > > { -let -input -= -Input -: -: -new -( -haystack -) -. -span -( -start -. +self . -haystack +0 . -len +searcher ( ) -) -; -self . -meta -. -search_captures +captures_read_at ( & -input -& mut locs . 0 -) -; -locs -. -0 -. -get_match -( +text +start ) . map ( | -m +( +s +e +) | Match : : new ( -haystack -m -. -start -( -) -m -. -end -( -) +text +s +e ) ) } @@ -1678,16 +1642,12 @@ doc hidden ) ] -# -[ -inline -] pub fn read_captures_at < ' -h +t > ( & @@ -1697,11 +1657,11 @@ locs & mut CaptureLocations -haystack +text : & ' -h +t [ u8 ] @@ -1716,7 +1676,7 @@ Option Match < ' -h +t > > { @@ -1725,7 +1685,7 @@ self captures_read_at ( locs -haystack +text start ) } @@ -1733,10 +1693,6 @@ start impl Regex { -# -[ -inline -] pub fn as_str @@ -1752,12 +1708,15 @@ str & self . -pattern -} -# +0 +. +regex_strings +( +) [ -inline +0 ] +} pub fn capture_names @@ -1777,25 +1736,17 @@ CaptureNames ( self . -meta +0 . -group_info +capture_names ( ) . -pattern_names +iter ( -PatternID -: -: -ZERO ) ) } -# -[ -inline -] pub fn captures_len @@ -1809,50 +1760,16 @@ usize { self . -meta -. -group_info -( -) +0 . -group_len -( -PatternID -: -: -ZERO -) -} -# -[ -inline -] -pub -fn -static_captures_len +capture_names ( -& -self ) -- -> -Option -< -usize -> -{ -self -. -meta . -static_captures_len +len ( ) } -# -[ -inline -] pub fn capture_locations @@ -1868,9 +1785,13 @@ CaptureLocations ( self . -meta +0 +. +searcher +( +) . -create_captures +locations ( ) ) @@ -1882,10 +1803,6 @@ doc hidden ) ] -# -[ -inline -] pub fn locations @@ -1897,1374 +1814,1072 @@ self > CaptureLocations { +CaptureLocations +( self . -capture_locations +0 +. +searcher +( +) +. +locations ( ) +) } } # [ derive ( -Copy -Clone -Eq -PartialEq +Debug ) ] pub struct -Match +Matches < ' -h -> -{ -haystack -: -& +r ' -h -[ -u8 -] -start +t +> +( +re_trait : -usize -end : -usize -} +Matches +< +' +t +ExecNoSync +< +' +r +> +> +) +; impl < ' -h +r +' +t > -Match +Iterator +for +Matches < ' -h +r +' +t > { -# -[ -inline -] -pub -fn -start -( -& -self -) -- +type +Item += +Match +< +' +t > -usize -{ -self -. -start -} -# -[ -inline -] -pub +; fn -end +next ( & +mut self ) - > -usize +Option +< +Match +< +' +t +> +> { +let +text += self . -end -} -# -[ -inline -] -pub -fn -is_empty +0 +. +text ( -& -self ) -- -> -bool -{ +; self . -start -= -= -self +0 . -end -} -# -[ -inline -] -pub -fn -len +next ( -& -self ) -- -> -usize -{ -self -. -end -- -self . -start -} -# -[ -inline -] -pub -fn -range +map ( -& -self +| +( +s +e ) -- -> -core -: -: -ops +| +Match : : -Range -< -usize -> -{ -self -. -start -. -. -self -. -end -} -# -[ -inline -] -pub -fn -as_bytes +new ( -& -self +text +s +e ) -- +) +} +} +impl +< +' +r +' +t > -& +FusedIterator +for +Matches +< ' -h -[ -u8 -] +r +' +t +> { -& -self -. -haystack -[ -self -. -range -( -) -] } # [ -inline -] -fn -new +derive ( -haystack -: -& -' -h -[ -u8 +Debug +) ] -start +pub +struct +CaptureMatches +< +' +r +' +t +> +( +re_trait : -usize -end : -usize -) -- -> -Match +CaptureMatches +< +' +t +ExecNoSync < ' -h +r > -{ -Match -{ -haystack -start -end -} -} -} +> +) +; impl < ' -h +r +' +t > -core -: -: -fmt -: -: -Debug +Iterator for -Match +CaptureMatches < ' -h +r +' +t > { +type +Item += +Captures +< +' +t +> +; fn -fmt +next ( & -self -f -: -& mut -core -: -: -fmt -: -: -Formatter +self ) - > -core -: -: -fmt -: -: -Result +Option +< +Captures +< +' +t +> +> { -let -mut -fmt -= -f +self . -debug_struct -( -" -Match -" -) -; -fmt +0 . -field +next ( -" -start -" -& -self -. -start ) . -field +map ( -" -end -" -& +| +locs +| +Captures +{ +text +: self . -end -) -; -if -let -Ok +0 +. +text ( -s ) -= -core -: -: -str -: +locs +named_groups : -from_utf8 -( self . -as_bytes -( -) -) -{ -fmt +0 . -field +regex ( -" -bytes -" -& -s ) -; -} -else -{ -fmt . -field +capture_name_idx ( -" -bytes -" -& -self +) . -as_bytes +clone ( ) -) -; } -fmt -. -finish -( ) } } impl < ' -h -> -From -< -Match -< +r ' -h -> +t > +FusedIterator for -& -' -h -[ -u8 -] -{ -fn -from -( -m -: -Match +CaptureMatches < ' -h -> -) -- -> -& +r ' -h -[ -u8 -] +t +> { -m -. -as_bytes +} +# +[ +derive ( +Debug ) -} -} -impl +] +pub +struct +Split < ' -h -> -From -< -Match -< +r ' -h -> -> -for -core -: -: -ops -: -: -Range -< -usize +t > { -fn -from -( -m +finder : -Match +Matches < ' -h -> -) -- -> -core -: -: -ops -: -: -Range -< -usize -> -{ -m -. -range -( -) -} -} -pub -struct -Captures -< +r ' -h +t > -{ -haystack -: -& -' -h -[ -u8 -] -caps -: -captures -: -: -Captures -static_captures_len +last : -Option -< usize -> } impl < ' -h +r +' +t > -Captures +Iterator +for +Split < ' -h +r +' +t > { -# +type +Item += +& +' +t [ -inline +u8 ] -pub +; fn -get +next ( & +mut self -i -: -usize ) - > Option < -Match -< +& ' -h -> +t +[ +u8 +] > { +let +text += self . -caps +finder +. +0 . -get_group +text ( -i ) +; +match +self . -map +finder +. +next ( -| -sp -| -Match -: -: -new +) +{ +None += +> +{ +if +self +. +last +> +text +. +len ( +) +{ +None +} +else +{ +let +s += +& +text +[ self . -haystack -sp +last . -start -sp . -end +] +; +self +. +last += +text +. +len +( ) ++ +1 +; +Some +( +s ) } -# -[ -inline -] -pub -fn -name +} +Some ( -& -self -name -: -& -str +m ) -- -> -Option -< -Match -< -' -h -> += > { +let +matched += +& +text +[ self . -caps +last . -get_group_by_name -( -name -) . -map -( -| -sp -| -Match -: -: -new +m +. +start ( +) +] +; self . -haystack -sp -. -start -sp +last += +m . end +( ) +; +Some +( +matched ) } +} +} +} +impl +< +' +r +' +t +> +FusedIterator +for +Split +< +' +r +' +t +> +{ +} +# +[ +derive +( +Debug +) +] pub -fn -extract +struct +SplitN +< +' +r +' +t +> +{ +splits +: +Split < -const -N +' +r +' +t +> +n : usize +} +impl +< +' +r +' +t > -( -& -self -) -- +Iterator +for +SplitN +< +' +r +' +t > -( +{ +type +Item += & ' -h +t [ u8 ] -[ +; +fn +next +( +& +mut +self +) +- +> +Option +< & ' -h +t [ u8 ] -; -N -] -) +> { -let -len +if +self +. +n = += +0 +{ +return +None +; +} self . -static_captures_len +n +- += +1 +; +if +self . -expect -( -" -number -of -capture -groups -can -vary -in -a -match -" -) +n +> +0 +{ +return +self . -checked_sub -( -1 -) +splits . -expect +next ( -" -number -of -groups -is -always -greater -than -zero -" ) ; -assert_eq -! -( -N -len -" -asked -for -{ -} -groups -but -must -ask -for -{ } -" -N -len -) -; +let +text += self . -caps +splits +. +finder +. +0 . -extract_bytes +text ( +) +; +if self . -haystack +splits +. +last +> +text +. +len +( ) +{ +None } -# -[ -inline -] -pub -fn -expand +else +{ +Some ( & -self -replacement -: -& +text [ -u8 -] -dst -: -& -mut -Vec -< -u8 -> -) -{ self . -caps +splits . -interpolate_bytes_into -( -self +last . -haystack -replacement -dst +. +] ) -; } -# -[ -inline -] -pub +} fn -iter -< -' -c -> +size_hint ( & -' -c self ) - > -SubCaptureMatches +( +usize +Option < -' -c -' -h +usize > +) { -SubCaptureMatches -{ -haystack -: -self -. -haystack -it -: -self -. -caps -. -iter ( -) -} -} -# -[ -inline -] -pub -fn -len +0 +Some ( -& -self -) -- -> -usize -{ self . -caps -. -group_len -( +n +) ) } } impl < ' -h +r +' +t > -core -: -: -fmt -: -: -Debug +FusedIterator for -Captures +SplitN < ' -h +r +' +t > { -fn -fmt +} +# +[ +derive ( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter +Clone +Debug +) +] +pub +struct +CaptureNames < ' -_ -> -) -- +r > -core +( : : -fmt +std : : -Result -{ -struct -CapturesDebugMap -< -' -a -> -{ -caps +slice : -& -' -a -Captures +: +Iter < ' -a +r +Option +< +String > -} +> +) +; impl < ' -a +r > -core -: -: -fmt -: -: -Debug +Iterator for -CapturesDebugMap +CaptureNames < ' -a +r > { +type +Item += +Option +< +& +' +r +str +> +; fn -fmt +next ( & -self -f -: -& mut -core -: -: -fmt -: -: -Formatter +self ) - > -core -: -: -fmt -: -: -Result +Option +< +Option +< +& +' +r +str +> +> { -let -mut -map -= -f -. -debug_map -( -) -; -let -names -= self . -caps -. -caps +0 . -group_info +next ( ) . -pattern_names -( -PatternID -: -: -ZERO -) -; -for +as_ref ( -group_index -maybe_name ) -in -names . -enumerate +map ( -) -{ -let -key -= -Key +| +slot +| +slot +. +as_ref ( -group_index -maybe_name ) -; -match -self -. -caps . -get -( -group_index -) -{ -None -= -> map -. -entry ( -& -key -& -None -: -: -< +| +name +| +name +. +as_ref ( ) -> ) -Some -( -mat ) -= -> -map -. -entry +} +fn +size_hint ( & -key -& -Value +self +) +- +> ( -mat +usize +Option +< +usize +> ) +{ +self +. +0 +. +size_hint +( ) } -; -} -map +fn +count +( +self +) +- +> +usize +{ +self . -finish +0 +. +count ( ) } } -struct -Key +impl < ' -a +r > -( -usize -Option +ExactSizeIterator +for +CaptureNames < -& ' -a -str +r > -) -; +{ +} impl < ' -a +r > -core -: -: -fmt -: -: -Debug +FusedIterator for -Key +CaptureNames < ' -a +r > { +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +CaptureLocations +( +re_trait +: +: +Locations +) +; +# +[ +doc +( +hidden +) +] +pub +type +Locations += +CaptureLocations +; +impl +CaptureLocations +{ +# +[ +inline +] +pub fn -fmt +get ( & self -f -: -& -mut -core -: -: -fmt -: +i : -Formatter +usize ) - > -core -: -: -fmt -: -: -Result -{ -write -! +Option +< ( -f -" +usize +usize +) +> { -} -" self . 0 +. +pos +( +i ) -? -; -if -let -Some +} +# +[ +inline +] +pub +fn +len ( -name +& +self ) -= +- +> +usize +{ self . -1 -{ -write -! +0 +. +len ( -f -" -/ -{ -: -? -} -" -name ) -? -; } -Ok +# +[ +doc +( +hidden +) +] +# +[ +inline +] +pub +fn +pos ( +& +self +i +: +usize +) +- +> +Option +< ( +usize +usize ) +> +{ +self +. +get +( +i ) } } +pub struct -Value +Captures < ' -a +t > -( -Match -< +{ +text +: +& ' -a -> -) -; -impl -< -' -a -> -core +t +[ +u8 +] +locs : +re_trait : -fmt : +Locations +named_groups : -Debug -for -Value +Arc < -' -a +HashMap +< +String +usize > -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -) -- > -core -: -: -fmt -: -: -Result -{ -use -regex_automata -: -: -util -: -: -escape -: -: -DebugHaystack -; -write -! -( -f -" -{ -} -. -. -{ -} -/ -{ -: -? -} -" -self -. -0 -. -start -( -) -self -. -0 -. -end -( -) -DebugHaystack -( -self -. -0 -. -as_bytes -( -) -) -) -} -} -f -. -debug_tuple -( -" -Captures -" -) -. -field -( -& -CapturesDebugMap -{ -caps -: -self -} -) -. -finish -( -) -} } impl < ' -h -> -core -: -: -ops -: -: -Index -< -usize +t > -for Captures < ' -h +t > { -type -Output -= -[ -u8 -] -; +pub fn -index -< -' -a -> +get ( & -' -a self i : @@ -3272,16 +2887,20 @@ usize ) - > -& +Option +< +Match +< ' -a -[ -u8 -] +t +> +> { self . -get +locs +. +pos ( i ) @@ -3289,218 +2908,135 @@ i map ( | -m -| -m -. -as_bytes ( +s +e ) -) -. -unwrap_or_else -( | -| -panic -! +Match +: +: +new ( -" -no -group -at -index -' -{ -} -' -" -i +self +. +text +s +e ) ) } -} -impl -< -' -h -' -n -> -core -: -: -ops -: -: -Index -< -& -' -n -str -> -for -Captures -< -' -h -> -{ -type -Output -= -[ -u8 -] -; +pub fn -index -< -' -a -> +name ( & -' -a self name : & -' -n str ) - > -& +Option +< +Match +< ' -a -[ -u8 -] +t +> +> { self . -name +named_groups +. +get ( name ) . -map +and_then ( | -m +& +i | -m +self . -as_bytes +get ( +i ) ) -. -unwrap_or_else -( -| -| -panic -! -( -" -no -group -named -' -{ -} -' -" -name -) -) -} } -# -[ -derive -( -Clone -Debug -) -] -pub -struct -CaptureLocations -( -captures -: -: -Captures -) -; -# -[ -doc -( -hidden -) -] -pub -type -Locations -= -CaptureLocations -; -impl -CaptureLocations -{ -# -[ -inline -] pub fn -get +iter +< +' +c +> ( & +' +c self -i -: -usize ) - > -Option +SubCaptureMatches < -( -usize -usize -) +' +c +' +t > { +SubCaptureMatches +{ +caps +: +self +it +: self . -0 +locs . -get_group +iter ( -i ) -. -map -( -| -sp -| +} +} +pub +fn +expand ( -sp -. -start -sp -. -end +& +self +replacement +: +& +[ +u8 +] +dst +: +& +mut +Vec +< +u8 +> ) +{ +expand_bytes +( +self +replacement +dst ) } # @@ -3520,860 +3056,556 @@ usize { self . -0 +locs . -group_info +len ( ) -. -group_len -( -PatternID +} +} +impl +< +' +t +> +fmt : : -ZERO -) -} -# -[ -doc -( -hidden -) -] -# -[ -inline -] -pub +Debug +for +Captures +< +' +t +> +{ fn -pos +fmt ( & self -i +f : -usize +& +mut +fmt +: +: +Formatter +< +' +_ +> ) - > -Option -< +fmt +: +: +Result +{ +f +. +debug_tuple ( -usize -usize +" +Captures +" ) -> -{ +. +field +( +& +CapturesDebug +( self +) +) . -get +finish ( -i ) } } -# -[ -derive -( -Debug -) -] -pub struct -Matches +CapturesDebug < ' -r +c ' -h +t > -{ -haystack -: +( & ' -h -[ -u8 -] -it -: -meta -: -: -FindMatches +c +Captures < ' -r -' -h +t > -} +) +; impl < ' -r +c ' -h +t > -Iterator +fmt +: +: +Debug for -Matches +CapturesDebug < ' -r +c ' -h +t > { -type -Item -= -Match -< -' -h -> -; -# -[ -inline -] fn -next +fmt ( & -mut self -) -- -> -Option -< -Match +f +: +& +mut +fmt +: +: +Formatter < ' -h +_ > +) +- > +fmt +: +: +Result { -self -. -it -. -next +fn +escape_bytes ( +bytes +: +& +[ +u8 +] ) -. -map -( -| -sp -| -Match +- +> +String +{ +let +mut +s += +String : : new ( -self -. -haystack -sp -. -start -( ) -sp +; +for +& +b +in +bytes +{ +s . -end +push_str ( +& +escape_byte +( +b ) ) -) +; +} +s } -# -[ -inline -] fn -count +escape_byte ( -self +byte +: +u8 ) - > -usize +String { -self -. -it -. -count -( -) -} -} -impl -< -' -r -' -h -> -core +use +std : : -iter +ascii : : -FusedIterator -for -Matches +escape_default +; +let +escaped +: +Vec < -' -r -' -h +u8 > -{ -} -# -[ -derive += +escape_default ( -Debug +byte ) -] -pub -struct -CaptureMatches -< -' -r -' -h -> -{ -haystack -: -& -' -h -[ -u8 -] -it -: -meta +. +collect +( +) +; +String : : -CapturesMatches -< -' -r -' -h -> -} -impl -< -' -r -' -h -> -Iterator -for -CaptureMatches -< -' -r -' -h -> -{ -type -Item -= -Captures -< -' -h -> -; -# -[ -inline -] -fn -next +from_utf8_lossy ( & -mut -self +escaped ) -- -> -Option -< -Captures +. +into_owned +( +) +} +let +slot_to_name +: +HashMap < -' -h -> +& +usize +& +String > -{ -let -static_captures_len = self . -it +0 . -regex +named_groups +. +iter ( ) . -static_captures_len +map +( +| ( +a +b ) -; -self -. -it -. -next +| ( +b +a +) ) . -map +collect ( -| -caps -| -Captures -{ -haystack -: -self +) +; +let +mut +map += +f . -haystack -caps -static_captures_len -} +debug_map +( ) -} -# -[ -inline -] -fn -count +; +for ( -self +slot +m ) -- -> -usize -{ +in self . -it +0 . -count +locs +. +iter ( ) -} -} -impl -< -' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -CaptureMatches -< -' -r -' -h -> -{ -} -# -[ -derive +. +enumerate ( -Debug ) -] -pub -struct -Split -< -' -r -' -h -> -{ -haystack -: -& -' -h -[ -u8 -] -it -: -meta -: -: -Split -< -' -r -' -h -> -} -impl -< -' -r -' -h -> -Iterator -for -Split -< -' -r -' -h -> { -type -Item +let +m = +m +. +map +( +| +( +s +e +) +| +escape_bytes +( & -' -h +self +. +0 +. +text [ -u8 +s +. +. +e ] +) +) ; -# -[ -inline -] -fn -next +if +let +Some ( -& -mut -self +name ) -- -> -Option -< += +slot_to_name +. +get +( & -' -h -[ -u8 -] -> +slot +) { -self -. -it +map . -next +entry ( +& +name +& +m ) -. +; +} +else +{ map +. +entry ( -| -span -| & -self -. -haystack -[ -span -] +slot +& +m ) +; } } -impl -< -' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -Split -< -' -r -' -h -> -{ -} -# -[ -derive +map +. +finish ( -Debug ) -] -pub -struct -SplitN -< -' -r -' -h -> -{ -haystack -: -& -' -h -[ -u8 -] -it -: -meta -: -: -SplitN -< -' -r -' -h -> +} } impl < ' -r -' -h +t +> +Index +< +usize > -Iterator for -SplitN +Captures < ' -r -' -h +t > { type -Item +Output = -& -' -h [ u8 ] ; -# -[ -inline -] fn -next +index ( & -mut self +i +: +usize ) - > -Option -< & -' -h [ u8 ] -> { self . -it -. -next +get ( +i ) . map ( | -span +m | -& -self +m . -haystack -[ -span -] -) -} -# -[ -inline -] -fn -size_hint +as_bytes ( -& -self ) -- -> -( -usize -Option -< -usize -> ) -{ -self -. -it . -size_hint +unwrap_or_else ( -) -} -} -impl -< -' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -SplitN -< -' -r +| +| +panic +! +( +" +no +group +at +index ' -h -> { } -# -[ -derive -( -Clone -Debug +' +" +i ) -] -pub -struct -CaptureNames +) +} +} +impl < ' -r -> -( -captures -: -: -GroupInfoPatternNames -< +t ' -r +i > -) -; -impl +Index < +& ' -r +i +str > -Iterator for -CaptureNames +Captures < ' -r +t > { type -Item +Output = -Option -< -& -' -r -str -> -; -# [ -inline +u8 ] +; fn -next +index +< +' +a +> ( & -mut +' +a self +name +: +& +' +i +str ) - > -Option -< -Option -< & ' -r -str -> -> -{ -self -. -0 -. -next -( -) -} -# +a [ -inline +u8 ] -fn -size_hint -( -& +{ self -) -- -> +. +name ( -usize -Option -< -usize -> +name ) -{ -self . -0 +map +( +| +m +| +m . -size_hint +as_bytes ( ) -} -# -[ -inline -] -fn -count -( -self ) -- -> -usize -{ -self -. -0 . -count +unwrap_or_else ( -) -} -} -impl -< -' -r -> -ExactSizeIterator -for -CaptureNames -< +| +| +panic +! +( +" +no +group +named ' -r -> { } -impl -< -' -r -> -core -: -: -iter -: -: -FusedIterator -for -CaptureNames -< ' -r -> -{ +" +name +) +) +} } # [ @@ -4390,23 +3622,22 @@ SubCaptureMatches ' c ' -h +t > { -haystack +caps : & ' -h -[ -u8 -] +c +Captures +< +' +t +> it : -captures -: -: -CapturesPatternIter +SubCapturesPosIter < ' c @@ -4417,7 +3648,7 @@ impl ' c ' -h +t > Iterator for @@ -4426,7 +3657,7 @@ SubCaptureMatches ' c ' -h +t > { type @@ -4437,14 +3668,10 @@ Option Match < ' -h +t > > ; -# -[ -inline -] fn next ( @@ -4461,7 +3688,7 @@ Option Match < ' -h +t > > > @@ -4477,15 +3704,17 @@ next map ( | -group +cap | -{ -group +cap . map ( | -sp +( +s +e +) | Match : @@ -4494,65 +3723,13 @@ new ( self . -haystack -sp -. -start -sp -. -end -) -) -} -) -} -# -[ -inline -] -fn -size_hint -( -& -self -) -- -> -( -usize -Option -< -usize -> -) -{ -self -. -it +caps . -size_hint -( +text +s +e ) -} -# -[ -inline -] -fn -count -( -self ) -- -> -usize -{ -self -. -it -. -count -( ) } } @@ -4561,32 +3738,8 @@ impl ' c ' -h -> -ExactSizeIterator -for -SubCaptureMatches -< -' -c -' -h -> -{ -} -impl -< -' -c -' -h +t > -core -: -: -iter -: -: FusedIterator for SubCaptureMatches @@ -4594,7 +3747,7 @@ SubCaptureMatches ' c ' -h +t > { } @@ -4683,103 +3836,54 @@ self ) } } -impl +# +[ +derive +( +Debug +) +] +pub +struct +ReplacerRef < ' a -const -N +R : -usize +? +Sized > -Replacer -for -& -' -a -[ -u8 -; -N -] -{ -fn -replace_append ( & -mut -self -caps -: -& -Captures -< ' -_ -> -dst -: -& +a mut -Vec -< -u8 -> -) -{ -caps -. -expand -( -& -* -* -self -dst +R ) ; -} -fn -no_expansion -( -& -mut -self -) -- -> -Option -< -Cow -< -' -_ -[ -u8 -] -> -> -{ -no_expansion -( -self -) -} -} impl < -const -N +' +a +R : -usize +Replacer ++ +? +Sized ++ +' +a > Replacer for -[ -u8 -; -N -] +ReplacerRef +< +' +a +R +> { fn replace_append @@ -4805,21 +3909,26 @@ u8 > ) { -caps +self . -expand +0 +. +replace_append ( -& -* -self +caps dst ) -; } fn no_expansion +< +' +r +> ( & +' +r mut self ) @@ -4830,16 +3939,19 @@ Option Cow < ' -_ +r [ u8 ] > > { +self +. +0 +. no_expansion ( -self ) } } @@ -5196,14 +4308,52 @@ as_ref ) dst ) -; +; +} +fn +no_expansion +( +& +mut +self +) +- +> +Option +< +Cow +< +' +_ +[ +u8 +] +> +> +{ +no_expansion +( +self +) +} } fn no_expansion +< +T +: +AsRef +< +[ +u8 +] +> +> ( +t +: & -mut -self +T ) - > @@ -5219,9 +4369,43 @@ u8 > > { -no_expansion +let +s += +t +. +as_ref ( -self +) +; +match +find_byte +( +b +' +' +s +) +{ +Some +( +_ +) += +> +None +None += +> +Some +( +Cow +: +: +Borrowed +( +s +) ) } } @@ -5304,125 +4488,6 @@ as_ref [ derive ( -Debug -) -] -pub -struct -ReplacerRef -< -' -a -R -: -? -Sized -> -( -& -' -a -mut -R -) -; -impl -< -' -a -R -: -Replacer -+ -? -Sized -+ -' -a -> -Replacer -for -ReplacerRef -< -' -a -R -> -{ -fn -replace_append -( -& -mut -self -caps -: -& -Captures -< -' -_ -> -dst -: -& -mut -Vec -< -u8 -> -) -{ -self -. -0 -. -replace_append -( -caps -dst -) -} -fn -no_expansion -< -' -r -> -( -& -' -r -mut -self -) -- -> -Option -< -Cow -< -' -r -[ -u8 -] -> -> -{ -self -. -0 -. -no_expansion -( -) -} -} -# -[ -derive -( Clone Debug ) @@ -5432,13 +4497,13 @@ struct NoExpand < ' -s +t > ( pub & ' -s +t [ u8 ] @@ -5447,14 +4512,14 @@ u8 impl < ' -s +t > Replacer for NoExpand < ' -s +t > { fn @@ -5526,81 +4591,3 @@ self ) } } -fn -no_expansion -< -T -: -AsRef -< -[ -u8 -] -> -> -( -replacement -: -& -T -) -- -> -Option -< -Cow -< -' -_ -[ -u8 -] -> -> -{ -let -replacement -= -replacement -. -as_ref -( -) -; -match -crate -: -: -find_byte -: -: -find_byte -( -b -' -' -replacement -) -{ -Some -( -_ -) -= -> -None -None -= -> -Some -( -Cow -: -: -Borrowed -( -replacement -) -) -} -} diff --git a/third_party/rust/regex/src/re_set.rs b/third_party/rust/regex/src/re_set.rs new file mode 100644 index 0000000000000..445c33dade6c0 --- /dev/null +++ b/third_party/rust/regex/src/re_set.rs @@ -0,0 +1,3837 @@ +macro_rules +! +define_set +{ +( +name +: +ident +builder_mod +: +ident +text_ty +: +ty +as_bytes +: +expr +( +# +[ +doc_regexset_example +: +meta +] +) +* +) += +> +{ +pub +mod +name +{ +use +std +: +: +fmt +; +use +std +: +: +iter +; +use +std +: +: +slice +; +use +std +: +: +vec +; +use +crate +: +: +error +: +: +Error +; +use +crate +: +: +exec +: +: +Exec +; +use +crate +: +: +re_builder +: +: +builder_mod +: +: +RegexSetBuilder +; +use +crate +: +: +re_trait +: +: +RegularExpression +; +/ +/ +/ +Match +multiple +( +possibly +overlapping +) +regular +expressions +in +a +single +scan +. +/ +/ +/ +/ +/ +/ +A +regex +set +corresponds +to +the +union +of +two +or +more +regular +expressions +. +/ +/ +/ +That +is +a +regex +set +will +match +text +where +at +least +one +of +its +/ +/ +/ +constituent +regular +expressions +matches +. +A +regex +set +as +its +formulated +here +/ +/ +/ +provides +a +touch +more +power +: +it +will +also +report +* +which +* +regular +/ +/ +/ +expressions +in +the +set +match +. +Indeed +this +is +the +key +difference +between +/ +/ +/ +regex +sets +and +a +single +Regex +with +many +alternates +since +only +one +/ +/ +/ +alternate +can +match +at +a +time +. +/ +/ +/ +/ +/ +/ +For +example +consider +regular +expressions +to +match +email +addresses +and +/ +/ +/ +domains +: +[ +a +- +z +] ++ +[ +a +- +z +] ++ +\ +. +( +com +| +org +| +net +) +and +[ +a +- +z +] ++ +\ +. +( +com +| +org +| +net +) +. +If +a +/ +/ +/ +regex +set +is +constructed +from +those +regexes +then +searching +the +text +/ +/ +/ +foo +example +. +com +will +report +both +regexes +as +matching +. +Of +course +one +/ +/ +/ +could +accomplish +this +by +compiling +each +regex +on +its +own +and +doing +two +/ +/ +/ +searches +over +the +text +. +The +key +advantage +of +using +a +regex +set +is +that +it +/ +/ +/ +will +report +the +matching +regexes +using +a +* +single +pass +through +the +text +* +. +/ +/ +/ +If +one +has +hundreds +or +thousands +of +regexes +to +match +repeatedly +( +like +a +URL +/ +/ +/ +router +for +a +complex +web +application +or +a +user +agent +matcher +) +then +a +regex +/ +/ +/ +set +can +realize +huge +performance +gains +. +/ +/ +/ +/ +/ +/ +# +Example +/ +/ +/ +/ +/ +/ +This +shows +how +the +above +two +regexes +( +for +matching +email +addresses +and +/ +/ +/ +domains +) +might +work +: +/ +/ +/ +( +# +[ +doc_regexset_example +] +) +* +/ +/ +/ +/ +/ +/ +Note +that +it +would +be +possible +to +adapt +the +above +example +to +using +Regex +# +[ +derive +( +Clone +) +] +pub +struct +RegexSet +( +Exec +) +; +impl +RegexSet +{ +/ +/ +/ +Create +a +new +regex +set +with +the +given +regular +expressions +. +/ +/ +/ +/ +/ +/ +This +takes +an +iterator +of +S +where +S +is +something +that +can +produce +/ +/ +/ +a +& +str +. +If +any +of +the +strings +in +the +iterator +are +not +valid +regular +/ +/ +/ +expressions +then +an +error +is +returned +. +/ +/ +/ +/ +/ +/ +# +Example +/ +/ +/ +/ +/ +/ +Create +a +new +regex +set +from +an +iterator +of +strings +: +/ +/ +/ +/ +/ +/ +rust +/ +/ +/ +# +use +regex +: +: +RegexSet +; +/ +/ +/ +let +set += +RegexSet +: +: +new +( +& +[ +r +" +\ +w ++ +" +r +" +\ +d ++ +" +] +) +. +unwrap +( +) +; +/ +/ +/ +assert +! +( +set +. +is_match +( +" +foo +" +) +) +; +/ +/ +/ +pub +fn +new +< +I +S +> +( +exprs +: +I +) +- +> +Result +< +RegexSet +Error +> +where +S +: +AsRef +< +str +> +I +: +IntoIterator +< +Item += +S +> +{ +RegexSetBuilder +: +: +new +( +exprs +) +. +build +( +) +} +/ +/ +/ +Create +a +new +empty +regex +set +. +/ +/ +/ +/ +/ +/ +# +Example +/ +/ +/ +/ +/ +/ +rust +/ +/ +/ +# +use +regex +: +: +RegexSet +; +/ +/ +/ +let +set += +RegexSet +: +: +empty +( +) +; +/ +/ +/ +assert +! +( +set +. +is_empty +( +) +) +; +/ +/ +/ +pub +fn +empty +( +) +- +> +RegexSet +{ +RegexSetBuilder +: +: +new +( +& +[ +" +" +; +0 +] +) +. +build +( +) +. +unwrap +( +) +} +/ +/ +/ +Returns +true +if +and +only +if +one +of +the +regexes +in +this +set +matches +/ +/ +/ +the +text +given +. +/ +/ +/ +/ +/ +/ +This +method +should +be +preferred +if +you +only +need +to +test +whether +any +/ +/ +/ +of +the +regexes +in +the +set +should +match +but +don +' +t +care +about +* +which +* +/ +/ +/ +regexes +matched +. +This +is +because +the +underlying +matching +engine +will +/ +/ +/ +quit +immediately +after +seeing +the +first +match +instead +of +continuing +to +/ +/ +/ +find +all +matches +. +/ +/ +/ +/ +/ +/ +Note +that +as +with +searches +using +Regex +the +expression +is +unanchored +/ +/ +/ +by +default +. +That +is +if +the +regex +does +not +start +with +^ +or +\ +A +or +/ +/ +/ +end +with +or +\ +z +then +it +is +permitted +to +match +anywhere +in +the +/ +/ +/ +text +. +/ +/ +/ +/ +/ +/ +# +Example +/ +/ +/ +/ +/ +/ +Tests +whether +a +set +matches +some +text +: +/ +/ +/ +/ +/ +/ +rust +/ +/ +/ +# +use +regex +: +: +RegexSet +; +/ +/ +/ +let +set += +RegexSet +: +: +new +( +& +[ +r +" +\ +w ++ +" +r +" +\ +d ++ +" +] +) +. +unwrap +( +) +; +/ +/ +/ +assert +! +( +set +. +is_match +( +" +foo +" +) +) +; +/ +/ +/ +assert +! +( +! +set +. +is_match +( +" +" +) +) +; +/ +/ +/ +pub +fn +is_match +( +& +self +text +: +text_ty +) +- +> +bool +{ +self +. +is_match_at +( +text +0 +) +} +/ +/ +/ +Returns +the +same +as +is_match +but +starts +the +search +at +the +given +/ +/ +/ +offset +. +/ +/ +/ +/ +/ +/ +The +significance +of +the +starting +point +is +that +it +takes +the +surrounding +/ +/ +/ +context +into +consideration +. +For +example +the +\ +A +anchor +can +only +/ +/ +/ +match +when +start += += +0 +. +# +[ +doc +( +hidden +) +] +pub +fn +is_match_at +( +& +self +text +: +text_ty +start +: +usize +) +- +> +bool +{ +self +. +0 +. +searcher +( +) +. +is_match_at +( +as_bytes +( +text +) +start +) +} +/ +/ +/ +Returns +the +set +of +regular +expressions +that +match +in +the +given +text +. +/ +/ +/ +/ +/ +/ +The +set +returned +contains +the +index +of +each +regular +expression +that +/ +/ +/ +matches +in +the +given +text +. +The +index +is +in +correspondence +with +the +/ +/ +/ +order +of +regular +expressions +given +to +RegexSet +' +s +constructor +. +/ +/ +/ +/ +/ +/ +The +set +can +also +be +used +to +iterate +over +the +matched +indices +. +/ +/ +/ +/ +/ +/ +Note +that +as +with +searches +using +Regex +the +expression +is +unanchored +/ +/ +/ +by +default +. +That +is +if +the +regex +does +not +start +with +^ +or +\ +A +or +/ +/ +/ +end +with +or +\ +z +then +it +is +permitted +to +match +anywhere +in +the +/ +/ +/ +text +. +/ +/ +/ +/ +/ +/ +# +Example +/ +/ +/ +/ +/ +/ +Tests +which +regular +expressions +match +the +given +text +: +/ +/ +/ +/ +/ +/ +rust +/ +/ +/ +# +use +regex +: +: +RegexSet +; +/ +/ +/ +let +set += +RegexSet +: +: +new +( +& +[ +/ +/ +/ +r +" +\ +w ++ +" +/ +/ +/ +r +" +\ +d ++ +" +/ +/ +/ +r +" +\ +pL ++ +" +/ +/ +/ +r +" +foo +" +/ +/ +/ +r +" +bar +" +/ +/ +/ +r +" +barfoo +" +/ +/ +/ +r +" +foobar +" +/ +/ +/ +] +) +. +unwrap +( +) +; +/ +/ +/ +let +matches +: +Vec +< +_ +> += +set +. +matches +( +" +foobar +" +) +. +into_iter +( +) +. +collect +( +) +; +/ +/ +/ +assert_eq +! +( +matches +vec +! +[ +0 +2 +3 +4 +6 +] +) +; +/ +/ +/ +/ +/ +/ +/ +/ +You +can +also +test +whether +a +particular +regex +matched +: +/ +/ +/ +let +matches += +set +. +matches +( +" +foobar +" +) +; +/ +/ +/ +assert +! +( +! +matches +. +matched +( +5 +) +) +; +/ +/ +/ +assert +! +( +matches +. +matched +( +6 +) +) +; +/ +/ +/ +pub +fn +matches +( +& +self +text +: +text_ty +) +- +> +SetMatches +{ +let +mut +matches += +vec +! +[ +false +; +self +. +0 +. +regex_strings +( +) +. +len +( +) +] +; +let +any += +self +. +read_matches_at +( +& +mut +matches +text +0 +) +; +SetMatches +{ +matched_any +: +any +matches +: +matches +} +} +/ +/ +/ +Returns +the +same +as +matches +but +starts +the +search +at +the +given +/ +/ +/ +offset +and +stores +the +matches +into +the +slice +given +. +/ +/ +/ +/ +/ +/ +The +significance +of +the +starting +point +is +that +it +takes +the +surrounding +/ +/ +/ +context +into +consideration +. +For +example +the +\ +A +anchor +can +only +/ +/ +/ +match +when +start += += +0 +. +# +[ +doc +( +hidden +) +] +pub +fn +read_matches_at +( +& +self +matches +: +& +mut +[ +bool +] +text +: +text_ty +start +: +usize +) +- +> +bool +{ +self +. +0 +. +searcher +( +) +. +many_matches_at +( +matches +as_bytes +( +text +) +start +) +} +/ +/ +/ +Returns +the +total +number +of +regular +expressions +in +this +set +. +pub +fn +len +( +& +self +) +- +> +usize +{ +self +. +0 +. +regex_strings +( +) +. +len +( +) +} +/ +/ +/ +Returns +true +if +this +set +contains +no +regular +expressions +. +pub +fn +is_empty +( +& +self +) +- +> +bool +{ +self +. +0 +. +regex_strings +( +) +. +is_empty +( +) +} +/ +/ +/ +Returns +the +patterns +that +this +set +will +match +on +. +/ +/ +/ +/ +/ +/ +This +function +can +be +used +to +determine +the +pattern +for +a +match +. +The +/ +/ +/ +slice +returned +has +exactly +as +many +patterns +givens +to +this +regex +set +/ +/ +/ +and +the +order +of +the +slice +is +the +same +as +the +order +of +the +patterns +/ +/ +/ +provided +to +the +set +. +/ +/ +/ +/ +/ +/ +# +Example +/ +/ +/ +/ +/ +/ +rust +/ +/ +/ +# +use +regex +: +: +RegexSet +; +/ +/ +/ +let +set += +RegexSet +: +: +new +( +& +[ +/ +/ +/ +r +" +\ +w ++ +" +/ +/ +/ +r +" +\ +d ++ +" +/ +/ +/ +r +" +\ +pL ++ +" +/ +/ +/ +r +" +foo +" +/ +/ +/ +r +" +bar +" +/ +/ +/ +r +" +barfoo +" +/ +/ +/ +r +" +foobar +" +/ +/ +/ +] +) +. +unwrap +( +) +; +/ +/ +/ +let +matches +: +Vec +< +_ +> += +set +/ +/ +/ +. +matches +( +" +foobar +" +) +/ +/ +/ +. +into_iter +( +) +/ +/ +/ +. +map +( +| +match_idx +| +& +set +. +patterns +( +) +[ +match_idx +] +) +/ +/ +/ +. +collect +( +) +; +/ +/ +/ +assert_eq +! +( +matches +vec +! +[ +r +" +\ +w ++ +" +r +" +\ +pL ++ +" +r +" +foo +" +r +" +bar +" +r +" +foobar +" +] +) +; +/ +/ +/ +pub +fn +patterns +( +& +self +) +- +> +& +[ +String +] +{ +self +. +0 +. +regex_strings +( +) +} +} +/ +/ +/ +A +set +of +matches +returned +by +a +regex +set +. +# +[ +derive +( +Clone +Debug +) +] +pub +struct +SetMatches +{ +matched_any +: +bool +matches +: +Vec +< +bool +> +} +impl +SetMatches +{ +/ +/ +/ +Whether +this +set +contains +any +matches +. +pub +fn +matched_any +( +& +self +) +- +> +bool +{ +self +. +matched_any +} +/ +/ +/ +Whether +the +regex +at +the +given +index +matched +. +/ +/ +/ +/ +/ +/ +The +index +for +a +regex +is +determined +by +its +insertion +order +upon +the +/ +/ +/ +initial +construction +of +a +RegexSet +starting +at +0 +. +/ +/ +/ +/ +/ +/ +# +Panics +/ +/ +/ +/ +/ +/ +If +regex_index +is +greater +than +or +equal +to +self +. +len +( +) +. +pub +fn +matched +( +& +self +regex_index +: +usize +) +- +> +bool +{ +self +. +matches +[ +regex_index +] +} +/ +/ +/ +The +total +number +of +regexes +in +the +set +that +created +these +matches +. +pub +fn +len +( +& +self +) +- +> +usize +{ +self +. +matches +. +len +( +) +} +/ +/ +/ +Returns +an +iterator +over +indexes +in +the +regex +that +matched +. +/ +/ +/ +/ +/ +/ +This +will +always +produces +matches +in +ascending +order +of +index +where +/ +/ +/ +the +index +corresponds +to +the +index +of +the +regex +that +matched +with +/ +/ +/ +respect +to +its +position +when +initially +building +the +set +. +pub +fn +iter +( +& +self +) +- +> +SetMatchesIter +< +' +_ +> +{ +SetMatchesIter +( +( +& +* +self +. +matches +) +. +into_iter +( +) +. +enumerate +( +) +) +} +} +impl +IntoIterator +for +SetMatches +{ +type +IntoIter += +SetMatchesIntoIter +; +type +Item += +usize +; +fn +into_iter +( +self +) +- +> +Self +: +: +IntoIter +{ +SetMatchesIntoIter +( +self +. +matches +. +into_iter +( +) +. +enumerate +( +) +) +} +} +impl +< +' +a +> +IntoIterator +for +& +' +a +SetMatches +{ +type +IntoIter += +SetMatchesIter +< +' +a +> +; +type +Item += +usize +; +fn +into_iter +( +self +) +- +> +Self +: +: +IntoIter +{ +self +. +iter +( +) +} +} +/ +/ +/ +An +owned +iterator +over +the +set +of +matches +from +a +regex +set +. +/ +/ +/ +/ +/ +/ +This +will +always +produces +matches +in +ascending +order +of +index +where +the +/ +/ +/ +index +corresponds +to +the +index +of +the +regex +that +matched +with +respect +to +/ +/ +/ +its +position +when +initially +building +the +set +. +# +[ +derive +( +Debug +) +] +pub +struct +SetMatchesIntoIter +( +iter +: +: +Enumerate +< +vec +: +: +IntoIter +< +bool +> +> +) +; +impl +Iterator +for +SetMatchesIntoIter +{ +type +Item += +usize +; +fn +next +( +& +mut +self +) +- +> +Option +< +usize +> +{ +loop +{ +match +self +. +0 +. +next +( +) +{ +None += +> +return +None +Some +( +( +_ +false +) +) += +> +{ +} +Some +( +( +i +true +) +) += +> +return +Some +( +i +) +} +} +} +fn +size_hint +( +& +self +) +- +> +( +usize +Option +< +usize +> +) +{ +self +. +0 +. +size_hint +( +) +} +} +impl +DoubleEndedIterator +for +SetMatchesIntoIter +{ +fn +next_back +( +& +mut +self +) +- +> +Option +< +usize +> +{ +loop +{ +match +self +. +0 +. +next_back +( +) +{ +None += +> +return +None +Some +( +( +_ +false +) +) += +> +{ +} +Some +( +( +i +true +) +) += +> +return +Some +( +i +) +} +} +} +} +impl +iter +: +: +FusedIterator +for +SetMatchesIntoIter +{ +} +/ +/ +/ +A +borrowed +iterator +over +the +set +of +matches +from +a +regex +set +. +/ +/ +/ +/ +/ +/ +The +lifetime +' +a +refers +to +the +lifetime +of +a +SetMatches +value +. +/ +/ +/ +/ +/ +/ +This +will +always +produces +matches +in +ascending +order +of +index +where +the +/ +/ +/ +index +corresponds +to +the +index +of +the +regex +that +matched +with +respect +to +/ +/ +/ +its +position +when +initially +building +the +set +. +# +[ +derive +( +Clone +Debug +) +] +pub +struct +SetMatchesIter +< +' +a +> +( +iter +: +: +Enumerate +< +slice +: +: +Iter +< +' +a +bool +> +> +) +; +impl +< +' +a +> +Iterator +for +SetMatchesIter +< +' +a +> +{ +type +Item += +usize +; +fn +next +( +& +mut +self +) +- +> +Option +< +usize +> +{ +loop +{ +match +self +. +0 +. +next +( +) +{ +None += +> +return +None +Some +( +( +_ +& +false +) +) += +> +{ +} +Some +( +( +i +& +true +) +) += +> +return +Some +( +i +) +} +} +} +fn +size_hint +( +& +self +) +- +> +( +usize +Option +< +usize +> +) +{ +self +. +0 +. +size_hint +( +) +} +} +impl +< +' +a +> +DoubleEndedIterator +for +SetMatchesIter +< +' +a +> +{ +fn +next_back +( +& +mut +self +) +- +> +Option +< +usize +> +{ +loop +{ +match +self +. +0 +. +next_back +( +) +{ +None += +> +return +None +Some +( +( +_ +& +false +) +) += +> +{ +} +Some +( +( +i +& +true +) +) += +> +return +Some +( +i +) +} +} +} +} +impl +< +' +a +> +iter +: +: +FusedIterator +for +SetMatchesIter +< +' +a +> +{ +} +# +[ +doc +( +hidden +) +] +impl +From +< +Exec +> +for +RegexSet +{ +fn +from +( +exec +: +Exec +) +- +> +Self +{ +RegexSet +( +exec +) +} +} +impl +fmt +: +: +Debug +for +RegexSet +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +write +! +( +f +" +RegexSet +( +{ +: +? +} +) +" +self +. +0 +. +regex_strings +( +) +) +} +} +# +[ +allow +( +dead_code +) +] +fn +as_bytes_str +( +text +: +& +str +) +- +> +& +[ +u8 +] +{ +text +. +as_bytes +( +) +} +# +[ +allow +( +dead_code +) +] +fn +as_bytes_bytes +( +text +: +& +[ +u8 +] +) +- +> +& +[ +u8 +] +{ +text +} +} +} +} +define_set +! +{ +unicode +set_unicode +& +str +as_bytes_str +/ +/ +/ +rust +/ +/ +/ +# +use +regex +: +: +RegexSet +; +/ +/ +/ +let +set += +RegexSet +: +: +new +( +& +[ +/ +/ +/ +r +" +[ +a +- +z +] ++ +[ +a +- +z +] ++ +\ +. +( +com +| +org +| +net +) +" +/ +/ +/ +r +" +[ +a +- +z +] ++ +\ +. +( +com +| +org +| +net +) +" +/ +/ +/ +] +) +. +unwrap +( +) +; +/ +/ +/ +/ +/ +/ +/ +/ +Ask +whether +any +regexes +in +the +set +match +. +/ +/ +/ +assert +! +( +set +. +is_match +( +" +foo +example +. +com +" +) +) +; +/ +/ +/ +/ +/ +/ +/ +/ +Identify +which +regexes +in +the +set +match +. +/ +/ +/ +let +matches +: +Vec +< +_ +> += +set +. +matches +( +" +foo +example +. +com +" +) +. +into_iter +( +) +. +collect +( +) +; +/ +/ +/ +assert_eq +! +( +vec +! +[ +0 +1 +] +matches +) +; +/ +/ +/ +/ +/ +/ +/ +/ +Try +again +but +with +text +that +only +matches +one +of +the +regexes +. +/ +/ +/ +let +matches +: +Vec +< +_ +> += +set +. +matches +( +" +example +. +com +" +) +. +into_iter +( +) +. +collect +( +) +; +/ +/ +/ +assert_eq +! +( +vec +! +[ +1 +] +matches +) +; +/ +/ +/ +/ +/ +/ +/ +/ +Try +again +but +with +text +that +doesn +' +t +match +any +regex +in +the +set +. +/ +/ +/ +let +matches +: +Vec +< +_ +> += +set +. +matches +( +" +example +" +) +. +into_iter +( +) +. +collect +( +) +; +/ +/ +/ +assert +! +( +matches +. +is_empty +( +) +) +; +/ +/ +/ +} +define_set +! +{ +bytes +set_bytes +& +[ +u8 +] +as_bytes_bytes +/ +/ +/ +rust +/ +/ +/ +# +use +regex +: +: +bytes +: +: +RegexSet +; +/ +/ +/ +let +set += +RegexSet +: +: +new +( +& +[ +/ +/ +/ +r +" +[ +a +- +z +] ++ +[ +a +- +z +] ++ +\ +. +( +com +| +org +| +net +) +" +/ +/ +/ +r +" +[ +a +- +z +] ++ +\ +. +( +com +| +org +| +net +) +" +/ +/ +/ +] +) +. +unwrap +( +) +; +/ +/ +/ +/ +/ +/ +/ +/ +Ask +whether +any +regexes +in +the +set +match +. +/ +/ +/ +assert +! +( +set +. +is_match +( +b +" +foo +example +. +com +" +) +) +; +/ +/ +/ +/ +/ +/ +/ +/ +Identify +which +regexes +in +the +set +match +. +/ +/ +/ +let +matches +: +Vec +< +_ +> += +set +. +matches +( +b +" +foo +example +. +com +" +) +. +into_iter +( +) +. +collect +( +) +; +/ +/ +/ +assert_eq +! +( +vec +! +[ +0 +1 +] +matches +) +; +/ +/ +/ +/ +/ +/ +/ +/ +Try +again +but +with +text +that +only +matches +one +of +the +regexes +. +/ +/ +/ +let +matches +: +Vec +< +_ +> += +set +. +matches +( +b +" +example +. +com +" +) +. +into_iter +( +) +. +collect +( +) +; +/ +/ +/ +assert_eq +! +( +vec +! +[ +1 +] +matches +) +; +/ +/ +/ +/ +/ +/ +/ +/ +Try +again +but +with +text +that +doesn +' +t +match +any +regex +in +the +set +. +/ +/ +/ +let +matches +: +Vec +< +_ +> += +set +. +matches +( +b +" +example +" +) +. +into_iter +( +) +. +collect +( +) +; +/ +/ +/ +assert +! +( +matches +. +is_empty +( +) +) +; +/ +/ +/ +} diff --git a/third_party/rust/regex/src/regexset/string.rs b/third_party/rust/regex/src/re_trait.rs similarity index 50% rename from third_party/rust/regex/src/regexset/string.rs rename to third_party/rust/regex/src/re_trait.rs index bc054a215e7ad..db2de1093baf9 100644 --- a/third_party/rust/regex/src/regexset/string.rs +++ b/third_party/rust/regex/src/re_trait.rs @@ -1,507 +1,464 @@ use -alloc +std : : -string -: -: -String +fmt ; use -regex_automata +std : : -{ -meta -Input -PatternID -PatternSet -PatternSetIter -} -; -use -crate +iter : : -{ -Error -RegexSetBuilder -} +FusedIterator +; +pub +type +Slot += +Option +< +usize +> ; # [ +doc +( +hidden +) +] +# +[ derive ( Clone +Debug ) ] pub struct -RegexSet -{ -pub -( -crate -) -meta -: -meta -: -: -Regex -pub +Locations ( -crate -) -patterns -: -alloc -: -: -sync -: -: -Arc +Vec < -[ -String -] +Slot > -} +) +; impl -RegexSet +Locations { pub fn -new -< -I -S -> +pos ( -exprs +& +self +i : -I +usize ) - > -Result -< -RegexSet -Error -> -where -S -: -AsRef -< -str -> -I -: -IntoIterator +Option < -Item -= -S +( +usize +usize +) > { -RegexSetBuilder -: -: -new +let ( -exprs +s +e ) += +( +i +* +2 +i +* +2 ++ +1 +) +; +match +( +self +. +0 . -build +get ( +s ) -} -pub -fn -empty +self +. +0 +. +get ( +e +) ) -- -> -RegexSet { -let -empty -: -[ +( +Some +( & -str -; -0 -] -= -[ -] -; -RegexSetBuilder -: -: -new +Some ( -empty +s ) -. -build +) +Some +( +& +Some ( +e ) -. -unwrap +) +) += +> +Some ( +( +s +e +) ) +_ += +> +None +} } -# -[ -inline -] pub fn -is_match +iter ( & self -haystack -: -& -str ) - > -bool +SubCapturesPosIter +< +' +_ +> { -self -. -is_match_at -( -haystack +SubCapturesPosIter +{ +idx +: 0 -) +locs +: +self +} } -# -[ -inline -] pub fn -is_match_at +len ( & self -haystack -: -& -str -start -: -usize ) - > -bool +usize { self . -meta -. -is_match -( -Input -: -: -new -( -haystack -) -. -span -( -start -. -. -haystack +0 . len ( ) -) -) +/ +2 } -# -[ -inline -] pub +( +crate +) fn -matches +as_slots ( & +mut self -haystack -: -& -str ) - > -SetMatches +& +mut +[ +Slot +] { +& +mut self . -matches_at -( -haystack 0 -) +} } # [ -inline +derive +( +Clone +Debug +) ] pub +struct +SubCapturesPosIter +< +' +c +> +{ +idx +: +usize +locs +: +& +' +c +Locations +} +impl +< +' +c +> +Iterator +for +SubCapturesPosIter +< +' +c +> +{ +type +Item += +Option +< +( +usize +usize +) +> +; fn -matches_at +next ( & +mut self -haystack -: -& -str -start -: -usize ) - > -SetMatches -{ -let -input -= -Input -: -: -new +Option +< +Option +< ( -haystack +usize +usize ) +> +> +{ +if +self . -span -( -start -. +idx +> += +self . -haystack +locs . len ( ) -) +{ +return +None ; +} let -mut -patset +x = -PatternSet -: -: -new -( +match self . -meta +locs . -pattern_len +pos ( -) -) -; self . -meta -. -which_overlapping_matches +idx +) +{ +None += +> +Some ( -& -input -& -mut -patset +None ) -; -SetMatches +Some ( -patset +( +s +e ) -} -# -[ -doc +) += +> +Some ( -hidden +Some +( +( +s +e ) -] -# -[ -inline -] -pub +) +) +} +; +self +. +idx ++ += +1 +; +x +} fn -matches_read_at +size_hint ( & self -matches -: -& -mut -[ -bool -] -haystack -: -& -str -start -: -usize ) - > -bool +( +usize +Option +< +usize +> +) { let -mut -patset +len = -PatternSet -: -: -new -( self . -meta -. -pattern_len -( -) -) -; -let -mut -input -= -Input -: -: -new -( -haystack -) -; -input +locs . -set_start +len ( -start ) -; +- self . -meta -. -which_overlapping_matches -( -& -input -& -mut -patset -) +idx ; -for -pid -in -patset -. -iter ( -) -{ -matches -[ -pid -] -= -true -; -} -! -patset -. -is_empty +len +Some ( +len ) -} -# -[ -doc -( -hidden ) -] -# -[ -inline -] -pub +} fn -read_matches_at +count ( -& self -matches -: -& -mut -[ -bool -] -haystack -: -& -str -start -: -usize ) - > -bool +usize { self . -matches_read_at +len ( -matches -haystack -start ) } -# -[ -inline -] +} +impl +< +' +c +> +ExactSizeIterator +for +SubCapturesPosIter +< +' +c +> +{ +} +impl +< +' +c +> +FusedIterator +for +SubCapturesPosIter +< +' +c +> +{ +} pub +trait +RegularExpression +: +Sized ++ +fmt +: +: +Debug +{ +type +Text +: +? +Sized ++ +fmt +: +: +Debug +; fn -len +slots_len ( & self @@ -509,348 +466,371 @@ self - > usize -{ -self -. -meta -. -pattern_len -( -) -} -# -[ -inline -] -pub +; fn -is_empty +locations ( & self ) - > -bool +Locations { +Locations +( +vec +! +[ +None +; self . -meta -. -pattern_len +slots_len ( ) -= -= -0 -} -# -[ -inline ] -pub +) +} fn -patterns +next_after_empty ( & self +text +: +& +Self +: +: +Text +i +: +usize ) - > -& -[ -String -] -{ -& -self -. -patterns -} -} -impl -Default -for -RegexSet -{ +usize +; fn -default +shortest_match_at ( +& +self +text +: +& +Self +: +: +Text +start +: +usize ) - > +Option +< +usize +> +; +fn +is_match_at +( +& +self +text +: +& Self -{ -RegexSet : : -empty -( -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -SetMatches -( -PatternSet +Text +start +: +usize ) +- +> +bool ; -impl -SetMatches -{ -# -[ -inline -] -pub fn -matched_any +find_at ( & self +text +: +& +Self +: +: +Text +start +: +usize ) - > -bool -{ -! -self -. -0 -. -is_empty +Option +< ( +usize +usize ) -} -# -[ -inline -] -pub +> +; fn -matched +captures_read_at ( & self -index +locs +: +& +mut +Locations +text +: +& +Self +: +: +Text +start : usize ) - > -bool -{ -self -. -0 -. -contains -( -PatternID -: -: -new_unchecked +Option +< ( -index -) +usize +usize ) -} -# -[ -inline -] -pub +> +; fn -len +find_iter ( -& self +text +: +& +Self +: +: +Text ) - > -usize +Matches +< +' +_ +Self +> { +Matches +{ +re +: self -. +text +last_end +: 0 -. -capacity -( -) +last_match +: +None +} } -# -[ -inline -] -pub fn -iter +captures_iter ( -& self +text +: +& +Self +: +: +Text ) - > -SetMatchesIter +CaptureMatches < ' _ +Self > { -SetMatchesIter +CaptureMatches ( self . -0 -. -iter +find_iter ( +text ) ) } } -impl -IntoIterator -for -SetMatches -{ -type -IntoIter -= -SetMatchesIntoIter -; -type -Item -= -usize -; -fn -into_iter +# +[ +derive ( -self +Debug ) -- +] +pub +struct +Matches +< +' +t +R > -Self +where +R : +RegularExpression +R : -IntoIter -{ -let -it -= -0 -. -. -self -. -0 -. -capacity -( -) -; -SetMatchesIntoIter +: +Text +: +' +t { -patset +re : -self -. -0 -it -} -} +R +text +: +& +' +t +R +: +: +Text +last_end +: +usize +last_match +: +Option +< +usize +> } impl < ' -a +t +R > -IntoIterator -for -& -' -a -SetMatches -{ -type -IntoIter -= -SetMatchesIter +Matches < ' -a +t +R > -; -type -Item -= -usize -; +where +R +: +RegularExpression +R +: +: +Text +: +' +t +{ +pub fn -into_iter +text ( +& self ) - > -Self +& +' +t +R : : -IntoIter +Text { self . -iter -( -) -} +text } -# -[ -derive +pub +fn +regex ( -Debug +& +self ) -] -pub -struct -SetMatchesIntoIter +- +> +& +R { -patset -: -PatternSet -it -: -core +& +self +. +re +} +} +impl +< +' +t +R +> +Iterator +for +Matches +< +' +t +R +> +where +R : +RegularExpression +R : -ops : +Text : -Range +' +t ++ +AsRef < -usize +[ +u8 +] > -} -impl -Iterator -for -SetMatchesIntoIter { type Item = +( +usize usize +) ; fn next @@ -863,240 +843,278 @@ self > Option < +( usize +usize +) > { -loop -{ -let -id -= +if self . -it +last_end +> +self . -next +text +. +as_ref ( ) -? +. +len +( +) +{ +return +None ; -if +} +let +( +s +e +) += +match self . -patset +re . -contains -( -PatternID -: -: -new_unchecked +find_at ( -id -) +self +. +text +self +. +last_end ) { +None += +> return +None Some ( -id -) -; -} -} -} -fn -size_hint ( -& -self +s +e ) -- +) += > ( -usize -Option -< -usize -> +s +e ) +} +; +if +s += += +e { self . -it +last_end += +self . -size_hint +re +. +next_after_empty ( +self +. +text +e ) -} -} -impl -DoubleEndedIterator -for -SetMatchesIntoIter -{ -fn -next_back +; +if +Some ( -& -mut -self +e ) -- -> -Option -< -usize -> -{ -loop -{ -let -id += = self . -it +last_match +{ +return +self . -next_back +next ( ) -? ; -if +} +} +else +{ self . -patset +last_end += +e +; +} +self . -contains -( -PatternID -: -: -new_unchecked +last_match += +Some ( -id -) +e ) -{ -return +; Some ( -id +( +s +e +) ) -; -} -} } } impl -core +< +' +t +R +> +FusedIterator +for +Matches +< +' +t +R +> +where +R : +RegularExpression +R : -iter : +Text : -FusedIterator -for -SetMatchesIntoIter +' +t ++ +AsRef +< +[ +u8 +] +> { } # [ derive ( -Clone Debug ) ] pub struct -SetMatchesIter +CaptureMatches < ' -a +t +R > ( -PatternSetIter +Matches < ' -a +t +R > ) +where +R +: +RegularExpression +R +: +: +Text +: +' +t ; impl < ' -a +t +R > -Iterator -for -SetMatchesIter +CaptureMatches < ' -a +t +R > +where +R +: +RegularExpression +R +: +: +Text +: +' +t { -type -Item -= -usize -; +pub fn -next +text ( & -mut self ) - > -Option -< -usize -> +& +' +t +R +: +: +Text { self . 0 . -next -( -) -. -map -( -| -pid -| -pid -. -as_usize +text ( ) -) } +pub fn -size_hint +regex ( & self ) - > -( -usize -Option -< -usize -> -) +& +R { self . 0 . -size_hint +regex ( ) } @@ -1104,18 +1122,43 @@ size_hint impl < ' -a +t +R > -DoubleEndedIterator +Iterator for -SetMatchesIter +CaptureMatches < ' -a +t +R +> +where +R +: +RegularExpression +R +: +: +Text +: +' +t ++ +AsRef +< +[ +u8 +] > { +type +Item += +Locations +; fn -next_back +next ( & mut @@ -1125,110 +1168,207 @@ self > Option < -usize +Locations +> +{ +if +self +. +0 +. +last_end +> +self +. +0 +. +text +. +as_ref +( +) +. +len +( +) +{ +return +None +; +} +let +mut +locs += +self +. +0 +. +re +. +locations +( +) +; +let +( +s +e +) += +match +self +. +0 +. +re +. +captures_read_at +( +& +mut +locs +self +. +0 +. +text +self +. +0 +. +last_end +) +{ +None += +> +return +None +Some +( +( +s +e +) +) += > +( +s +e +) +} +; +if +s += += +e { self . 0 . -next_back +last_end += +self +. +0 +. +re +. +next_after_empty +( +self +. +0 +. +text +e +) +; +if +Some ( +e ) += += +self +. +0 +. +last_match +{ +return +self . -map +next ( -| -pid -| -pid +) +; +} +} +else +{ +self +. +0 +. +last_end += +e +; +} +self +. +0 . -as_usize +last_match += +Some ( +e ) +; +Some +( +locs ) } } impl < ' -a +t +R > -core -: -: -iter -: -: FusedIterator for -SetMatchesIter +CaptureMatches < ' -a +t +R > -{ -} -impl -core -: -: -fmt -: -: -Debug -for -RegexSet -{ -fn -fmt -( -& -self -f -: -& -mut -core +where +R : +RegularExpression +R : -fmt : +Text : -Formatter -< ' -_ -> -) -- +t ++ +AsRef +< +[ +u8 +] > -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -RegexSet -( { -: -? -} -) -" -self -. -patterns -( -) -) -} } diff --git a/third_party/rust/regex/src/regex/string.rs b/third_party/rust/regex/src/re_unicode.rs similarity index 72% rename from third_party/rust/regex/src/regex/string.rs rename to third_party/rust/regex/src/re_unicode.rs index 77b1bfe7f0db7..8e82b954f68b2 100644 --- a/third_party/rust/regex/src/regex/string.rs +++ b/third_party/rust/regex/src/re_unicode.rs @@ -1,353 +1,212 @@ use -alloc +std : : -{ borrow : : Cow -string +; +use +std : : -String -sync +collections : : -Arc -} +HashMap ; use -regex_automata +std : : -{ -meta -util +fmt +; +use +std : : -captures -Input -PatternID -} +iter +: +: +FusedIterator ; use -crate +std : : -{ -error +ops : : -Error -RegexBuilder +{ +Index +Range } ; -# -[ -derive -( -Clone -) -] -pub -struct -Regex -{ -pub -( -crate -) -meta -: -meta -: +use +std : -Regex -pub -( -crate -) -pattern : -Arc -< str -> -} -impl -core : : -fmt +FromStr +; +use +std : : -Display -for -Regex -{ -fn -fmt -( -& -self -f +sync : -& -mut -core : +Arc +; +use +crate : -fmt : +find_byte : -Formatter -< -' -_ -> -) -- -> -core : +find_byte +; +use +crate : -fmt : +error : -Result -{ -write -! -( -f -" -{ -} -" -self -. -as_str -( -) -) -} -} -impl -core +: +Error +; +use +crate : : -fmt +exec : : -Debug -for -Regex { -fn -fmt -( -& -self -f +Exec +ExecNoSyncStr +} +; +use +crate : -& -mut -core : +expand : -fmt : +expand_str +; +use +crate : -Formatter -< -' -_ -> -) -- -> -core : +re_builder : -fmt : +unicode : -Result -{ -f -. -debug_tuple -( -" -Regex -" -) -. -field -( -& -self -. -as_str -( -) -) -. -finish -( -) -} -} -impl -core +: +RegexBuilder +; +use +crate : : -str +re_trait : : -FromStr -for -Regex { -type -Err -= -Error +self +RegularExpression +SubCapturesPosIter +} ; +pub fn -from_str +escape ( -s +text : & str ) - > -Result -< -Regex -Error -> +String { -Regex +regex_syntax : : -new +escape ( -s +text ) } -} -impl -TryFrom +# +[ +derive +( +Copy +Clone +Debug +Eq +PartialEq +) +] +pub +struct +Match < -& -str +' +t > -for -Regex { -type -Error -= -Error -; -fn -try_from -( -s +text : & +' +t str -) -- -> -Result -< -Regex -Error -> -{ -Regex +start : +usize +end : -new -( -s -) -} +usize } impl -TryFrom < -String +' +t +> +Match +< +' +t > -for -Regex -{ -type -Error -= -Error -; -fn -try_from -( -s -: -String -) -- -> -Result -< -Regex -Error -> -{ -Regex -: -: -new -( -& -s -) -} -} -impl -Regex { +# +[ +inline +] pub fn -new +start ( -re -: & -str +self ) - > -Result -< -Regex -Error -> +usize { -RegexBuilder -: -: -new -( -re -) +self . -build -( -) +start } # [ @@ -355,26 +214,18 @@ inline ] pub fn -is_match +end ( & self -haystack -: -& -str ) - > -bool +usize { self . -is_match_at -( -haystack -0 -) +end } # [ @@ -382,39 +233,26 @@ inline ] pub fn -find -< -' -h -> +range ( & self -haystack -: -& -' -h -str ) - > -Option -< -Match +Range < -' -h -> +usize > { self . -find_at -( -haystack -0 -) +start +. +. +self +. +end } # [ @@ -422,552 +260,843 @@ inline ] pub fn -find_iter -< -' -r -' -h -> +as_str ( & -' -r self -haystack -: -& -' -h -str ) - > -Matches -< -' -r +& ' -h -> -{ -Matches +t +str { -haystack -it -: +& self . -meta +text +[ +self . -find_iter +range ( -haystack ) -} +] } # [ inline ] -pub fn -captures -< -' -h -> +new ( -& -self haystack : & ' -h +t str +start +: +usize +end +: +usize ) - > -Option -< -Captures +Match < ' -h -> +t > { -self -. -captures_at -( +Match +{ +text +: haystack -0 -) +start +end } -# -[ -inline -] -pub -fn -captures_iter +} +} +impl < ' -r +t +> +From +< +Match +< ' -h +t > -( +> +for & ' -r -self -haystack +t +str +{ +fn +from +( +m : -& +Match +< ' -h -str +t +> ) - > -CaptureMatches -< -' -r +& ' -h -> -{ -CaptureMatches +t +str { -haystack -it -: -self -. -meta +m . -captures_iter +as_str ( -haystack ) } } -# -[ -inline -] -pub -fn -split +impl < ' -r +t +> +From +< +Match +< ' -h +t +> +> +for +Range +< +usize > +{ +fn +from ( -& -' -r -self -haystack +m : -& +Match +< ' -h -str +t +> ) - > -Split +Range < -' -r -' -h +usize > { -Split -{ -haystack -it -: -self -. -meta +m . -split +range ( -haystack ) } } # [ -inline +derive +( +Clone +) ] pub +struct +Regex +( +Exec +) +; +impl +fmt +: +: +Display +for +Regex +{ fn -splitn -< -' -r -' -h -> +fmt ( & -' -r self -haystack +f : & -' -h -str -limit +mut +fmt : -usize +: +Formatter +< +' +_ +> ) - > -SplitN +fmt +: +: +Result +{ +write +! +( +f +" +{ +} +" +self +. +as_str +( +) +) +} +} +impl +fmt +: +: +Debug +for +Regex +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter < ' -r -' -h +_ > +) +- +> +fmt +: +: +Result { -SplitN -{ -haystack -it +fmt : -self -. -meta -. -splitn +: +Display +: +: +fmt ( -haystack -limit +self +f ) } } # [ -inline +doc +( +hidden +) ] -pub -fn -replace +impl +From < -' -h -R +Exec +> +for +Regex +{ +fn +from +( +exec : -Replacer +Exec +) +- > +Regex +{ +Regex ( -& -self -haystack +exec +) +} +} +impl +FromStr +for +Regex +{ +type +Err += +Error +; +fn +from_str +( +s : & -' -h str -rep -: -R ) - > -Cow +Result < -' -h -str +Regex +Error > { -self -. -replacen +Regex +: +: +new ( -haystack -1 -rep +s ) } -# -[ -inline -] +} +impl +Regex +{ pub fn -replace_all -< -' -h -R +new +( +re : -Replacer +& +str +) +- +> +Result +< +Regex +Error > +{ +RegexBuilder +: +: +new +( +re +) +. +build +( +) +} +pub +fn +is_match ( & self -haystack +text : & -' -h str -rep -: -R ) - > -Cow -< -' -h -str -> +bool { self . -replacen +is_match_at ( -haystack +text 0 -rep ) } -# -[ -inline -] pub fn -replacen +find < ' -h -R -: -Replacer +t > ( & self -haystack +text : & ' -h +t str -limit -: -usize -mut -rep -: -R ) - > -Cow +Option +< +Match < ' -h -str +t +> > { -if -let -Some +self +. +find_at ( -rep +text +0 ) -= -rep -. -no_expansion +} +pub +fn +find_iter +< +' +r +' +t +> ( +& +' +r +self +text +: +& +' +t +str ) +- +> +Matches +< +' +r +' +t +> { -let -mut -it -= +Matches +( self . -find_iter -( -haystack -) +0 . -enumerate +searcher_str ( ) . -peekable +find_iter ( +text ) -; -if -it -. -peek -( ) -. -is_none +} +pub +fn +captures +< +' +t +> ( -) -{ -return -Cow -: +& +self +text : -Borrowed -( -haystack +& +' +t +str ) -; -} +- +> +Option +< +Captures +< +' +t +> +> +{ let mut -new +locs = -String -: -: -with_capacity -( -haystack +self . -len +capture_locations ( ) -) ; -let +self +. +captures_read_at +( +& mut -last_match -= +locs +text 0 -; -for -( -i -m ) -in -it -{ -new . -push_str +map ( -& -haystack -[ -last_match +move +| +_ +| +Captures +{ +text +locs +: +locs . +0 +named_groups +: +self . -m +0 . -start +capture_name_idx ( ) -] -) -; -new . -push_str +clone ( -& -rep ) -; -last_match -= -m -. -end -( +} ) -; -if -limit +} +pub +fn +captures_iter +< +' +r +' +t > -0 +( & +' +r +self +text +: & -i -> -= -limit +' +t +str +) - -1 +> +CaptureMatches +< +' +r +' +t +> { -break -; -} -} -new -. -push_str +CaptureMatches ( -& -haystack -[ -last_match +self . +0 . -] -) -; -return -Cow -: -: -Owned +searcher_str ( -new ) -; -} -let -mut -it -= -self . captures_iter ( -haystack +text ) -. -enumerate -( ) -. -peekable +} +pub +fn +split +< +' +r +' +t +> ( +& +' +r +self +text +: +& +' +t +str ) -; -if -it +- +> +Split +< +' +r +' +t +> +{ +Split +{ +finder +: +self +. +find_iter +( +text +) +last +: +0 +} +} +pub +fn +splitn +< +' +r +' +t +> +( +& +' +r +self +text +: +& +' +t +str +limit +: +usize +) +- +> +SplitN +< +' +r +' +t +> +{ +SplitN +{ +splits +: +self +. +split +( +text +) +n +: +limit +} +} +pub +fn +replace +< +' +t +R +: +Replacer +> +( +& +self +text +: +& +' +t +str +rep +: +R +) +- +> +Cow +< +' +t +str +> +{ +self +. +replacen +( +text +1 +rep +) +} +pub +fn +replace_all +< +' +t +R +: +Replacer +> +( +& +self +text +: +& +' +t +str +rep +: +R +) +- +> +Cow +< +' +t +str +> +{ +self +. +replacen +( +text +0 +rep +) +} +pub +fn +replacen +< +' +t +R +: +Replacer +> +( +& +self +text +: +& +' +t +str +limit +: +usize +mut +rep +: +R +) +- +> +Cow +< +' +t +str +> +{ +if +let +Some +( +rep +) += +rep +. +no_expansion +( +) +{ +let +mut +it += +self +. +find_iter +( +text +) +. +enumerate +( +) +. +peekable +( +) +; +if +it . peek ( @@ -983,7 +1112,7 @@ Cow : Borrowed ( -haystack +text ) ; } @@ -996,7 +1125,7 @@ String : with_capacity ( -haystack +text . len ( @@ -1012,31 +1141,17 @@ last_match for ( i -cap +m ) in it { -let -m -= -cap -. -get -( -0 -) -. -unwrap -( -) -; new . push_str ( & -haystack +text [ last_match . @@ -1049,15 +1164,12 @@ start ] ) ; -rep +new . -replace_append +push_str ( & -cap -& -mut -new +rep ) ; last_match @@ -1090,7 +1202,7 @@ new push_str ( & -haystack +text [ last_match . @@ -1098,6 +1210,7 @@ last_match ] ) ; +return Cow : : @@ -1105,1243 +1218,392 @@ Owned ( new ) +; } -} -impl -Regex -{ -# -[ -inline -] -pub -fn -shortest_match -( -& +let +mut +it += self -haystack -: -& -str +. +captures_iter +( +text ) -- -> -Option -< -usize -> -{ -self . -shortest_match_at -( -haystack -0 -) -} -# -[ -inline -] -pub -fn -shortest_match_at -( -& -self -haystack -: -& -str -start -: -usize -) -- -> -Option -< -usize -> -{ -let -input -= -Input -: -: -new +enumerate ( -haystack ) . -earliest +peekable ( -true ) +; +if +it . -span +peek ( -start -. -. -haystack +) . -len +is_none ( ) -) -; -self -. -meta -. -search_half +{ +return +Cow +: +: +Borrowed ( -& -input +text ) -. -map +; +} +let +mut +new += +String +: +: +with_capacity ( -| -hm -| -hm +text . -offset +len ( ) ) -} -# -[ -inline -] -pub -fn -is_match_at +; +let +mut +last_match += +0 +; +for ( -& -self -haystack -: -& -str -start -: -usize +i +cap ) -- -> -bool +in +it { let -input +m = -Input -: -: -new +cap +. +get ( -haystack +0 ) . -earliest +unwrap ( -true ) +; +new . -span +push_str ( -start +& +text +[ +last_match . . -haystack +m . -len +start ( ) +] ) ; -self -. -meta +rep . -search_half +replace_append ( & -input +cap +& +mut +new ) +; +last_match += +m . -is_some +end ( ) -} -# -[ -inline -] -pub -fn -find_at -< -' -h +; +if +limit > -( +0 & -self -haystack -: & -' -h -str -start -: -usize -) -- -> -Option -< -Match -< -' -h -> +i > -{ -let -input = -Input -: -: +limit +- +1 +{ +break +; +} +} new -( -haystack -) . -span +push_str ( -start -. +& +text +[ +last_match . -haystack . -len -( -) +] ) ; -self -. -meta -. -search -( -& -input -) -. -map -( -| -m -| -Match +Cow : : -new -( -haystack -m -. -start -( -) -m -. -end +Owned ( -) -) +new ) } -# -[ -inline -] -pub -fn -captures_at -< -' -h -> -( -& -self -haystack -: -& -' -h -str -start -: -usize -) -- -> -Option -< -Captures -< -' -h -> -> -{ -let -input -= -Input -: -: -new -( -haystack -) -. -span -( -start -. -. -haystack -. -len -( -) -) -; -let -mut -caps -= -self -. -meta -. -create_captures -( -) -; -self -. -meta -. -search_captures -( -& -input -& -mut -caps -) -; -if -caps -. -is_match -( -) -{ -let -static_captures_len -= -self -. -static_captures_len -( -) -; -Some -( -Captures -{ -haystack -caps -static_captures_len -} -) -} -else -{ -None -} -} -# -[ -inline -] -pub -fn -captures_read -< -' -h -> -( -& -self -locs -: -& -mut -CaptureLocations -haystack -: -& -' -h -str -) -- -> -Option -< -Match -< -' -h -> -> -{ -self -. -captures_read_at -( -locs -haystack -0 -) -} -# -[ -inline -] -pub -fn -captures_read_at -< -' -h -> -( -& -self -locs -: -& -mut -CaptureLocations -haystack -: -& -' -h -str -start -: -usize -) -- -> -Option -< -Match -< -' -h -> -> -{ -let -input -= -Input -: -: -new -( -haystack -) -. -span -( -start -. -. -haystack -. -len -( -) -) -; -self -. -meta -. -search_captures -( -& -input -& -mut -locs -. -0 -) -; -locs -. -0 -. -get_match -( -) -. -map -( -| -m -| -Match -: -: -new -( -haystack -m -. -start -( -) -m -. -end -( -) -) -) -} -# -[ -doc -( -hidden -) -] -# -[ -inline -] -pub -fn -read_captures_at -< -' -h -> -( -& -self -locs -: -& -mut -CaptureLocations -haystack -: -& -' -h -str -start -: -usize -) -- -> -Option -< -Match -< -' -h -> -> -{ -self -. -captures_read_at -( -locs -haystack -start -) -} -} -impl -Regex -{ -# -[ -inline -] -pub -fn -as_str -( -& -self -) -- -> -& -str -{ -& -self -. -pattern -} -# -[ -inline -] -pub -fn -capture_names -( -& -self -) -- -> -CaptureNames -< -' -_ -> -{ -CaptureNames -( -self -. -meta -. -group_info -( -) -. -pattern_names -( -PatternID -: -: -ZERO -) -) -} -# -[ -inline -] -pub -fn -captures_len -( -& -self -) -- -> -usize -{ -self -. -meta -. -group_info -( -) -. -group_len -( -PatternID -: -: -ZERO -) -} -# -[ -inline -] -pub -fn -static_captures_len -( -& -self -) -- -> -Option -< -usize -> -{ -self -. -meta -. -static_captures_len -( -) -} -# -[ -inline -] -pub -fn -capture_locations -( -& -self -) -- -> -CaptureLocations -{ -CaptureLocations -( -self -. -meta -. -create_captures -( -) -) -} -# -[ -doc -( -hidden -) -] -# -[ -inline -] -pub -fn -locations -( -& -self -) -- -> -CaptureLocations -{ -self -. -capture_locations -( -) -} -} -# -[ -derive -( -Copy -Clone -Eq -PartialEq -) -] -pub -struct -Match -< -' -h -> -{ -haystack -: -& -' -h -str -start -: -usize -end -: -usize -} -impl -< -' -h -> -Match -< -' -h -> -{ -# -[ -inline -] -pub -fn -start -( -& -self -) -- -> -usize -{ -self -. -start -} -# -[ -inline -] -pub -fn -end -( -& -self -) -- -> -usize -{ -self -. -end -} -# -[ -inline -] -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -start -= -= -self -. -end -} -# -[ -inline -] -pub -fn -len -( -& -self -) -- -> -usize -{ -self -. -end -- -self -. -start -} -# -[ -inline -] -pub -fn -range -( -& -self -) -- -> -core -: -: -ops -: -: -Range -< -usize -> -{ -self -. -start -. -. -self -. -end } -# -[ -inline -] +impl +Regex +{ pub fn -as_str +shortest_match ( & self +text +: +& +str ) - > -& -' -h -str +Option +< +usize +> { -& -self -. -haystack -[ self . -range +shortest_match_at ( +text +0 ) -] } -# -[ -inline -] +pub fn -new +shortest_match_at ( -haystack +& +self +text : & -' -h str start : usize -end -: -usize ) - > -Match +Option < -' -h +usize > { -Match -{ -haystack +self +. +0 +. +searcher_str +( +) +. +shortest_match_at +( +text start -end -} -} +) } -impl -< -' -h -> -core -: -: -fmt -: -: -Debug -for -Match -< -' -h -> -{ +pub fn -fmt +is_match_at ( & self -f +text : & -mut -core -: -: -fmt -: +str +start : -Formatter +usize ) - > -core -: -: -fmt -: -: -Result +bool { -f -. -debug_struct -( -" -Match -" -) -. -field -( -" -start -" -& self . -start -) -. -field -( -" -end -" -& -self -. -end -) -. -field -( -" -string -" -& -self +0 . -as_str +searcher_str ( ) -) . -finish +is_match_at ( +text +start ) } -} -impl -< -' -h -> -From -< -Match +pub +fn +find_at < ' -h -> +t > -for -& -' -h -str -{ -fn -from ( -m +& +self +text : -Match -< -' -h -> -) -- -> & ' -h +t str -{ -m -. -as_str -( +start +: +usize ) -} -} -impl -< -' -h +- > -From +Option < Match < ' -h -> +t > -for -core -: -: -ops -: -: -Range -< -usize > { -fn -from +self +. +0 +. +searcher_str ( -m -: -Match -< -' -h -> ) -- -> -core -: -: -ops +. +find_at +( +text +start +) +. +map +( +| +( +s +e +) +| +Match : : -Range -< -usize -> -{ -m -. -range +new ( +text +s +e +) ) -} } pub -struct -Captures +fn +captures_read < ' -h +t > -{ -haystack -: +( & -' -h -str -caps -: -captures -: +self +locs : -Captures -static_captures_len +& +mut +CaptureLocations +text : +& +' +t +str +) +- +> Option < -usize -> -} -impl +Match < ' -h +t > -Captures -< -' -h > { -# -[ -inline -] +self +. +captures_read_at +( +locs +text +0 +) +} pub fn -get +captures_read_at +< +' +t +> ( & self -i +locs +: +& +mut +CaptureLocations +text +: +& +' +t +str +start : usize ) @@ -2352,55 +1614,79 @@ Option Match < ' -h +t > > { self . -caps +0 . -get_group +searcher_str ( -i +) +. +captures_read_at +( +& +mut +locs +. +0 +text +start ) . map ( | -sp +( +s +e +) | Match : : new ( -self -. -haystack -sp -. -start -sp -. -end +text +s +e ) ) } # [ -inline +doc +( +hidden +) ] pub fn -name +read_captures_at +< +' +t +> ( & self -name +locs +: +& +mut +CaptureLocations +text : & +' +t str +start +: +usize ) - > @@ -2409,745 +1695,794 @@ Option Match < ' -h +t > > { self . -caps -. -get_group_by_name -( -name -) -. -map -( -| -sp -| -Match -: -: -new +captures_read_at ( -self -. -haystack -sp -. +locs +text start -sp -. -end -) ) } +} +impl +Regex +{ pub fn -extract -< -const -N -: -usize -> +as_str ( & self ) - > -( -& -' -h -str -[ & -' -h str -; -N -] -) { -let -len -= +& self . -static_captures_len -. -expect -( -" -number -of -capture -groups -can -vary -in -a -match -" -) +0 . -checked_sub +regex_strings ( -1 ) -. -expect +[ +0 +] +} +pub +fn +capture_names ( -" -number -of -groups -is -always -greater -than -zero -" +& +self ) -; -assert_eq -! -( -N -len -" -asked -for -{ -} -groups -but -must -ask -for +- +> +CaptureNames +< +' +_ +> { -} -" -N -len -) -; +CaptureNames +( self . -caps +0 . -extract +capture_names ( -self +) . -haystack +iter +( +) ) } -# -[ -inline -] pub fn -expand +captures_len ( & self -replacement -: -& -str -dst -: -& -mut -String ) +- +> +usize { self . -caps +0 . -interpolate_string_into +capture_names ( -self +) . -haystack -replacement -dst +len +( ) -; } -# -[ -inline -] pub fn -iter -< -' -c -> +capture_locations ( & -' -c self ) - > -SubCaptureMatches -< -' -c -' -h -> -{ -SubCaptureMatches +CaptureLocations { -haystack -: +CaptureLocations +( self . -haystack -it -: -self +0 . -caps +searcher_str +( +) . -iter +locations ( ) -} +) } # [ -inline +doc +( +hidden +) ] pub fn -len +locations ( & self ) - > -usize +CaptureLocations { +CaptureLocations +( self . -caps +0 . -group_len +searcher_str ( ) +. +locations +( +) +) } } -impl -< -' -h -> -core -: -: -fmt -: -: +# +[ +derive +( +Clone Debug -for -Captures +) +] +pub +struct +CaptureNames < ' -h +r > -{ -fn -fmt ( -& -self -f -: -& -mut -core : : -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core +std : : -fmt +slice : : -Result -{ -struct -CapturesDebugMap +Iter < ' -a -> -{ -caps -: -& -' -a -Captures +r +Option < -' -a +String > -} +> +) +; impl < ' -a +r > -core -: -: -fmt -: -: -Debug +Iterator for -CapturesDebugMap +CaptureNames < ' -a +r > { +type +Item += +Option +< +& +' +r +str +> +; fn -fmt +next ( & -self -f -: -& mut -core -: -: -fmt -: -: -Formatter +self ) - > -core -: -: -fmt -: -: -Result +Option +< +Option +< +& +' +r +str +> +> { -let -mut -map -= -f -. -debug_map -( -) -; -let -names -= self . -caps -. -caps +0 . -group_info +next ( ) . -pattern_names -( -PatternID -: -: -ZERO -) -; -for +as_ref ( -group_index -maybe_name ) -in -names . -enumerate +map ( -) -{ -let -key -= -Key +| +slot +| +slot +. +as_ref ( -group_index -maybe_name ) -; -match -self . -caps +map +( +| +name +| +name . -get +as_ref ( -group_index ) -{ -None -= -> -map -. -entry +) +) +} +fn +size_hint ( & -key -& -None -: -: -< -( +self ) +- > -) -Some ( -mat -) -= +usize +Option +< +usize > -map +) +{ +self . -entry +0 +. +size_hint ( -& -key -& -Value +) +} +fn +count ( -mat +self ) +- +> +usize +{ +self +. +0 +. +count +( ) } -; } -map -. -finish +impl +< +' +r +> +ExactSizeIterator +for +CaptureNames +< +' +r +> +{ +} +impl +< +' +r +> +FusedIterator +for +CaptureNames +< +' +r +> +{ +} +# +[ +derive ( +Debug ) -} -} +] +pub struct -Key +Split < ' -a +r +' +t > -( -usize -Option +{ +finder +: +Matches < -& ' -a -str +r +' +t > -) -; +last +: +usize +} impl < ' -a +r +' +t > -core -: -: -fmt -: -: -Debug +Iterator for -Key +Split < ' -a +r +' +t > { +type +Item += +& +' +t +str +; fn -fmt +next ( & -self -f -: -& mut -core -: -: -fmt -: -: -Formatter +self ) - > -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" +Option +< +& +' +t +str +> { -} -" +let +text += self . +finder +. 0 +. +text +( ) -? ; -if -let -Some +match +self +. +finder +. +next ( -name ) +{ +None = +> +{ +if self . -1 -{ -write -! +last +> +text +. +len ( -f -" -/ +) { -: -? +None } -" -name +else +{ +let +s += +& +text +[ +self +. +last +. +. +] +; +self +. +last += +text +. +len +( ) -? ++ +1 ; +Some +( +s +) } -Ok +} +Some +( +m +) += +> +{ +let +matched += +& +text +[ +self +. +last +. +. +m +. +start ( +) +] +; +self +. +last += +m +. +end ( ) +; +Some +( +matched ) } } -struct -Value +} +} +impl < ' -a +r +' +t > -( -Match +FusedIterator +for +Split < ' -a +r +' +t > +{ +} +# +[ +derive +( +Debug ) -; -impl +] +pub +struct +SplitN < ' -a +r +' +t > -core -: -: -fmt +{ +splits : +Split +< +' +r +' +t +> +n : -Debug +usize +} +impl +< +' +r +' +t +> +Iterator for -Value +SplitN < ' -a +r +' +t > { +type +Item += +& +' +t +str +; fn -fmt +next ( & -self -f -: -& mut -core -: -: -fmt -: -: -Formatter +self ) - > -core -: -: -fmt -: -: -Result +Option +< +& +' +t +str +> { -write -! -( -f -" +if +self +. +n += += +0 { +return +None +; } +self . +n +- += +1 +; +if +self . +n +> +0 { -} -/ -{ -: -? -} -" +return self . -0 +splits . -start +next ( ) +; +} +let +text += self . +splits +. +finder +. 0 . -end +text ( ) +; +if self . -0 +splits . -as_str +last +> +text +. +len ( ) +{ +None +} +else +{ +Some +( +& +text +[ +self +. +splits +. +last +. +. +] ) } } -f -. -debug_tuple +fn +size_hint ( -" -Captures -" +& +self ) -. -field +- +> ( -& -CapturesDebugMap +usize +Option +< +usize +> +) { -caps -: +( +0 +Some +( self -} -) . -finish -( +n +) ) } } impl < ' -h -> -core -: -: -ops -: -: -Index -< -usize +r +' +t > +FusedIterator for -Captures +SplitN < ' -h +r +' +t > { +} +# +[ +derive +( +Clone +Debug +) +] +pub +struct +CaptureLocations +( +re_trait +: +: +Locations +) +; +# +[ +doc +( +hidden +) +] +pub type -Output +Locations = -str +CaptureLocations ; +impl +CaptureLocations +{ +# +[ +inline +] +pub fn -index -< -' -a -> +get ( & -' -a self i : @@ -3155,829 +2490,813 @@ usize ) - > -& -' -a -str +Option +< +( +usize +usize +) +> { self . -get +0 +. +pos ( i ) -. -map +} +# +[ +inline +] +pub +fn +len ( -| -m -| -m +& +self +) +- +> +usize +{ +self . -as_str +0 +. +len ( ) +} +# +[ +doc +( +hidden ) -. -unwrap_or_else +] +# +[ +inline +] +pub +fn +pos ( -| -| -panic -! +& +self +i +: +usize +) +- +> +Option +< +( +usize +usize +) +> +{ +self +. +get ( -" -no -group -at -index -' -{ -} -' -" i ) -) } } -impl +pub +struct +Captures < ' -h -' -n +t > -core +{ +text +: +& +' +t +str +locs : +re_trait : -ops : +Locations +named_groups : -Index +Arc +< +HashMap +< +String +usize +> +> +} +impl < -& ' -n -str +t > -for Captures < ' -h +t > { -type -Output -= -str -; +pub fn -index -< -' -a -> +get ( & -' -a self -name +i : -& -' -n -str +usize ) - > -& +Option +< +Match +< ' -a -str +t +> +> { self . -name +locs +. +pos ( -name +i ) . map ( | -m -| -m -. -as_str ( +s +e ) -) -. -unwrap_or_else -( | -| -panic -! -( -" -no -group -named -' -{ -} -' -" -name -) -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -CaptureLocations -( -captures +Match : : -Captures -) -; -# -[ -doc +new ( -hidden +self +. +text +s +e ) -] -pub -type -Locations -= -CaptureLocations -; -impl -CaptureLocations -{ -# -[ -inline -] +) +} pub fn -get +name ( & self -i +name : -usize +& +str ) - > Option < -( -usize -usize -) +Match +< +' +t +> > { self . -0 +named_groups . -get_group +get ( -i +name ) . -map +and_then ( | -sp +& +i | -( -sp -. -start -sp +self . -end +get +( +i ) ) } -# -[ -inline -] pub fn -len +iter +< +' +c +> ( & +' +c self ) - > -usize +SubCaptureMatches +< +' +c +' +t +> { +SubCaptureMatches +{ +caps +: +self +it +: self . -0 +locs . -group_info +iter ( ) -. -group_len +} +} +pub +fn +expand ( -PatternID +& +self +replacement : +& +str +dst : -ZERO +& +mut +String ) -} -# -[ -doc +{ +expand_str ( -hidden +self +replacement +dst ) -] +} # [ inline ] pub fn -pos +len +( +& +self +) +- +> +usize +{ +self +. +locs +. +len +( +) +} +} +impl +< +' +t +> +fmt +: +: +Debug +for +Captures +< +' +t +> +{ +fn +fmt ( & self -i +f : -usize +& +mut +fmt +: +: +Formatter +< +' +_ +> ) - > -Option -< +fmt +: +: +Result +{ +f +. +debug_tuple ( -usize -usize +" +Captures +" ) -> -{ +. +field +( +& +CapturesDebug +( self +) +) . -get +finish ( -i ) } } -# -[ -derive -( -Debug -) -] -pub struct -Matches +CapturesDebug < ' -r +c ' -h +t > -{ -haystack -: +( & ' -h -str -it -: -meta -: -: -FindMatches +c +Captures < ' -r -' -h +t > -} +) +; impl < ' -r +c ' -h +t > -Iterator +fmt +: +: +Debug for -Matches +CapturesDebug < ' -r +c ' -h +t > { -type -Item -= -Match -< -' -h -> -; -# -[ -inline -] fn -next +fmt ( & -mut self -) -- -> -Option -< -Match +f +: +& +mut +fmt +: +: +Formatter < ' -h +_ > +) +- > +fmt +: +: +Result { +let +slot_to_name +: +HashMap +< +& +usize +& +String +> += self . -it +0 . -next +named_groups +. +iter ( ) . map ( | -sp +( +a +b +) | -Match -: -: -new ( -self -. -haystack -sp +b +a +) +) . -start +collect ( ) -sp +; +let +mut +map += +f . -end +debug_map ( ) +; +for +( +slot +m ) +in +self +. +0 +. +locs +. +iter +( ) -} -# -[ -inline -] -fn -count +. +enumerate ( -self ) -- -> -usize { +let +m += +m +. +map +( +| +( +s +e +) +| +& self . -it +0 . -count +text +[ +s +. +. +e +] +) +; +if +let +Some ( +name +) += +slot_to_name +. +get +( +& +slot ) -} -} -impl -< -' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -Matches -< -' -r -' -h -> { -} -# -[ -derive +map +. +entry ( -Debug +& +name +& +m ) -] -pub -struct -CaptureMatches -< -' -r -' -h -> +; +} +else { -haystack -: +map +. +entry +( & -' -h -str -it -: -meta -: -: -CapturesMatches -< -' -r -' -h -> +slot +& +m +) +; +} +} +map +. +finish +( +) +} } impl < ' -r -' -h +t +> +Index +< +usize > -Iterator for -CaptureMatches +Captures < ' -r -' -h +t > { type -Item +Output = -Captures -< -' -h -> +str ; -# -[ -inline -] fn -next +index ( & -mut self +i +: +usize ) - > -Option -< -Captures -< -' -h -> -> +& +str { -let -static_captures_len -= self . -it -. -regex +get ( +i ) . -static_captures_len +map ( -) -; -self -. -it +| +m +| +m . -next +as_str ( ) +) . -map +unwrap_or_else ( | -caps | -Captures +panic +! +( +" +no +group +at +index +' { -haystack -: -self -. -haystack -caps -static_captures_len -} -) } -# -[ -inline -] -fn -count -( -self +' +" +i ) -- -> -usize -{ -self -. -it -. -count -( ) } } impl < ' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -CaptureMatches -< -' -r +t ' -h +i > -{ -} -# -[ -derive -( -Debug -) -] -pub -struct -Split +Index < -' -r -' -h -> -{ -haystack -: & ' -h +i str -it -: -meta -: -: -Split -< -' -r -' -h -> -} -impl -< -' -r -' -h > -Iterator for -Split +Captures < ' -r -' -h +t > { type -Item +Output = -& -' -h str ; -# -[ -inline -] fn -next +index +< +' +a +> ( & -mut +' +a self +name +: +& +' +i +str ) - > -Option -< & ' -h +a str -> { self . -it -. -next +name ( +name ) . map ( | -span +m | -& -self +m . -haystack -[ -span -] +as_str +( ) -} -} -impl -< -' -r -' -h -> -core -: -: -iter -: -: -FusedIterator -for -Split -< -' -r +) +. +unwrap_or_else +( +| +| +panic +! +( +" +no +group +named ' -h -> { } +' +" +name +) +) +} +} # [ derive ( +Clone Debug ) ] pub struct -SplitN +SubCaptureMatches < ' -r +c ' -h +t > { -haystack +caps : & ' -h -str +c +Captures +< +' +t +> it : -meta -: -: -SplitN +SubCapturesPosIter < ' -r -' -h +c > } impl < ' -r +c ' -h +t > Iterator for -SplitN +SubCaptureMatches < ' -r +c ' -h +t > { type Item = -& +Option +< +Match +< ' -h -str +t +> +> ; -# -[ -inline -] fn next ( @@ -3989,10 +3308,14 @@ self > Option < -& +Option +< +Match +< ' -h -str +t +> +> > { self @@ -4006,21 +3329,34 @@ next map ( | -span +cap | -& +cap +. +map +( +| +( +s +e +) +| +Match +: +: +new +( self . -haystack -[ -span -] +caps +. +text +s +e +) +) ) } -# -[ -inline -] fn size_hint ( @@ -4045,28 +3381,57 @@ size_hint ( ) } +fn +count +( +self +) +- +> +usize +{ +self +. +it +. +count +( +) +} } impl < ' -r +c ' -h +t +> +ExactSizeIterator +for +SubCaptureMatches +< +' +c +' +t +> +{ +} +impl +< +' +c +' +t > -core -: -: -iter -: -: FusedIterator for -SplitN +SubCaptureMatches < ' -r +c ' -h +t > { } @@ -4074,56 +3439,60 @@ h [ derive ( -Clone Debug ) ] pub struct -CaptureNames +CaptureMatches < ' r +' +t > ( -captures +re_trait : : -GroupInfoPatternNames +CaptureMatches +< +' +t +ExecNoSyncStr < ' r > +> ) ; impl < ' r +' +t > Iterator for -CaptureNames +CaptureMatches < ' r +' +t > { type Item = -Option +Captures < -& ' -r -str +t > ; -# -[ -inline -] fn next ( @@ -4135,12 +3504,10 @@ self > Option < -Option +Captures < -& ' -r -str +t > > { @@ -4151,88 +3518,60 @@ self next ( ) -} -# -[ -inline -] -fn -size_hint +. +map ( -& +| +locs +| +Captures +{ +text +: self -) -- -> +. +0 +. +text ( -usize -Option -< -usize -> ) -{ +locs +named_groups +: self . 0 . -size_hint +regex ( ) -} -# -[ -inline -] -fn -count +. +capture_name_idx ( -self ) -- -> -usize -{ -self -. -0 . -count +clone ( ) } +) } -impl -< -' -r -> -ExactSizeIterator -for -CaptureNames -< -' -r -> -{ } impl < ' r +' +t > -core -: -: -iter -: -: FusedIterator for -CaptureNames +CaptureMatches < ' r +' +t > { } @@ -4240,70 +3579,60 @@ r [ derive ( -Clone Debug ) ] pub struct -SubCaptureMatches +Matches < ' -c +r ' -h +t > -{ -haystack -: -& -' -h -str -it -: -captures +( +re_trait : : -CapturesPatternIter +Matches < ' -c +t +ExecNoSyncStr +< +' +r > -} +> +) +; impl < ' -c +r ' -h +t > Iterator for -SubCaptureMatches +Matches < ' -c +r ' -h +t > { type Item = -Option -< Match < ' -h -> +t > ; -# -[ -inline -] fn next ( @@ -4315,145 +3644,67 @@ self > Option < -Option -< Match < ' -h -> +t > > { +let +text += self . -it +0 . -next +text ( ) +; +self . -map +0 +. +next ( -| -group -| -{ -group +) . map ( | -sp +( +s +e +) | Match : : new ( -self -. -haystack -sp -. -start -sp -. -end -) -) -} -) -} -# -[ -inline -] -fn -size_hint -( -& -self -) -- -> -( -usize -Option -< -usize -> -) -{ -self -. -it -. -size_hint -( -) -} -# -[ -inline -] -fn -count -( -self +text +s +e ) -- -> -usize -{ -self -. -it -. -count -( ) } } impl < ' -c -' -h -> -ExactSizeIterator -for -SubCaptureMatches -< -' -c -' -h -> -{ -} -impl -< -' -c +r ' -h +t > -core -: -: -iter -: -: FusedIterator for -SubCaptureMatches +Matches < ' -c +r ' -h +t > { } @@ -4537,6 +3788,114 @@ self ) } } +# +[ +derive +( +Debug +) +] +pub +struct +ReplacerRef +< +' +a +R +: +? +Sized +> +( +& +' +a +mut +R +) +; +impl +< +' +a +R +: +Replacer ++ +? +Sized ++ +' +a +> +Replacer +for +ReplacerRef +< +' +a +R +> +{ +fn +replace_append +( +& +mut +self +caps +: +& +Captures +< +' +_ +> +dst +: +& +mut +String +) +{ +self +. +0 +. +replace_append +( +caps +dst +) +} +fn +no_expansion +( +& +mut +self +) +- +> +Option +< +Cow +< +' +_ +str +> +> +{ +self +. +0 +. +no_expansion +( +) +} +} impl < ' @@ -4848,24 +4207,58 @@ mut String ) { -self -. -as_ref -( -) -. -replace_append +self +. +as_ref +( +) +. +replace_append +( +caps +dst +) +} +fn +no_expansion +( +& +mut +self +) +- +> +Option +< +Cow +< +' +_ +str +> +> +{ +no_expansion ( -caps -dst +self ) } +} fn no_expansion +< +T +: +AsRef +< +str +> +> ( +t +: & -mut -self +T ) - > @@ -4879,9 +4272,47 @@ str > > { -no_expansion +let +s += +t +. +as_ref ( -self +) +; +match +find_byte +( +b +' +' +s +. +as_bytes +( +) +) +{ +Some +( +_ +) += +> +None +None += +> +Some +( +Cow +: +: +Borrowed +( +s +) ) } } @@ -4959,114 +4390,6 @@ as_ref [ derive ( -Debug -) -] -pub -struct -ReplacerRef -< -' -a -R -: -? -Sized -> -( -& -' -a -mut -R -) -; -impl -< -' -a -R -: -Replacer -+ -? -Sized -+ -' -a -> -Replacer -for -ReplacerRef -< -' -a -R -> -{ -fn -replace_append -( -& -mut -self -caps -: -& -Captures -< -' -_ -> -dst -: -& -mut -String -) -{ -self -. -0 -. -replace_append -( -caps -dst -) -} -fn -no_expansion -( -& -mut -self -) -- -> -Option -< -Cow -< -' -_ -str -> -> -{ -self -. -0 -. -no_expansion -( -) -} -} -# -[ -derive -( Clone Debug ) @@ -5076,27 +4399,27 @@ struct NoExpand < ' -s +t > ( pub & ' -s +t str ) ; impl < ' -s +t > Replacer for NoExpand < ' -s +t > { fn @@ -5163,81 +4486,3 @@ self ) } } -fn -no_expansion -< -T -: -AsRef -< -str -> -> -( -replacement -: -& -T -) -- -> -Option -< -Cow -< -' -_ -str -> -> -{ -let -replacement -= -replacement -. -as_ref -( -) -; -match -crate -: -: -find_byte -: -: -find_byte -( -b -' -' -replacement -. -as_bytes -( -) -) -{ -Some -( -_ -) -= -> -None -None -= -> -Some -( -Cow -: -: -Borrowed -( -replacement -) -) -} -} diff --git a/third_party/rust/regex/src/regex/mod.rs b/third_party/rust/regex/src/regex/mod.rs deleted file mode 100644 index a31dfcb1251ab..0000000000000 --- a/third_party/rust/regex/src/regex/mod.rs +++ /dev/null @@ -1,14 +0,0 @@ -pub -( -crate -) -mod -bytes -; -pub -( -crate -) -mod -string -; diff --git a/third_party/rust/regex/src/regexset/bytes.rs b/third_party/rust/regex/src/regexset/bytes.rs deleted file mode 100644 index 722996acb895c..0000000000000 --- a/third_party/rust/regex/src/regexset/bytes.rs +++ /dev/null @@ -1,1249 +0,0 @@ -use -alloc -: -: -string -: -: -String -; -use -regex_automata -: -: -{ -meta -Input -PatternID -PatternSet -PatternSetIter -} -; -use -crate -: -: -{ -bytes -: -: -RegexSetBuilder -Error -} -; -# -[ -derive -( -Clone -) -] -pub -struct -RegexSet -{ -pub -( -crate -) -meta -: -meta -: -: -Regex -pub -( -crate -) -patterns -: -alloc -: -: -sync -: -: -Arc -< -[ -String -] -> -} -impl -RegexSet -{ -pub -fn -new -< -I -S -> -( -exprs -: -I -) -- -> -Result -< -RegexSet -Error -> -where -S -: -AsRef -< -str -> -I -: -IntoIterator -< -Item -= -S -> -{ -RegexSetBuilder -: -: -new -( -exprs -) -. -build -( -) -} -pub -fn -empty -( -) -- -> -RegexSet -{ -let -empty -: -[ -& -str -; -0 -] -= -[ -] -; -RegexSetBuilder -: -: -new -( -empty -) -. -build -( -) -. -unwrap -( -) -} -# -[ -inline -] -pub -fn -is_match -( -& -self -haystack -: -& -[ -u8 -] -) -- -> -bool -{ -self -. -is_match_at -( -haystack -0 -) -} -# -[ -inline -] -pub -fn -is_match_at -( -& -self -haystack -: -& -[ -u8 -] -start -: -usize -) -- -> -bool -{ -self -. -meta -. -is_match -( -Input -: -: -new -( -haystack -) -. -span -( -start -. -. -haystack -. -len -( -) -) -) -} -# -[ -inline -] -pub -fn -matches -( -& -self -haystack -: -& -[ -u8 -] -) -- -> -SetMatches -{ -self -. -matches_at -( -haystack -0 -) -} -# -[ -inline -] -pub -fn -matches_at -( -& -self -haystack -: -& -[ -u8 -] -start -: -usize -) -- -> -SetMatches -{ -let -input -= -Input -: -: -new -( -haystack -) -. -span -( -start -. -. -haystack -. -len -( -) -) -; -let -mut -patset -= -PatternSet -: -: -new -( -self -. -meta -. -pattern_len -( -) -) -; -self -. -meta -. -which_overlapping_matches -( -& -input -& -mut -patset -) -; -SetMatches -( -patset -) -} -# -[ -doc -( -hidden -) -] -# -[ -inline -] -pub -fn -matches_read_at -( -& -self -matches -: -& -mut -[ -bool -] -haystack -: -& -[ -u8 -] -start -: -usize -) -- -> -bool -{ -let -mut -patset -= -PatternSet -: -: -new -( -self -. -meta -. -pattern_len -( -) -) -; -let -mut -input -= -Input -: -: -new -( -haystack -) -; -input -. -set_start -( -start -) -; -self -. -meta -. -which_overlapping_matches -( -& -input -& -mut -patset -) -; -for -pid -in -patset -. -iter -( -) -{ -matches -[ -pid -] -= -true -; -} -! -patset -. -is_empty -( -) -} -# -[ -doc -( -hidden -) -] -# -[ -inline -] -pub -fn -read_matches_at -( -& -self -matches -: -& -mut -[ -bool -] -haystack -: -& -[ -u8 -] -start -: -usize -) -- -> -bool -{ -self -. -matches_read_at -( -matches -haystack -start -) -} -# -[ -inline -] -pub -fn -len -( -& -self -) -- -> -usize -{ -self -. -meta -. -pattern_len -( -) -} -# -[ -inline -] -pub -fn -is_empty -( -& -self -) -- -> -bool -{ -self -. -meta -. -pattern_len -( -) -= -= -0 -} -# -[ -inline -] -pub -fn -patterns -( -& -self -) -- -> -& -[ -String -] -{ -& -self -. -patterns -} -} -impl -Default -for -RegexSet -{ -fn -default -( -) -- -> -Self -{ -RegexSet -: -: -empty -( -) -} -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -SetMatches -( -PatternSet -) -; -impl -SetMatches -{ -# -[ -inline -] -pub -fn -matched_any -( -& -self -) -- -> -bool -{ -! -self -. -0 -. -is_empty -( -) -} -# -[ -inline -] -pub -fn -matched -( -& -self -index -: -usize -) -- -> -bool -{ -self -. -0 -. -contains -( -PatternID -: -: -new_unchecked -( -index -) -) -} -# -[ -inline -] -pub -fn -len -( -& -self -) -- -> -usize -{ -self -. -0 -. -capacity -( -) -} -# -[ -inline -] -pub -fn -iter -( -& -self -) -- -> -SetMatchesIter -< -' -_ -> -{ -SetMatchesIter -( -self -. -0 -. -iter -( -) -) -} -} -impl -IntoIterator -for -SetMatches -{ -type -IntoIter -= -SetMatchesIntoIter -; -type -Item -= -usize -; -fn -into_iter -( -self -) -- -> -Self -: -: -IntoIter -{ -let -it -= -0 -. -. -self -. -0 -. -capacity -( -) -; -SetMatchesIntoIter -{ -patset -: -self -. -0 -it -} -} -} -impl -< -' -a -> -IntoIterator -for -& -' -a -SetMatches -{ -type -IntoIter -= -SetMatchesIter -< -' -a -> -; -type -Item -= -usize -; -fn -into_iter -( -self -) -- -> -Self -: -: -IntoIter -{ -self -. -iter -( -) -} -} -# -[ -derive -( -Debug -) -] -pub -struct -SetMatchesIntoIter -{ -patset -: -PatternSet -it -: -core -: -: -ops -: -: -Range -< -usize -> -} -impl -Iterator -for -SetMatchesIntoIter -{ -type -Item -= -usize -; -fn -next -( -& -mut -self -) -- -> -Option -< -usize -> -{ -loop -{ -let -id -= -self -. -it -. -next -( -) -? -; -if -self -. -patset -. -contains -( -PatternID -: -: -new_unchecked -( -id -) -) -{ -return -Some -( -id -) -; -} -} -} -fn -size_hint -( -& -self -) -- -> -( -usize -Option -< -usize -> -) -{ -self -. -it -. -size_hint -( -) -} -} -impl -DoubleEndedIterator -for -SetMatchesIntoIter -{ -fn -next_back -( -& -mut -self -) -- -> -Option -< -usize -> -{ -loop -{ -let -id -= -self -. -it -. -next_back -( -) -? -; -if -self -. -patset -. -contains -( -PatternID -: -: -new_unchecked -( -id -) -) -{ -return -Some -( -id -) -; -} -} -} -} -impl -core -: -: -iter -: -: -FusedIterator -for -SetMatchesIntoIter -{ -} -# -[ -derive -( -Clone -Debug -) -] -pub -struct -SetMatchesIter -< -' -a -> -( -PatternSetIter -< -' -a -> -) -; -impl -< -' -a -> -Iterator -for -SetMatchesIter -< -' -a -> -{ -type -Item -= -usize -; -fn -next -( -& -mut -self -) -- -> -Option -< -usize -> -{ -self -. -0 -. -next -( -) -. -map -( -| -pid -| -pid -. -as_usize -( -) -) -} -fn -size_hint -( -& -self -) -- -> -( -usize -Option -< -usize -> -) -{ -self -. -0 -. -size_hint -( -) -} -} -impl -< -' -a -> -DoubleEndedIterator -for -SetMatchesIter -< -' -a -> -{ -fn -next_back -( -& -mut -self -) -- -> -Option -< -usize -> -{ -self -. -0 -. -next_back -( -) -. -map -( -| -pid -| -pid -. -as_usize -( -) -) -} -} -impl -< -' -a -> -core -: -: -iter -: -: -FusedIterator -for -SetMatchesIter -< -' -a -> -{ -} -impl -core -: -: -fmt -: -: -Debug -for -RegexSet -{ -fn -fmt -( -& -self -f -: -& -mut -core -: -: -fmt -: -: -Formatter -< -' -_ -> -) -- -> -core -: -: -fmt -: -: -Result -{ -write -! -( -f -" -RegexSet -( -{ -: -? -} -) -" -self -. -patterns -( -) -) -} -} diff --git a/third_party/rust/regex/src/regexset/mod.rs b/third_party/rust/regex/src/regexset/mod.rs deleted file mode 100644 index a31dfcb1251ab..0000000000000 --- a/third_party/rust/regex/src/regexset/mod.rs +++ /dev/null @@ -1,14 +0,0 @@ -pub -( -crate -) -mod -bytes -; -pub -( -crate -) -mod -string -; diff --git a/third_party/rust/regex/src/sparse.rs b/third_party/rust/regex/src/sparse.rs new file mode 100644 index 0000000000000..79bab1f93aa52 --- /dev/null +++ b/third_party/rust/regex/src/sparse.rs @@ -0,0 +1,392 @@ +use +std +: +: +fmt +; +use +std +: +: +ops +: +: +Deref +; +use +std +: +: +slice +; +# +[ +derive +( +Clone +) +] +pub +struct +SparseSet +{ +dense +: +Vec +< +usize +> +sparse +: +Box +< +[ +usize +] +> +} +impl +SparseSet +{ +pub +fn +new +( +size +: +usize +) +- +> +SparseSet +{ +SparseSet +{ +dense +: +Vec +: +: +with_capacity +( +size +) +sparse +: +vec +! +[ +0 +; +size +] +. +into_boxed_slice +( +) +} +} +pub +fn +len +( +& +self +) +- +> +usize +{ +self +. +dense +. +len +( +) +} +pub +fn +is_empty +( +& +self +) +- +> +bool +{ +self +. +dense +. +is_empty +( +) +} +pub +fn +capacity +( +& +self +) +- +> +usize +{ +self +. +dense +. +capacity +( +) +} +pub +fn +insert +( +& +mut +self +value +: +usize +) +{ +let +i += +self +. +len +( +) +; +assert +! +( +i +< +self +. +capacity +( +) +) +; +self +. +dense +. +push +( +value +) +; +self +. +sparse +[ +value +] += +i +; +} +pub +fn +contains +( +& +self +value +: +usize +) +- +> +bool +{ +let +i += +self +. +sparse +[ +value +] +; +self +. +dense +. +get +( +i +) += += +Some +( +& +value +) +} +pub +fn +clear +( +& +mut +self +) +{ +self +. +dense +. +clear +( +) +; +} +} +impl +fmt +: +: +Debug +for +SparseSet +{ +fn +fmt +( +& +self +f +: +& +mut +fmt +: +: +Formatter +< +' +_ +> +) +- +> +fmt +: +: +Result +{ +write +! +( +f +" +SparseSet +( +{ +: +? +} +) +" +self +. +dense +) +} +} +impl +Deref +for +SparseSet +{ +type +Target += +[ +usize +] +; +fn +deref +( +& +self +) +- +> +& +Self +: +: +Target +{ +& +self +. +dense +} +} +impl +< +' +a +> +IntoIterator +for +& +' +a +SparseSet +{ +type +Item += +& +' +a +usize +; +type +IntoIter += +slice +: +: +Iter +< +' +a +usize +> +; +fn +into_iter +( +self +) +- +> +Self +: +: +IntoIter +{ +self +. +iter +( +) +} +} diff --git a/third_party/rust/regex-automata/LICENSE-MIT b/third_party/rust/regex/src/testdata/LICENSE similarity index 61% rename from third_party/rust/regex-automata/LICENSE-MIT rename to third_party/rust/regex/src/testdata/LICENSE index 9feccea9c1744..c0dc2bbc7ca3f 100644 --- a/third_party/rust/regex-automata/LICENSE-MIT +++ b/third_party/rust/regex/src/testdata/LICENSE @@ -1,12 +1,16 @@ -Copyright -( -c -) -2014 The -Rust -Project -Developers +following +license +covers +testregex +. +c +and +all +associated +test +data +. Permission is hereby @@ -21,12 +25,9 @@ obtaining a copy of -this -software -and -associated -documentation -files +THIS +SOFTWARE +FILE ( the " @@ -52,7 +53,6 @@ modify merge publish distribute -sublicense and / or @@ -78,106 +78,127 @@ subject to the following -conditions +disclaimer : -The -above -copyright -notice -and -this -permission -notice -shall -be -included -in -all -copies -or -substantial -portions -of -the -Software -. -THE +THIS SOFTWARE IS PROVIDED -" +BY +AT +& +T AS IS -" -WITHOUT -WARRANTY -OF +' +' +AND ANY -KIND EXPRESS OR IMPLIED +WARRANTIES INCLUDING BUT NOT LIMITED TO THE +IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE -AND -NONINFRINGEMENT +ARE +DISCLAIMED . IN NO EVENT SHALL -THE -AUTHORS -OR -COPYRIGHT -HOLDERS +AT +& +T BE LIABLE FOR ANY -CLAIM +DIRECT +INDIRECT +INCIDENTAL +SPECIAL +EXEMPLARY +OR +CONSEQUENTIAL DAMAGES +( +INCLUDING +BUT +NOT +LIMITED +TO +PROCUREMENT +OF +SUBSTITUTE +GOODS +OR +SERVICES +; +LOSS +OF +USE +DATA +OR +PROFITS +; OR -OTHER +BUSINESS +INTERRUPTION +) +HOWEVER +CAUSED +AND +ON +ANY +THEORY +OF LIABILITY WHETHER IN -AN -ACTION -OF CONTRACT +STRICT +LIABILITY +OR TORT +( +INCLUDING +NEGLIGENCE OR OTHERWISE +) ARISING -FROM +IN +ANY +WAY OUT OF -OR -IN -CONNECTION -WITH -THE -SOFTWARE -OR THE USE -OR -OTHER -DEALINGS -IN -THE +OF +THIS SOFTWARE +EVEN +IF +ADVISED +OF +THE +POSSIBILITY +OF +SUCH +DAMAGE . diff --git a/third_party/rust/regex/src/testdata/README b/third_party/rust/regex/src/testdata/README new file mode 100644 index 0000000000000..af1db519e393f --- /dev/null +++ b/third_party/rust/regex/src/testdata/README @@ -0,0 +1,165 @@ +Test +data +was +taken +from +the +Go +distribution +which +was +in +turn +taken +from +the +testregex +test +suite +: +http +: +/ +/ +www2 +. +research +. +att +. +com +/ +~ +astopen +/ +testregex +/ +testregex +. +html +The +LICENSE +in +this +directory +corresponds +to +the +LICENSE +that +the +data +was +released +under +. +The +tests +themselves +were +modified +for +RE2 +/ +Go +. +A +couple +were +modified +further +by +me +( +Andrew +Gallant +) +( +only +in +repetition +. +dat +) +so +that +RE2 +/ +Go +would +pass +them +. +( +Yes +it +seems +like +RE2 +/ +Go +includes +failing +test +cases +. +) +This +may +or +may +not +have +been +a +bad +idea +but +I +think +being +consistent +with +an +established +Regex +library +is +worth +something +. +Note +that +these +files +are +read +by +' +scripts +/ +regex +- +match +- +tests +. +py +' +and +turned +into +Rust +tests +found +in +' +regex_macros +/ +tests +/ +matches +. +rs +' +. diff --git a/third_party/rust/regex/testdata/fowler/dat/basic.dat b/third_party/rust/regex/src/testdata/basic.dat similarity index 93% rename from third_party/rust/regex/testdata/fowler/dat/basic.dat rename to third_party/rust/regex/src/testdata/basic.dat index 48a7eb994cb17..34f03746e1b24 100644 --- a/third_party/rust/regex/testdata/fowler/dat/basic.dat +++ b/third_party/rust/regex/src/testdata/basic.dat @@ -745,6 +745,11 @@ xxabc ) Ei ( +? +- +u +) +( Ab | cD @@ -1052,7 +1057,6 @@ xxx 0 3 ) -# E1 ( ^ @@ -1110,75 +1114,6 @@ feb 0 6 ) -E -( -? -: -^ -| -[ -( -; -] -) -( -? -: -( -? -: -( -? -: -[ -Ff -] -eb -[ -^ -] -* -* -| -0 -* -2 -/ -| -\ -* -* -/ -? -) -0 -* -[ -6 -- -7 -] -) -) -( -? -: -[ -^ -0 -- -9 -] -| -) -feb -6 -( -0 -6 -) -Rust -# E1 ( ^ @@ -1230,421 +1165,72 @@ eb ] | ) -2 -/ -7 -( -0 -3 -) -E -( -? -: -^ -| -[ -( -; -] -) -( -? -: -( -? -: -( -? -: -[ -Ff -] -eb -[ -^ -] -* -* -| -0 -* -2 -/ -| -\ -* -* -/ -? -) -0 -* -[ -6 -- -7 -] -) -) -( -? -: -[ -^ -0 -- -9 -] -| -) -2 -/ -7 -( -0 -3 -) -Rust -# -E1 -( -^ -| -[ -( -; -] -) -( -( -( -[ -Ff -] -eb -[ -^ -] -* -* -| -0 -* -2 -/ -| -\ -* -* -/ -? -) -0 -* -[ -6 -- -7 -] -) -) -( -[ -^ -0 -- -9 -] -| -) -feb -1 -Feb -6 -( -5 -11 -) -E -( -? -: -^ -| -[ -( -; -] -) -( -? -: -( -? -: -( -? -: -[ -Ff -] -eb -[ -^ -] -* -* -| -0 -* -2 -/ -| -\ -* -* -/ -? -) -0 -* -[ -6 -- -7 -] -) -) -( -? -: -[ -^ -0 -- -9 -] -| -) -feb -1 -Feb -6 -( -5 -11 -) -Rust -# -E3 -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -( -x -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -x -( -0 -1 -) -( -0 -1 -) -( -0 -1 -) -E -( -( -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: +2 +/ +7 ( -? -: +0 +3 +) +E1 ( -? -: +^ +| +[ ( -? -: +; +] +) ( -? -: ( -? -: ( +[ +Ff +] +eb +[ +^ +] +* +* +| +0 +* +2 +/ +| +\ +* +* +/ ? -: -x -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) ) +0 +* +[ +6 +- +7 +] ) ) -x ( +[ +^ 0 -1 +- +9 +] +| ) -( -0 +feb 1 -) +Feb +6 ( -0 -1 +5 +11 ) -Rust -# E3 ( ( @@ -1707,107 +1293,50 @@ x ) ) ) -* -xx +x ( 0 -2 +1 ) ( +0 1 -2 ) ( +0 1 -2 ) -E +E3 ( ( ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: ( -? -: x ) ) @@ -1853,7 +1382,6 @@ xx 1 2 ) -Rust E a ? @@ -1919,18 +1447,6 @@ baaabbbabac 7 11 ) -# -BE -. -* -\ -x01 -\ -xff -( -0 -2 -) BE . * @@ -1942,7 +1458,6 @@ x7f 0 2 ) -Rust E aaaa | @@ -2443,6 +1958,7 @@ aaa 0 3 ) +# E ( a @@ -2463,6 +1979,24 @@ E a * ) +* +- +( +0 +0 +) +( +? +? +) +RE2 +/ +Go +E +( +a +* +) + - ( @@ -2473,6 +2007,7 @@ a 0 0 ) +# E ( a @@ -2493,6 +2028,26 @@ b E ( a +* +| +b +) +* +- +( +0 +0 +) +( +? +? +) +RE2 +/ +Go +E +( +a + | b @@ -2552,6 +2107,7 @@ cde 0 3 ) +# E ( ^ @@ -2566,6 +2122,23 @@ E 0 0 ) +E +( +^ +) +* +- +( +0 +0 +) +( +? +? +) +RE2 +/ +Go BE a * @@ -2645,6 +2218,7 @@ ef 0 1 ) +# E ( ( @@ -2668,6 +2242,32 @@ b 0 0 ) +E +( +( +a +* +| +b +) +) +* +- +( +0 +0 +) +( +? +? +) +( +? +? +) +RE2 +/ +Go BE abcd * diff --git a/third_party/rust/regex/testdata/fowler/dat/nullsubexpr.dat b/third_party/rust/regex/src/testdata/nullsubexpr.dat similarity index 92% rename from third_party/rust/regex/testdata/fowler/dat/nullsubexpr.dat rename to third_party/rust/regex/src/testdata/nullsubexpr.dat index 044c701865b39..dbbde424fe6cf 100644 --- a/third_party/rust/regex/testdata/fowler/dat/nullsubexpr.dat +++ b/third_party/rust/regex/src/testdata/nullsubexpr.dat @@ -23,6 +23,7 @@ a 0 1 ) +# E SAME x @@ -36,6 +37,20 @@ x ) E SAME +x +( +0 +0 +) +( +? +? +) +RE2 +/ +Go +E +SAME aaaaaa ( 0 @@ -206,6 +221,7 @@ a 0 1 ) +# E SAME x @@ -219,6 +235,20 @@ x ) E SAME +x +( +0 +0 +) +( +? +? +) +RE2 +/ +Go +E +SAME aaaaaa ( 0 @@ -307,6 +337,7 @@ a 0 1 ) +# E SAME b @@ -320,6 +351,20 @@ b ) E SAME +b +( +0 +0 +) +( +? +? +) +RE2 +/ +Go +E +SAME aaaaaa ( 0 @@ -452,6 +497,7 @@ bbbbbb 0 6 ) +# E SAME aaaaaa @@ -464,6 +510,20 @@ aaaaaa 0 ) E +SAME +aaaaaa +( +0 +0 +) +( +? +? +) +RE2 +/ +Go +E ( [ ^ @@ -481,6 +541,7 @@ ccccxx 0 6 ) +# E SAME ababab @@ -492,26 +553,20 @@ ababab 0 0 ) -# E -( -( -z -) -+ -| -a -) -* -zabcde +SAME +ababab ( 0 -2 +0 ) ( -1 -2 +? +? ) +RE2 +/ +Go E ( ( @@ -531,11 +586,6 @@ zabcde 1 2 ) -( -0 -1 -) -Rust # { E @@ -889,6 +939,7 @@ axxa 2 3 ) +# E ( a @@ -920,6 +971,31 @@ a ( x ) +x +( +0 +1 +) +( +? +? +) +( +0 +1 +) +RE2 +/ +Go +E +( +a +* +) +* +( +x +) ax ( 0 diff --git a/third_party/rust/regex/testdata/fowler/dat/repetition.dat b/third_party/rust/regex/src/testdata/repetition.dat similarity index 94% rename from third_party/rust/regex/testdata/fowler/dat/repetition.dat rename to third_party/rust/regex/src/testdata/repetition.dat index cab8c42778b2e..6c4d2471abb4d 100644 --- a/third_party/rust/regex/testdata/fowler/dat/repetition.dat +++ b/third_party/rust/regex/src/testdata/repetition.dat @@ -2728,42 +2728,6 @@ like 6 ) . -# -: -HA -# -260 -: -E -( -a -| -ab -| -c -| -bcd -) -{ -0 -} -( -d -* -) -ababcd -( -0 -6 -) -( -3 -6 -) -( -6 -6 -) : HA # @@ -2799,43 +2763,6 @@ ababcd 1 1 ) -Rust -# -: -HA -# -261 -: -E -( -a -| -ab -| -c -| -bcd -) -{ -1 -} -( -d -* -) -ababcd -( -0 -6 -) -( -3 -6 -) -( -6 -6 -) : HA # @@ -2871,7 +2798,6 @@ ababcd 1 1 ) -Rust : HA # @@ -2966,43 +2892,6 @@ d ) ababcd NOMATCH -# -: -HA -# -265 -: -E -( -a -| -ab -| -c -| -bcd -) -{ -0 -10 -} -( -d -* -) -ababcd -( -0 -6 -) -( -3 -6 -) -( -6 -6 -) : HA # @@ -3039,44 +2928,6 @@ ababcd 1 1 ) -Rust -# -: -HA -# -266 -: -E -( -a -| -ab -| -c -| -bcd -) -{ -1 -10 -} -( -d -* -) -ababcd -( -0 -6 -) -( -3 -6 -) -( -6 -6 -) : HA # @@ -3113,7 +2964,6 @@ ababcd 1 1 ) -Rust : HA # @@ -3211,40 +3061,6 @@ d ) ababcd NOMATCH -# -: -HA -# -270 -: -E -( -a -| -ab -| -c -| -bcd -) -* -( -d -* -) -ababcd -( -0 -6 -) -( -3 -6 -) -( -6 -6 -) : HA # @@ -3278,41 +3094,6 @@ ababcd 1 1 ) -Rust -# -: -HA -# -271 -: -E -( -a -| -ab -| -c -| -bcd -) -+ -( -d -* -) -ababcd -( -0 -6 -) -( -3 -6 -) -( -6 -6 -) : HA # @@ -3346,7 +3127,6 @@ ababcd 1 1 ) -Rust # The above diff --git a/third_party/rust/regex/src/utf8.rs b/third_party/rust/regex/src/utf8.rs new file mode 100644 index 0000000000000..3bad5cdef710b --- /dev/null +++ b/third_party/rust/regex/src/utf8.rs @@ -0,0 +1,1617 @@ +use +std +: +: +char +; +const +TAG_CONT +: +u8 += +0b1000_0000 +; +const +TAG_TWO +: +u8 += +0b1100_0000 +; +const +TAG_THREE +: +u8 += +0b1110_0000 +; +const +TAG_FOUR +: +u8 += +0b1111_0000 +; +pub +fn +next_utf8 +( +text +: +& +[ +u8 +] +i +: +usize +) +- +> +usize +{ +let +b += +match +text +. +get +( +i +) +{ +None += +> +return +i ++ +1 +Some +( +& +b +) += +> +b +} +; +let +inc += +if +b +< += +0x7F +{ +1 +} +else +if +b +< += +0b110_11111 +{ +2 +} +else +if +b +< += +0b1110_1111 +{ +3 +} +else +{ +4 +} +; +i ++ +inc +} +# +[ +inline +] +pub +fn +decode_utf8 +( +src +: +& +[ +u8 +] +) +- +> +Option +< +( +char +usize +) +> +{ +let +b0 += +match +src +. +get +( +0 +) +{ +None += +> +return +None +Some +( +& +b +) +if +b +< += +0x7F += +> +return +Some +( +( +b +as +char +1 +) +) +Some +( +& +b +) += +> +b +} +; +match +b0 +{ +0b110_00000 +. +. += +0b110_11111 += +> +{ +if +src +. +len +( +) +< +2 +{ +return +None +; +} +let +b1 += +src +[ +1 +] +; +if +0b11_000000 +& +b1 +! += +TAG_CONT +{ +return +None +; +} +let +cp += +( +( +b0 +& +! +TAG_TWO +) +as +u32 +) +< +< +6 +| +( +( +b1 +& +! +TAG_CONT +) +as +u32 +) +; +match +cp +{ +0x80 +. +. += +0x7FF += +> +char +: +: +from_u32 +( +cp +) +. +map +( +| +cp +| +( +cp +2 +) +) +_ += +> +None +} +} +0b1110_0000 +. +. += +0b1110_1111 += +> +{ +if +src +. +len +( +) +< +3 +{ +return +None +; +} +let +( +b1 +b2 +) += +( +src +[ +1 +] +src +[ +2 +] +) +; +if +0b11_000000 +& +b1 +! += +TAG_CONT +{ +return +None +; +} +if +0b11_000000 +& +b2 +! += +TAG_CONT +{ +return +None +; +} +let +cp += +( +( +b0 +& +! +TAG_THREE +) +as +u32 +) +< +< +12 +| +( +( +b1 +& +! +TAG_CONT +) +as +u32 +) +< +< +6 +| +( +( +b2 +& +! +TAG_CONT +) +as +u32 +) +; +match +cp +{ +0x800 +. +. += +0xFFFF += +> +char +: +: +from_u32 +( +cp +) +. +map +( +| +cp +| +( +cp +3 +) +) +_ += +> +None +} +} +0b11110_000 +. +. += +0b11110_111 += +> +{ +if +src +. +len +( +) +< +4 +{ +return +None +; +} +let +( +b1 +b2 +b3 +) += +( +src +[ +1 +] +src +[ +2 +] +src +[ +3 +] +) +; +if +0b11_000000 +& +b1 +! += +TAG_CONT +{ +return +None +; +} +if +0b11_000000 +& +b2 +! += +TAG_CONT +{ +return +None +; +} +if +0b11_000000 +& +b3 +! += +TAG_CONT +{ +return +None +; +} +let +cp += +( +( +b0 +& +! +TAG_FOUR +) +as +u32 +) +< +< +18 +| +( +( +b1 +& +! +TAG_CONT +) +as +u32 +) +< +< +12 +| +( +( +b2 +& +! +TAG_CONT +) +as +u32 +) +< +< +6 +| +( +( +b3 +& +! +TAG_CONT +) +as +u32 +) +; +match +cp +{ +0x10000 +. +. += +0x0010_FFFF += +> +char +: +: +from_u32 +( +cp +) +. +map +( +| +cp +| +( +cp +4 +) +) +_ += +> +None +} +} +_ += +> +None +} +} +pub +fn +decode_last_utf8 +( +src +: +& +[ +u8 +] +) +- +> +Option +< +( +char +usize +) +> +{ +if +src +. +is_empty +( +) +{ +return +None +; +} +let +mut +start += +src +. +len +( +) +- +1 +; +if +src +[ +start +] +< += +0x7F +{ +return +Some +( +( +src +[ +start +] +as +char +1 +) +) +; +} +while +start +> +src +. +len +( +) +. +saturating_sub +( +4 +) +{ +start +- += +1 +; +if +is_start_byte +( +src +[ +start +] +) +{ +break +; +} +} +match +decode_utf8 +( +& +src +[ +start +. +. +] +) +{ +None += +> +None +Some +( +( +_ +n +) +) +if +n +< +src +. +len +( +) +- +start += +> +None +Some +( +( +cp +n +) +) += +> +Some +( +( +cp +n +) +) +} +} +fn +is_start_byte +( +b +: +u8 +) +- +> +bool +{ +b +& +0b11_000000 +! += +0b1_0000000 +} +# +[ +cfg +( +test +) +] +mod +tests +{ +use +std +: +: +str +; +use +quickcheck +: +: +quickcheck +; +use +super +: +: +{ +decode_last_utf8 +decode_utf8 +TAG_CONT +TAG_FOUR +TAG_THREE +TAG_TWO +} +; +# +[ +test +] +fn +prop_roundtrip +( +) +{ +fn +p +( +given_cp +: +char +) +- +> +bool +{ +let +mut +tmp += +[ +0 +; +4 +] +; +let +encoded_len += +given_cp +. +encode_utf8 +( +& +mut +tmp +) +. +len +( +) +; +let +( +got_cp +got_len +) += +decode_utf8 +( +& +tmp +[ +. +. +encoded_len +] +) +. +unwrap +( +) +; +encoded_len += += +got_len +& +& +given_cp += += +got_cp +} +quickcheck +( +p +as +fn +( +char +) +- +> +bool +) +} +# +[ +test +] +fn +prop_roundtrip_last +( +) +{ +fn +p +( +given_cp +: +char +) +- +> +bool +{ +let +mut +tmp += +[ +0 +; +4 +] +; +let +encoded_len += +given_cp +. +encode_utf8 +( +& +mut +tmp +) +. +len +( +) +; +let +( +got_cp +got_len +) += +decode_last_utf8 +( +& +tmp +[ +. +. +encoded_len +] +) +. +unwrap +( +) +; +encoded_len += += +got_len +& +& +given_cp += += +got_cp +} +quickcheck +( +p +as +fn +( +char +) +- +> +bool +) +} +# +[ +test +] +fn +prop_encode_matches_std +( +) +{ +fn +p +( +cp +: +char +) +- +> +bool +{ +let +mut +got += +[ +0 +; +4 +] +; +let +n += +cp +. +encode_utf8 +( +& +mut +got +) +. +len +( +) +; +let +expected += +cp +. +to_string +( +) +; +& +got +[ +. +. +n +] += += +expected +. +as_bytes +( +) +} +quickcheck +( +p +as +fn +( +char +) +- +> +bool +) +} +# +[ +test +] +fn +prop_decode_matches_std +( +) +{ +fn +p +( +given_cp +: +char +) +- +> +bool +{ +let +mut +tmp += +[ +0 +; +4 +] +; +let +n += +given_cp +. +encode_utf8 +( +& +mut +tmp +) +. +len +( +) +; +let +( +got_cp +_ +) += +decode_utf8 +( +& +tmp +[ +. +. +n +] +) +. +unwrap +( +) +; +let +expected_cp += +str +: +: +from_utf8 +( +& +tmp +[ +. +. +n +] +) +. +unwrap +( +) +. +chars +( +) +. +next +( +) +. +unwrap +( +) +; +got_cp += += +expected_cp +} +quickcheck +( +p +as +fn +( +char +) +- +> +bool +) +} +# +[ +test +] +fn +prop_decode_last_matches_std +( +) +{ +fn +p +( +given_cp +: +char +) +- +> +bool +{ +let +mut +tmp += +[ +0 +; +4 +] +; +let +n += +given_cp +. +encode_utf8 +( +& +mut +tmp +) +. +len +( +) +; +let +( +got_cp +_ +) += +decode_last_utf8 +( +& +tmp +[ +. +. +n +] +) +. +unwrap +( +) +; +let +expected_cp += +str +: +: +from_utf8 +( +& +tmp +[ +. +. +n +] +) +. +unwrap +( +) +. +chars +( +) +. +rev +( +) +. +next +( +) +. +unwrap +( +) +; +got_cp += += +expected_cp +} +quickcheck +( +p +as +fn +( +char +) +- +> +bool +) +} +# +[ +test +] +fn +reject_invalid +( +) +{ +assert_eq +! +( +decode_utf8 +( +& +[ +0xFF +] +) +None +) +; +assert_eq +! +( +decode_utf8 +( +& +[ +0xED +0xA0 +0x81 +] +) +None +) +; +assert_eq +! +( +decode_utf8 +( +& +[ +0xD4 +0xC2 +] +) +None +) +; +assert_eq +! +( +decode_utf8 +( +& +[ +0xC3 +] +) +None +) +; +assert_eq +! +( +decode_utf8 +( +& +[ +0xEF +0xBF +] +) +None +) +; +assert_eq +! +( +decode_utf8 +( +& +[ +0xF4 +0x8F +0xBF +] +) +None +) +; +assert_eq +! +( +decode_utf8 +( +& +[ +TAG_TWO +TAG_CONT +| +b +' +a +' +] +) +None +) +; +assert_eq +! +( +decode_utf8 +( +& +[ +TAG_THREE +TAG_CONT +TAG_CONT +| +b +' +a +' +] +) +None +) +; +assert_eq +! +( +decode_utf8 +( +& +[ +TAG_FOUR +TAG_CONT +TAG_CONT +TAG_CONT +| +b +' +a +' +] +) +None +) +; +} +# +[ +test +] +fn +reject_invalid_last +( +) +{ +assert_eq +! +( +decode_last_utf8 +( +& +[ +0xFF +] +) +None +) +; +assert_eq +! +( +decode_last_utf8 +( +& +[ +0xED +0xA0 +0x81 +] +) +None +) +; +assert_eq +! +( +decode_last_utf8 +( +& +[ +0xC3 +] +) +None +) +; +assert_eq +! +( +decode_last_utf8 +( +& +[ +0xEF +0xBF +] +) +None +) +; +assert_eq +! +( +decode_last_utf8 +( +& +[ +0xF4 +0x8F +0xBF +] +) +None +) +; +assert_eq +! +( +decode_last_utf8 +( +& +[ +TAG_TWO +TAG_CONT +| +b +' +a +' +] +) +None +) +; +assert_eq +! +( +decode_last_utf8 +( +& +[ +TAG_THREE +TAG_CONT +TAG_CONT +| +b +' +a +' +] +) +None +) +; +assert_eq +! +( +decode_last_utf8 +( +& +[ +TAG_FOUR +TAG_CONT +TAG_CONT +TAG_CONT +| +b +' +a +' +] +) +None +) +; +} +} diff --git a/third_party/rust/regex/test b/third_party/rust/regex/test index df9272b71f8bb..668c32b5251a3 100644 --- a/third_party/rust/regex/test +++ b/third_party/rust/regex/test @@ -8,48 +8,6 @@ set - e # -cd -to -the -directory -containing -this -crate -' -s -Cargo -. -toml -so -that -we -don -' -t -need -# -to -pass -- -- -manifest -- -path -to -every -cargo -command -. -cd -" -( -dirname -" -0 -" -) -" -# This is a @@ -124,71 +82,9 @@ FEATURES = = = -= -= " cargo test -# -no -- -std -mode -is -annoyingly -difficult -to -test -. -Currently -the -integration -tests -# -don -' -t -run -. -So -for -now -we -just -test -that -library -tests -run -. -( -There -aren -' -t -# -many -because -regex -is -just -a -wrapper -crate -. -) -cargo -test -- -- -no -- -default -- -features -- -- -lib echo " = @@ -201,8 +97,6 @@ TESTS = = = -= -= " cargo test @@ -253,26 +147,6 @@ perf - literal " -" -std -perf -- -dfa -- -full -" -" -std -perf -- -onepass -" -" -std -perf -- -backtrack -" ) for f @@ -296,8 +170,9 @@ echo FEATURE : f -= -= +( +default +) = = = @@ -307,7 +182,7 @@ test - - test -integration +default - - no @@ -321,37 +196,6 @@ features " f " -done -# -And -test -the -probably -- -forever -- -nightly -- -only -' -pattern -' -feature -. -. -. -if -rustc -- -- -version -| -grep -- -q -nightly -; -then echo " = @@ -361,13 +205,12 @@ echo = FEATURE : -std -pattern -unicode +f +( +default - -perl -= -= +bytes +) = = = @@ -377,7 +220,9 @@ test - - test -integration +default +- +bytes - - no @@ -388,9 +233,7 @@ features - - features -std -pattern -unicode -- -perl -fi +" +f +" +done diff --git a/third_party/rust/regex/testdata/README.md b/third_party/rust/regex/testdata/README.md deleted file mode 100644 index db4b6d9e77e08..0000000000000 --- a/third_party/rust/regex/testdata/README.md +++ /dev/null @@ -1,244 +0,0 @@ -This -directory -contains -a -large -suite -of -regex -tests -defined -in -a -TOML -format -. -They -are -used -to -drive -tests -in -tests -/ -lib -. -rs -regex -- -automata -/ -tests -/ -lib -. -rs -and -regex -- -lite -/ -tests -/ -lib -. -rs -. -See -the -[ -regex -- -test -] -[ -regex -- -test -] -crate -documentation -for -an -explanation -of -the -format -and -how -it -generates -tests -. -The -basic -idea -here -is -that -we -have -many -different -regex -engines -but -generally -one -set -of -tests -. -We -want -to -be -able -to -run -those -tests -( -or -most -of -them -) -on -every -engine -. -Prior -to -regex -1 -. -9 -we -used -to -do -this -with -a -hodge -podge -soup -of -macros -and -a -different -test -executable -for -each -engine -. -It -overall -took -a -longer -time -to -compile -was -harder -to -maintain -and -it -made -the -test -definitions -themselves -less -clear -. -In -regex -1 -. -9 -when -we -moved -over -to -regex -- -automata -the -situation -got -a -lot -worse -because -of -an -increase -in -the -number -of -engines -. -So -I -devised -an -engine -independent -format -for -testing -regex -patterns -and -their -semantics -. -Note -: -the -naming -scheme -used -in -these -tests -isn -' -t -terribly -consistent -. -It -would -be -great -to -fix -that -. -[ -regex -- -test -] -: -https -: -/ -/ -docs -. -rs -/ -regex -- -test diff --git a/third_party/rust/regex/testdata/anchored.toml b/third_party/rust/regex/testdata/anchored.toml deleted file mode 100644 index 3af6101b42c7f..0000000000000 --- a/third_party/rust/regex/testdata/anchored.toml +++ /dev/null @@ -1,902 +0,0 @@ -# -These -tests -are -specifically -geared -toward -searches -with -' -anchored -= -true -' -. -# -While -they -are -interesting -in -their -own -right -they -are -particularly -# -important -for -testing -the -one -- -pass -DFA -since -the -one -- -pass -DFA -can -' -t -work -in -# -unanchored -contexts -. -# -# -Note -that -" -anchored -" -in -this -context -does -not -mean -" -^ -" -. -Anchored -searches -are -# -searches -whose -matches -must -begin -at -the -start -of -the -search -which -may -not -# -be -at -the -start -of -the -haystack -. -That -' -s -why -anchored -searches -- -- -- -and -there -are -# -some -examples -below -- -- -- -can -still -report -multiple -matches -. -This -occurs -when -the -# -matches -are -adjacent -to -one -another -. -[ -[ -test -] -] -name -= -" -greedy -" -regex -= -' -( -abc -) -+ -' -haystack -= -" -abcabcabc -" -matches -= -[ -[ -[ -0 -9 -] -[ -6 -9 -] -] -] -anchored -= -true -# -When -a -" -earliest -" -search -is -used -greediness -doesn -' -t -really -exist -because -# -matches -are -reported -as -soon -as -they -are -known -. -[ -[ -test -] -] -name -= -" -greedy -- -earliest -" -regex -= -' -( -abc -) -+ -' -haystack -= -" -abcabcabc -" -matches -= -[ -[ -[ -0 -3 -] -[ -0 -3 -] -] -[ -[ -3 -6 -] -[ -3 -6 -] -] -[ -[ -6 -9 -] -[ -6 -9 -] -] -] -anchored -= -true -search -- -kind -= -" -earliest -" -[ -[ -test -] -] -name -= -" -nongreedy -" -regex -= -' -( -abc -) -+ -? -' -haystack -= -" -abcabcabc -" -matches -= -[ -[ -[ -0 -3 -] -[ -0 -3 -] -] -[ -[ -3 -6 -] -[ -3 -6 -] -] -[ -[ -6 -9 -] -[ -6 -9 -] -] -] -anchored -= -true -# -When -" -all -" -semantics -are -used -non -- -greediness -doesn -' -t -exist -since -the -longest -# -possible -match -is -always -taken -. -[ -[ -test -] -] -name -= -" -nongreedy -- -all -" -regex -= -' -( -abc -) -+ -? -' -haystack -= -" -abcabcabc -" -matches -= -[ -[ -[ -0 -9 -] -[ -6 -9 -] -] -] -anchored -= -true -match -- -kind -= -" -all -" -[ -[ -test -] -] -name -= -" -word -- -boundary -- -unicode -- -01 -" -regex -= -' -\ -b -\ -w -+ -\ -b -' -haystack -= -' -' -matches -= -[ -[ -0 -6 -] -] -anchored -= -true -[ -[ -test -] -] -name -= -" -word -- -boundary -- -nounicode -- -01 -" -regex -= -' -\ -b -\ -w -+ -\ -b -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -3 -] -] -anchored -= -true -unicode -= -false -# -Tests -that -' -. -c -' -doesn -' -t -match -' -abc -' -when -performing -an -anchored -search -from -# -the -beginning -of -the -haystack -. -This -test -found -two -different -bugs -in -the -# -PikeVM -and -the -meta -engine -. -[ -[ -test -] -] -name -= -" -no -- -match -- -at -- -start -" -regex -= -' -. -c -' -haystack -= -' -abc -' -matches -= -[ -] -anchored -= -true -# -Like -above -but -at -a -non -- -zero -start -offset -. -[ -[ -test -] -] -name -= -" -no -- -match -- -at -- -start -- -bounds -" -regex -= -' -. -c -' -haystack -= -' -aabc -' -bounds -= -[ -1 -4 -] -matches -= -[ -] -anchored -= -true -# -This -is -like -no -- -match -- -at -- -start -but -hits -the -" -reverse -inner -" -optimization -# -inside -the -meta -engine -. -( -no -- -match -- -at -- -start -hits -the -" -reverse -suffix -" -# -optimization -. -) -[ -[ -test -] -] -name -= -" -no -- -match -- -at -- -start -- -reverse -- -inner -" -regex -= -' -. -c -[ -a -- -z -] -' -haystack -= -' -abcz -' -matches -= -[ -] -anchored -= -true -# -Like -above -but -at -a -non -- -zero -start -offset -. -[ -[ -test -] -] -name -= -" -no -- -match -- -at -- -start -- -reverse -- -inner -- -bounds -" -regex -= -' -. -c -[ -a -- -z -] -' -haystack -= -' -aabcz -' -bounds -= -[ -1 -5 -] -matches -= -[ -] -anchored -= -true -# -Same -as -no -- -match -- -at -- -start -but -applies -to -the -meta -engine -' -s -" -reverse -# -anchored -" -optimization -. -[ -[ -test -] -] -name -= -" -no -- -match -- -at -- -start -- -reverse -- -anchored -" -regex -= -' -. -c -[ -a -- -z -] -' -haystack -= -' -abcz -' -matches -= -[ -] -anchored -= -true -# -Like -above -but -at -a -non -- -zero -start -offset -. -[ -[ -test -] -] -name -= -" -no -- -match -- -at -- -start -- -reverse -- -anchored -- -bounds -" -regex -= -' -. -c -[ -a -- -z -] -' -haystack -= -' -aabcz -' -bounds -= -[ -1 -5 -] -matches -= -[ -] -anchored -= -true diff --git a/third_party/rust/regex/testdata/bytes.toml b/third_party/rust/regex/testdata/bytes.toml deleted file mode 100644 index f89b02098d271..0000000000000 --- a/third_party/rust/regex/testdata/bytes.toml +++ /dev/null @@ -1,1483 +0,0 @@ -# -These -are -tests -specifically -crafted -for -regexes -that -can -match -arbitrary -# -bytes -. -In -some -cases -we -also -test -the -Unicode -variant -as -well -just -because -# -it -' -s -good -sense -to -do -so -. -But -also -these -tests -aren -' -t -really -about -Unicode -# -but -whether -matches -are -only -reported -at -valid -UTF -- -8 -boundaries -. -For -most -# -tests -in -this -entire -collection -utf8 -= -true -. -But -for -these -tests -we -use -# -utf8 -= -false -. -[ -[ -test -] -] -name -= -" -word -- -boundary -- -ascii -" -regex -= -' -\ -b -' -haystack -= -" -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -word -- -boundary -- -unicode -" -regex -= -' -\ -b -' -haystack -= -" -" -matches -= -[ -[ -0 -1 -] -] -unicode -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -word -- -boundary -- -ascii -- -not -" -regex -= -' -\ -B -' -haystack -= -" -" -matches -= -[ -[ -0 -1 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -word -- -boundary -- -unicode -- -not -" -regex -= -' -\ -B -' -haystack -= -" -" -matches -= -[ -] -unicode -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -perl -- -word -- -ascii -" -regex -= -' -\ -w -+ -' -haystack -= -" -a -" -matches -= -[ -[ -0 -1 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -perl -- -word -- -unicode -" -regex -= -' -\ -w -+ -' -haystack -= -" -a -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -perl -- -decimal -- -ascii -" -regex -= -' -\ -d -+ -' -haystack -= -" -1 -9 -" -matches -= -[ -[ -0 -1 -] -[ -7 -8 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -perl -- -decimal -- -unicode -" -regex -= -' -\ -d -+ -' -haystack -= -" -1 -9 -" -matches -= -[ -[ -0 -8 -] -] -unicode -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -perl -- -whitespace -- -ascii -" -regex -= -' -\ -s -+ -' -haystack -= -" -\ -u1680 -" -matches -= -[ -[ -0 -1 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -perl -- -whitespace -- -unicode -" -regex -= -' -\ -s -+ -' -haystack -= -" -\ -u1680 -" -matches -= -[ -[ -0 -4 -] -] -unicode -= -true -utf8 -= -false -# -The -first -( -. -+ -) -matches -two -Unicode -codepoints -but -can -' -t -match -the -5th -# -byte -which -isn -' -t -valid -UTF -- -8 -. -The -second -( -byte -based -) -( -. -+ -) -takes -over -and -# -matches -. -[ -[ -test -] -] -name -= -" -mixed -- -dot -" -regex -= -' -( -. -+ -) -( -? -- -u -) -( -. -+ -) -' -haystack -= -' -\ -xCE -\ -x93 -\ -xCE -\ -x94 -\ -xFF -' -matches -= -[ -[ -[ -0 -5 -] -[ -0 -4 -] -[ -4 -5 -] -] -] -unescape -= -true -unicode -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -case -- -one -- -ascii -" -regex -= -' -a -' -haystack -= -" -A -" -matches -= -[ -[ -0 -1 -] -] -case -- -insensitive -= -true -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -case -- -one -- -unicode -" -regex -= -' -a -' -haystack -= -" -A -" -matches -= -[ -[ -0 -1 -] -] -case -- -insensitive -= -true -unicode -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -case -- -class -- -simple -- -ascii -" -regex -= -' -[ -a -- -z -] -+ -' -haystack -= -" -AaAaA -" -matches -= -[ -[ -0 -5 -] -] -case -- -insensitive -= -true -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -case -- -class -- -ascii -" -regex -= -' -[ -a -- -z -] -+ -' -haystack -= -" -aA -\ -u212AaA -" -matches -= -[ -[ -0 -2 -] -[ -5 -7 -] -] -case -- -insensitive -= -true -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -case -- -class -- -unicode -" -regex -= -' -[ -a -- -z -] -+ -' -haystack -= -" -aA -\ -u212AaA -" -matches -= -[ -[ -0 -7 -] -] -case -- -insensitive -= -true -unicode -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -negate -- -ascii -" -regex -= -' -[ -^ -a -] -' -haystack -= -" -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -negate -- -unicode -" -regex -= -' -[ -^ -a -] -' -haystack -= -" -" -matches -= -[ -[ -0 -2 -] -] -unicode -= -true -utf8 -= -false -# -When -utf8 -= -true -this -won -' -t -match -because -the -implicit -' -. -* -? -' -prefix -is -# -Unicode -aware -and -will -refuse -to -match -through -invalid -UTF -- -8 -bytes -. -[ -[ -test -] -] -name -= -" -dotstar -- -prefix -- -ascii -" -regex -= -' -a -' -haystack -= -' -\ -xFFa -' -matches -= -[ -[ -1 -2 -] -] -unescape -= -true -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -dotstar -- -prefix -- -unicode -" -regex -= -' -a -' -haystack -= -' -\ -xFFa -' -matches -= -[ -[ -1 -2 -] -] -unescape -= -true -unicode -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -null -- -bytes -" -regex -= -' -( -? -P -< -cstr -> -[ -^ -\ -x00 -] -+ -) -\ -x00 -' -haystack -= -' -foo -\ -x00 -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -3 -] -] -] -unescape -= -true -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -invalid -- -utf8 -- -anchor -- -100 -" -regex -= -' -\ -xCC -? -^ -' -haystack -= -' -\ -x8d -# -; -\ -x1a -\ -xa4s3 -\ -x05foobarX -\ -\ -\ -x0f0t -\ -xe4 -\ -x9b -\ -xa4 -' -matches -= -[ -[ -0 -0 -] -] -unescape -= -true -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -invalid -- -utf8 -- -anchor -- -200 -" -regex -= -' -^ -\ -xf7 -| -4 -\ -xff -\ -d -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -# -# -# -# -# -# -# -# -# -# -[ -] -d -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -\ -x8a -# -# -# -# -# -# -# -# -# -# -\ -[ -] -# -# -# -# -# -\ -x80 -\ -S7 -| -' -haystack -= -' -\ -x8d -# -; -\ -x1a -\ -xa4s3 -\ -x05foobarX -\ -\ -\ -x0f0t -\ -xe4 -\ -x9b -\ -xa4 -' -matches -= -[ -[ -22 -22 -] -] -unescape -= -true -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -invalid -- -utf8 -- -anchor -- -300 -" -regex -= -' -^ -| -ddp -\ -xff -\ -xffdddddlQd -\ -x80 -' -haystack -= -' -\ -x8d -# -; -\ -x1a -\ -xa4s3 -\ -x05foobarX -\ -\ -\ -x0f0t -\ -xe4 -\ -x9b -\ -xa4 -' -matches -= -[ -[ -0 -0 -] -] -unescape -= -true -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -word -- -boundary -- -ascii -- -100 -" -regex -= -' -\ -Bx -\ -B -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -word -- -boundary -- -ascii -- -200 -" -regex -= -' -\ -B -' -haystack -= -" -0 -\ -U0007EF5E -" -matches -= -[ -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -unicode -= -false -utf8 -= -false diff --git a/third_party/rust/regex/testdata/crazy.toml b/third_party/rust/regex/testdata/crazy.toml deleted file mode 100644 index 5a03f65893243..0000000000000 --- a/third_party/rust/regex/testdata/crazy.toml +++ /dev/null @@ -1,2675 +0,0 @@ -[ -[ -test -] -] -name -= -" -nothing -- -empty -" -regex -= -[ -] -haystack -= -" -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -nothing -- -something -" -regex -= -[ -] -haystack -= -" -wat -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -ranges -" -regex -= -' -( -? -- -u -) -\ -b -( -? -: -[ -0 -- -9 -] -| -[ -1 -- -9 -] -[ -0 -- -9 -] -| -1 -[ -0 -- -9 -] -[ -0 -- -9 -] -| -2 -[ -0 -- -4 -] -[ -0 -- -9 -] -| -25 -[ -0 -- -5 -] -) -\ -b -' -haystack -= -" -num -: -255 -" -matches -= -[ -[ -5 -8 -] -] -[ -[ -test -] -] -name -= -" -ranges -- -not -" -regex -= -' -( -? -- -u -) -\ -b -( -? -: -[ -0 -- -9 -] -| -[ -1 -- -9 -] -[ -0 -- -9 -] -| -1 -[ -0 -- -9 -] -[ -0 -- -9 -] -| -2 -[ -0 -- -4 -] -[ -0 -- -9 -] -| -25 -[ -0 -- -5 -] -) -\ -b -' -haystack -= -" -num -: -256 -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -float1 -" -regex -= -' -[ -- -+ -] -? -[ -0 -- -9 -] -* -\ -. -? -[ -0 -- -9 -] -+ -' -haystack -= -" -0 -. -1 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -float2 -" -regex -= -' -[ -- -+ -] -? -[ -0 -- -9 -] -* -\ -. -? -[ -0 -- -9 -] -+ -' -haystack -= -" -0 -. -1 -. -2 -" -matches -= -[ -[ -0 -3 -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -float3 -" -regex -= -' -[ -- -+ -] -? -[ -0 -- -9 -] -* -\ -. -? -[ -0 -- -9 -] -+ -' -haystack -= -" -a1 -. -2 -" -matches -= -[ -[ -1 -4 -] -] -[ -[ -test -] -] -name -= -" -float4 -" -regex -= -' -[ -- -+ -] -? -[ -0 -- -9 -] -* -\ -. -? -[ -0 -- -9 -] -+ -' -haystack -= -" -1 -. -a -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -float5 -" -regex -= -' -^ -[ -- -+ -] -? -[ -0 -- -9 -] -* -\ -. -? -[ -0 -- -9 -] -+ -' -haystack -= -" -1 -. -a -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -email -" -regex -= -' -( -? -i -- -u -) -\ -b -[ -A -- -Z0 -- -9 -. -_ -% -+ -- -] -+ -[ -A -- -Z0 -- -9 -. -- -] -+ -\ -. -[ -A -- -Z -] -{ -2 -4 -} -\ -b -' -haystack -= -" -mine -is -jam -. -slam -gmail -. -com -" -matches -= -[ -[ -8 -26 -] -] -[ -[ -test -] -] -name -= -" -email -- -not -" -regex -= -' -( -? -i -- -u -) -\ -b -[ -A -- -Z0 -- -9 -. -_ -% -+ -- -] -+ -[ -A -- -Z0 -- -9 -. -- -] -+ -\ -. -[ -A -- -Z -] -{ -2 -4 -} -\ -b -' -haystack -= -" -mine -is -jam -. -slam -gmail -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -email -- -big -" -regex -= -' -' -' -[ -a -- -z0 -- -9 -! -# -% -& -' -* -+ -/ -= -? -^ -_ -{ -| -} -~ -- -] -+ -( -? -: -\ -. -[ -a -- -z0 -- -9 -! -# -% -& -' -* -+ -/ -= -? -^ -_ -{ -| -} -~ -- -] -+ -) -* -( -? -: -[ -a -- -z0 -- -9 -] -( -? -: -[ -a -- -z0 -- -9 -- -] -* -[ -a -- -z0 -- -9 -] -) -? -\ -. -) -+ -[ -a -- -z0 -- -9 -] -( -? -: -[ -a -- -z0 -- -9 -- -] -* -[ -a -- -z0 -- -9 -] -) -? -' -' -' -haystack -= -" -mine -is -jam -. -slam -gmail -. -com -" -matches -= -[ -[ -8 -26 -] -] -[ -[ -test -] -] -name -= -" -date1 -" -regex -= -' -^ -( -? -: -19 -| -20 -) -\ -d -\ -d -[ -- -/ -. -] -( -? -: -0 -[ -1 -- -9 -] -| -1 -[ -012 -] -) -[ -- -/ -. -] -( -? -: -0 -[ -1 -- -9 -] -| -[ -12 -] -[ -0 -- -9 -] -| -3 -[ -01 -] -) -' -haystack -= -" -1900 -- -01 -- -01 -" -matches -= -[ -[ -0 -10 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -date2 -" -regex -= -' -^ -( -? -: -19 -| -20 -) -\ -d -\ -d -[ -- -/ -. -] -( -? -: -0 -[ -1 -- -9 -] -| -1 -[ -012 -] -) -[ -- -/ -. -] -( -? -: -0 -[ -1 -- -9 -] -| -[ -12 -] -[ -0 -- -9 -] -| -3 -[ -01 -] -) -' -haystack -= -" -1900 -- -00 -- -01 -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -date3 -" -regex -= -' -^ -( -? -: -19 -| -20 -) -\ -d -\ -d -[ -- -/ -. -] -( -? -: -0 -[ -1 -- -9 -] -| -1 -[ -012 -] -) -[ -- -/ -. -] -( -? -: -0 -[ -1 -- -9 -] -| -[ -12 -] -[ -0 -- -9 -] -| -3 -[ -01 -] -) -' -haystack -= -" -1900 -- -13 -- -01 -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -start -- -end -- -empty -" -regex -= -' -^ -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -start -- -end -- -empty -- -rev -" -regex -= -' -^ -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -start -- -end -- -empty -- -many -- -1 -" -regex -= -' -^ -^ -^ -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -start -- -end -- -empty -- -many -- -2 -" -regex -= -' -^ -^ -^ -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -start -- -end -- -empty -- -rep -" -regex -= -' -( -? -: -^ -) -* -' -haystack -= -" -a -\ -nb -\ -nc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -[ -[ -test -] -] -name -= -" -start -- -end -- -empty -- -rep -- -rev -" -regex -= -' -( -? -: -^ -) -* -' -haystack -= -" -a -\ -nb -\ -nc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -[ -[ -test -] -] -name -= -" -neg -- -class -- -letter -" -regex -= -' -[ -^ -ac -] -' -haystack -= -" -acx -" -matches -= -[ -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -neg -- -class -- -letter -- -comma -" -regex -= -' -[ -^ -a -] -' -haystack -= -" -a -x -" -matches -= -[ -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -neg -- -class -- -letter -- -space -" -regex -= -' -[ -^ -a -[ -: -space -: -] -] -' -haystack -= -" -a -x -" -matches -= -[ -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -neg -- -class -- -comma -" -regex -= -' -[ -^ -] -' -haystack -= -" -x -" -matches -= -[ -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -neg -- -class -- -space -" -regex -= -' -[ -^ -[ -: -space -: -] -] -' -haystack -= -" -a -" -matches -= -[ -[ -1 -2 -] -] -[ -[ -test -] -] -name -= -" -neg -- -class -- -space -- -comma -" -regex -= -' -[ -^ -[ -: -space -: -] -] -' -haystack -= -" -a -" -matches -= -[ -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -neg -- -class -- -comma -- -space -" -regex -= -' -[ -^ -[ -: -space -: -] -] -' -haystack -= -" -a -" -matches -= -[ -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -neg -- -class -- -ascii -" -regex -= -' -[ -^ -[ -: -alpha -: -] -Z -] -' -haystack -= -" -A1 -" -matches -= -[ -[ -1 -2 -] -] -[ -[ -test -] -] -name -= -" -lazy -- -many -- -many -" -regex -= -' -( -? -: -( -? -: -. -* -) -* -? -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -lazy -- -many -- -optional -" -regex -= -' -( -? -: -( -? -: -. -? -) -* -? -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -lazy -- -one -- -many -- -many -" -regex -= -' -( -? -: -( -? -: -. -* -) -+ -? -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -lazy -- -one -- -many -- -optional -" -regex -= -' -( -? -: -( -? -: -. -? -) -+ -? -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -lazy -- -range -- -min -- -many -" -regex -= -' -( -? -: -( -? -: -. -* -) -{ -1 -} -? -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -lazy -- -range -- -many -" -regex -= -' -( -? -: -( -? -: -. -* -) -{ -1 -2 -} -? -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -greedy -- -many -- -many -" -regex -= -' -( -? -: -( -? -: -. -* -) -* -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -greedy -- -many -- -optional -" -regex -= -' -( -? -: -( -? -: -. -? -) -* -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -greedy -- -one -- -many -- -many -" -regex -= -' -( -? -: -( -? -: -. -* -) -+ -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -greedy -- -one -- -many -- -optional -" -regex -= -' -( -? -: -( -? -: -. -? -) -+ -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -greedy -- -range -- -min -- -many -" -regex -= -' -( -? -: -( -? -: -. -* -) -{ -1 -} -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -greedy -- -range -- -many -" -regex -= -' -( -? -: -( -? -: -. -* -) -{ -1 -2 -} -) -= -' -haystack -= -" -a -= -b -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -empty1 -" -regex -= -' -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -empty2 -" -regex -= -' -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty3 -" -regex -= -' -( -? -: -) -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty4 -" -regex -= -' -( -? -: -) -* -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty5 -" -regex -= -' -( -? -: -) -+ -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty6 -" -regex -= -' -( -? -: -) -? -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty7 -" -regex -= -' -( -? -: -) -( -? -: -) -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty8 -" -regex -= -' -( -? -: -) -+ -| -z -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty9 -" -regex -= -' -z -| -( -? -: -) -+ -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty10 -" -regex -= -' -( -? -: -) -+ -| -b -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty11 -" -regex -= -' -b -| -( -? -: -) -+ -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -2 -] -[ -3 -3 -] -] diff --git a/third_party/rust/regex/testdata/crlf.toml b/third_party/rust/regex/testdata/crlf.toml deleted file mode 100644 index 528f53f48eb4f..0000000000000 --- a/third_party/rust/regex/testdata/crlf.toml +++ /dev/null @@ -1,1175 +0,0 @@ -# -This -is -a -basic -test -that -checks -^ -and -treat -\ -r -\ -n -as -a -single -line -# -terminator -. -If -^ -and -only -treated -\ -n -as -a -line -terminator -then -this -would -# -only -match -' -xyz -' -at -the -end -of -the -haystack -. -[ -[ -test -] -] -name -= -" -basic -" -regex -= -' -( -? -mR -) -^ -[ -a -- -z -] -+ -' -haystack -= -" -abc -\ -r -\ -ndef -\ -r -\ -nxyz -" -matches -= -[ -[ -0 -3 -] -[ -5 -8 -] -[ -10 -13 -] -] -# -Tests -that -a -CRLF -- -aware -' -^ -' -assertion -does -not -match -between -CR -and -LF -. -[ -[ -test -] -] -name -= -" -start -- -end -- -non -- -empty -" -regex -= -' -( -? -mR -) -^ -' -haystack -= -" -abc -\ -r -\ -ndef -\ -r -\ -nxyz -" -matches -= -[ -] -# -Tests -that -a -CRLF -- -aware -' -^ -' -assertion -matches -the -empty -string -just -like -# -a -non -- -CRLF -- -aware -' -^ -' -assertion -. -[ -[ -test -] -] -name -= -" -start -- -end -- -empty -" -regex -= -' -( -? -mR -) -^ -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -# -Tests -that -a -CRLF -- -aware -' -^ -' -assertion -matches -the -empty -string -preceding -# -and -following -a -line -terminator -. -[ -[ -test -] -] -name -= -" -start -- -end -- -before -- -after -" -regex -= -' -( -? -mR -) -^ -' -haystack -= -" -\ -r -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -] -# -Tests -that -a -CRLF -- -aware -' -^ -' -assertion -does -not -split -a -line -terminator -. -[ -[ -test -] -] -name -= -" -start -- -no -- -split -" -regex -= -' -( -? -mR -) -^ -' -haystack -= -" -abc -\ -r -\ -ndef -\ -r -\ -nxyz -" -matches -= -[ -[ -0 -0 -] -[ -5 -5 -] -[ -10 -10 -] -] -# -Same -as -above -but -with -adjacent -runs -of -line -terminators -. -[ -[ -test -] -] -name -= -" -start -- -no -- -split -- -adjacent -" -regex -= -' -( -? -mR -) -^ -' -haystack -= -" -\ -r -\ -n -\ -r -\ -n -\ -r -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -[ -4 -4 -] -[ -6 -6 -] -] -# -Same -as -above -but -with -adjacent -runs -of -just -carriage -returns -. -[ -[ -test -] -] -name -= -" -start -- -no -- -split -- -adjacent -- -cr -" -regex -= -' -( -? -mR -) -^ -' -haystack -= -" -\ -r -\ -r -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -# -Same -as -above -but -with -adjacent -runs -of -just -line -feeds -. -[ -[ -test -] -] -name -= -" -start -- -no -- -split -- -adjacent -- -lf -" -regex -= -' -( -? -mR -) -^ -' -haystack -= -" -\ -n -\ -n -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -# -Tests -that -a -CRLF -- -aware -' -' -assertion -does -not -split -a -line -terminator -. -[ -[ -test -] -] -name -= -" -end -- -no -- -split -" -regex -= -' -( -? -mR -) -' -haystack -= -" -abc -\ -r -\ -ndef -\ -r -\ -nxyz -" -matches -= -[ -[ -3 -3 -] -[ -8 -8 -] -[ -13 -13 -] -] -# -Same -as -above -but -with -adjacent -runs -of -line -terminators -. -[ -[ -test -] -] -name -= -" -end -- -no -- -split -- -adjacent -" -regex -= -' -( -? -mR -) -' -haystack -= -" -\ -r -\ -n -\ -r -\ -n -\ -r -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -[ -4 -4 -] -[ -6 -6 -] -] -# -Same -as -above -but -with -adjacent -runs -of -just -carriage -returns -. -[ -[ -test -] -] -name -= -" -end -- -no -- -split -- -adjacent -- -cr -" -regex -= -' -( -? -mR -) -' -haystack -= -" -\ -r -\ -r -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -# -Same -as -above -but -with -adjacent -runs -of -just -line -feeds -. -[ -[ -test -] -] -name -= -" -end -- -no -- -split -- -adjacent -- -lf -" -regex -= -' -( -? -mR -) -' -haystack -= -" -\ -n -\ -n -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -# -Tests -that -' -. -' -does -not -match -either -\ -r -or -\ -n -when -CRLF -mode -is -enabled -. -Note -# -that -this -doesn -' -t -require -multi -- -line -mode -to -be -enabled -. -[ -[ -test -] -] -name -= -" -dot -- -no -- -crlf -" -regex -= -' -( -? -R -) -. -' -haystack -= -" -\ -r -\ -n -\ -r -\ -n -\ -r -\ -n -" -matches -= -[ -] -# -This -is -a -test -that -caught -a -bug -in -the -one -- -pass -DFA -where -it -( -amazingly -) -was -# -using -' -is_end_lf -' -instead -of -' -is_end_crlf -' -here -. -It -was -probably -a -copy -& -# -paste -bug -. -We -insert -an -empty -capture -group -here -because -it -provokes -the -meta -# -regex -engine -to -first -find -a -match -and -then -trip -over -a -panic -because -the -# -one -- -pass -DFA -erroneously -says -there -is -no -match -. -[ -[ -test -] -] -name -= -" -onepass -- -wrong -- -crlf -- -with -- -capture -" -regex -= -' -( -? -Rm -: -( -) -. -) -' -haystack -= -" -ZZ -\ -r -" -matches -= -[ -[ -[ -1 -2 -] -[ -1 -1 -] -] -] -# -This -is -like -onepass -- -wrong -- -crlf -- -with -- -capture -above -except -it -sets -up -the -# -test -so -that -it -can -be -run -by -the -one -- -pass -DFA -directly -. -( -i -. -e -. -Make -it -# -anchored -and -start -the -search -at -the -right -place -. -) -[ -[ -test -] -] -name -= -" -onepass -- -wrong -- -crlf -- -anchored -" -regex -= -' -( -? -Rm -: -. -) -' -haystack -= -" -ZZ -\ -r -" -matches -= -[ -[ -1 -2 -] -] -anchored -= -true -bounds -= -[ -1 -3 -] diff --git a/third_party/rust/regex/testdata/earliest.toml b/third_party/rust/regex/testdata/earliest.toml deleted file mode 100644 index 04977afe6728d..0000000000000 --- a/third_party/rust/regex/testdata/earliest.toml +++ /dev/null @@ -1,324 +0,0 @@ -[ -[ -test -] -] -name -= -" -no -- -greedy -- -100 -" -regex -= -' -a -+ -' -haystack -= -" -aaa -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -[ -2 -3 -] -] -search -- -kind -= -" -earliest -" -[ -[ -test -] -] -name -= -" -no -- -greedy -- -200 -" -regex -= -' -abc -+ -' -haystack -= -" -zzzabccc -" -matches -= -[ -[ -3 -6 -] -] -search -- -kind -= -" -earliest -" -[ -[ -test -] -] -name -= -" -is -- -ungreedy -" -regex -= -' -a -+ -? -' -haystack -= -" -aaa -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -[ -2 -3 -] -] -search -- -kind -= -" -earliest -" -[ -[ -test -] -] -name -= -" -look -- -start -- -test -" -regex -= -' -^ -( -abc -| -a -) -' -haystack -= -" -abc -" -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -search -- -kind -= -" -earliest -" -[ -[ -test -] -] -name -= -" -look -- -end -- -test -" -regex -= -' -( -abc -| -a -) -' -haystack -= -" -abc -" -matches -= -[ -[ -[ -0 -3 -] -[ -0 -3 -] -] -] -search -- -kind -= -" -earliest -" -[ -[ -test -] -] -name -= -" -no -- -leftmost -- -first -- -100 -" -regex -= -' -abc -| -a -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -1 -] -] -search -- -kind -= -" -earliest -" -[ -[ -test -] -] -name -= -" -no -- -leftmost -- -first -- -200 -" -regex -= -' -aba -| -a -' -haystack -= -" -aba -" -matches -= -[ -[ -0 -1 -] -[ -2 -3 -] -] -search -- -kind -= -" -earliest -" diff --git a/third_party/rust/regex/testdata/empty.toml b/third_party/rust/regex/testdata/empty.toml deleted file mode 100644 index b3372da88d57b..0000000000000 --- a/third_party/rust/regex/testdata/empty.toml +++ /dev/null @@ -1,765 +0,0 @@ -[ -[ -test -] -] -name -= -" -100 -" -regex -= -" -| -b -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -110 -" -regex -= -" -b -| -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -120 -" -regex -= -" -| -z -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -130 -" -regex -= -" -z -| -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -200 -" -regex -= -" -| -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -210 -" -regex -= -" -| -| -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -220 -" -regex -= -" -| -| -b -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -230 -" -regex -= -" -b -| -| -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -240 -" -regex -= -" -| -| -z -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -300 -" -regex -= -" -( -? -: -) -| -b -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -310 -" -regex -= -" -b -| -( -? -: -) -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -320 -" -regex -= -" -( -? -: -| -) -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -330 -" -regex -= -" -( -? -: -| -) -| -z -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -400 -" -regex -= -" -a -( -? -: -) -| -b -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -] -[ -[ -test -] -] -name -= -" -500 -" -regex -= -" -" -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -510 -" -regex -= -" -" -haystack -= -" -a -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -[ -[ -test -] -] -name -= -" -520 -" -regex -= -" -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -600 -" -regex -= -' -( -? -: -| -a -) -* -' -haystack -= -" -aaa -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -610 -" -regex -= -' -( -? -: -| -a -) -+ -' -haystack -= -" -aaa -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] diff --git a/third_party/rust/regex/testdata/expensive.toml b/third_party/rust/regex/testdata/expensive.toml deleted file mode 100644 index c6b03e91eec91..0000000000000 --- a/third_party/rust/regex/testdata/expensive.toml +++ /dev/null @@ -1,256 +0,0 @@ -# -This -file -represent -tests -that -may -be -expensive -to -run -on -some -regex -engines -. -# -For -example -tests -that -build -a -full -DFA -ahead -of -time -and -minimize -it -can -# -take -a -horrendously -long -time -on -regexes -that -are -large -( -or -result -in -an -# -explosion -in -the -number -of -states -) -. -We -group -these -tests -together -so -that -# -such -engines -can -simply -skip -these -tests -. -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -98 -[ -[ -test -] -] -name -= -" -regression -- -many -- -repeat -- -no -- -stack -- -overflow -" -regex -= -' -^ -. -{ -1 -2500 -} -' -haystack -= -" -a -" -matches -= -[ -[ -0 -1 -] -] -# -This -test -is -meant -to -blow -the -bounded -backtracker -' -s -visited -capacity -. -In -# -order -to -do -that -we -need -a -somewhat -sizeable -regex -. -The -purpose -of -this -# -is -to -make -sure -there -' -s -at -least -one -test -that -exercises -this -path -in -the -# -backtracker -. -All -other -tests -( -at -time -of -writing -) -are -small -enough -that -the -# -backtracker -can -handle -them -fine -. -[ -[ -test -] -] -name -= -" -backtrack -- -blow -- -visited -- -capacity -" -regex -= -' -\ -pL -{ -50 -} -' -haystack -= -" -abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyZZ -" -matches -= -[ -[ -0 -50 -] -[ -50 -100 -] -[ -100 -150 -] -] diff --git a/third_party/rust/regex/testdata/flags.toml b/third_party/rust/regex/testdata/flags.toml deleted file mode 100644 index 1cc26e1272c2e..0000000000000 --- a/third_party/rust/regex/testdata/flags.toml +++ /dev/null @@ -1,432 +0,0 @@ -[ -[ -test -] -] -name -= -" -1 -" -regex -= -" -( -? -i -) -abc -" -haystack -= -" -ABC -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -2 -" -regex -= -" -( -? -i -) -a -( -? -- -i -) -bc -" -haystack -= -" -Abc -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -3 -" -regex -= -" -( -? -i -) -a -( -? -- -i -) -bc -" -haystack -= -" -ABC -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -4 -" -regex -= -" -( -? -is -) -a -. -" -haystack -= -" -A -\ -n -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -5 -" -regex -= -" -( -? -is -) -a -. -( -? -- -is -) -a -. -" -haystack -= -" -A -\ -nab -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -6 -" -regex -= -" -( -? -is -) -a -. -( -? -- -is -) -a -. -" -haystack -= -" -A -\ -na -\ -n -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -7 -" -regex -= -" -( -? -is -) -a -. -( -? -- -is -: -a -. -) -? -" -haystack -= -" -A -\ -na -\ -n -" -matches -= -[ -[ -0 -2 -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -8 -" -regex -= -" -( -? -U -) -a -+ -" -haystack -= -" -aa -" -matches -= -[ -[ -0 -1 -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -9 -" -regex -= -" -( -? -U -) -a -+ -? -" -haystack -= -" -aa -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -10 -" -regex -= -" -( -? -U -) -( -? -- -U -) -a -+ -" -haystack -= -" -aa -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -11 -" -regex -= -' -( -? -m -) -( -? -: -^ -\ -d -+ -\ -n -? -) -+ -' -haystack -= -" -123 -\ -n456 -\ -n789 -" -matches -= -[ -[ -0 -11 -] -] -unicode -= -false diff --git a/third_party/rust/regex/testdata/fowler/basic.toml b/third_party/rust/regex/testdata/fowler/basic.toml deleted file mode 100644 index af10d3c6fc7bc..0000000000000 --- a/third_party/rust/regex/testdata/fowler/basic.toml +++ /dev/null @@ -1,12846 +0,0 @@ -# -! -! -! -DO -NOT -EDIT -! -! -! -# -Automatically -generated -by -' -regex -- -cli -generate -fowler -' -. -# -Numbers -in -the -test -names -correspond -to -the -line -number -of -the -test -from -# -the -original -dat -file -. -[ -[ -test -] -] -name -= -" -basic3 -" -regex -= -' -' -' -abracadabra -' -' -' -haystack -= -' -' -' -abracadabracadabra -' -' -' -matches -= -[ -[ -[ -7 -18 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic4 -" -regex -= -' -' -' -a -. -. -. -b -' -' -' -haystack -= -' -' -' -abababbb -' -' -' -matches -= -[ -[ -[ -2 -7 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic5 -" -regex -= -' -' -' -XXXXXX -' -' -' -haystack -= -' -' -' -. -. -XXXXXX -' -' -' -matches -= -[ -[ -[ -2 -8 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic6 -" -regex -= -' -' -' -\ -) -' -' -' -haystack -= -' -' -' -( -) -' -' -' -matches -= -[ -[ -[ -1 -2 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic7 -" -regex -= -' -' -' -a -] -' -' -' -haystack -= -' -' -' -a -] -a -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic9 -" -regex -= -' -' -' -\ -} -' -' -' -haystack -= -' -' -' -} -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic10 -" -regex -= -' -' -' -\ -] -' -' -' -haystack -= -' -' -' -] -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic12 -" -regex -= -' -' -' -] -' -' -' -haystack -= -' -' -' -] -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic15 -" -regex -= -' -' -' -^ -a -' -' -' -haystack -= -' -' -' -ax -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic16 -" -regex -= -' -' -' -\ -^ -a -' -' -' -haystack -= -' -' -' -a -^ -a -' -' -' -matches -= -[ -[ -[ -1 -3 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic17 -" -regex -= -' -' -' -a -\ -^ -' -' -' -haystack -= -' -' -' -a -^ -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic18 -" -regex -= -' -' -' -a -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -1 -2 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic19 -" -regex -= -' -' -' -a -\ -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic20 -" -regex -= -' -' -' -^ -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -[ -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic21 -" -regex -= -' -' -' -^ -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -[ -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic22 -" -regex -= -' -' -' -a -( -) -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -1 -2 -] -[ -2 -2 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic23 -" -regex -= -' -' -' -a -* -( -^ -a -) -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic24 -" -regex -= -' -' -' -( -. -. -) -* -( -. -. -. -) -* -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic25 -" -regex -= -' -' -' -( -. -. -) -* -( -. -. -. -) -* -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -2 -4 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic26 -" -regex -= -' -' -' -( -ab -| -a -) -( -bc -| -c -) -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -0 -2 -] -[ -2 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic27 -" -regex -= -' -' -' -( -ab -) -c -| -abc -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic28 -" -regex -= -' -' -' -a -{ -0 -} -b -' -' -' -haystack -= -' -' -' -ab -' -' -' -matches -= -[ -[ -[ -1 -2 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic29 -" -regex -= -' -' -' -( -a -* -) -( -b -? -) -( -b -+ -) -b -{ -3 -} -' -' -' -haystack -= -' -' -' -aaabbbbbbb -' -' -' -matches -= -[ -[ -[ -0 -10 -] -[ -0 -3 -] -[ -3 -4 -] -[ -4 -7 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic30 -" -regex -= -' -' -' -( -a -* -) -( -b -{ -0 -1 -} -) -( -b -{ -1 -} -) -b -{ -3 -} -' -' -' -haystack -= -' -' -' -aaabbbbbbb -' -' -' -matches -= -[ -[ -[ -0 -10 -] -[ -0 -3 -] -[ -3 -4 -] -[ -4 -7 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic32 -" -regex -= -' -' -' -( -( -a -| -a -) -| -a -) -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic33 -" -regex -= -' -' -' -( -a -* -) -( -a -| -aa -) -' -' -' -haystack -= -' -' -' -aaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -3 -] -[ -3 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic34 -" -regex -= -' -' -' -a -* -( -a -. -| -aa -) -' -' -' -haystack -= -' -' -' -aaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -2 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic35 -" -regex -= -' -' -' -a -( -b -) -| -c -( -d -) -| -a -( -e -) -f -' -' -' -haystack -= -' -' -' -aef -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -] -[ -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic36 -" -regex -= -' -' -' -( -a -| -b -) -? -. -* -' -' -' -haystack -= -' -' -' -b -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic37 -" -regex -= -' -' -' -( -a -| -b -) -c -| -a -( -b -| -c -) -' -' -' -haystack -= -' -' -' -ac -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -1 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic38 -" -regex -= -' -' -' -( -a -| -b -) -c -| -a -( -b -| -c -) -' -' -' -haystack -= -' -' -' -ab -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic39 -" -regex -= -' -' -' -( -a -| -b -) -* -c -| -( -a -| -ab -) -* -c -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -1 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic40 -" -regex -= -' -' -' -( -a -| -b -) -* -c -| -( -a -| -ab -) -* -c -' -' -' -haystack -= -' -' -' -xc -' -' -' -matches -= -[ -[ -[ -1 -2 -] -[ -] -[ -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic41 -" -regex -= -' -' -' -( -. -a -| -. -b -) -. -* -| -. -* -( -. -a -| -. -b -) -' -' -' -haystack -= -' -' -' -xa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic42 -" -regex -= -' -' -' -a -? -( -ab -| -ba -) -ab -' -' -' -haystack -= -' -' -' -abab -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic43 -" -regex -= -' -' -' -a -? -( -ac -{ -0 -} -b -| -ba -) -ab -' -' -' -haystack -= -' -' -' -abab -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic44 -" -regex -= -' -' -' -ab -| -abab -' -' -' -haystack -= -' -' -' -abbabab -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic45 -" -regex -= -' -' -' -aba -| -bab -| -bba -' -' -' -haystack -= -' -' -' -baaabbbaba -' -' -' -matches -= -[ -[ -[ -5 -8 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic46 -" -regex -= -' -' -' -aba -| -bab -' -' -' -haystack -= -' -' -' -baaabbbaba -' -' -' -matches -= -[ -[ -[ -6 -9 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic47 -" -regex -= -' -' -' -( -aa -| -aaa -) -* -| -( -a -| -aaaaa -) -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic48 -" -regex -= -' -' -' -( -a -. -| -. -a -. -) -* -| -( -a -| -. -a -. -. -. -) -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic49 -" -regex -= -' -' -' -ab -| -a -' -' -' -haystack -= -' -' -' -xabc -' -' -' -matches -= -[ -[ -[ -1 -3 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic50 -" -regex -= -' -' -' -ab -| -a -' -' -' -haystack -= -' -' -' -xxabc -' -' -' -matches -= -[ -[ -[ -2 -4 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic51 -" -regex -= -' -' -' -( -Ab -| -cD -) -* -' -' -' -haystack -= -' -' -' -aBcD -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -2 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -case -- -insensitive -= -true -[ -[ -test -] -] -name -= -" -basic52 -" -regex -= -' -' -' -[ -^ -- -] -' -' -' -haystack -= -' -' -' -- -- -a -' -' -' -matches -= -[ -[ -[ -2 -3 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic53 -" -regex -= -' -' -' -[ -a -- -] -* -' -' -' -haystack -= -' -' -' -- -- -a -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic54 -" -regex -= -' -' -' -[ -a -- -m -- -] -* -' -' -' -haystack -= -' -' -' -- -- -amoma -- -- -' -' -' -matches -= -[ -[ -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic55 -" -regex -= -' -' -' -: -: -: -1 -: -: -: -0 -: -| -: -: -: -1 -: -1 -: -0 -: -' -' -' -haystack -= -' -' -' -: -: -: -0 -: -: -: -1 -: -: -: -1 -: -: -: -0 -: -' -' -' -matches -= -[ -[ -[ -8 -17 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic56 -" -regex -= -' -' -' -: -: -: -1 -: -: -: -0 -: -| -: -: -: -1 -: -1 -: -1 -: -' -' -' -haystack -= -' -' -' -: -: -: -0 -: -: -: -1 -: -: -: -1 -: -: -: -0 -: -' -' -' -matches -= -[ -[ -[ -8 -17 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic57 -" -regex -= -' -' -' -[ -[ -: -upper -: -] -] -' -' -' -haystack -= -' -' -' -A -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic58 -" -regex -= -' -' -' -[ -[ -: -lower -: -] -] -+ -' -' -' -haystack -= -' -' -' -az -{ -' -' -' -matches -= -[ -[ -[ -1 -3 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic59 -" -regex -= -' -' -' -[ -[ -: -upper -: -] -] -+ -' -' -' -haystack -= -' -' -' -AZ -[ -' -' -' -matches -= -[ -[ -[ -1 -3 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic65 -" -regex -= -' -' -' -\ -n -' -' -' -haystack -= -' -' -' -\ -n -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -unescape -= -true -[ -[ -test -] -] -name -= -" -basic66 -" -regex -= -' -' -' -\ -n -' -' -' -haystack -= -' -' -' -\ -n -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -unescape -= -true -[ -[ -test -] -] -name -= -" -basic67 -" -regex -= -' -' -' -[ -^ -a -] -' -' -' -haystack -= -' -' -' -\ -n -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -unescape -= -true -[ -[ -test -] -] -name -= -" -basic68 -" -regex -= -' -' -' -\ -na -' -' -' -haystack -= -' -' -' -\ -na -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -unescape -= -true -[ -[ -test -] -] -name -= -" -basic69 -" -regex -= -' -' -' -( -a -) -( -b -) -( -c -) -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -0 -1 -] -[ -1 -2 -] -[ -2 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic70 -" -regex -= -' -' -' -xxx -' -' -' -haystack -= -' -' -' -xxx -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -basic72 -" -regex -= -' -' -' -( -? -: -^ -| -[ -( -; -] -) -( -? -: -( -? -: -( -? -: -[ -Ff -] -eb -[ -^ -] -* -* -| -0 -* -2 -/ -| -\ -* -* -/ -? -) -0 -* -[ -6 -- -7 -] -) -) -( -? -: -[ -^ -0 -- -9 -] -| -) -' -' -' -haystack -= -' -' -' -feb -6 -' -' -' -matches -= -[ -[ -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -basic74 -" -regex -= -' -' -' -( -? -: -^ -| -[ -( -; -] -) -( -? -: -( -? -: -( -? -: -[ -Ff -] -eb -[ -^ -] -* -* -| -0 -* -2 -/ -| -\ -* -* -/ -? -) -0 -* -[ -6 -- -7 -] -) -) -( -? -: -[ -^ -0 -- -9 -] -| -) -' -' -' -haystack -= -' -' -' -2 -/ -7 -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -basic76 -" -regex -= -' -' -' -( -? -: -^ -| -[ -( -; -] -) -( -? -: -( -? -: -( -? -: -[ -Ff -] -eb -[ -^ -] -* -* -| -0 -* -2 -/ -| -\ -* -* -/ -? -) -0 -* -[ -6 -- -7 -] -) -) -( -? -: -[ -^ -0 -- -9 -] -| -) -' -' -' -haystack -= -' -' -' -feb -1 -Feb -6 -' -' -' -matches -= -[ -[ -[ -5 -11 -] -] -] -match -- -limit -= -1 -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -basic78 -" -regex -= -' -' -' -( -( -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -x -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -basic80 -" -regex -= -' -' -' -( -( -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -( -? -: -x -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -) -* -' -' -' -haystack -= -' -' -' -xx -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -1 -2 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic81 -" -regex -= -' -' -' -a -? -( -ab -| -ba -) -* -' -' -' -haystack -= -' -' -' -ababababababababababababababababababababababababababababababababababababababababa -' -' -' -matches -= -[ -[ -[ -0 -81 -] -[ -79 -81 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic82 -" -regex -= -' -' -' -abaa -| -abbaa -| -abbbaa -| -abbbbaa -' -' -' -haystack -= -' -' -' -ababbabbbabbbabbbbabbbbaa -' -' -' -matches -= -[ -[ -[ -18 -25 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic83 -" -regex -= -' -' -' -abaa -| -abbaa -| -abbbaa -| -abbbbaa -' -' -' -haystack -= -' -' -' -ababbabbbabbbabbbbabaa -' -' -' -matches -= -[ -[ -[ -18 -22 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic84 -" -regex -= -' -' -' -aaac -| -aabc -| -abac -| -abbc -| -baac -| -babc -| -bbac -| -bbbc -' -' -' -haystack -= -' -' -' -baaabbbabac -' -' -' -matches -= -[ -[ -[ -7 -11 -] -] -] -match -- -limit -= -1 -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -basic86 -" -regex -= -' -' -' -. -* -' -' -' -haystack -= -' -' -' -\ -x01 -\ -x7f -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -unescape -= -true -[ -[ -test -] -] -name -= -" -basic87 -" -regex -= -' -' -' -aaaa -| -bbbb -| -cccc -| -ddddd -| -eeeeee -| -fffffff -| -gggg -| -hhhh -| -iiiii -| -jjjjj -| -kkkkk -| -llll -' -' -' -haystack -= -' -' -' -XaaaXbbbXcccXdddXeeeXfffXgggXhhhXiiiXjjjXkkkXlllXcbaXaaaa -' -' -' -matches -= -[ -[ -[ -53 -57 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic89 -" -regex -= -' -' -' -a -* -a -* -a -* -a -* -a -* -b -' -' -' -haystack -= -' -' -' -aaaaaaaaab -' -' -' -matches -= -[ -[ -[ -0 -10 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic90 -" -regex -= -' -' -' -^ -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -[ -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic91 -" -regex -= -' -' -' -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -[ -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic92 -" -regex -= -' -' -' -^ -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -[ -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic93 -" -regex -= -' -' -' -^ -a -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic94 -" -regex -= -' -' -' -abc -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic95 -" -regex -= -' -' -' -abc -' -' -' -haystack -= -' -' -' -xabcy -' -' -' -matches -= -[ -[ -[ -1 -4 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic96 -" -regex -= -' -' -' -abc -' -' -' -haystack -= -' -' -' -ababc -' -' -' -matches -= -[ -[ -[ -2 -5 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic97 -" -regex -= -' -' -' -ab -* -c -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic98 -" -regex -= -' -' -' -ab -* -bc -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic99 -" -regex -= -' -' -' -ab -* -bc -' -' -' -haystack -= -' -' -' -abbc -' -' -' -matches -= -[ -[ -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic100 -" -regex -= -' -' -' -ab -* -bc -' -' -' -haystack -= -' -' -' -abbbbc -' -' -' -matches -= -[ -[ -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic101 -" -regex -= -' -' -' -ab -+ -bc -' -' -' -haystack -= -' -' -' -abbc -' -' -' -matches -= -[ -[ -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic102 -" -regex -= -' -' -' -ab -+ -bc -' -' -' -haystack -= -' -' -' -abbbbc -' -' -' -matches -= -[ -[ -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic103 -" -regex -= -' -' -' -ab -? -bc -' -' -' -haystack -= -' -' -' -abbc -' -' -' -matches -= -[ -[ -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic104 -" -regex -= -' -' -' -ab -? -bc -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic105 -" -regex -= -' -' -' -ab -? -c -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic106 -" -regex -= -' -' -' -^ -abc -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic107 -" -regex -= -' -' -' -^ -abc -' -' -' -haystack -= -' -' -' -abcc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic108 -" -regex -= -' -' -' -abc -' -' -' -haystack -= -' -' -' -aabc -' -' -' -matches -= -[ -[ -[ -1 -4 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic109 -" -regex -= -' -' -' -^ -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic110 -" -regex -= -' -' -' -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -3 -3 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic111 -" -regex -= -' -' -' -a -. -c -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic112 -" -regex -= -' -' -' -a -. -c -' -' -' -haystack -= -' -' -' -axc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic113 -" -regex -= -' -' -' -a -. -* -c -' -' -' -haystack -= -' -' -' -axyzc -' -' -' -matches -= -[ -[ -[ -0 -5 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic114 -" -regex -= -' -' -' -a -[ -bc -] -d -' -' -' -haystack -= -' -' -' -abd -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic115 -" -regex -= -' -' -' -a -[ -b -- -d -] -e -' -' -' -haystack -= -' -' -' -ace -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic116 -" -regex -= -' -' -' -a -[ -b -- -d -] -' -' -' -haystack -= -' -' -' -aac -' -' -' -matches -= -[ -[ -[ -1 -3 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic117 -" -regex -= -' -' -' -a -[ -- -b -] -' -' -' -haystack -= -' -' -' -a -- -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic118 -" -regex -= -' -' -' -a -[ -b -- -] -' -' -' -haystack -= -' -' -' -a -- -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic119 -" -regex -= -' -' -' -a -] -' -' -' -haystack -= -' -' -' -a -] -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic120 -" -regex -= -' -' -' -a -[ -] -] -b -' -' -' -haystack -= -' -' -' -a -] -b -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic121 -" -regex -= -' -' -' -a -[ -^ -bc -] -d -' -' -' -haystack -= -' -' -' -aed -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic122 -" -regex -= -' -' -' -a -[ -^ -- -b -] -c -' -' -' -haystack -= -' -' -' -adc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic123 -" -regex -= -' -' -' -a -[ -^ -] -b -] -c -' -' -' -haystack -= -' -' -' -adc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic124 -" -regex -= -' -' -' -ab -| -cd -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic125 -" -regex -= -' -' -' -ab -| -cd -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic126 -" -regex -= -' -' -' -a -\ -( -b -' -' -' -haystack -= -' -' -' -a -( -b -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic127 -" -regex -= -' -' -' -a -\ -( -* -b -' -' -' -haystack -= -' -' -' -ab -' -' -' -matches -= -[ -[ -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic128 -" -regex -= -' -' -' -a -\ -( -* -b -' -' -' -haystack -= -' -' -' -a -( -( -b -' -' -' -matches -= -[ -[ -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic129 -" -regex -= -' -' -' -( -( -a -) -) -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic130 -" -regex -= -' -' -' -( -a -) -b -( -c -) -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -0 -1 -] -[ -2 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic131 -" -regex -= -' -' -' -a -+ -b -+ -c -' -' -' -haystack -= -' -' -' -aabbabc -' -' -' -matches -= -[ -[ -[ -4 -7 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic132 -" -regex -= -' -' -' -a -* -' -' -' -haystack -= -' -' -' -aaa -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic133 -" -regex -= -' -' -' -( -a -* -) -* -' -' -' -haystack -= -' -' -' -- -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic134 -" -regex -= -' -' -' -( -a -* -) -+ -' -' -' -haystack -= -' -' -' -- -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic135 -" -regex -= -' -' -' -( -a -* -| -b -) -* -' -' -' -haystack -= -' -' -' -- -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic136 -" -regex -= -' -' -' -( -a -+ -| -b -) -* -' -' -' -haystack -= -' -' -' -ab -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic137 -" -regex -= -' -' -' -( -a -+ -| -b -) -+ -' -' -' -haystack -= -' -' -' -ab -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic138 -" -regex -= -' -' -' -( -a -+ -| -b -) -? -' -' -' -haystack -= -' -' -' -ab -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic139 -" -regex -= -' -' -' -[ -^ -ab -] -* -' -' -' -haystack -= -' -' -' -cde -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic140 -" -regex -= -' -' -' -( -^ -) -* -' -' -' -haystack -= -' -' -' -- -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic141 -" -regex -= -' -' -' -a -* -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -[ -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic142 -" -regex -= -' -' -' -( -[ -abc -] -) -* -d -' -' -' -haystack -= -' -' -' -abbbcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic143 -" -regex -= -' -' -' -( -[ -abc -] -) -* -bcd -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic144 -" -regex -= -' -' -' -a -| -b -| -c -| -d -| -e -' -' -' -haystack -= -' -' -' -e -' -' -' -matches -= -[ -[ -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic145 -" -regex -= -' -' -' -( -a -| -b -| -c -| -d -| -e -) -f -' -' -' -haystack -= -' -' -' -ef -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic146 -" -regex -= -' -' -' -( -( -a -* -| -b -) -) -* -' -' -' -haystack -= -' -' -' -- -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic147 -" -regex -= -' -' -' -abcd -* -efg -' -' -' -haystack -= -' -' -' -abcdefg -' -' -' -matches -= -[ -[ -[ -0 -7 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic148 -" -regex -= -' -' -' -ab -* -' -' -' -haystack -= -' -' -' -xabyabbbz -' -' -' -matches -= -[ -[ -[ -1 -3 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic149 -" -regex -= -' -' -' -ab -* -' -' -' -haystack -= -' -' -' -xayabbbz -' -' -' -matches -= -[ -[ -[ -1 -2 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic150 -" -regex -= -' -' -' -( -ab -| -cd -) -e -' -' -' -haystack -= -' -' -' -abcde -' -' -' -matches -= -[ -[ -[ -2 -5 -] -[ -2 -4 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic151 -" -regex -= -' -' -' -[ -abhgefdc -] -ij -' -' -' -haystack -= -' -' -' -hij -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic152 -" -regex -= -' -' -' -( -a -| -b -) -c -* -d -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -1 -4 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic153 -" -regex -= -' -' -' -( -ab -| -ab -* -) -bc -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic154 -" -regex -= -' -' -' -a -( -[ -bc -] -* -) -c -* -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -1 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic155 -" -regex -= -' -' -' -a -( -[ -bc -] -* -) -( -c -* -d -) -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -1 -3 -] -[ -3 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic156 -" -regex -= -' -' -' -a -( -[ -bc -] -+ -) -( -c -* -d -) -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -1 -3 -] -[ -3 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic157 -" -regex -= -' -' -' -a -( -[ -bc -] -* -) -( -c -+ -d -) -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -1 -2 -] -[ -2 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic158 -" -regex -= -' -' -' -a -[ -bcd -] -* -dcdcde -' -' -' -haystack -= -' -' -' -adcdcde -' -' -' -matches -= -[ -[ -[ -0 -7 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic159 -" -regex -= -' -' -' -( -ab -| -a -) -b -* -c -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -0 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic160 -" -regex -= -' -' -' -( -( -a -) -( -b -) -c -) -( -d -) -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -3 -] -[ -0 -1 -] -[ -1 -2 -] -[ -3 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic161 -" -regex -= -' -' -' -[ -A -- -Za -- -z_ -] -[ -A -- -Za -- -z0 -- -9_ -] -* -' -' -' -haystack -= -' -' -' -alpha -' -' -' -matches -= -[ -[ -[ -0 -5 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic162 -" -regex -= -' -' -' -^ -a -( -bc -+ -| -b -[ -eh -] -) -g -| -. -h -' -' -' -haystack -= -' -' -' -abh -' -' -' -matches -= -[ -[ -[ -1 -3 -] -[ -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic163 -" -regex -= -' -' -' -( -bc -+ -d -| -ef -* -g -. -| -h -? -i -( -j -| -k -) -) -' -' -' -haystack -= -' -' -' -effgz -' -' -' -matches -= -[ -[ -[ -0 -5 -] -[ -0 -5 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic164 -" -regex -= -' -' -' -( -bc -+ -d -| -ef -* -g -. -| -h -? -i -( -j -| -k -) -) -' -' -' -haystack -= -' -' -' -ij -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic165 -" -regex -= -' -' -' -( -bc -+ -d -| -ef -* -g -. -| -h -? -i -( -j -| -k -) -) -' -' -' -haystack -= -' -' -' -reffgz -' -' -' -matches -= -[ -[ -[ -1 -6 -] -[ -1 -6 -] -[ -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic166 -" -regex -= -' -' -' -( -( -( -( -( -( -( -( -( -a -) -) -) -) -) -) -) -) -) -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic167 -" -regex -= -' -' -' -multiple -words -' -' -' -haystack -= -' -' -' -multiple -words -yeah -' -' -' -matches -= -[ -[ -[ -0 -14 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic168 -" -regex -= -' -' -' -( -. -* -) -c -( -. -* -) -' -' -' -haystack -= -' -' -' -abcde -' -' -' -matches -= -[ -[ -[ -0 -5 -] -[ -0 -2 -] -[ -3 -5 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic169 -" -regex -= -' -' -' -abcd -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic170 -" -regex -= -' -' -' -a -( -bc -) -d -' -' -' -haystack -= -' -' -' -abcd -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -1 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic171 -" -regex -= -' -' -' -a -[ -\ -x01 -- -\ -x03 -] -? -c -' -' -' -haystack -= -' -' -' -a -\ -x02c -' -' -' -matches -= -[ -[ -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -unescape -= -true -[ -[ -test -] -] -name -= -" -basic172 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Qaddafi -' -' -' -matches -= -[ -[ -[ -0 -15 -] -[ -] -[ -10 -12 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic173 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Mo -' -ammar -Gadhafi -' -' -' -matches -= -[ -[ -[ -0 -16 -] -[ -] -[ -11 -13 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic174 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Kaddafi -' -' -' -matches -= -[ -[ -[ -0 -15 -] -[ -] -[ -10 -12 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic175 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Qadhafi -' -' -' -matches -= -[ -[ -[ -0 -15 -] -[ -] -[ -10 -12 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic176 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Gadafi -' -' -' -matches -= -[ -[ -[ -0 -14 -] -[ -] -[ -10 -11 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic177 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Mu -' -ammar -Qadafi -' -' -' -matches -= -[ -[ -[ -0 -15 -] -[ -] -[ -11 -12 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic178 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Moamar -Gaddafi -' -' -' -matches -= -[ -[ -[ -0 -14 -] -[ -] -[ -9 -11 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic179 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Mu -' -ammar -Qadhdhafi -' -' -' -matches -= -[ -[ -[ -0 -18 -] -[ -] -[ -13 -15 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic180 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Khaddafi -' -' -' -matches -= -[ -[ -[ -0 -16 -] -[ -] -[ -11 -13 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic181 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Ghaddafy -' -' -' -matches -= -[ -[ -[ -0 -16 -] -[ -] -[ -11 -13 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic182 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Ghadafi -' -' -' -matches -= -[ -[ -[ -0 -15 -] -[ -] -[ -11 -12 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic183 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Ghaddafi -' -' -' -matches -= -[ -[ -[ -0 -16 -] -[ -] -[ -11 -13 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic184 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muamar -Kaddafi -' -' -' -matches -= -[ -[ -[ -0 -14 -] -[ -] -[ -9 -11 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic185 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Quathafi -' -' -' -matches -= -[ -[ -[ -0 -16 -] -[ -] -[ -11 -13 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic186 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Muammar -Gheddafi -' -' -' -matches -= -[ -[ -[ -0 -16 -] -[ -] -[ -11 -13 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic187 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Moammar -Khadafy -' -' -' -matches -= -[ -[ -[ -0 -15 -] -[ -] -[ -11 -12 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic188 -" -regex -= -' -' -' -M -[ -ou -] -' -? -am -+ -[ -ae -] -r -. -* -( -[ -AEae -] -l -[ -- -] -) -? -[ -GKQ -] -h -? -[ -aeu -] -+ -( -[ -dtz -] -[ -dhz -] -? -) -+ -af -[ -iy -] -' -' -' -haystack -= -' -' -' -Moammar -Qudhafi -' -' -' -matches -= -[ -[ -[ -0 -15 -] -[ -] -[ -10 -12 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic189 -" -regex -= -' -' -' -a -+ -( -b -| -c -) -* -d -+ -' -' -' -haystack -= -' -' -' -aabcdd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -3 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic190 -" -regex -= -' -' -' -^ -. -+ -' -' -' -haystack -= -' -' -' -vivi -' -' -' -matches -= -[ -[ -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic191 -" -regex -= -' -' -' -^ -( -. -+ -) -' -' -' -haystack -= -' -' -' -vivi -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic192 -" -regex -= -' -' -' -^ -( -[ -^ -! -. -] -+ -) -. -att -. -com -! -( -. -+ -) -' -' -' -haystack -= -' -' -' -gryphon -. -att -. -com -! -eby -' -' -' -matches -= -[ -[ -[ -0 -19 -] -[ -0 -7 -] -[ -16 -19 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic193 -" -regex -= -' -' -' -^ -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -' -' -' -haystack -= -' -' -' -bas -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -] -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic194 -" -regex -= -' -' -' -^ -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -' -' -' -haystack -= -' -' -' -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -4 -] -[ -4 -7 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic195 -" -regex -= -' -' -' -^ -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -' -' -' -haystack -= -' -' -' -foo -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -4 -] -[ -4 -7 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic196 -" -regex -= -' -' -' -^ -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -' -' -' -haystack -= -' -' -' -foo -! -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -11 -] -[ -4 -8 -] -[ -8 -11 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic197 -" -regex -= -' -' -' -( -( -foo -) -| -( -bar -) -) -! -bas -' -' -' -haystack -= -' -' -' -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -3 -] -[ -] -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic198 -" -regex -= -' -' -' -( -( -foo -) -| -( -bar -) -) -! -bas -' -' -' -haystack -= -' -' -' -foo -! -bar -! -bas -' -' -' -matches -= -[ -[ -[ -4 -11 -] -[ -4 -7 -] -[ -] -[ -4 -7 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic199 -" -regex -= -' -' -' -( -( -foo -) -| -( -bar -) -) -! -bas -' -' -' -haystack -= -' -' -' -foo -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -3 -] -[ -0 -3 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic200 -" -regex -= -' -' -' -( -( -foo -) -| -bar -) -! -bas -' -' -' -haystack -= -' -' -' -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -3 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic201 -" -regex -= -' -' -' -( -( -foo -) -| -bar -) -! -bas -' -' -' -haystack -= -' -' -' -foo -! -bar -! -bas -' -' -' -matches -= -[ -[ -[ -4 -11 -] -[ -4 -7 -] -[ -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic202 -" -regex -= -' -' -' -( -( -foo -) -| -bar -) -! -bas -' -' -' -haystack -= -' -' -' -foo -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -3 -] -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic203 -" -regex -= -' -' -' -( -foo -| -( -bar -) -) -! -bas -' -' -' -haystack -= -' -' -' -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -3 -] -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic204 -" -regex -= -' -' -' -( -foo -| -( -bar -) -) -! -bas -' -' -' -haystack -= -' -' -' -foo -! -bar -! -bas -' -' -' -matches -= -[ -[ -[ -4 -11 -] -[ -4 -7 -] -[ -4 -7 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic205 -" -regex -= -' -' -' -( -foo -| -( -bar -) -) -! -bas -' -' -' -haystack -= -' -' -' -foo -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -3 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic206 -" -regex -= -' -' -' -( -foo -| -bar -) -! -bas -' -' -' -haystack -= -' -' -' -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic207 -" -regex -= -' -' -' -( -foo -| -bar -) -! -bas -' -' -' -haystack -= -' -' -' -foo -! -bar -! -bas -' -' -' -matches -= -[ -[ -[ -4 -11 -] -[ -4 -7 -] -] -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -basic208 -" -regex -= -' -' -' -( -foo -| -bar -) -! -bas -' -' -' -haystack -= -' -' -' -foo -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic209 -" -regex -= -' -' -' -^ -( -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -| -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -) -' -' -' -haystack -= -' -' -' -foo -! -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -11 -] -[ -0 -11 -] -[ -] -[ -] -[ -4 -8 -] -[ -8 -11 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic210 -" -regex -= -' -' -' -^ -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -| -^ -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -' -' -' -haystack -= -' -' -' -bas -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -] -[ -0 -3 -] -[ -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic211 -" -regex -= -' -' -' -^ -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -| -^ -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -' -' -' -haystack -= -' -' -' -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -4 -] -[ -4 -7 -] -[ -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic212 -" -regex -= -' -' -' -^ -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -| -^ -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -' -' -' -haystack -= -' -' -' -foo -! -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -11 -] -[ -] -[ -] -[ -4 -8 -] -[ -8 -11 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic213 -" -regex -= -' -' -' -^ -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -| -^ -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -' -' -' -haystack -= -' -' -' -foo -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -4 -] -[ -4 -7 -] -[ -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic214 -" -regex -= -' -' -' -^ -( -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -| -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -) -' -' -' -haystack -= -' -' -' -bas -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -0 -3 -] -[ -] -[ -0 -3 -] -[ -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic215 -" -regex -= -' -' -' -^ -( -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -| -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -) -' -' -' -haystack -= -' -' -' -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -7 -] -[ -0 -4 -] -[ -4 -7 -] -[ -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic216 -" -regex -= -' -' -' -^ -( -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -| -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -) -' -' -' -haystack -= -' -' -' -foo -! -bar -! -bas -' -' -' -matches -= -[ -[ -[ -0 -11 -] -[ -0 -11 -] -[ -] -[ -] -[ -4 -8 -] -[ -8 -11 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic217 -" -regex -= -' -' -' -^ -( -( -[ -^ -! -] -+ -! -) -? -( -[ -^ -! -] -+ -) -| -. -+ -! -( -[ -^ -! -] -+ -! -) -( -[ -^ -! -] -+ -) -) -' -' -' -haystack -= -' -' -' -foo -! -bas -' -' -' -matches -= -[ -[ -[ -0 -7 -] -[ -0 -7 -] -[ -0 -4 -] -[ -4 -7 -] -[ -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic218 -" -regex -= -' -' -' -. -* -( -/ -XXX -) -. -* -' -' -' -haystack -= -' -' -' -/ -XXX -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic219 -" -regex -= -' -' -' -. -* -( -\ -\ -XXX -) -. -* -' -' -' -haystack -= -' -' -' -\ -XXX -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic220 -" -regex -= -' -' -' -\ -\ -XXX -' -' -' -haystack -= -' -' -' -\ -XXX -' -' -' -matches -= -[ -[ -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic221 -" -regex -= -' -' -' -. -* -( -/ -000 -) -. -* -' -' -' -haystack -= -' -' -' -/ -000 -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic222 -" -regex -= -' -' -' -. -* -( -\ -\ -000 -) -. -* -' -' -' -haystack -= -' -' -' -\ -000 -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -basic223 -" -regex -= -' -' -' -\ -\ -000 -' -' -' -haystack -= -' -' -' -\ -000 -' -' -' -matches -= -[ -[ -[ -0 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true diff --git a/third_party/rust/regex/testdata/fowler/dat/README b/third_party/rust/regex/testdata/fowler/dat/README deleted file mode 100644 index 75aed0b6ab9a1..0000000000000 --- a/third_party/rust/regex/testdata/fowler/dat/README +++ /dev/null @@ -1,243 +0,0 @@ -Test -data -was -taken -from -the -Go -distribution -which -was -in -turn -taken -from -the -testregex -test -suite -: -http -: -/ -/ -web -. -archive -. -org -/ -web -/ -20150925124103 -/ -http -: -/ -/ -www2 -. -research -. -att -. -com -/ -~ -astopen -/ -testregex -/ -testregex -. -html -Unfortunately -the -original -web -site -now -appears -dead -but -the -test -data -lives -on -. -The -LICENSE -in -this -directory -corresponds -to -the -LICENSE -that -the -data -was -originally -released -under -. -The -tests -themselves -were -modified -for -RE2 -/ -Go -( -and -marked -as -such -) -. -A -couple -were -modified -further -by -me -( -Andrew -Gallant -) -and -marked -with -' -Rust -' -. -After -some -number -of -years -these -tests -were -transformed -into -a -TOML -format -using -the -' -regex -- -cli -generate -fowler -' -command -. -To -re -- -generate -the -TOML -files -run -the -following -from -the -root -of -this -repository -: -regex -- -cli -generate -fowler -tests -/ -data -/ -fowler -tests -/ -data -/ -fowler -/ -dat -/ -* -. -dat -This -assumes -that -you -have -' -regex -- -cli -' -installed -. -See -' -regex -- -cli -/ -README -. -md -' -from -the -root -of -the -repository -for -more -information -. -This -brings -the -Fowler -tests -into -a -more -" -sensible -" -structured -format -in -which -other -tests -can -be -written -such -that -they -aren -' -t -write -- -only -. diff --git a/third_party/rust/regex/testdata/fowler/nullsubexpr.toml b/third_party/rust/regex/testdata/fowler/nullsubexpr.toml deleted file mode 100644 index 0543f7ec634c2..0000000000000 --- a/third_party/rust/regex/testdata/fowler/nullsubexpr.toml +++ /dev/null @@ -1,2870 +0,0 @@ -# -! -! -! -DO -NOT -EDIT -! -! -! -# -Automatically -generated -by -' -regex -- -cli -generate -fowler -' -. -# -Numbers -in -the -test -names -correspond -to -the -line -number -of -the -test -from -# -the -original -dat -file -. -[ -[ -test -] -] -name -= -" -nullsubexpr3 -" -regex -= -' -' -' -( -a -* -) -* -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr4 -" -regex -= -' -' -' -( -a -* -) -* -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr5 -" -regex -= -' -' -' -( -a -* -) -* -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr6 -" -regex -= -' -' -' -( -a -* -) -* -' -' -' -haystack -= -' -' -' -aaaaaax -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr7 -" -regex -= -' -' -' -( -a -* -) -+ -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr8 -" -regex -= -' -' -' -( -a -* -) -+ -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr9 -" -regex -= -' -' -' -( -a -* -) -+ -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr10 -" -regex -= -' -' -' -( -a -* -) -+ -' -' -' -haystack -= -' -' -' -aaaaaax -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr11 -" -regex -= -' -' -' -( -a -+ -) -* -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr12 -" -regex -= -' -' -' -( -a -+ -) -* -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr13 -" -regex -= -' -' -' -( -a -+ -) -* -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr14 -" -regex -= -' -' -' -( -a -+ -) -* -' -' -' -haystack -= -' -' -' -aaaaaax -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr15 -" -regex -= -' -' -' -( -a -+ -) -+ -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr16 -" -regex -= -' -' -' -( -a -+ -) -+ -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -nullsubexpr17 -" -regex -= -' -' -' -( -a -+ -) -+ -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr18 -" -regex -= -' -' -' -( -a -+ -) -+ -' -' -' -haystack -= -' -' -' -aaaaaax -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr20 -" -regex -= -' -' -' -( -[ -a -] -* -) -* -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr21 -" -regex -= -' -' -' -( -[ -a -] -* -) -* -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr22 -" -regex -= -' -' -' -( -[ -a -] -* -) -* -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr23 -" -regex -= -' -' -' -( -[ -a -] -* -) -* -' -' -' -haystack -= -' -' -' -aaaaaax -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr24 -" -regex -= -' -' -' -( -[ -a -] -* -) -+ -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr25 -" -regex -= -' -' -' -( -[ -a -] -* -) -+ -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr26 -" -regex -= -' -' -' -( -[ -a -] -* -) -+ -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr27 -" -regex -= -' -' -' -( -[ -a -] -* -) -+ -' -' -' -haystack -= -' -' -' -aaaaaax -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr28 -" -regex -= -' -' -' -( -[ -^ -b -] -* -) -* -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr29 -" -regex -= -' -' -' -( -[ -^ -b -] -* -) -* -' -' -' -haystack -= -' -' -' -b -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr30 -" -regex -= -' -' -' -( -[ -^ -b -] -* -) -* -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr31 -" -regex -= -' -' -' -( -[ -^ -b -] -* -) -* -' -' -' -haystack -= -' -' -' -aaaaaab -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr32 -" -regex -= -' -' -' -( -[ -ab -] -* -) -* -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr33 -" -regex -= -' -' -' -( -[ -ab -] -* -) -* -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr34 -" -regex -= -' -' -' -( -[ -ab -] -* -) -* -' -' -' -haystack -= -' -' -' -ababab -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr35 -" -regex -= -' -' -' -( -[ -ab -] -* -) -* -' -' -' -haystack -= -' -' -' -bababa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr36 -" -regex -= -' -' -' -( -[ -ab -] -* -) -* -' -' -' -haystack -= -' -' -' -b -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr37 -" -regex -= -' -' -' -( -[ -ab -] -* -) -* -' -' -' -haystack -= -' -' -' -bbbbbb -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr38 -" -regex -= -' -' -' -( -[ -ab -] -* -) -* -' -' -' -haystack -= -' -' -' -aaaabcde -' -' -' -matches -= -[ -[ -[ -0 -5 -] -[ -0 -5 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr39 -" -regex -= -' -' -' -( -[ -^ -a -] -* -) -* -' -' -' -haystack -= -' -' -' -b -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr40 -" -regex -= -' -' -' -( -[ -^ -a -] -* -) -* -' -' -' -haystack -= -' -' -' -bbbbbb -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr41 -" -regex -= -' -' -' -( -[ -^ -a -] -* -) -* -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr42 -" -regex -= -' -' -' -( -[ -^ -ab -] -* -) -* -' -' -' -haystack -= -' -' -' -ccccxx -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr43 -" -regex -= -' -' -' -( -[ -^ -ab -] -* -) -* -' -' -' -haystack -= -' -' -' -ababab -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -0 -0 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -nullsubexpr46 -" -regex -= -' -' -' -( -( -z -) -+ -| -a -) -* -' -' -' -haystack -= -' -' -' -zabcde -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -1 -2 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr64 -" -regex -= -' -' -' -( -a -* -) -* -( -x -) -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -0 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr65 -" -regex -= -' -' -' -( -a -* -) -* -( -x -) -' -' -' -haystack -= -' -' -' -ax -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -1 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr66 -" -regex -= -' -' -' -( -a -* -) -* -( -x -) -' -' -' -haystack -= -' -' -' -axa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -1 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr68 -" -regex -= -' -' -' -( -a -* -) -+ -( -x -) -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -0 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr69 -" -regex -= -' -' -' -( -a -* -) -+ -( -x -) -' -' -' -haystack -= -' -' -' -ax -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -1 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr70 -" -regex -= -' -' -' -( -a -* -) -+ -( -x -) -' -' -' -haystack -= -' -' -' -axa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -1 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr72 -" -regex -= -' -' -' -( -a -* -) -{ -2 -} -( -x -) -' -' -' -haystack -= -' -' -' -x -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -0 -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr73 -" -regex -= -' -' -' -( -a -* -) -{ -2 -} -( -x -) -' -' -' -haystack -= -' -' -' -ax -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -1 -1 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -nullsubexpr74 -" -regex -= -' -' -' -( -a -* -) -{ -2 -} -( -x -) -' -' -' -haystack -= -' -' -' -axa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -1 -1 -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true diff --git a/third_party/rust/regex/testdata/fowler/repetition.toml b/third_party/rust/regex/testdata/fowler/repetition.toml deleted file mode 100644 index ce64bbd455df5..0000000000000 --- a/third_party/rust/regex/testdata/fowler/repetition.toml +++ /dev/null @@ -1,6391 +0,0 @@ -# -! -! -! -DO -NOT -EDIT -! -! -! -# -Automatically -generated -by -' -regex -- -cli -generate -fowler -' -. -# -Numbers -in -the -test -names -correspond -to -the -line -number -of -the -test -from -# -the -original -dat -file -. -[ -[ -test -] -] -name -= -" -repetition10 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition11 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition12 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition14 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -1 -} -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition15 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -2 -} -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition16 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -3 -} -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition18 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -* -' -' -' -haystack -= -' -' -' -' -' -' -matches -= -[ -[ -[ -0 -0 -] -[ -] -[ -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition20 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition21 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition22 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition24 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -1 -} -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition25 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -2 -} -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition26 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -3 -} -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition28 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -* -' -' -' -haystack -= -' -' -' -a -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -] -[ -0 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition30 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition31 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -1 -] -[ -] -[ -0 -1 -] -[ -1 -2 -] -[ -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition32 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition34 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -1 -} -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition35 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -2 -} -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -1 -2 -] -[ -] -[ -1 -2 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition36 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -3 -} -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -] -match -- -limit -= -1 -[ -[ -test -] -] -name -= -" -repetition38 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -* -' -' -' -haystack -= -' -' -' -aa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition40 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition41 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaa -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -[ -2 -3 -] -[ -] -[ -2 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition42 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaa -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -0 -1 -] -[ -] -[ -0 -1 -] -[ -1 -2 -] -[ -] -[ -1 -2 -] -[ -2 -3 -] -[ -] -[ -2 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition44 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -1 -} -' -' -' -haystack -= -' -' -' -aaa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition46 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -2 -} -' -' -' -haystack -= -' -' -' -aaa -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -2 -3 -] -[ -0 -2 -] -[ -2 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition47 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -3 -} -' -' -' -haystack -= -' -' -' -aaa -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -2 -3 -] -[ -] -[ -2 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition50 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -* -' -' -' -haystack -= -' -' -' -aaa -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -2 -3 -] -[ -0 -2 -] -[ -2 -3 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition52 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaaa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition53 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -[ -2 -4 -] -[ -2 -4 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition54 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -[ -2 -3 -] -[ -] -[ -2 -3 -] -[ -3 -4 -] -[ -] -[ -3 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition56 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -1 -} -' -' -' -haystack -= -' -' -' -aaaa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition57 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -2 -} -' -' -' -haystack -= -' -' -' -aaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -2 -4 -] -[ -2 -4 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition59 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -3 -} -' -' -' -haystack -= -' -' -' -aaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -3 -4 -] -[ -0 -2 -] -[ -3 -4 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition61 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -* -' -' -' -haystack -= -' -' -' -aaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -2 -4 -] -[ -2 -4 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition63 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaaaa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition64 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -[ -2 -4 -] -[ -2 -4 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition65 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaaaa -' -' -' -matches -= -[ -[ -[ -0 -5 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -[ -2 -4 -] -[ -2 -4 -] -[ -] -[ -4 -5 -] -[ -] -[ -4 -5 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition67 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -1 -} -' -' -' -haystack -= -' -' -' -aaaaa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition68 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -2 -} -' -' -' -haystack -= -' -' -' -aaaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -2 -4 -] -[ -2 -4 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition70 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -3 -} -' -' -' -haystack -= -' -' -' -aaaaa -' -' -' -matches -= -[ -[ -[ -0 -5 -] -[ -4 -5 -] -[ -2 -4 -] -[ -4 -5 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition73 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -* -' -' -' -haystack -= -' -' -' -aaaaa -' -' -' -matches -= -[ -[ -[ -0 -5 -] -[ -4 -5 -] -[ -2 -4 -] -[ -4 -5 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition75 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition76 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -[ -2 -4 -] -[ -2 -4 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition77 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -( -( -. -. -) -| -( -. -) -) -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -[ -2 -4 -] -[ -2 -4 -] -[ -] -[ -4 -6 -] -[ -4 -6 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition79 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -1 -} -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -[ -0 -2 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition80 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -2 -} -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -4 -] -[ -2 -4 -] -[ -2 -4 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition81 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -{ -3 -} -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -6 -] -[ -4 -6 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition83 -" -regex -= -' -' -' -( -( -. -. -) -| -( -. -) -) -* -' -' -' -haystack -= -' -' -' -aaaaaa -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -6 -] -[ -4 -6 -] -[ -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive90 -" -regex -= -' -' -' -X -( -. -? -) -{ -0 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -7 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive91 -" -regex -= -' -' -' -X -( -. -? -) -{ -1 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -7 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive92 -" -regex -= -' -' -' -X -( -. -? -) -{ -2 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -7 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive93 -" -regex -= -' -' -' -X -( -. -? -) -{ -3 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -7 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive94 -" -regex -= -' -' -' -X -( -. -? -) -{ -4 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -7 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive95 -" -regex -= -' -' -' -X -( -. -? -) -{ -5 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -7 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive96 -" -regex -= -' -' -' -X -( -. -? -) -{ -6 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -7 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive97 -" -regex -= -' -' -' -X -( -. -? -) -{ -7 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -7 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive98 -" -regex -= -' -' -' -X -( -. -? -) -{ -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive100 -" -regex -= -' -' -' -X -( -. -? -) -{ -0 -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive102 -" -regex -= -' -' -' -X -( -. -? -) -{ -1 -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive104 -" -regex -= -' -' -' -X -( -. -? -) -{ -2 -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive106 -" -regex -= -' -' -' -X -( -. -? -) -{ -3 -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive108 -" -regex -= -' -' -' -X -( -. -? -) -{ -4 -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive110 -" -regex -= -' -' -' -X -( -. -? -) -{ -5 -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive112 -" -regex -= -' -' -' -X -( -. -? -) -{ -6 -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive114 -" -regex -= -' -' -' -X -( -. -? -) -{ -7 -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive115 -" -regex -= -' -' -' -X -( -. -? -) -{ -8 -8 -} -Y -' -' -' -haystack -= -' -' -' -X1234567Y -' -' -' -matches -= -[ -[ -[ -0 -9 -] -[ -8 -8 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive127 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -0 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -1 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive129 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -1 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -1 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive130 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -2 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -3 -6 -] -[ -6 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive131 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -3 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -3 -6 -] -[ -6 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive132 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -4 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -] -match -- -limit -= -1 -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive134 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -0 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -1 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive136 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -1 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -1 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive137 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -2 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -3 -6 -] -[ -6 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive138 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -3 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -3 -6 -] -[ -6 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive139 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -{ -4 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -] -match -- -limit -= -1 -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive141 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -* -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -1 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -Rust -regex -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive143 -" -regex -= -' -' -' -( -a -| -ab -| -c -| -bcd -) -+ -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -1 -] -[ -0 -1 -] -[ -1 -1 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive149 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -0 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive151 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -1 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive153 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -2 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive155 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -3 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive156 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -4 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -] -match -- -limit -= -1 -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive158 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -0 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive160 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -1 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive162 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -2 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive164 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -3 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -[ -[ -test -] -] -name -= -" -repetition -- -expensive165 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -{ -4 -10 -} -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -] -match -- -limit -= -1 -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive167 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -* -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true -# -Test -added -by -RE2 -/ -Go -project -. -[ -[ -test -] -] -name -= -" -repetition -- -expensive169 -" -regex -= -' -' -' -( -ab -| -a -| -c -| -bcd -) -+ -( -d -* -) -' -' -' -haystack -= -' -' -' -ababcd -' -' -' -matches -= -[ -[ -[ -0 -6 -] -[ -4 -5 -] -[ -5 -6 -] -] -] -match -- -limit -= -1 -anchored -= -true diff --git a/third_party/rust/regex/testdata/iter.toml b/third_party/rust/regex/testdata/iter.toml deleted file mode 100644 index e3ff762a737df..0000000000000 --- a/third_party/rust/regex/testdata/iter.toml +++ /dev/null @@ -1,999 +0,0 @@ -[ -[ -test -] -] -name -= -" -1 -" -regex -= -" -a -" -haystack -= -" -aaa -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -2 -" -regex -= -" -a -" -haystack -= -" -aba -" -matches -= -[ -[ -0 -1 -] -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -empty1 -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -empty2 -" -regex -= -' -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty3 -" -regex -= -' -( -? -: -) -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty4 -" -regex -= -' -( -? -: -) -* -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty5 -" -regex -= -' -( -? -: -) -+ -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty6 -" -regex -= -' -( -? -: -) -? -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty7 -" -regex -= -' -( -? -: -) -( -? -: -) -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty8 -" -regex -= -' -( -? -: -) -+ -| -z -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty9 -" -regex -= -' -z -| -( -? -: -) -+ -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty10 -" -regex -= -' -( -? -: -) -+ -| -b -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -empty11 -" -regex -= -' -b -| -( -? -: -) -+ -' -haystack -= -' -abc -' -matches -= -[ -[ -0 -0 -] -[ -1 -2 -] -[ -3 -3 -] -] -[ -[ -test -] -] -name -= -" -start1 -" -regex -= -" -^ -a -" -haystack -= -" -a -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -start2 -" -regex -= -" -^ -a -" -haystack -= -" -aa -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -anchored1 -" -regex -= -" -a -" -haystack -= -" -a -" -matches -= -[ -[ -0 -1 -] -] -anchored -= -true -# -This -test -is -pretty -subtle -. -It -demonstrates -the -crucial -difference -between -# -' -^ -a -' -and -' -a -' -compiled -in -' -anchored -' -mode -. -The -former -regex -exclusively -# -matches -at -the -start -of -a -haystack -and -nowhere -else -. -The -latter -regex -has -# -no -such -restriction -but -its -automaton -is -constructed -such -that -it -lacks -a -# -. -* -? -prefix -. -So -it -can -actually -produce -matches -at -multiple -locations -. -# -The -anchored3 -test -drives -this -point -home -. -[ -[ -test -] -] -name -= -" -anchored2 -" -regex -= -" -a -" -haystack -= -" -aa -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -] -anchored -= -true -# -Unlikely -anchored2 -this -test -stops -matching -anything -after -it -sees -b -# -since -it -lacks -a -. -* -? -prefix -. -Since -it -is -looking -for -' -a -' -but -sees -' -b -' -it -# -determines -that -there -are -no -remaining -matches -. -[ -[ -test -] -] -name -= -" -anchored3 -" -regex -= -" -a -" -haystack -= -" -aaba -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -] -anchored -= -true -[ -[ -test -] -] -name -= -" -nonempty -- -followedby -- -empty -" -regex -= -' -abc -| -. -* -? -' -haystack -= -" -abczzz -" -matches -= -[ -[ -0 -3 -] -[ -4 -4 -] -[ -5 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -nonempty -- -followedby -- -oneempty -" -regex -= -' -abc -| -. -* -? -' -haystack -= -" -abcz -" -matches -= -[ -[ -0 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -nonempty -- -followedby -- -onemixed -" -regex -= -' -abc -| -. -* -? -' -haystack -= -" -abczabc -" -matches -= -[ -[ -0 -3 -] -[ -4 -7 -] -] -[ -[ -test -] -] -name -= -" -nonempty -- -followedby -- -twomixed -" -regex -= -' -abc -| -. -* -? -' -haystack -= -" -abczzabc -" -matches -= -[ -[ -0 -3 -] -[ -4 -4 -] -[ -5 -8 -] -] diff --git a/third_party/rust/regex/testdata/leftmost-all.toml b/third_party/rust/regex/testdata/leftmost-all.toml deleted file mode 100644 index f2bc05b2d1bfe..0000000000000 --- a/third_party/rust/regex/testdata/leftmost-all.toml +++ /dev/null @@ -1,145 +0,0 @@ -[ -[ -test -] -] -name -= -" -alt -" -regex -= -' -foo -| -foobar -' -haystack -= -" -foobar -" -matches -= -[ -[ -0 -6 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -multi -" -regex -= -[ -' -foo -' -' -foobar -' -] -haystack -= -" -foobar -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -6 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -dotall -" -regex -= -' -( -? -s -: -. -) -' -haystack -= -" -foobar -" -matches -= -[ -[ -5 -6 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -leftmost -" diff --git a/third_party/rust/regex/testdata/line-terminator.toml b/third_party/rust/regex/testdata/line-terminator.toml deleted file mode 100644 index c6b33961eaca8..0000000000000 --- a/third_party/rust/regex/testdata/line-terminator.toml +++ /dev/null @@ -1,771 +0,0 @@ -# -This -tests -that -we -can -switch -the -line -terminator -to -the -NUL -byte -. -[ -[ -test -] -] -name -= -" -nul -" -regex -= -' -( -? -m -) -^ -[ -a -- -z -] -+ -' -haystack -= -' -\ -x00abc -\ -x00 -' -matches -= -[ -[ -1 -4 -] -] -unescape -= -true -line -- -terminator -= -' -\ -x00 -' -# -This -tests -that -' -. -' -will -not -match -the -configured -line -terminator -but -will -# -match -\ -n -. -[ -[ -test -] -] -name -= -" -dot -- -changes -- -with -- -line -- -terminator -" -regex -= -' -. -' -haystack -= -' -\ -x00 -\ -n -' -matches -= -[ -[ -1 -2 -] -] -unescape -= -true -line -- -terminator -= -' -\ -x00 -' -# -This -tests -that -when -we -switch -the -line -terminator -\ -n -is -no -longer -# -recognized -as -the -terminator -. -[ -[ -test -] -] -name -= -" -not -- -line -- -feed -" -regex -= -' -( -? -m -) -^ -[ -a -- -z -] -+ -' -haystack -= -' -\ -nabc -\ -n -' -matches -= -[ -] -unescape -= -true -line -- -terminator -= -' -\ -x00 -' -# -This -tests -that -we -can -set -the -line -terminator -to -a -non -- -ASCII -byte -and -have -# -it -behave -as -expected -. -[ -[ -test -] -] -name -= -" -non -- -ascii -" -regex -= -' -( -? -m -) -^ -[ -a -- -z -] -+ -' -haystack -= -' -\ -xFFabc -\ -xFF -' -matches -= -[ -[ -1 -4 -] -] -unescape -= -true -line -- -terminator -= -' -\ -xFF -' -utf8 -= -false -# -This -tests -that -we -can -set -the -line -terminator -to -a -byte -corresponding -to -a -# -word -character -and -things -work -as -expected -. -[ -[ -test -] -] -name -= -" -word -- -byte -" -regex -= -' -( -? -m -) -^ -[ -a -- -z -] -+ -' -haystack -= -' -ZabcZ -' -matches -= -[ -[ -1 -4 -] -] -unescape -= -true -line -- -terminator -= -' -Z -' -# -This -tests -that -we -can -set -the -line -terminator -to -a -byte -corresponding -to -a -# -non -- -word -character -and -things -work -as -expected -. -[ -[ -test -] -] -name -= -" -non -- -word -- -byte -" -regex -= -' -( -? -m -) -^ -[ -a -- -z -] -+ -' -haystack -= -' -% -abc -% -' -matches -= -[ -[ -1 -4 -] -] -unescape -= -true -line -- -terminator -= -' -% -' -# -This -combines -" -set -line -terminator -to -a -word -byte -" -with -a -word -boundary -# -assertion -which -should -result -in -no -match -even -though -^ -/ -matches -. -[ -[ -test -] -] -name -= -" -word -- -boundary -" -regex -= -' -( -? -m -) -^ -\ -b -[ -a -- -z -] -+ -\ -b -' -haystack -= -' -ZabcZ -' -matches -= -[ -] -unescape -= -true -line -- -terminator -= -' -Z -' -# -Like -' -word -- -boundary -' -but -does -an -anchored -search -at -the -point -where -^ -# -matches -but -where -\ -b -should -not -. -[ -[ -test -] -] -name -= -" -word -- -boundary -- -at -" -regex -= -' -( -? -m -) -^ -\ -b -[ -a -- -z -] -+ -\ -b -' -haystack -= -' -ZabcZ -' -matches -= -[ -] -bounds -= -[ -1 -4 -] -anchored -= -true -unescape -= -true -line -- -terminator -= -' -Z -' -# -Like -' -word -- -boundary -- -at -' -but -flips -the -word -boundary -to -a -negation -. -This -# -in -particular -tests -a -tricky -case -in -DFA -engines -where -they -must -consider -# -explicitly -that -a -starting -configuration -from -a -custom -line -terminator -may -# -also -required -setting -the -" -is -from -word -byte -" -flag -on -a -state -. -Otherwise -# -it -' -s -treated -as -" -not -from -a -word -byte -" -which -would -result -in -\ -B -not -matching -# -here -when -it -should -. -[ -[ -test -] -] -name -= -" -not -- -word -- -boundary -- -at -" -regex -= -' -( -? -m -) -^ -\ -B -[ -a -- -z -] -+ -\ -B -' -haystack -= -' -ZabcZ -' -matches -= -[ -[ -1 -4 -] -] -bounds -= -[ -1 -4 -] -anchored -= -true -unescape -= -true -line -- -terminator -= -' -Z -' diff --git a/third_party/rust/regex/testdata/misc.toml b/third_party/rust/regex/testdata/misc.toml deleted file mode 100644 index 33c9d66101906..0000000000000 --- a/third_party/rust/regex/testdata/misc.toml +++ /dev/null @@ -1,552 +0,0 @@ -[ -[ -test -] -] -name -= -" -ascii -- -literal -" -regex -= -" -a -" -haystack -= -" -a -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -ascii -- -literal -- -not -" -regex -= -" -a -" -haystack -= -" -z -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -ascii -- -literal -- -anchored -" -regex -= -" -a -" -haystack -= -" -a -" -matches -= -[ -[ -0 -1 -] -] -anchored -= -true -[ -[ -test -] -] -name -= -" -ascii -- -literal -- -anchored -- -not -" -regex -= -" -a -" -haystack -= -" -z -" -matches -= -[ -] -anchored -= -true -[ -[ -test -] -] -name -= -" -anchor -- -start -- -end -- -line -" -regex -= -' -( -? -m -) -^ -bar -' -haystack -= -" -foo -\ -nbar -\ -nbaz -" -matches -= -[ -[ -4 -7 -] -] -[ -[ -test -] -] -name -= -" -prefix -- -literal -- -match -" -regex -= -' -^ -abc -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -prefix -- -literal -- -match -- -ascii -" -regex -= -' -^ -abc -' -haystack -= -" -abc -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -prefix -- -literal -- -no -- -match -" -regex -= -' -^ -abc -' -haystack -= -" -zabc -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -one -- -literal -- -edge -" -regex -= -' -abc -' -haystack -= -" -xxxxxab -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -terminates -" -regex -= -' -a -' -haystack -= -" -a -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -suffix -- -100 -" -regex -= -' -. -* -abcd -' -haystack -= -" -abcd -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -suffix -- -200 -" -regex -= -' -. -* -( -? -: -abcd -) -+ -' -haystack -= -" -abcd -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -suffix -- -300 -" -regex -= -' -. -* -( -? -: -abcd -) -+ -' -haystack -= -" -abcdabcd -" -matches -= -[ -[ -0 -8 -] -] -[ -[ -test -] -] -name -= -" -suffix -- -400 -" -regex -= -' -. -* -( -? -: -abcd -) -+ -' -haystack -= -" -abcdxabcd -" -matches -= -[ -[ -0 -9 -] -] -[ -[ -test -] -] -name -= -" -suffix -- -500 -" -regex -= -' -. -* -x -( -? -: -abcd -) -+ -' -haystack -= -" -abcdxabcd -" -matches -= -[ -[ -0 -9 -] -] -[ -[ -test -] -] -name -= -" -suffix -- -600 -" -regex -= -' -[ -^ -abcd -] -* -x -( -? -: -abcd -) -+ -' -haystack -= -" -abcdxabcd -" -matches -= -[ -[ -4 -9 -] -] diff --git a/third_party/rust/regex/testdata/multiline.toml b/third_party/rust/regex/testdata/multiline.toml deleted file mode 100644 index 7cfbd3472a49b..0000000000000 --- a/third_party/rust/regex/testdata/multiline.toml +++ /dev/null @@ -1,7531 +0,0 @@ -[ -[ -test -] -] -name -= -" -basic1 -" -regex -= -' -( -? -m -) -^ -[ -a -- -z -] -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -3 -] -[ -4 -7 -] -[ -8 -11 -] -] -[ -[ -test -] -] -name -= -" -basic1 -- -crlf -" -regex -= -' -( -? -Rm -) -^ -[ -a -- -z -] -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -3 -] -[ -4 -7 -] -[ -8 -11 -] -] -[ -[ -test -] -] -name -= -" -basic1 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -^ -[ -a -- -z -] -+ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -3 -] -[ -4 -7 -] -[ -8 -11 -] -] -[ -[ -test -] -] -name -= -" -basic2 -" -regex -= -' -( -? -m -) -^ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -basic2 -- -crlf -" -regex -= -' -( -? -Rm -) -^ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -basic2 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -^ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -basic3 -" -regex -= -' -( -? -m -) -^ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -0 -] -[ -4 -4 -] -[ -8 -8 -] -] -[ -[ -test -] -] -name -= -" -basic3 -- -crlf -" -regex -= -' -( -? -Rm -) -^ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -0 -] -[ -4 -4 -] -[ -8 -8 -] -] -[ -[ -test -] -] -name -= -" -basic3 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -^ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -0 -] -[ -4 -4 -] -[ -8 -8 -] -] -[ -[ -test -] -] -name -= -" -basic4 -" -regex -= -' -( -? -m -) -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -3 -3 -] -[ -7 -7 -] -[ -11 -11 -] -] -[ -[ -test -] -] -name -= -" -basic4 -- -crlf -" -regex -= -' -( -? -Rm -) -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -3 -3 -] -[ -7 -7 -] -[ -11 -11 -] -] -[ -[ -test -] -] -name -= -" -basic4 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -3 -3 -] -[ -7 -7 -] -[ -11 -11 -] -] -[ -[ -test -] -] -name -= -" -basic5 -" -regex -= -' -( -? -m -) -^ -[ -a -- -z -] -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -1 -] -[ -4 -5 -] -[ -8 -9 -] -] -[ -[ -test -] -] -name -= -" -basic5 -- -crlf -" -regex -= -' -( -? -Rm -) -^ -[ -a -- -z -] -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -1 -] -[ -4 -5 -] -[ -8 -9 -] -] -[ -[ -test -] -] -name -= -" -basic5 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -^ -[ -a -- -z -] -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -1 -] -[ -4 -5 -] -[ -8 -9 -] -] -[ -[ -test -] -] -name -= -" -basic6 -" -regex -= -' -( -? -m -) -[ -a -- -z -] -^ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -basic6 -- -crlf -" -regex -= -' -( -? -Rm -) -[ -a -- -z -] -^ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -basic6 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -[ -a -- -z -] -^ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -basic7 -" -regex -= -' -( -? -m -) -[ -a -- -z -] -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -2 -3 -] -[ -6 -7 -] -[ -10 -11 -] -] -[ -[ -test -] -] -name -= -" -basic7 -- -crlf -" -regex -= -' -( -? -Rm -) -[ -a -- -z -] -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -2 -3 -] -[ -6 -7 -] -[ -10 -11 -] -] -[ -[ -test -] -] -name -= -" -basic7 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -[ -a -- -z -] -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -2 -3 -] -[ -6 -7 -] -[ -10 -11 -] -] -[ -[ -test -] -] -name -= -" -basic8 -" -regex -= -' -( -? -m -) -[ -a -- -z -] -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -basic8 -- -crlf -" -regex -= -' -( -? -Rm -) -[ -a -- -z -] -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -basic8 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -[ -a -- -z -] -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -basic9 -" -regex -= -' -( -? -m -) -^ -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -basic9 -- -crlf -" -regex -= -' -( -? -Rm -) -^ -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -repeat1 -" -regex -= -' -( -? -m -) -( -? -: -^ -) -* -' -haystack -= -" -a -\ -nb -\ -nc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat1 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -^ -) -* -' -haystack -= -" -a -\ -nb -\ -nc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat1 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -^ -) -* -' -haystack -= -" -a -\ -rb -\ -rc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat1 -- -no -- -multi -" -regex -= -' -( -? -: -^ -) -* -' -haystack -= -" -a -\ -nb -\ -nc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat1 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -^ -) -* -' -haystack -= -" -a -\ -nb -\ -nc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat1 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -^ -) -* -' -haystack -= -" -a -\ -rb -\ -rc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat2 -" -regex -= -' -( -? -m -) -( -? -: -^ -| -a -) -+ -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat2 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -a -) -+ -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat2 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -a -) -+ -' -haystack -= -" -a -\ -raaa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat2 -- -no -- -multi -" -regex -= -' -( -? -: -^ -| -a -) -+ -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat2 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -^ -| -a -) -+ -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat2 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -^ -| -a -) -+ -' -haystack -= -" -a -\ -raaa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -2 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat3 -" -regex -= -' -( -? -m -) -( -? -: -^ -| -a -) -* -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat3 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -a -) -* -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat3 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -a -) -* -' -haystack -= -" -a -\ -raaa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat3 -- -no -- -multi -" -regex -= -' -( -? -: -^ -| -a -) -* -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat3 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -^ -| -a -) -* -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat3 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -^ -| -a -) -* -' -haystack -= -" -a -\ -raaa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat4 -" -regex -= -' -( -? -m -) -( -? -: -^ -| -a -+ -) -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat4 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -a -+ -) -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat4 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -a -+ -) -' -haystack -= -" -a -\ -raaa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat4 -- -no -- -multi -" -regex -= -' -( -? -: -^ -| -a -+ -) -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat4 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -^ -| -a -+ -) -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -2 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat4 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -^ -| -a -+ -) -' -haystack -= -" -a -\ -raaa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -2 -5 -] -] -[ -[ -test -] -] -name -= -" -repeat5 -" -regex -= -' -( -? -m -) -( -? -: -^ -| -a -* -) -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat5 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -a -* -) -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat5 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -a -* -) -' -haystack -= -" -a -\ -raaa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat5 -- -no -- -multi -" -regex -= -' -( -? -: -^ -| -a -* -) -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat5 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -^ -| -a -* -) -' -haystack -= -" -a -\ -naaa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat5 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -^ -| -a -* -) -' -haystack -= -" -a -\ -raaa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -5 -] -[ -6 -6 -] -] -[ -[ -test -] -] -name -= -" -repeat6 -" -regex -= -' -( -? -m -) -( -? -: -^ -[ -a -- -z -] -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -1 -] -[ -4 -5 -] -[ -8 -9 -] -] -[ -[ -test -] -] -name -= -" -repeat6 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -^ -[ -a -- -z -] -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -1 -] -[ -4 -5 -] -[ -8 -9 -] -] -[ -[ -test -] -] -name -= -" -repeat6 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -^ -[ -a -- -z -] -) -+ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -1 -] -[ -4 -5 -] -[ -8 -9 -] -] -[ -[ -test -] -] -name -= -" -repeat6 -- -no -- -multi -" -regex -= -' -( -? -: -^ -[ -a -- -z -] -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -repeat6 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -^ -[ -a -- -z -] -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -repeat6 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -^ -[ -a -- -z -] -) -+ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -repeat7 -" -regex -= -' -( -? -m -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -n -? -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat7 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -n -? -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat7 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -r -? -) -+ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat7 -- -no -- -multi -" -regex -= -' -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -n -? -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat7 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -n -? -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat7 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -r -? -) -+ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat8 -" -regex -= -' -( -? -m -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -n -? -) -* -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat8 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -n -? -) -* -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat8 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -r -? -) -* -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat8 -- -no -- -multi -" -regex -= -' -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -n -? -) -* -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -4 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -7 -] -[ -8 -8 -] -[ -9 -9 -] -[ -10 -10 -] -[ -11 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat8 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -n -? -) -* -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -4 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -7 -] -[ -8 -8 -] -[ -9 -9 -] -[ -10 -10 -] -[ -11 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat8 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -^ -[ -a -- -z -] -{ -3 -} -\ -r -? -) -* -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -4 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -7 -] -[ -8 -8 -] -[ -9 -9 -] -[ -10 -10 -] -[ -11 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat9 -" -regex -= -' -( -? -m -) -( -? -: -\ -n -? -[ -a -- -z -] -{ -3 -} -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat9 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -\ -n -? -[ -a -- -z -] -{ -3 -} -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat9 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -\ -r -? -[ -a -- -z -] -{ -3 -} -) -+ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat9 -- -no -- -multi -" -regex -= -' -( -? -: -\ -n -? -[ -a -- -z -] -{ -3 -} -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -7 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat9 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -\ -n -? -[ -a -- -z -] -{ -3 -} -) -+ -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -7 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat9 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -\ -r -? -[ -a -- -z -] -{ -3 -} -) -+ -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -7 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat10 -" -regex -= -' -( -? -m -) -( -? -: -\ -n -? -[ -a -- -z -] -{ -3 -} -) -* -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat10 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -\ -n -? -[ -a -- -z -] -{ -3 -} -) -* -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat10 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -\ -r -? -[ -a -- -z -] -{ -3 -} -) -* -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat10 -- -no -- -multi -" -regex -= -' -( -? -: -\ -n -? -[ -a -- -z -] -{ -3 -} -) -* -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat10 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -\ -n -? -[ -a -- -z -] -{ -3 -} -) -* -' -haystack -= -" -abc -\ -ndef -\ -nxyz -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat10 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -\ -r -? -[ -a -- -z -] -{ -3 -} -) -* -' -haystack -= -" -abc -\ -rdef -\ -rxyz -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -11 -] -] -[ -[ -test -] -] -name -= -" -repeat11 -" -regex -= -' -( -? -m -) -^ -* -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat11 -- -crlf -" -regex -= -' -( -? -Rm -) -^ -* -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat11 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -^ -* -' -haystack -= -" -\ -raa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat11 -- -no -- -multi -" -regex -= -' -^ -* -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat11 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -^ -* -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat11 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -^ -* -' -haystack -= -" -\ -raa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat12 -" -regex -= -' -( -? -m -) -^ -+ -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat12 -- -crlf -" -regex -= -' -( -? -Rm -) -^ -+ -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat12 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -^ -+ -' -haystack -= -" -\ -raa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat12 -- -no -- -multi -" -regex -= -' -^ -+ -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -repeat12 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -^ -+ -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -repeat12 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -^ -+ -' -haystack -= -" -\ -raa -\ -r -" -matches -= -[ -[ -0 -0 -] -] -[ -[ -test -] -] -name -= -" -repeat13 -" -regex -= -' -( -? -m -) -* -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat13 -- -crlf -" -regex -= -' -( -? -Rm -) -* -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat13 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -* -' -haystack -= -" -\ -raa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat13 -- -no -- -multi -" -regex -= -' -* -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat13 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -* -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat13 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -* -' -haystack -= -" -\ -raa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat14 -" -regex -= -' -( -? -m -) -+ -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat14 -- -crlf -" -regex -= -' -( -? -Rm -) -+ -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat14 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -+ -' -haystack -= -" -\ -raa -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -3 -3 -] -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat14 -- -no -- -multi -" -regex -= -' -+ -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat14 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -+ -' -haystack -= -" -\ -naa -\ -n -" -matches -= -[ -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat14 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -+ -' -haystack -= -" -\ -raa -\ -r -" -matches -= -[ -[ -4 -4 -] -] -[ -[ -test -] -] -name -= -" -repeat15 -" -regex -= -' -( -? -m -) -( -? -: -\ -n -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -5 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat15 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -\ -n -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -5 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat15 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -\ -r -) -+ -' -haystack -= -" -\ -r -\ -raaa -\ -r -\ -r -" -matches -= -[ -[ -0 -2 -] -[ -5 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat15 -- -no -- -multi -" -regex -= -' -( -? -: -\ -n -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -repeat15 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -\ -n -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -repeat15 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -\ -r -) -+ -' -haystack -= -" -\ -r -\ -raaa -\ -r -\ -r -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -repeat16 -" -regex -= -' -( -? -m -) -( -? -: -\ -n -) -* -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat16 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -\ -n -) -* -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat16 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -\ -r -) -* -' -haystack -= -" -\ -r -\ -raaa -\ -r -\ -r -" -matches -= -[ -[ -0 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat16 -- -no -- -multi -" -regex -= -' -( -? -: -\ -n -) -* -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat16 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -\ -n -) -* -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat16 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -\ -r -) -* -' -haystack -= -" -\ -r -\ -raaa -\ -r -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat17 -" -regex -= -' -( -? -m -) -( -? -: -\ -n -^ -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -5 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat17 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -\ -n -^ -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -5 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat17 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -\ -r -^ -) -+ -' -haystack -= -" -\ -r -\ -raaa -\ -r -\ -r -" -matches -= -[ -[ -0 -2 -] -[ -5 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat17 -- -no -- -multi -" -regex -= -' -( -? -: -\ -n -^ -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -repeat17 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -\ -n -^ -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -repeat17 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -\ -r -^ -) -+ -' -haystack -= -" -\ -r -\ -raaa -\ -r -\ -r -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -repeat18 -" -regex -= -' -( -? -m -) -( -? -: -^ -| -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat18 -- -crlf -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat18 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -( -? -: -^ -| -) -+ -' -haystack -= -" -\ -r -\ -raaa -\ -r -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -5 -5 -] -[ -6 -6 -] -[ -7 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat18 -- -no -- -multi -" -regex -= -' -( -? -: -^ -| -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -7 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat18 -- -no -- -multi -- -crlf -" -regex -= -' -( -? -R -) -( -? -: -^ -| -) -+ -' -haystack -= -" -\ -n -\ -naaa -\ -n -\ -n -" -matches -= -[ -[ -0 -0 -] -[ -7 -7 -] -] -[ -[ -test -] -] -name -= -" -repeat18 -- -no -- -multi -- -crlf -- -cr -" -regex -= -' -( -? -R -) -( -? -: -^ -| -) -+ -' -haystack -= -" -\ -r -\ -raaa -\ -r -\ -r -" -matches -= -[ -[ -0 -0 -] -[ -7 -7 -] -] -[ -[ -test -] -] -name -= -" -match -- -line -- -100 -" -regex -= -' -( -? -m -) -^ -. -+ -' -haystack -= -" -aa -\ -naaaaaaaaaaaaaaaaaaa -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -3 -22 -] -] -[ -[ -test -] -] -name -= -" -match -- -line -- -100 -- -crlf -" -regex -= -' -( -? -Rm -) -^ -. -+ -' -haystack -= -" -aa -\ -naaaaaaaaaaaaaaaaaaa -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -3 -22 -] -] -[ -[ -test -] -] -name -= -" -match -- -line -- -100 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -^ -. -+ -' -haystack -= -" -aa -\ -raaaaaaaaaaaaaaaaaaa -\ -r -" -matches -= -[ -[ -0 -2 -] -[ -3 -22 -] -] -[ -[ -test -] -] -name -= -" -match -- -line -- -200 -" -regex -= -' -( -? -m -) -^ -. -+ -' -haystack -= -" -aa -\ -naaaaaaaaaaaaaaaaaaa -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -3 -22 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -match -- -line -- -200 -- -crlf -" -regex -= -' -( -? -Rm -) -^ -. -+ -' -haystack -= -" -aa -\ -naaaaaaaaaaaaaaaaaaa -\ -n -" -matches -= -[ -[ -0 -2 -] -[ -3 -22 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -match -- -line -- -200 -- -crlf -- -cr -" -regex -= -' -( -? -Rm -) -^ -. -+ -' -haystack -= -" -aa -\ -raaaaaaaaaaaaaaaaaaa -\ -r -" -matches -= -[ -[ -0 -2 -] -[ -3 -22 -] -] -unicode -= -false -utf8 -= -false diff --git a/third_party/rust/regex/testdata/no-unicode.toml b/third_party/rust/regex/testdata/no-unicode.toml deleted file mode 100644 index 2169e0ff9dd9b..0000000000000 --- a/third_party/rust/regex/testdata/no-unicode.toml +++ /dev/null @@ -1,1506 +0,0 @@ -[ -[ -test -] -] -name -= -" -invalid -- -utf8 -- -literal1 -" -regex -= -' -\ -xFF -' -haystack -= -' -\ -xFF -' -matches -= -[ -[ -0 -1 -] -] -unicode -= -false -utf8 -= -false -unescape -= -true -[ -[ -test -] -] -name -= -" -mixed -" -regex -= -' -( -? -: -. -+ -) -( -? -- -u -) -( -? -: -. -+ -) -' -haystack -= -' -\ -xCE -\ -x93 -\ -xCE -\ -x94 -\ -xFF -' -matches -= -[ -[ -0 -5 -] -] -utf8 -= -false -unescape -= -true -[ -[ -test -] -] -name -= -" -case1 -" -regex -= -" -a -" -haystack -= -" -A -" -matches -= -[ -[ -0 -1 -] -] -case -- -insensitive -= -true -unicode -= -false -[ -[ -test -] -] -name -= -" -case2 -" -regex -= -" -[ -a -- -z -] -+ -" -haystack -= -" -AaAaA -" -matches -= -[ -[ -0 -5 -] -] -case -- -insensitive -= -true -unicode -= -false -[ -[ -test -] -] -name -= -" -case3 -" -regex -= -" -[ -a -- -z -] -+ -" -haystack -= -" -aA -\ -u212AaA -" -matches -= -[ -[ -0 -7 -] -] -case -- -insensitive -= -true -[ -[ -test -] -] -name -= -" -case4 -" -regex -= -" -[ -a -- -z -] -+ -" -haystack -= -" -aA -\ -u212AaA -" -matches -= -[ -[ -0 -2 -] -[ -5 -7 -] -] -case -- -insensitive -= -true -unicode -= -false -[ -[ -test -] -] -name -= -" -negate1 -" -regex -= -" -[ -^ -a -] -" -haystack -= -" -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -negate2 -" -regex -= -" -[ -^ -a -] -" -haystack -= -" -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -dotstar -- -prefix1 -" -regex -= -" -a -" -haystack -= -' -\ -xFFa -' -matches -= -[ -[ -1 -2 -] -] -unicode -= -false -utf8 -= -false -unescape -= -true -[ -[ -test -] -] -name -= -" -dotstar -- -prefix2 -" -regex -= -" -a -" -haystack -= -' -\ -xFFa -' -matches -= -[ -[ -1 -2 -] -] -utf8 -= -false -unescape -= -true -[ -[ -test -] -] -name -= -" -null -- -bytes1 -" -regex -= -' -[ -^ -\ -x00 -] -+ -\ -x00 -' -haystack -= -' -foo -\ -x00 -' -matches -= -[ -[ -0 -4 -] -] -unicode -= -false -utf8 -= -false -unescape -= -true -[ -[ -test -] -] -name -= -" -word -- -ascii -" -regex -= -' -\ -w -+ -' -haystack -= -" -a -" -matches -= -[ -[ -0 -1 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -word -- -unicode -" -regex -= -' -\ -w -+ -' -haystack -= -" -a -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -decimal -- -ascii -" -regex -= -' -\ -d -+ -' -haystack -= -" -1 -9 -" -matches -= -[ -[ -0 -1 -] -[ -7 -8 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -decimal -- -unicode -" -regex -= -' -\ -d -+ -' -haystack -= -" -1 -9 -" -matches -= -[ -[ -0 -8 -] -] -[ -[ -test -] -] -name -= -" -space -- -ascii -" -regex -= -' -\ -s -+ -' -haystack -= -" -\ -u1680 -" -matches -= -[ -[ -0 -1 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -space -- -unicode -" -regex -= -' -\ -s -+ -' -haystack -= -" -\ -u1680 -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -484 -name -= -" -iter1 -- -bytes -" -regex -= -' -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -utf8 -= -false -[ -[ -test -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -484 -name -= -" -iter1 -- -utf8 -" -regex -= -' -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -[ -3 -3 -] -] -[ -[ -test -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -484 -# -Note -that -iter2 -- -utf8 -doesn -' -t -make -sense -here -since -the -input -isn -' -t -UTF -- -8 -. -name -= -" -iter2 -- -bytes -" -regex -= -' -' -haystack -= -' -b -\ -xFFr -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -unescape -= -true -utf8 -= -false -# -These -test -that -unanchored -prefixes -can -munch -through -invalid -UTF -- -8 -even -when -# -utf8 -is -enabled -. -# -# -This -test -actually -reflects -an -interesting -simplification -in -how -the -Thompson -# -NFA -is -constructed -. -It -used -to -be -that -the -NFA -could -be -built -with -an -# -unanchored -prefix -that -either -matched -any -byte -or -_only_ -matched -valid -UTF -- -8 -. -# -But -the -latter -turns -out -to -be -pretty -precarious -when -it -comes -to -prefilters -# -because -if -you -search -a -haystack -that -contains -invalid -UTF -- -8 -but -have -an -# -unanchored -prefix -that -requires -UTF -- -8 -then -prefilters -are -no -longer -a -valid -# -optimization -because -you -actually -have -to -check -that -everything -is -valid -# -UTF -- -8 -. -# -# -Originally -I -had -thought -that -we -needed -a -valid -UTF -- -8 -unanchored -prefix -in -# -order -to -guarantee -that -we -only -match -at -valid -UTF -- -8 -boundaries -. -But -this -# -isn -' -t -actually -true -! -There -are -really -only -two -things -to -consider -here -: -# -# -1 -) -Will -a -regex -match -split -an -encoded -codepoint -? -No -. -Because -by -construction -# -we -ensure -that -a -MATCH -state -can -only -be -reached -by -following -valid -UTF -- -8 -( -assuming -# -all -of -the -UTF -- -8 -modes -are -enabled -) -. -# -# -2 -) -Will -a -regex -match -arbitrary -bytes -that -aren -' -t -valid -UTF -- -8 -? -Again -no -# -assuming -all -of -the -UTF -- -8 -modes -are -enabled -. -[ -[ -test -] -] -name -= -" -unanchored -- -invalid -- -utf8 -- -match -- -100 -" -regex -= -' -[ -a -- -z -] -' -haystack -= -' -\ -xFFa -\ -xFF -' -matches -= -[ -[ -1 -2 -] -] -unescape -= -true -utf8 -= -false -# -This -test -shows -that -we -can -still -prevent -a -match -from -occurring -by -requiring -# -that -valid -UTF -- -8 -match -by -inserting -our -own -unanchored -prefix -. -Thus -if -the -# -behavior -of -not -munching -through -invalid -UTF -- -8 -anywhere -is -needed -then -it -# -can -be -achieved -thusly -. -[ -[ -test -] -] -name -= -" -unanchored -- -invalid -- -utf8 -- -nomatch -" -regex -= -' -^ -( -? -s -: -. -) -* -? -[ -a -- -z -] -' -haystack -= -' -\ -xFFa -\ -xFF -' -matches -= -[ -] -unescape -= -true -utf8 -= -false -# -This -is -a -tricky -test -that -makes -sure -we -don -' -t -accidentally -do -a -kind -of -# -unanchored -search -when -we -' -ve -requested -that -a -regex -engine -not -report -# -empty -matches -that -split -a -codepoint -. -This -test -caught -a -regression -during -# -development -where -the -code -for -skipping -over -bad -empty -matches -would -do -so -# -even -if -the -search -should -have -been -anchored -. -This -is -ultimately -what -led -to -# -making -' -anchored -' -an -' -Input -' -option -so -that -it -was -always -clear -what -kind -# -of -search -was -being -performed -. -( -Before -that -whether -a -search -was -anchored -# -or -not -was -a -config -knob -on -the -regex -engine -. -) -This -did -wind -up -making -DFAs -# -a -little -more -complex -to -configure -( -with -their -' -StartKind -' -knob -) -but -it -# -generally -smoothed -out -everything -else -. -# -# -Great -example -of -a -test -whose -failure -motivated -a -sweeping -API -refactoring -. -[ -[ -test -] -] -name -= -" -anchored -- -iter -- -empty -- -utf8 -" -regex -= -' -' -haystack -= -' -a -z -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -unescape -= -false -utf8 -= -true -anchored -= -true diff --git a/third_party/rust/regex/testdata/overlapping.toml b/third_party/rust/regex/testdata/overlapping.toml deleted file mode 100644 index 504735e8a76f5..0000000000000 --- a/third_party/rust/regex/testdata/overlapping.toml +++ /dev/null @@ -1,2024 +0,0 @@ -# -NOTE -: -We -define -a -number -of -tests -where -the -* -match -* -kind -is -' -leftmost -- -first -' -# -but -the -* -search -* -kind -is -' -overlapping -' -. -This -is -a -somewhat -nonsensical -# -combination -and -can -produce -odd -results -. -Nevertheless -those -results -should -# -be -consistent -so -we -test -them -here -. -( -At -the -time -of -writing -this -note -I -# -hadn -' -t -yet -decided -whether -to -make -' -leftmost -- -first -' -with -' -overlapping -' -result -# -in -unspecified -behavior -. -) -# -This -demonstrates -how -a -full -overlapping -search -is -obvious -quadratic -. -This -# -regex -reports -a -match -for -every -substring -in -the -haystack -. -[ -[ -test -] -] -name -= -" -ungreedy -- -dotstar -- -matches -- -everything -- -100 -" -regex -= -[ -" -. -* -? -" -] -haystack -= -" -zzz -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -0 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -1 -2 -] -} -{ -id -= -0 -span -= -[ -0 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -{ -id -= -0 -span -= -[ -2 -3 -] -} -{ -id -= -0 -span -= -[ -1 -3 -] -} -{ -id -= -0 -span -= -[ -0 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -greedy -- -dotstar -- -matches -- -everything -- -100 -" -regex -= -[ -" -. -* -" -] -haystack -= -" -zzz -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -0 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -1 -2 -] -} -{ -id -= -0 -span -= -[ -0 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -{ -id -= -0 -span -= -[ -2 -3 -] -} -{ -id -= -0 -span -= -[ -1 -3 -] -} -{ -id -= -0 -span -= -[ -0 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -plus -- -leftmost -- -first -- -100 -" -regex -= -' -a -+ -' -haystack -= -" -aaa -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -[ -0 -2 -] -[ -2 -3 -] -[ -1 -3 -] -[ -0 -3 -] -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -plus -- -leftmost -- -first -- -110 -" -regex -= -' -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -[ -3 -6 -] -[ -0 -6 -] -[ -6 -9 -] -[ -3 -9 -] -[ -0 -9 -] -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -plus -- -all -- -100 -" -regex -= -' -a -+ -' -haystack -= -" -aaa -" -matches -= -[ -[ -0 -1 -] -[ -1 -2 -] -[ -0 -2 -] -[ -2 -3 -] -[ -1 -3 -] -[ -0 -3 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -plus -- -all -- -110 -" -regex -= -' -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -[ -3 -6 -] -[ -0 -6 -] -[ -6 -9 -] -[ -3 -9 -] -[ -0 -9 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -plus -- -leftmost -- -first -- -200 -" -regex -= -' -( -abc -) -+ -' -haystack -= -" -zzabcabczzabc -" -matches -= -[ -[ -[ -2 -5 -] -[ -2 -5 -] -] -[ -[ -5 -8 -] -[ -5 -8 -] -] -[ -[ -2 -8 -] -[ -5 -8 -] -] -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -plus -- -all -- -200 -" -regex -= -' -( -abc -) -+ -' -haystack -= -" -zzabcabczzabc -" -matches -= -[ -[ -[ -2 -5 -] -[ -2 -5 -] -] -[ -[ -5 -8 -] -[ -5 -8 -] -] -[ -[ -2 -8 -] -[ -5 -8 -] -] -[ -[ -10 -13 -] -[ -10 -13 -] -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -star -- -leftmost -- -first -- -100 -" -regex -= -' -a -* -' -haystack -= -" -aaa -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -0 -1 -] -[ -2 -2 -] -[ -1 -2 -] -[ -0 -2 -] -[ -3 -3 -] -[ -2 -3 -] -[ -1 -3 -] -[ -0 -3 -] -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -star -- -all -- -100 -" -regex -= -' -a -* -' -haystack -= -" -aaa -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -0 -1 -] -[ -2 -2 -] -[ -1 -2 -] -[ -0 -2 -] -[ -3 -3 -] -[ -2 -3 -] -[ -1 -3 -] -[ -0 -3 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -star -- -leftmost -- -first -- -200 -" -regex -= -' -( -abc -) -* -' -haystack -= -" -zzabcabczzabc -" -matches -= -[ -[ -[ -0 -0 -] -[ -] -] -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -repetition -- -star -- -all -- -200 -" -regex -= -' -( -abc -) -* -' -haystack -= -" -zzabcabczzabc -" -matches -= -[ -[ -[ -0 -0 -] -[ -] -] -[ -[ -1 -1 -] -[ -] -] -[ -[ -2 -2 -] -[ -] -] -[ -[ -3 -3 -] -[ -] -] -[ -[ -4 -4 -] -[ -] -] -[ -[ -5 -5 -] -[ -] -] -[ -[ -2 -5 -] -[ -2 -5 -] -] -[ -[ -6 -6 -] -[ -] -] -[ -[ -7 -7 -] -[ -] -] -[ -[ -8 -8 -] -[ -] -] -[ -[ -5 -8 -] -[ -5 -8 -] -] -[ -[ -2 -8 -] -[ -5 -8 -] -] -[ -[ -9 -9 -] -[ -] -] -[ -[ -10 -10 -] -[ -] -] -[ -[ -11 -11 -] -[ -] -] -[ -[ -12 -12 -] -[ -] -] -[ -[ -13 -13 -] -[ -] -] -[ -[ -10 -13 -] -[ -10 -13 -] -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -start -- -end -- -rep -- -leftmost -- -first -" -regex -= -' -( -^ -) -* -' -haystack -= -" -abc -" -matches -= -[ -[ -[ -0 -0 -] -[ -] -] -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -start -- -end -- -rep -- -all -" -regex -= -' -( -^ -) -* -' -haystack -= -" -abc -" -matches -= -[ -[ -[ -0 -0 -] -[ -] -] -[ -[ -1 -1 -] -[ -] -] -[ -[ -2 -2 -] -[ -] -] -[ -[ -3 -3 -] -[ -] -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -alt -- -leftmost -- -first -- -100 -" -regex -= -' -abc -| -a -' -haystack -= -" -zzabcazzaabc -" -matches -= -[ -[ -2 -3 -] -[ -2 -5 -] -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -alt -- -all -- -100 -" -regex -= -' -abc -| -a -' -haystack -= -" -zzabcazzaabc -" -matches -= -[ -[ -2 -3 -] -[ -2 -5 -] -[ -5 -6 -] -[ -8 -9 -] -[ -9 -10 -] -[ -9 -12 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty -- -000 -" -regex -= -" -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty -- -alt -- -000 -" -regex -= -" -| -b -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -1 -2 -] -[ -3 -3 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty -- -alt -- -010 -" -regex -= -" -b -| -" -haystack -= -" -abc -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -1 -2 -] -[ -3 -3 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -484 -name -= -" -iter1 -- -bytes -" -regex -= -' -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -utf8 -= -false -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -484 -name -= -" -iter1 -- -utf8 -" -regex -= -' -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -[ -3 -3 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -iter1 -- -incomplete -- -utf8 -" -regex -= -' -' -haystack -= -' -\ -xE2 -\ -x98 -' -# -incomplete -snowman -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -unescape -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -scratch -" -regex -= -[ -' -sam -' -' -samwise -' -] -haystack -= -" -samwise -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -overlapping -" diff --git a/third_party/rust/regex/testdata/regex-lite.toml b/third_party/rust/regex/testdata/regex-lite.toml deleted file mode 100644 index 93be606efdf21..0000000000000 --- a/third_party/rust/regex/testdata/regex-lite.toml +++ /dev/null @@ -1,696 +0,0 @@ -# -These -tests -are -specifically -written -to -test -the -regex -- -lite -crate -. -While -it -# -largely -has -the -same -semantics -as -the -regex -crate -there -are -some -differences -# -around -Unicode -support -and -UTF -- -8 -. -# -# -To -be -clear -regex -- -lite -supports -far -fewer -patterns -because -of -its -lack -of -# -Unicode -support -nested -character -classes -and -character -class -set -operations -. -# -What -we -' -re -talking -about -here -are -the -patterns -that -both -crates -support -but -# -where -the -semantics -might -differ -. -# -regex -- -lite -uses -ASCII -definitions -for -Perl -character -classes -. -[ -[ -test -] -] -name -= -" -perl -- -class -- -decimal -" -regex -= -' -\ -d -' -haystack -= -' -' -matches -= -[ -] -unicode -= -true -# -regex -- -lite -uses -ASCII -definitions -for -Perl -character -classes -. -[ -[ -test -] -] -name -= -" -perl -- -class -- -space -" -regex -= -' -\ -s -' -haystack -= -" -\ -u2000 -" -matches -= -[ -] -unicode -= -true -# -regex -- -lite -uses -ASCII -definitions -for -Perl -character -classes -. -[ -[ -test -] -] -name -= -" -perl -- -class -- -word -" -regex -= -' -\ -w -' -haystack -= -' -' -matches -= -[ -] -unicode -= -true -# -regex -- -lite -uses -the -ASCII -definition -of -word -for -word -boundary -assertions -. -[ -[ -test -] -] -name -= -" -word -- -boundary -" -regex -= -' -\ -b -' -haystack -= -' -' -matches -= -[ -] -unicode -= -true -# -regex -- -lite -uses -the -ASCII -definition -of -word -for -negated -word -boundary -# -assertions -. -But -note -that -it -should -still -not -split -codepoints -! -[ -[ -test -] -] -name -= -" -word -- -boundary -- -negated -" -regex -= -' -\ -B -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -] -unicode -= -true -# -While -we -' -re -here -the -empty -regex -- -- -- -which -matches -at -every -# -position -- -- -- -shouldn -' -t -split -a -codepoint -either -. -[ -[ -test -] -] -name -= -" -empty -- -no -- -split -- -codepoint -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -[ -4 -4 -] -] -unicode -= -true -# -A -dot -always -matches -a -full -codepoint -. -[ -[ -test -] -] -name -= -" -dot -- -always -- -matches -- -codepoint -" -regex -= -' -. -' -haystack -= -' -' -matches -= -[ -[ -0 -4 -] -] -unicode -= -false -# -A -negated -character -class -also -always -matches -a -full -codepoint -. -[ -[ -test -] -] -name -= -" -negated -- -class -- -always -- -matches -- -codepoint -" -regex -= -' -[ -^ -a -] -' -haystack -= -' -' -matches -= -[ -[ -0 -4 -] -] -unicode -= -false -# -regex -- -lite -only -supports -ASCII -- -aware -case -insensitive -matching -. -[ -[ -test -] -] -name -= -" -case -- -insensitive -- -is -- -ascii -- -only -" -regex -= -' -s -' -haystack -= -' -' -matches -= -[ -] -unicode -= -true -case -- -insensitive -= -true -# -Negated -word -boundaries -shouldn -' -t -split -a -codepoint -but -they -will -match -# -between -invalid -UTF -- -8 -. -# -# -This -test -is -only -valid -for -a -' -bytes -' -API -but -that -doesn -' -t -( -yet -) -exist -in -# -regex -- -lite -. -This -can -' -t -happen -in -the -main -API -because -& -str -can -' -t -contain -# -invalid -UTF -- -8 -. -# -[ -[ -test -] -] -# -name -= -" -word -- -boundary -- -invalid -- -utf8 -" -# -regex -= -' -\ -B -' -# -haystack -= -' -\ -xFF -\ -xFF -\ -xFF -\ -xFF -' -# -unescape -= -true -# -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -# -unicode -= -true -# -utf8 -= -false diff --git a/third_party/rust/regex/testdata/regression.toml b/third_party/rust/regex/testdata/regression.toml deleted file mode 100644 index cb6829ea94c1e..0000000000000 --- a/third_party/rust/regex/testdata/regression.toml +++ /dev/null @@ -1,7364 +0,0 @@ -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -48 -[ -[ -test -] -] -name -= -" -invalid -- -regex -- -no -- -crash -- -100 -" -regex -= -' -( -* -) -' -haystack -= -" -" -matches -= -[ -] -compiles -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -48 -[ -[ -test -] -] -name -= -" -invalid -- -regex -- -no -- -crash -- -200 -" -regex -= -' -( -? -: -? -) -' -haystack -= -" -" -matches -= -[ -] -compiles -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -48 -[ -[ -test -] -] -name -= -" -invalid -- -regex -- -no -- -crash -- -300 -" -regex -= -' -( -? -) -' -haystack -= -" -" -matches -= -[ -] -compiles -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -48 -[ -[ -test -] -] -name -= -" -invalid -- -regex -- -no -- -crash -- -400 -" -regex -= -' -* -' -haystack -= -" -" -matches -= -[ -] -compiles -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -75 -[ -[ -test -] -] -name -= -" -unsorted -- -binary -- -search -- -100 -" -regex -= -' -( -? -i -- -u -) -[ -a_ -] -+ -' -haystack -= -" -A_ -" -matches -= -[ -[ -0 -2 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -75 -[ -[ -test -] -] -name -= -" -unsorted -- -binary -- -search -- -200 -" -regex -= -' -( -? -i -- -u -) -[ -A_ -] -+ -' -haystack -= -" -a_ -" -matches -= -[ -[ -0 -2 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -76 -[ -[ -test -] -] -name -= -" -unicode -- -case -- -lower -- -nocase -- -flag -" -regex -= -' -( -? -i -) -\ -p -{ -Ll -} -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -10 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -99 -[ -[ -test -] -] -name -= -" -negated -- -char -- -class -- -100 -" -regex -= -' -( -? -i -) -[ -^ -x -] -' -haystack -= -" -x -" -matches -= -[ -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -99 -[ -[ -test -] -] -name -= -" -negated -- -char -- -class -- -200 -" -regex -= -' -( -? -i -) -[ -^ -x -] -' -haystack -= -" -X -" -matches -= -[ -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -101 -[ -[ -test -] -] -name -= -" -ascii -- -word -- -underscore -" -regex -= -' -[ -[ -: -word -: -] -] -' -haystack -= -" -_ -" -matches -= -[ -[ -0 -1 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -129 -[ -[ -test -] -] -name -= -" -captures -- -repeat -" -regex -= -' -( -[ -a -- -f -] -) -{ -2 -} -( -? -P -< -foo -> -[ -x -- -z -] -) -' -haystack -= -" -abx -" -matches -= -[ -[ -[ -0 -3 -] -[ -1 -2 -] -[ -2 -3 -] -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -153 -[ -[ -test -] -] -name -= -" -alt -- -in -- -alt -- -100 -" -regex -= -' -ab -? -| -' -haystack -= -" -az -" -matches -= -[ -[ -0 -1 -] -[ -2 -2 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -153 -[ -[ -test -] -] -name -= -" -alt -- -in -- -alt -- -200 -" -regex -= -' -^ -( -? -: -. -* -? -) -( -? -: -\ -n -| -\ -r -\ -n -? -| -) -' -haystack -= -" -ab -\ -rcd -" -matches -= -[ -[ -0 -3 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -169 -[ -[ -test -] -] -name -= -" -leftmost -- -first -- -prefix -" -regex -= -' -z -* -azb -' -haystack -= -" -azb -" -matches -= -[ -[ -0 -3 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -191 -[ -[ -test -] -] -name -= -" -many -- -alternates -" -regex -= -' -1 -| -2 -| -3 -| -4 -| -5 -| -6 -| -7 -| -8 -| -9 -| -10 -| -int -' -haystack -= -" -int -" -matches -= -[ -[ -0 -3 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -204 -[ -[ -test -] -] -name -= -" -word -- -boundary -- -alone -- -100 -" -regex -= -' -\ -b -' -haystack -= -" -Should -this -( -work -? -) -" -matches -= -[ -[ -0 -0 -] -[ -6 -6 -] -[ -7 -7 -] -[ -11 -11 -] -[ -13 -13 -] -[ -17 -17 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -204 -[ -[ -test -] -] -name -= -" -word -- -boundary -- -alone -- -200 -" -regex -= -' -\ -b -' -haystack -= -" -a -b -c -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -264 -[ -[ -test -] -] -name -= -" -word -- -boundary -- -ascii -- -no -- -capture -" -regex -= -' -\ -B -' -haystack -= -" -\ -U00028F3E -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -unicode -= -false -utf8 -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -264 -[ -[ -test -] -] -name -= -" -word -- -boundary -- -ascii -- -capture -" -regex -= -' -( -? -: -\ -B -) -' -haystack -= -" -\ -U00028F3E -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -unicode -= -false -utf8 -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -268 -[ -[ -test -] -] -name -= -" -partial -- -anchor -" -regex -= -' -^ -a -| -b -' -haystack -= -" -ba -" -matches -= -[ -[ -0 -1 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -271 -[ -[ -test -] -] -name -= -" -endl -- -or -- -word -- -boundary -" -regex -= -' -( -? -m -: -) -| -( -? -- -u -: -\ -b -) -' -haystack -= -" -\ -U0006084E -" -matches -= -[ -[ -4 -4 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -271 -[ -[ -test -] -] -name -= -" -zero -- -or -- -end -" -regex -= -' -( -? -i -- -u -: -\ -x00 -) -| -' -haystack -= -" -\ -U000E682F -" -matches -= -[ -[ -4 -4 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -271 -[ -[ -test -] -] -name -= -" -y -- -or -- -endl -" -regex -= -' -( -? -i -- -u -: -y -) -| -( -? -m -: -) -' -haystack -= -" -\ -U000B4331 -" -matches -= -[ -[ -4 -4 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -271 -[ -[ -test -] -] -name -= -" -word -- -boundary -- -start -- -x -" -regex -= -' -( -? -u -: -\ -b -) -^ -( -? -- -u -: -X -) -' -haystack -= -" -X -" -matches -= -[ -[ -0 -1 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -271 -[ -[ -test -] -] -name -= -" -word -- -boundary -- -ascii -- -start -- -x -" -regex -= -' -( -? -- -u -: -\ -b -) -^ -( -? -- -u -: -X -) -' -haystack -= -" -X -" -matches -= -[ -[ -0 -1 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -271 -[ -[ -test -] -] -name -= -" -end -- -not -- -word -- -boundary -" -regex -= -' -\ -B -' -haystack -= -" -\ -U0005C124 -\ -U000B576C -" -matches -= -[ -[ -8 -8 -] -] -unicode -= -false -utf8 -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -280 -[ -[ -test -] -] -name -= -" -partial -- -anchor -- -alternate -- -begin -" -regex -= -' -^ -a -| -z -' -haystack -= -" -yyyyya -" -matches -= -[ -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -280 -[ -[ -test -] -] -name -= -" -partial -- -anchor -- -alternate -- -end -" -regex -= -' -a -| -z -' -haystack -= -" -ayyyyy -" -matches -= -[ -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -289 -[ -[ -test -] -] -name -= -" -lits -- -unambiguous -- -100 -" -regex -= -' -( -? -: -ABC -| -CDA -| -BC -) -X -' -haystack -= -" -CDAX -" -matches -= -[ -[ -0 -4 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -291 -[ -[ -test -] -] -name -= -" -lits -- -unambiguous -- -200 -" -regex -= -' -( -( -IMG -| -CAM -| -MG -| -MB2 -) -_ -| -( -DSCN -| -CIMG -) -) -( -? -P -< -n -> -[ -0 -- -9 -] -+ -) -' -haystack -= -" -CIMG2341 -" -matches -= -[ -[ -[ -0 -8 -] -[ -0 -4 -] -[ -] -[ -0 -4 -] -[ -4 -8 -] -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -303 -# -# -2022 -- -09 -- -19 -: -This -has -now -been -" -properly -" -fixed -in -that -empty -character -# -classes -are -fully -supported -as -something -that -can -never -match -. -This -test -# -used -to -be -marked -as -' -compiles -= -false -' -but -now -it -works -. -[ -[ -test -] -] -name -= -" -negated -- -full -- -byte -- -range -" -regex -= -' -[ -^ -\ -x00 -- -\ -xFF -] -' -haystack -= -" -" -matches -= -[ -] -compiles -= -true -unicode -= -false -utf8 -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -321 -[ -[ -test -] -] -name -= -" -strange -- -anchor -- -non -- -complete -- -prefix -" -regex -= -' -a -^ -{ -2 -} -' -haystack -= -" -" -matches -= -[ -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -321 -[ -[ -test -] -] -name -= -" -strange -- -anchor -- -non -- -complete -- -suffix -" -regex -= -' -{ -2 -} -a -' -haystack -= -" -" -matches -= -[ -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -334 -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -557 -[ -[ -test -] -] -name -= -" -captures -- -after -- -dfa -- -premature -- -end -- -100 -" -regex -= -' -a -( -b -* -( -X -| -) -) -? -' -haystack -= -" -abcbX -" -matches -= -[ -[ -[ -0 -1 -] -[ -] -[ -] -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -334 -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -557 -[ -[ -test -] -] -name -= -" -captures -- -after -- -dfa -- -premature -- -end -- -200 -" -regex -= -' -a -( -bc -* -( -X -| -) -) -? -' -haystack -= -" -abcbX -" -matches -= -[ -[ -[ -0 -1 -] -[ -] -[ -] -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -334 -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -557 -[ -[ -test -] -] -name -= -" -captures -- -after -- -dfa -- -premature -- -end -- -300 -" -regex -= -' -( -aa -) -? -' -haystack -= -" -aaz -" -matches -= -[ -[ -[ -0 -0 -] -[ -] -] -[ -[ -1 -1 -] -[ -] -] -[ -[ -2 -2 -] -[ -] -] -[ -[ -3 -3 -] -[ -] -] -] -# -Plucked -from -" -Why -aren -t -regular -expressions -a -lingua -franca -? -an -empirical -# -study -on -the -re -- -use -and -portability -of -regular -expressions -" -The -ACM -Joint -# -European -Software -Engineering -Conference -and -Symposium -on -the -Foundations -of -# -Software -Engineering -( -ESEC -/ -FSE -) -2019 -. -# -# -Link -: -https -: -/ -/ -dl -. -acm -. -org -/ -doi -/ -pdf -/ -10 -. -1145 -/ -3338906 -. -3338909 -[ -[ -test -] -] -name -= -" -captures -- -after -- -dfa -- -premature -- -end -- -400 -" -regex -= -' -( -a -) -\ -d -* -\ -. -? -\ -d -+ -\ -b -' -haystack -= -" -a0 -. -0c -" -matches -= -[ -[ -[ -0 -2 -] -[ -0 -1 -] -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -437 -[ -[ -test -] -] -name -= -" -literal -- -panic -" -regex -= -' -typename -type -\ -- -parameter -\ -- -[ -0 -- -9 -] -+ -\ -- -[ -0 -- -9 -] -+ -: -: -. -+ -' -haystack -= -" -test -" -matches -= -[ -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -527 -[ -[ -test -] -] -name -= -" -empty -- -flag -- -expr -" -regex -= -' -( -? -: -( -? -: -( -? -x -) -) -) -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -533 -# -[ -[ -tests -] -] -# -name -= -" -blank -- -matches -- -nothing -- -between -- -space -- -and -- -tab -" -# -regex -= -' -[ -[ -: -blank -: -] -] -' -# -input -= -' -\ -x0A -\ -x0B -\ -x0C -\ -x0D -\ -x0E -\ -x0F -\ -x10 -\ -x11 -\ -x12 -\ -x13 -\ -x14 -\ -x15 -\ -x16 -\ -x17 -\ -x18 -\ -x19 -\ -x1A -\ -x1B -\ -x1C -\ -x1D -\ -x1E -\ -x1F -' -# -match -= -false -# -unescape -= -true -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -533 -# -[ -[ -tests -] -] -# -name -= -" -blank -- -matches -- -nothing -- -between -- -space -- -and -- -tab -- -inverted -" -# -regex -= -' -^ -[ -[ -: -^ -blank -: -] -] -+ -' -# -input -= -' -\ -x0A -\ -x0B -\ -x0C -\ -x0D -\ -x0E -\ -x0F -\ -x10 -\ -x11 -\ -x12 -\ -x13 -\ -x14 -\ -x15 -\ -x16 -\ -x17 -\ -x18 -\ -x19 -\ -x1A -\ -x1B -\ -x1C -\ -x1D -\ -x1E -\ -x1F -' -# -match -= -true -# -unescape -= -true -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -555 -[ -[ -test -] -] -name -= -" -invalid -- -repetition -" -regex -= -' -( -? -m -) -{ -1 -1 -} -' -haystack -= -" -" -matches -= -[ -] -compiles -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -640 -[ -[ -test -] -] -name -= -" -flags -- -are -- -unset -" -regex -= -' -( -? -: -( -? -i -) -foo -) -| -Bar -' -haystack -= -" -foo -Foo -bar -Bar -" -matches -= -[ -[ -0 -3 -] -[ -4 -7 -] -[ -12 -15 -] -] -# -Note -that -' -' -is -not -' -j -' -but -cyrillic -Je -# -https -: -/ -/ -en -. -wikipedia -. -org -/ -wiki -/ -Je_ -( -Cyrillic -) -# -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -659 -[ -[ -test -] -] -name -= -" -empty -- -group -- -with -- -unicode -" -regex -= -' -( -? -: -) -01 -' -haystack -= -' -z -01 -' -matches -= -[ -[ -1 -5 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -579 -[ -[ -test -] -] -name -= -" -word -- -boundary -- -weird -" -regex -= -' -\ -b -. -. -\ -b -' -haystack -= -" -I -have -12 -he -has -2 -! -" -matches -= -[ -[ -0 -2 -] -[ -7 -9 -] -[ -9 -11 -] -[ -11 -13 -] -[ -17 -19 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -579 -[ -[ -test -] -] -name -= -" -word -- -boundary -- -weird -- -ascii -" -regex -= -' -\ -b -. -. -\ -b -' -haystack -= -" -I -have -12 -he -has -2 -! -" -matches -= -[ -[ -0 -2 -] -[ -7 -9 -] -[ -9 -11 -] -[ -11 -13 -] -[ -17 -19 -] -] -unicode -= -false -utf8 -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -579 -[ -[ -test -] -] -name -= -" -word -- -boundary -- -weird -- -minimal -- -ascii -" -regex -= -' -\ -b -. -. -\ -b -' -haystack -= -" -az -b -" -matches -= -[ -[ -0 -2 -] -[ -2 -4 -] -] -unicode -= -false -utf8 -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -BurntSushi -/ -ripgrep -/ -issues -/ -1203 -[ -[ -test -] -] -name -= -" -reverse -- -suffix -- -100 -" -regex -= -' -[ -0 -- -4 -] -[ -0 -- -4 -] -[ -0 -- -4 -] -000 -' -haystack -= -" -153 -. -230000 -" -matches -= -[ -[ -4 -10 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -BurntSushi -/ -ripgrep -/ -issues -/ -1203 -[ -[ -test -] -] -name -= -" -reverse -- -suffix -- -200 -" -regex -= -' -[ -0 -- -9 -] -[ -0 -- -9 -] -[ -0 -- -9 -] -000 -' -haystack -= -" -153 -. -230000 -\ -n -" -matches -= -[ -[ -4 -10 -] -] -# -This -is -a -tricky -case -for -the -reverse -suffix -optimization -because -it -# -finds -the -' -foobar -' -match -but -the -reverse -scan -must -fail -to -find -a -match -by -# -correctly -dealing -with -the -word -boundary -following -the -' -foobar -' -literal -when -# -computing -the -start -state -. -# -# -This -test -exists -because -I -tried -to -break -the -following -assumption -that -# -is -currently -in -the -code -: -that -if -a -suffix -is -found -and -the -reverse -scan -# -succeeds -then -it -' -s -guaranteed -that -there -is -an -overall -match -. -Namely -the -# -' -is_match -' -routine -does -* -not -* -do -another -forward -scan -in -this -case -because -of -# -this -assumption -. -[ -[ -test -] -] -name -= -" -reverse -- -suffix -- -300 -" -regex -= -' -\ -w -+ -foobar -\ -b -' -haystack -= -" -xyzfoobarZ -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -BurntSushi -/ -ripgrep -/ -issues -/ -1247 -[ -[ -test -] -] -name -= -" -stops -" -regex -= -' -\ -bs -( -? -: -[ -ab -] -) -' -haystack -= -' -s -\ -xE4 -' -matches -= -[ -] -unescape -= -true -utf8 -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -BurntSushi -/ -ripgrep -/ -issues -/ -1247 -[ -[ -test -] -] -name -= -" -stops -- -ascii -" -regex -= -' -( -? -- -u -: -\ -b -) -s -( -? -: -[ -ab -] -) -' -haystack -= -' -s -\ -xE4 -' -matches -= -[ -] -unescape -= -true -utf8 -= -false -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -850 -[ -[ -test -] -] -name -= -" -adjacent -- -line -- -boundary -- -100 -" -regex -= -' -( -? -m -) -^ -( -? -: -[ -^ -] -+ -? -) -' -haystack -= -" -line1 -\ -nline2 -" -matches -= -[ -[ -0 -5 -] -[ -6 -11 -] -] -# -Continued -. -[ -[ -test -] -] -name -= -" -adjacent -- -line -- -boundary -- -200 -" -regex -= -' -( -? -m -) -^ -( -? -: -[ -^ -] -+ -? -) -' -haystack -= -" -A -\ -nB -" -matches -= -[ -[ -0 -1 -] -[ -2 -3 -] -] -# -There -is -no -issue -for -this -bug -. -[ -[ -test -] -] -name -= -" -anchored -- -prefix -- -100 -" -regex -= -' -^ -a -[ -[ -: -^ -space -: -] -] -' -haystack -= -" -a -" -matches -= -[ -] -# -There -is -no -issue -for -this -bug -. -[ -[ -test -] -] -name -= -" -anchored -- -prefix -- -200 -" -regex -= -' -^ -a -[ -[ -: -^ -space -: -] -] -' -haystack -= -" -foo -boo -a -" -matches -= -[ -] -# -There -is -no -issue -for -this -bug -. -[ -[ -test -] -] -name -= -" -anchored -- -prefix -- -300 -" -regex -= -' -^ -- -[ -a -- -z -] -' -haystack -= -" -r -- -f -" -matches -= -[ -] -# -Tests -that -a -possible -Aho -- -Corasick -optimization -works -correctly -. -It -only -# -kicks -in -when -we -have -a -lot -of -literals -. -By -" -works -correctly -" -we -mean -that -# -leftmost -- -first -match -semantics -are -properly -respected -. -That -is -samwise -# -should -match -not -sam -. -# -# -There -is -no -issue -for -this -bug -. -[ -[ -test -] -] -name -= -" -aho -- -corasick -- -100 -" -regex -= -' -samwise -| -sam -| -a -| -b -| -c -| -d -| -e -| -f -| -g -| -h -| -i -| -j -| -k -| -l -| -m -| -n -| -o -| -p -| -q -| -r -| -s -| -t -| -u -| -v -| -w -| -x -| -y -| -z -| -A -| -B -| -C -| -D -| -E -| -F -| -G -| -H -| -I -| -J -| -K -| -L -| -M -| -N -| -O -| -P -| -Q -| -R -| -S -| -T -| -U -| -V -| -W -| -X -| -Y -| -Z -' -haystack -= -" -samwise -" -matches -= -[ -[ -0 -7 -] -] -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -921 -[ -[ -test -] -] -name -= -" -interior -- -anchor -- -capture -" -regex -= -' -( -a -) -b -' -haystack -= -' -ab -' -matches -= -[ -] -# -I -found -this -bug -in -the -course -of -adding -some -of -the -regexes -that -Ruff -uses -# -to -rebar -. -It -turns -out -that -the -lazy -DFA -was -finding -a -match -that -was -being -# -rejected -by -the -one -- -pass -DFA -. -Yikes -. -I -then -minimized -the -regex -and -haystack -. -# -# -Source -: -https -: -/ -/ -github -. -com -/ -charliermarsh -/ -ruff -/ -blob -/ -a919041ddaa64cdf6f216f90dd0480dab69fd3ba -/ -crates -/ -ruff -/ -src -/ -rules -/ -pycodestyle -/ -rules -/ -whitespace_around_keywords -. -rs -# -L52 -[ -[ -test -] -] -name -= -" -ruff -- -whitespace -- -around -- -keywords -" -regex -= -' -^ -( -a -| -ab -) -' -haystack -= -" -ab -" -anchored -= -true -unicode -= -false -utf8 -= -true -matches -= -[ -[ -[ -0 -2 -] -[ -0 -2 -] -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -0 -" -regex -= -' -( -? -: -( -? -- -u -: -\ -b -) -| -( -? -u -: -h -) -) -+ -' -haystack -= -" -h -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -1 -" -regex -= -' -( -? -u -: -\ -B -) -' -haystack -= -" -" -unicode -= -true -utf8 -= -false -matches -= -[ -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -2 -" -regex -= -' -( -? -: -( -? -u -: -\ -b -) -| -( -? -s -- -u -: -. -) -) -+ -' -haystack -= -" -oB -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -0 -0 -] -[ -1 -2 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -3 -" -regex -= -' -( -? -: -( -? -- -u -: -\ -B -) -| -( -? -su -: -. -) -) -+ -' -haystack -= -" -\ -U000FEF80 -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -3 -- -utf8 -" -regex -= -' -( -? -: -( -? -- -u -: -\ -B -) -| -( -? -su -: -. -) -) -+ -' -haystack -= -" -\ -U000FEF80 -" -unicode -= -true -utf8 -= -true -matches -= -[ -[ -0 -0 -] -[ -4 -4 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -4 -" -regex -= -' -( -? -m -: -) -( -? -m -: -^ -) -( -? -su -: -. -) -' -haystack -= -" -\ -n -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -0 -1 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -5 -" -regex -= -' -( -? -m -: -) -^ -( -? -m -: -^ -) -' -haystack -= -" -\ -n -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -0 -0 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -6 -" -regex -= -' -( -? -P -< -kp -> -( -? -iu -: -do -) -( -? -m -: -) -) -* -' -haystack -= -" -dodo -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -[ -0 -0 -] -[ -] -] -[ -[ -1 -1 -] -[ -] -] -[ -[ -2 -4 -] -[ -2 -4 -] -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -7 -" -regex -= -' -( -? -u -: -\ -B -) -' -haystack -= -" -" -unicode -= -true -utf8 -= -false -matches -= -[ -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -8 -" -regex -= -' -( -? -: -( -? -- -u -: -\ -b -) -| -( -? -u -: -[ -\ -u -{ -0 -} -- -W -] -) -) -+ -' -haystack -= -" -0 -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -9 -" -regex -= -' -( -( -? -m -: -) -( -? -- -u -: -\ -B -) -( -? -s -- -u -: -. -) -( -? -- -u -: -\ -B -) -) -' -haystack -= -" -\ -n -\ -n -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -[ -1 -2 -] -[ -1 -2 -] -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -10 -" -regex -= -' -( -? -m -: -) -( -? -m -: -) -^ -( -? -su -: -. -) -' -haystack -= -" -\ -n -\ -u0081 -\ -u200a -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -0 -1 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -11 -" -regex -= -' -( -? -- -u -: -\ -B -) -( -? -m -: -^ -) -' -haystack -= -" -0 -\ -n -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -2 -2 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -429 -[ -[ -test -] -] -name -= -" -i429 -- -12 -" -regex -= -' -( -? -: -( -? -u -: -\ -b -) -| -( -? -- -u -: -. -) -) -+ -' -haystack -= -" -0 -" -unicode -= -true -utf8 -= -false -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -969 -[ -[ -test -] -] -name -= -" -i969 -" -regex -= -' -c -. -* -d -\ -z -' -haystack -= -" -ababcd -" -bounds -= -[ -4 -6 -] -search -- -kind -= -" -earliest -" -matches -= -[ -[ -4 -6 -] -] -# -I -found -this -during -the -regex -- -automata -migration -. -This -is -the -fowler -basic -# -154 -test -but -without -anchored -= -true -and -without -a -match -limit -. -# -# -This -test -caught -a -subtle -bug -in -the -hybrid -reverse -DFA -search -where -it -# -would -skip -over -the -termination -condition -if -it -entered -a -start -state -. -This -# -was -a -double -bug -. -Firstly -the -reverse -DFA -shouldn -' -t -have -had -start -states -# -specialized -in -the -first -place -and -thus -it -shouldn -' -t -have -possible -to -detect -# -that -the -DFA -had -entered -a -start -state -. -The -second -bug -was -that -the -start -# -state -handling -was -incorrect -by -jumping -over -the -termination -condition -. -[ -[ -test -] -] -name -= -" -fowler -- -basic154 -- -unanchored -" -regex -= -' -' -' -a -( -[ -bc -] -* -) -c -* -' -' -' -haystack -= -' -' -' -abc -' -' -' -matches -= -[ -[ -[ -0 -3 -] -[ -1 -3 -] -] -] -# -From -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -981 -# -# -This -was -never -really -a -problem -in -the -new -architecture -because -the -# -regex -- -automata -engines -are -far -more -principled -about -how -they -deal -with -# -look -- -around -. -( -This -was -one -of -the -many -reasons -I -wanted -to -re -- -work -the -# -original -regex -crate -engines -. -) -[ -[ -test -] -] -name -= -" -word -- -boundary -- -interact -- -poorly -- -with -- -literal -- -optimizations -" -regex -= -' -( -? -i -: -( -? -: -\ -b -| -_ -) -win -( -? -: -32 -| -64 -| -dows -) -? -( -? -: -\ -b -| -_ -) -) -' -haystack -= -' -ubi -- -Darwin -- -x86_64 -. -tar -. -gz -' -matches -= -[ -] -# -This -was -found -during -fuzz -testing -of -regex -. -It -provoked -a -panic -in -the -meta -# -engine -as -a -result -of -the -reverse -suffix -optimization -. -Namely -it -hit -a -case -# -where -a -suffix -match -was -found -a -corresponding -reverse -match -was -found -but -# -the -forward -search -turned -up -no -match -. -The -forward -search -should -always -match -# -if -the -suffix -and -reverse -search -match -. -# -# -This -in -turn -uncovered -an -inconsistency -between -the -PikeVM -and -the -DFA -( -lazy -# -and -fully -compiled -) -engines -. -It -was -caused -by -a -mishandling -of -the -collection -# -of -NFA -state -IDs -in -the -generic -determinization -code -( -which -is -why -both -types -# -of -DFA -were -impacted -) -. -Namely -when -a -fail -state -was -encountered -( -that -' -s -the -# -[ -^ -\ -s -\ -S -] -in -the -pattern -below -) -then -it -would -just -stop -collecting -states -. -# -But -that -' -s -not -correct -since -a -later -state -could -lead -to -a -match -. -[ -[ -test -] -] -name -= -" -impossible -- -branch -" -regex -= -' -. -* -[ -^ -\ -s -\ -S -] -A -| -B -' -haystack -= -" -B -" -matches -= -[ -[ -0 -1 -] -] -# -This -was -found -during -fuzz -testing -in -regex -- -lite -. -The -regex -crate -never -# -suffered -from -this -bug -but -it -causes -regex -- -lite -to -incorrectly -compile -# -captures -. -[ -[ -test -] -] -name -= -" -captures -- -wrong -- -order -" -regex -= -' -( -a -) -{ -0 -} -( -a -) -' -haystack -= -' -a -' -matches -= -[ -[ -[ -0 -1 -] -[ -] -[ -0 -1 -] -] -] -# -This -tests -a -bug -in -how -quit -states -are -handled -in -the -DFA -. -At -some -point -# -during -development -the -DFAs -were -tweaked -slightly -such -that -if -they -hit -# -a -quit -state -( -which -means -they -hit -a -byte -that -the -caller -configured -should -# -stop -the -search -) -then -it -might -not -return -an -error -necessarily -. -Namely -if -a -# -match -had -already -been -found -then -it -would -be -returned -instead -of -an -error -. -# -# -But -this -is -actually -wrong -! -Why -? -Because -even -though -a -match -had -been -found -# -it -wouldn -' -t -be -fully -correct -to -return -it -once -a -quit -state -has -been -seen -# -because -you -can -' -t -determine -whether -the -match -offset -returned -is -the -correct -# -greedy -/ -leftmost -- -first -match -. -Since -you -can -' -t -complete -the -search -as -requested -# -by -the -caller -the -DFA -should -just -stop -and -return -an -error -. -# -# -Interestingly -this -does -seem -to -produce -an -unavoidable -difference -between -# -' -try_is_match -( -) -. -unwrap -( -) -' -and -' -try_find -( -) -. -unwrap -( -) -. -is_some -( -) -' -for -the -DFAs -. -# -The -former -will -stop -immediately -once -a -match -is -known -to -occur -and -return -# -' -Ok -( -true -) -' -where -as -the -latter -could -find -the -match -but -quit -with -an -# -' -Err -( -. -. -) -' -first -. -# -# -Thankfully -I -believe -this -inconsistency -between -' -is_match -( -) -' -and -' -find -( -) -' -# -cannot -be -observed -in -the -higher -level -meta -regex -API -because -it -specifically -# -will -try -another -engine -that -won -' -t -fail -in -the -case -of -a -DFA -failing -. -# -# -This -regression -happened -in -the -regex -crate -rewrite -but -before -anything -got -# -released -. -[ -[ -test -] -] -name -= -" -negated -- -unicode -- -word -- -boundary -- -dfa -- -fail -" -regex -= -' -\ -B -. -* -' -haystack -= -" -! -\ -u02D7 -" -matches -= -[ -[ -0 -3 -] -] -# -This -failure -was -found -in -the -* -old -* -regex -crate -( -prior -to -regex -1 -. -9 -) -but -# -I -didn -' -t -investigate -why -. -My -best -guess -is -that -it -' -s -a -literal -optimization -# -bug -. -It -didn -' -t -occur -in -the -rewrite -. -[ -[ -test -] -] -name -= -" -missed -- -match -" -regex -= -' -e -. -. -+ -e -. -ee -> -' -haystack -= -' -Zeee -. -eZZZZZZZZeee -> -eeeeeee -> -' -matches -= -[ -[ -1 -26 -] -] -# -This -test -came -from -the -' -ignore -' -crate -and -tripped -a -bug -in -how -accelerated -# -DFA -states -were -handled -in -an -overlapping -search -. -[ -[ -test -] -] -name -= -" -regex -- -to -- -glob -" -regex -= -[ -' -( -? -- -u -) -^ -path1 -/ -[ -^ -/ -] -* -' -] -haystack -= -" -path1 -/ -foo -" -matches -= -[ -[ -0 -9 -] -] -utf8 -= -false -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -1060 -[ -[ -test -] -] -name -= -" -reverse -- -inner -- -plus -- -shorter -- -than -- -expected -" -regex -= -' -( -? -: -( -\ -d -+ -) -[ -: -. -] -) -? -( -\ -d -{ -1 -2 -} -) -[ -: -. -] -( -\ -d -{ -2 -} -) -' -haystack -= -' -102 -: -12 -: -39 -' -matches -= -[ -[ -[ -0 -9 -] -[ -0 -3 -] -[ -4 -6 -] -[ -7 -9 -] -] -] -# -Like -reverse -- -inner -- -plus -- -shorter -- -than -- -expected -but -using -a -far -simpler -regex -# -to -demonstrate -the -extent -of -the -rot -. -Sigh -. -# -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -1060 -[ -[ -test -] -] -name -= -" -reverse -- -inner -- -short -" -regex -= -' -( -? -: -( -[ -0 -- -9 -] -[ -0 -- -9 -] -[ -0 -- -9 -] -) -: -) -? -( -[ -0 -- -9 -] -[ -0 -- -9 -] -) -: -( -[ -0 -- -9 -] -[ -0 -- -9 -] -) -' -haystack -= -' -102 -: -12 -: -39 -' -matches -= -[ -[ -[ -0 -9 -] -[ -0 -3 -] -[ -4 -6 -] -[ -7 -9 -] -] -] -# -This -regression -test -was -found -via -the -RegexSet -APIs -. -It -triggered -a -# -particular -code -path -where -a -regex -was -compiled -with -' -All -' -match -semantics -# -( -to -support -overlapping -search -) -but -got -funneled -down -into -a -standard -# -leftmost -search -when -calling -' -is_match -' -. -This -is -fine -on -its -own -but -the -# -leftmost -search -will -use -a -prefilter -and -that -' -s -where -this -went -awry -. -# -# -Namely -since -' -All -' -semantics -were -used -the -aho -- -corasick -prefilter -was -# -incorrectly -compiled -with -' -Standard -' -semantics -. -This -was -wrong -because -# -' -Standard -' -immediately -attempts -to -report -a -match -at -every -position -even -if -# -that -would -mean -reporting -a -match -past -the -leftmost -match -before -reporting -# -the -leftmost -match -. -This -breaks -the -prefilter -contract -of -never -having -false -# -negatives -and -leads -overall -to -the -engine -not -finding -a -match -. -# -# -See -: -https -: -/ -/ -github -. -com -/ -rust -- -lang -/ -regex -/ -issues -/ -1070 -[ -[ -test -] -] -name -= -" -prefilter -- -with -- -aho -- -corasick -- -standard -- -semantics -" -regex -= -' -( -? -m -) -^ -* -v -[ -0 -- -9 -] -' -haystack -= -' -v -0 -' -matches -= -[ -{ -id -= -0 -spans -= -[ -[ -0 -3 -] -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -unicode -= -true -utf8 -= -true diff --git a/third_party/rust/regex/testdata/set.toml b/third_party/rust/regex/testdata/set.toml deleted file mode 100644 index 474a2c7dbb9e4..0000000000000 --- a/third_party/rust/regex/testdata/set.toml +++ /dev/null @@ -1,4442 +0,0 @@ -# -Basic -multi -- -regex -tests -. -[ -[ -test -] -] -name -= -" -basic10 -" -regex -= -[ -" -a -" -" -a -" -] -haystack -= -" -a -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -1 -] -} -{ -id -= -1 -span -= -[ -0 -1 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic10 -- -leftmost -- -first -" -regex -= -[ -" -a -" -" -a -" -] -haystack -= -" -a -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -1 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -basic20 -" -regex -= -[ -" -a -" -" -a -" -] -haystack -= -" -ba -" -matches -= -[ -{ -id -= -0 -span -= -[ -1 -2 -] -} -{ -id -= -1 -span -= -[ -1 -2 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic30 -" -regex -= -[ -" -a -" -" -b -" -] -haystack -= -" -a -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -1 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic40 -" -regex -= -[ -" -a -" -" -b -" -] -haystack -= -" -b -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -1 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic50 -" -regex -= -[ -" -a -| -b -" -" -b -| -a -" -] -haystack -= -" -b -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -1 -] -} -{ -id -= -1 -span -= -[ -0 -1 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic60 -" -regex -= -[ -" -foo -" -" -oo -" -] -haystack -= -" -foo -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -3 -] -} -{ -id -= -1 -span -= -[ -1 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic60 -- -leftmost -- -first -" -regex -= -[ -" -foo -" -" -oo -" -] -haystack -= -" -foo -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -basic61 -" -regex -= -[ -" -oo -" -" -foo -" -] -haystack -= -" -foo -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -3 -] -} -{ -id -= -0 -span -= -[ -1 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic61 -- -leftmost -- -first -" -regex -= -[ -" -oo -" -" -foo -" -] -haystack -= -" -foo -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -basic70 -" -regex -= -[ -" -abcd -" -" -bcd -" -" -cd -" -" -d -" -] -haystack -= -" -abcd -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -4 -] -} -{ -id -= -1 -span -= -[ -1 -4 -] -} -{ -id -= -2 -span -= -[ -2 -4 -] -} -{ -id -= -3 -span -= -[ -3 -4 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic71 -" -regex -= -[ -" -bcd -" -" -cd -" -" -d -" -" -abcd -" -] -haystack -= -" -abcd -" -matches -= -[ -{ -id -= -3 -span -= -[ -0 -4 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -basic80 -" -regex -= -[ -" -^ -foo -" -" -bar -" -] -haystack -= -" -foo -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic81 -" -regex -= -[ -" -^ -foo -" -" -bar -" -] -haystack -= -" -foo -bar -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -3 -] -} -{ -id -= -1 -span -= -[ -4 -7 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic82 -" -regex -= -[ -" -^ -foo -" -" -bar -" -] -haystack -= -" -bar -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic90 -" -regex -= -[ -" -[ -a -- -z -] -+ -" -" -foo -" -] -haystack -= -" -01234 -foo -" -matches -= -[ -{ -id -= -0 -span -= -[ -8 -9 -] -} -{ -id -= -0 -span -= -[ -7 -9 -] -} -{ -id -= -0 -span -= -[ -6 -9 -] -} -{ -id -= -1 -span -= -[ -6 -9 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic91 -" -regex -= -[ -" -[ -a -- -z -] -+ -" -" -foo -" -] -haystack -= -" -foo -01234 -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic100 -" -regex -= -[ -" -. -* -? -" -" -a -" -] -haystack -= -" -zzza -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -0 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -1 -2 -] -} -{ -id -= -0 -span -= -[ -0 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -{ -id -= -0 -span -= -[ -2 -3 -] -} -{ -id -= -0 -span -= -[ -1 -3 -] -} -{ -id -= -0 -span -= -[ -0 -3 -] -} -{ -id -= -0 -span -= -[ -4 -4 -] -} -{ -id -= -0 -span -= -[ -3 -4 -] -} -{ -id -= -0 -span -= -[ -2 -4 -] -} -{ -id -= -0 -span -= -[ -1 -4 -] -} -{ -id -= -0 -span -= -[ -0 -4 -] -} -{ -id -= -1 -span -= -[ -3 -4 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic101 -" -regex -= -[ -" -. -* -" -" -a -" -] -haystack -= -" -zzza -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -0 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -1 -2 -] -} -{ -id -= -0 -span -= -[ -0 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -{ -id -= -0 -span -= -[ -2 -3 -] -} -{ -id -= -0 -span -= -[ -1 -3 -] -} -{ -id -= -0 -span -= -[ -0 -3 -] -} -{ -id -= -0 -span -= -[ -4 -4 -] -} -{ -id -= -0 -span -= -[ -3 -4 -] -} -{ -id -= -0 -span -= -[ -2 -4 -] -} -{ -id -= -0 -span -= -[ -1 -4 -] -} -{ -id -= -0 -span -= -[ -0 -4 -] -} -{ -id -= -1 -span -= -[ -3 -4 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic102 -" -regex -= -[ -" -. -* -" -" -a -" -] -haystack -= -" -zzz -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -0 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -1 -2 -] -} -{ -id -= -0 -span -= -[ -0 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -{ -id -= -0 -span -= -[ -2 -3 -] -} -{ -id -= -0 -span -= -[ -1 -3 -] -} -{ -id -= -0 -span -= -[ -0 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic110 -" -regex -= -[ -' -\ -ba -\ -b -' -] -haystack -= -" -hello -a -bye -" -matches -= -[ -{ -id -= -0 -span -= -[ -6 -7 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic111 -" -regex -= -[ -' -\ -ba -\ -b -' -' -\ -be -\ -b -' -] -haystack -= -" -hello -a -bye -e -" -matches -= -[ -{ -id -= -0 -span -= -[ -6 -7 -] -} -{ -id -= -1 -span -= -[ -12 -13 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic120 -" -regex -= -[ -" -a -" -] -haystack -= -" -a -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -1 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic121 -" -regex -= -[ -" -. -* -a -" -] -haystack -= -" -a -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -1 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic122 -" -regex -= -[ -" -. -* -a -" -" -" -] -haystack -= -" -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -2 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -basic130 -" -regex -= -[ -" -ab -" -" -b -" -] -haystack -= -" -ba -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -1 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -These -test -cases -where -one -of -the -regexes -matches -the -empty -string -. -[ -[ -test -] -] -name -= -" -empty10 -" -regex -= -[ -" -" -" -a -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -1 -span -= -[ -0 -1 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty10 -- -leftmost -- -first -" -regex -= -[ -" -" -" -a -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -empty11 -" -regex -= -[ -" -a -" -" -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -0 -1 -] -} -{ -id -= -1 -span -= -[ -1 -1 -] -} -{ -id -= -1 -span -= -[ -2 -2 -] -} -{ -id -= -1 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty11 -- -leftmost -- -first -" -regex -= -[ -" -a -" -" -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -1 -] -} -{ -id -= -1 -span -= -[ -2 -2 -] -} -{ -id -= -1 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -empty20 -" -regex -= -[ -" -" -" -b -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -1 -span -= -[ -1 -2 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty20 -- -leftmost -- -first -" -regex -= -[ -" -" -" -b -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -empty21 -" -regex -= -[ -" -b -" -" -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -0 -] -} -{ -id -= -1 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -1 -2 -] -} -{ -id -= -1 -span -= -[ -2 -2 -] -} -{ -id -= -1 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty21 -- -leftmost -- -first -" -regex -= -[ -" -b -" -" -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -2 -] -} -{ -id -= -1 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -empty22 -" -regex -= -[ -" -( -? -: -) -" -" -b -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -1 -span -= -[ -1 -2 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty23 -" -regex -= -[ -" -b -" -" -( -? -: -) -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -0 -] -} -{ -id -= -1 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -1 -2 -] -} -{ -id -= -1 -span -= -[ -2 -2 -] -} -{ -id -= -1 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty30 -" -regex -= -[ -" -" -" -z -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty30 -- -leftmost -- -first -" -regex -= -[ -" -" -" -z -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -0 -span -= -[ -0 -0 -] -} -{ -id -= -0 -span -= -[ -1 -1 -] -} -{ -id -= -0 -span -= -[ -2 -2 -] -} -{ -id -= -0 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -empty31 -" -regex -= -[ -" -z -" -" -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -0 -] -} -{ -id -= -1 -span -= -[ -1 -1 -] -} -{ -id -= -1 -span -= -[ -2 -2 -] -} -{ -id -= -1 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty31 -- -leftmost -- -first -" -regex -= -[ -" -z -" -" -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -1 -span -= -[ -0 -0 -] -} -{ -id -= -1 -span -= -[ -1 -1 -] -} -{ -id -= -1 -span -= -[ -2 -2 -] -} -{ -id -= -1 -span -= -[ -3 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -[ -[ -test -] -] -name -= -" -empty40 -" -regex -= -[ -" -c -( -? -: -) -" -" -b -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -1 -span -= -[ -1 -2 -] -} -{ -id -= -0 -span -= -[ -2 -3 -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -empty40 -- -leftmost -- -first -" -regex -= -[ -" -c -( -? -: -) -" -" -b -" -] -haystack -= -" -abc -" -matches -= -[ -{ -id -= -1 -span -= -[ -1 -2 -] -} -{ -id -= -0 -span -= -[ -2 -3 -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -# -These -test -cases -where -there -are -no -matches -. -[ -[ -test -] -] -name -= -" -nomatch10 -" -regex -= -[ -" -a -" -" -a -" -] -haystack -= -" -b -" -matches -= -[ -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -nomatch20 -" -regex -= -[ -" -^ -foo -" -" -bar -" -] -haystack -= -" -bar -foo -" -matches -= -[ -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -nomatch30 -" -regex -= -[ -] -haystack -= -" -a -" -matches -= -[ -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -[ -[ -test -] -] -name -= -" -nomatch40 -" -regex -= -[ -" -^ -rooted -" -' -\ -. -log -' -] -haystack -= -" -notrooted -" -matches -= -[ -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -These -test -multi -- -regex -searches -with -capture -groups -. -# -# -NOTE -: -I -wrote -these -tests -in -the -course -of -developing -a -first -class -API -for -# -overlapping -capturing -group -matches -but -ultimately -removed -that -API -because -# -the -semantics -for -overlapping -matches -aren -' -t -totally -clear -. -However -I -' -ve -# -left -the -tests -because -I -believe -the -semantics -for -these -patterns -are -clear -# -and -because -we -can -still -test -our -" -which -patterns -matched -" -APIs -with -them -. -[ -[ -test -] -] -name -= -" -caps -- -010 -" -regex -= -[ -' -^ -( -\ -w -+ -) -( -\ -w -+ -) -' -' -^ -( -\ -S -+ -) -( -\ -S -+ -) -' -] -haystack -= -" -Bruce -Springsteen -" -matches -= -[ -{ -id -= -0 -spans -= -[ -[ -0 -17 -] -[ -0 -5 -] -[ -6 -17 -] -] -} -{ -id -= -1 -spans -= -[ -[ -0 -17 -] -[ -0 -5 -] -[ -6 -17 -] -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -caps -- -020 -" -regex -= -[ -' -^ -( -\ -w -+ -) -( -\ -w -+ -) -' -' -^ -[ -A -- -Z -] -( -\ -S -+ -) -[ -A -- -Z -] -( -\ -S -+ -) -' -] -haystack -= -" -Bruce -Springsteen -" -matches -= -[ -{ -id -= -0 -spans -= -[ -[ -0 -17 -] -[ -0 -5 -] -[ -6 -17 -] -] -} -{ -id -= -1 -spans -= -[ -[ -0 -17 -] -[ -1 -5 -] -[ -7 -17 -] -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -caps -- -030 -" -regex -= -[ -' -^ -( -\ -w -+ -) -( -\ -w -+ -) -' -' -^ -( -[ -A -- -Z -] -) -( -\ -S -+ -) -( -[ -A -- -Z -] -) -( -\ -S -+ -) -' -] -haystack -= -" -Bruce -Springsteen -" -matches -= -[ -{ -id -= -0 -spans -= -[ -[ -0 -17 -] -[ -0 -5 -] -[ -6 -17 -] -] -} -{ -id -= -1 -spans -= -[ -[ -0 -17 -] -[ -0 -1 -] -[ -1 -5 -] -[ -6 -7 -] -[ -7 -17 -] -] -} -] -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -caps -- -110 -" -regex -= -[ -' -( -\ -w -+ -) -( -\ -w -+ -) -' -' -( -\ -S -+ -) -( -\ -S -+ -) -' -] -haystack -= -" -Bruce -Springsteen -" -matches -= -[ -{ -id -= -0 -spans -= -[ -[ -0 -17 -] -[ -0 -5 -] -[ -6 -17 -] -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -caps -- -120 -" -regex -= -[ -' -( -\ -w -+ -) -( -\ -w -+ -) -' -' -( -\ -S -+ -) -( -\ -S -+ -) -' -] -haystack -= -" -& -ruce -pringsteen -" -matches -= -[ -{ -id -= -1 -spans -= -[ -[ -0 -17 -] -[ -0 -5 -] -[ -6 -17 -] -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -caps -- -121 -" -regex -= -[ -' -( -\ -w -+ -) -( -\ -w -+ -) -' -' -( -\ -S -+ -) -( -\ -S -+ -) -' -] -haystack -= -" -& -ruce -pringsteen -Foo -Bar -" -matches -= -[ -{ -id -= -1 -spans -= -[ -[ -0 -17 -] -[ -0 -5 -] -[ -6 -17 -] -] -} -{ -id -= -0 -spans -= -[ -[ -18 -25 -] -[ -18 -21 -] -[ -22 -25 -] -] -} -] -match -- -kind -= -" -leftmost -- -first -" -search -- -kind -= -" -leftmost -" -unicode -= -false -utf8 -= -false diff --git a/third_party/rust/regex/testdata/substring.toml b/third_party/rust/regex/testdata/substring.toml deleted file mode 100644 index 5d5c0d3f20788..0000000000000 --- a/third_party/rust/regex/testdata/substring.toml +++ /dev/null @@ -1,290 +0,0 @@ -# -These -tests -check -that -regex -engines -perform -as -expected -when -the -search -is -# -instructed -to -only -search -a -substring -of -a -haystack -instead -of -the -entire -# -haystack -. -This -tends -to -exercise -interesting -edge -cases -that -are -otherwise -# -difficult -to -provoke -. -( -But -not -necessarily -impossible -. -Regex -search -iterators -# -for -example -make -use -of -the -" -search -just -a -substring -" -APIs -by -changing -the -# -starting -position -of -a -search -to -the -end -position -of -the -previous -match -. -) -[ -[ -test -] -] -name -= -" -unicode -- -word -- -start -" -regex -= -' -\ -b -[ -0 -- -9 -] -+ -\ -b -' -haystack -= -" -123 -" -bounds -= -{ -start -= -2 -end -= -5 -} -matches -= -[ -] -[ -[ -test -] -] -name -= -" -unicode -- -word -- -end -" -regex -= -' -\ -b -[ -0 -- -9 -] -+ -\ -b -' -haystack -= -" -123 -" -bounds -= -{ -start -= -0 -end -= -3 -} -matches -= -[ -] -[ -[ -test -] -] -name -= -" -ascii -- -word -- -start -" -regex -= -' -\ -b -[ -0 -- -9 -] -+ -\ -b -' -haystack -= -" -123 -" -bounds -= -{ -start -= -2 -end -= -5 -} -matches -= -[ -[ -2 -5 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -ascii -- -word -- -end -" -regex -= -' -\ -b -[ -0 -- -9 -] -+ -\ -b -' -haystack -= -" -123 -" -bounds -= -{ -start -= -0 -end -= -3 -} -matches -= -[ -[ -0 -3 -] -] -unicode -= -false diff --git a/third_party/rust/regex/testdata/unicode.toml b/third_party/rust/regex/testdata/unicode.toml deleted file mode 100644 index 942af297791b2..0000000000000 --- a/third_party/rust/regex/testdata/unicode.toml +++ /dev/null @@ -1,2869 +0,0 @@ -# -Basic -Unicode -literal -support -. -[ -[ -test -] -] -name -= -" -literal1 -" -regex -= -' -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -literal2 -" -regex -= -' -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -literal3 -" -regex -= -' -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -case -- -insensitive -= -true -[ -[ -test -] -] -name -= -" -literal4 -" -regex -= -' -' -haystack -= -" -" -matches -= -[ -[ -0 -2 -] -] -case -- -insensitive -= -true -# -Unicode -word -boundaries -. -[ -[ -test -] -] -name -= -" -wb -- -100 -" -regex -= -' -\ -d -\ -b -' -haystack -= -" -6 -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -wb -- -200 -" -regex -= -' -\ -d -\ -b -' -haystack -= -" -6 -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -wb -- -300 -" -regex -= -' -\ -d -\ -B -' -haystack -= -" -6 -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -wb -- -400 -" -regex -= -' -\ -d -\ -B -' -haystack -= -" -6 -" -matches -= -[ -] -# -Unicode -character -class -support -. -[ -[ -test -] -] -name -= -" -class1 -" -regex -= -' -[ -] -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class2 -" -regex -= -' -\ -pN -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class3 -" -regex -= -' -\ -pN -+ -' -haystack -= -" -1 -2 -" -matches -= -[ -[ -0 -8 -] -] -[ -[ -test -] -] -name -= -" -class4 -" -regex -= -' -\ -PN -+ -' -haystack -= -" -ab -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -class5 -" -regex -= -' -[ -\ -PN -] -+ -' -haystack -= -" -ab -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -class6 -" -regex -= -' -[ -^ -\ -PN -] -+ -' -haystack -= -" -ab -" -matches -= -[ -[ -2 -5 -] -] -[ -[ -test -] -] -name -= -" -class7 -" -regex -= -' -\ -p -{ -Lu -} -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -8 -] -] -[ -[ -test -] -] -name -= -" -class8 -" -regex -= -' -\ -p -{ -Lu -} -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -10 -] -] -case -- -insensitive -= -true -[ -[ -test -] -] -name -= -" -class9 -" -regex -= -' -\ -pL -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -10 -] -] -[ -[ -test -] -] -name -= -" -class10 -" -regex -= -' -\ -p -{ -Ll -} -+ -' -haystack -= -" -" -matches -= -[ -[ -8 -10 -] -] -# -Unicode -aware -" -Perl -" -character -classes -. -[ -[ -test -] -] -name -= -" -perl1 -" -regex -= -' -\ -w -+ -' -haystack -= -" -d -d -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -perl2 -" -regex -= -' -\ -w -+ -' -haystack -= -" -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -perl3 -" -regex -= -' -\ -W -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -perl4 -" -regex -= -' -\ -d -+ -' -haystack -= -" -1 -9 -" -matches -= -[ -[ -0 -8 -] -] -[ -[ -test -] -] -name -= -" -perl5 -" -regex -= -' -\ -d -+ -' -haystack -= -" -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -perl6 -" -regex -= -' -\ -D -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -perl7 -" -regex -= -' -\ -s -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -perl8 -" -regex -= -' -\ -s -+ -' -haystack -= -" -" -matches -= -[ -] -[ -[ -test -] -] -name -= -" -perl9 -" -regex -= -' -\ -S -+ -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -# -Specific -tests -for -Unicode -general -category -classes -. -[ -[ -test -] -] -name -= -" -class -- -gencat1 -" -regex -= -' -\ -p -{ -Cased_Letter -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat2 -" -regex -= -' -\ -p -{ -Close_Punctuation -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat3 -" -regex -= -' -\ -p -{ -Connector_Punctuation -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat4 -" -regex -= -' -\ -p -{ -Control -} -' -haystack -= -" -\ -u009F -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat5 -" -regex -= -' -\ -p -{ -Currency_Symbol -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat6 -" -regex -= -' -\ -p -{ -Dash_Punctuation -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat7 -" -regex -= -' -\ -p -{ -Decimal_Number -} -' -haystack -= -" -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat8 -" -regex -= -' -\ -p -{ -Enclosing_Mark -} -' -haystack -= -" -\ -uA672 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat9 -" -regex -= -' -\ -p -{ -Final_Punctuation -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat10 -" -regex -= -' -\ -p -{ -Format -} -' -haystack -= -" -\ -U000E007F -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat11 -" -regex -= -' -\ -p -{ -Initial_Punctuation -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat12 -" -regex -= -' -\ -p -{ -Letter -} -' -haystack -= -" -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat13 -" -regex -= -' -\ -p -{ -Letter_Number -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat14 -" -regex -= -' -\ -p -{ -Line_Separator -} -' -haystack -= -" -\ -u2028 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat15 -" -regex -= -' -\ -p -{ -Lowercase_Letter -} -' -haystack -= -" -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat16 -" -regex -= -' -\ -p -{ -Mark -} -' -haystack -= -" -\ -U000E01EF -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat17 -" -regex -= -' -\ -p -{ -Math -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat18 -" -regex -= -' -\ -p -{ -Modifier_Letter -} -' -haystack -= -" -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat19 -" -regex -= -' -\ -p -{ -Modifier_Symbol -} -' -haystack -= -" -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat20 -" -regex -= -' -\ -p -{ -Nonspacing_Mark -} -' -haystack -= -" -\ -U0001E94A -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat21 -" -regex -= -' -\ -p -{ -Number -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat22 -" -regex -= -' -\ -p -{ -Open_Punctuation -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat23 -" -regex -= -' -\ -p -{ -Other -} -' -haystack -= -" -\ -u0BC9 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat24 -" -regex -= -' -\ -p -{ -Other_Letter -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat25 -" -regex -= -' -\ -p -{ -Other_Number -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat26 -" -regex -= -' -\ -p -{ -Other_Punctuation -} -' -haystack -= -" -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat27 -" -regex -= -' -\ -p -{ -Other_Symbol -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat28 -" -regex -= -' -\ -p -{ -Paragraph_Separator -} -' -haystack -= -" -\ -u2029 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat29 -" -regex -= -' -\ -p -{ -Private_Use -} -' -haystack -= -" -\ -U0010FFFD -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat30 -" -regex -= -' -\ -p -{ -Punctuation -} -' -haystack -= -" -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat31 -" -regex -= -' -\ -p -{ -Separator -} -' -haystack -= -" -\ -u3000 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat32 -" -regex -= -' -\ -p -{ -Space_Separator -} -' -haystack -= -" -\ -u205F -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat33 -" -regex -= -' -\ -p -{ -Spacing_Mark -} -' -haystack -= -" -\ -U00016F7E -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat34 -" -regex -= -' -\ -p -{ -Symbol -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat35 -" -regex -= -' -\ -p -{ -Titlecase_Letter -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat36 -" -regex -= -' -\ -p -{ -Unassigned -} -' -haystack -= -" -\ -U0010FFFF -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gencat37 -" -regex -= -' -\ -p -{ -Uppercase_Letter -} -' -haystack -= -" -" -matches -= -[ -[ -0 -3 -] -] -# -Tests -for -Unicode -emoji -properties -. -[ -[ -test -] -] -name -= -" -class -- -emoji1 -" -regex -= -' -\ -p -{ -Emoji -} -' -haystack -= -" -\ -u23E9 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -emoji2 -" -regex -= -' -\ -p -{ -emoji -} -' -haystack -= -" -\ -U0001F21A -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -emoji3 -" -regex -= -' -\ -p -{ -extendedpictographic -} -' -haystack -= -" -\ -U0001FA6E -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -emoji4 -" -regex -= -' -\ -p -{ -extendedpictographic -} -' -haystack -= -" -\ -U0001FFFD -" -matches -= -[ -[ -0 -4 -] -] -# -Tests -for -Unicode -grapheme -cluster -properties -. -[ -[ -test -] -] -name -= -" -class -- -gcb1 -" -regex -= -' -\ -p -{ -grapheme_cluster_break -= -prepend -} -' -haystack -= -" -\ -U00011D46 -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gcb2 -" -regex -= -' -\ -p -{ -gcb -= -regional_indicator -} -' -haystack -= -" -\ -U0001F1E6 -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gcb3 -" -regex -= -' -\ -p -{ -gcb -= -ri -} -' -haystack -= -" -\ -U0001F1E7 -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gcb4 -" -regex -= -' -\ -p -{ -regionalindicator -} -' -haystack -= -" -\ -U0001F1FF -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -gcb5 -" -regex -= -' -\ -p -{ -gcb -= -lvt -} -' -haystack -= -" -\ -uC989 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -gcb6 -" -regex -= -' -\ -p -{ -gcb -= -zwj -} -' -haystack -= -" -\ -u200D -" -matches -= -[ -[ -0 -3 -] -] -# -Tests -for -Unicode -word -boundary -properties -. -[ -[ -test -] -] -name -= -" -class -- -word -- -break1 -" -regex -= -' -\ -p -{ -word_break -= -Hebrew_Letter -} -' -haystack -= -" -\ -uFB46 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -word -- -break2 -" -regex -= -' -\ -p -{ -wb -= -hebrewletter -} -' -haystack -= -" -\ -uFB46 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -word -- -break3 -" -regex -= -' -\ -p -{ -wb -= -ExtendNumLet -} -' -haystack -= -" -\ -uFF3F -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -word -- -break4 -" -regex -= -' -\ -p -{ -wb -= -WSegSpace -} -' -haystack -= -" -\ -u3000 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -word -- -break5 -" -regex -= -' -\ -p -{ -wb -= -numeric -} -' -haystack -= -" -\ -U0001E950 -" -matches -= -[ -[ -0 -4 -] -] -# -Tests -for -Unicode -sentence -boundary -properties -. -[ -[ -test -] -] -name -= -" -class -- -sentence -- -break1 -" -regex -= -' -\ -p -{ -sentence_break -= -Lower -} -' -haystack -= -" -\ -u0469 -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -class -- -sentence -- -break2 -" -regex -= -' -\ -p -{ -sb -= -lower -} -' -haystack -= -" -\ -u0469 -" -matches -= -[ -[ -0 -2 -] -] -[ -[ -test -] -] -name -= -" -class -- -sentence -- -break3 -" -regex -= -' -\ -p -{ -sb -= -Close -} -' -haystack -= -" -\ -uFF60 -" -matches -= -[ -[ -0 -3 -] -] -[ -[ -test -] -] -name -= -" -class -- -sentence -- -break4 -" -regex -= -' -\ -p -{ -sb -= -Close -} -' -haystack -= -" -\ -U0001F677 -" -matches -= -[ -[ -0 -4 -] -] -[ -[ -test -] -] -name -= -" -class -- -sentence -- -break5 -" -regex -= -' -\ -p -{ -sb -= -SContinue -} -' -haystack -= -" -\ -uFF64 -" -matches -= -[ -[ -0 -3 -] -] diff --git a/third_party/rust/regex/testdata/utf8.toml b/third_party/rust/regex/testdata/utf8.toml deleted file mode 100644 index a0c5030d2ca09..0000000000000 --- a/third_party/rust/regex/testdata/utf8.toml +++ /dev/null @@ -1,2945 +0,0 @@ -# -These -test -the -UTF -- -8 -modes -expose -by -regex -- -automata -. -Namely -when -utf8 -is -# -true -then -we -promise -that -the -haystack -is -valid -UTF -- -8 -. -( -Otherwise -behavior -# -is -unspecified -. -) -This -also -corresponds -to -building -the -regex -engine -with -the -# -following -two -guarantees -: -# -# -1 -) -For -any -non -- -empty -match -reported -its -span -is -guaranteed -to -correspond -to -# -valid -UTF -- -8 -. -# -2 -) -All -empty -or -zero -- -width -matches -reported -must -never -split -a -UTF -- -8 -# -encoded -codepoint -. -If -the -haystack -has -invalid -UTF -- -8 -then -this -results -in -# -unspecified -behavior -. -# -# -The -( -2 -) -is -in -particular -what -we -focus -our -testing -on -since -( -1 -) -is -generally -# -guaranteed -by -regex -- -syntax -' -s -AST -- -to -- -HIR -translator -and -is -well -tested -there -. -# -The -thing -with -( -2 -) -is -that -it -can -' -t -be -described -in -the -HIR -so -the -regex -# -engines -have -to -handle -that -case -. -Thus -we -test -it -here -. -# -# -Note -that -it -is -possible -to -build -a -regex -that -has -property -( -1 -) -but -not -# -( -2 -) -and -vice -versa -. -This -is -done -by -building -the -HIR -with -' -utf8 -= -true -' -but -# -building -the -Thompson -NFA -with -' -utf8 -= -false -' -. -We -don -' -t -test -that -here -because -# -the -harness -doesn -' -t -expose -a -way -to -enable -or -disable -UTF -- -8 -mode -with -that -# -granularity -. -Instead -those -combinations -are -lightly -tested -via -doc -examples -. -# -That -' -s -not -to -say -that -( -1 -) -without -( -2 -) -is -uncommon -. -Indeed -ripgrep -uses -it -# -because -it -cannot -guarantee -that -its -haystack -is -valid -UTF -- -8 -. -# -This -tests -that -an -empty -regex -doesn -' -t -split -a -codepoint -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -[ -3 -3 -] -] -unicode -= -true -utf8 -= -true -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -overlapping -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -[ -3 -3 -] -] -unicode -= -true -utf8 -= -true -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -This -tests -that -an -empty -regex -DOES -split -a -codepoint -when -utf -= -false -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -unicode -= -true -utf8 -= -false -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -overlapping -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -unicode -= -true -utf8 -= -false -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -This -tests -that -an -empty -regex -doesn -' -t -split -a -codepoint -even -if -we -give -# -it -bounds -entirely -within -the -codepoint -. -# -# -This -is -one -of -the -trickier -cases -and -is -what -motivated -the -current -UTF -- -8 -# -mode -design -. -In -particular -at -one -point -this -test -failed -the -' -is_match -' -# -variant -of -the -test -but -not -' -find -' -. -This -is -because -the -' -is_match -' -code -path -# -is -specifically -optimized -for -" -was -a -match -found -" -rather -than -" -where -is -the -# -match -. -" -In -the -former -case -you -don -' -t -really -care -about -the -empty -- -vs -- -non -- -empty -# -matches -and -thus -the -codepoint -splitting -filtering -logic -wasn -' -t -getting -# -applied -. -( -In -multiple -ways -across -multiple -regex -engines -. -) -In -this -way -you -# -can -wind -up -with -a -situation -where -' -is_match -' -says -" -yes -" -but -' -find -' -says -# -" -I -didn -' -t -find -anything -. -" -Which -is -. -. -. -not -great -. -# -# -I -could -have -decided -to -say -that -providing -boundaries -that -themselves -split -# -a -codepoint -would -have -unspecified -behavior -. -But -I -couldn -' -t -quite -convince -# -myself -that -such -boundaries -were -the -only -way -to -get -an -inconsistency -between -# -' -is_match -' -and -' -find -' -. -# -# -Note -that -I -also -tried -to -come -up -with -a -test -like -this -that -fails -without -# -using -bounds -. -Specifically -a -test -where -' -is_match -' -and -' -find -' -disagree -. -# -But -I -couldn -' -t -do -it -and -I -' -m -tempted -to -conclude -it -is -impossible -. -The -# -fundamental -problem -is -that -you -need -to -simultaneously -produce -an -empty -match -# -that -splits -a -codepoint -while -* -not -* -matching -before -or -after -the -codepoint -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -bounds -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -3 -] -matches -= -[ -] -unicode -= -true -utf8 -= -true -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -bounds -- -overlapping -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -3 -] -matches -= -[ -] -unicode -= -true -utf8 -= -true -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -This -tests -that -an -empty -regex -splits -a -codepoint -when -the -bounds -are -# -entirely -within -the -codepoint -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -bounds -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -3 -] -matches -= -[ -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -unicode -= -true -utf8 -= -false -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -bounds -- -overlapping -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -3 -] -matches -= -[ -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -unicode -= -true -utf8 -= -false -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -In -this -test -we -anchor -the -search -. -Since -the -start -position -is -also -a -UTF -- -8 -# -boundary -we -get -a -match -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -anchored -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -] -anchored -= -true -unicode -= -true -utf8 -= -true -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -anchored -- -overlapping -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -] -anchored -= -true -unicode -= -true -utf8 -= -true -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -Same -as -above -except -with -UTF -- -8 -mode -disabled -. -It -almost -doesn -' -t -change -the -# -result -except -for -the -fact -that -since -this -is -an -anchored -search -and -we -# -always -find -all -matches -the -test -harness -will -keep -reporting -matches -until -# -none -are -found -. -Because -it -' -s -anchored -matches -will -be -reported -so -long -as -# -they -are -directly -adjacent -. -Since -with -UTF -- -8 -mode -the -next -anchored -search -# -after -the -match -at -[ -0 -0 -] -fails -iteration -stops -( -and -doesn -' -t -find -the -last -# -match -at -[ -4 -4 -] -) -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -anchored -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -anchored -= -true -unicode -= -true -utf8 -= -false -# -Tests -the -overlapping -case -of -the -above -. -# -# -Note -that -overlapping -anchored -searches -are -a -little -weird -and -it -' -s -not -# -totally -clear -what -their -semantics -ought -to -be -. -For -now -we -just -test -the -# -current -behavior -of -our -test -shim -that -implements -overlapping -search -. -( -This -# -is -one -of -the -reasons -why -we -don -' -t -really -expose -regex -- -level -overlapping -# -searches -. -) -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -anchored -- -overlapping -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -[ -0 -0 -] -] -anchored -= -true -unicode -= -true -utf8 -= -false -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -In -this -test -we -anchor -the -search -but -also -set -bounds -. -The -bounds -start -the -# -search -in -the -middle -of -a -codepoint -so -there -should -never -be -a -match -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -anchored -- -bounds -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -] -bounds -= -[ -1 -3 -] -anchored -= -true -unicode -= -true -utf8 -= -true -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -anchored -- -bounds -- -overlapping -" -regex -= -' -' -haystack -= -' -' -matches -= -[ -] -bounds -= -[ -1 -3 -] -anchored -= -true -unicode -= -true -utf8 -= -true -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -Same -as -above -except -with -UTF -- -8 -mode -disabled -. -Without -UTF -- -8 -mode -enabled -# -matching -within -a -codepoint -is -allowed -. -And -remember -as -in -the -anchored -test -# -above -with -UTF -- -8 -mode -disabled -iteration -will -report -all -adjacent -matches -. -# -The -matches -at -[ -0 -0 -] -and -[ -4 -4 -] -are -not -included -because -of -the -bounds -of -# -the -search -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -anchored -- -bounds -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -3 -] -matches -= -[ -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -] -anchored -= -true -unicode -= -true -utf8 -= -false -# -Tests -the -overlapping -case -of -the -above -. -# -# -Note -that -overlapping -anchored -searches -are -a -little -weird -and -it -' -s -not -# -totally -clear -what -their -semantics -ought -to -be -. -For -now -we -just -test -the -# -current -behavior -of -our -test -shim -that -implements -overlapping -search -. -( -This -# -is -one -of -the -reasons -why -we -don -' -t -really -expose -regex -- -level -overlapping -# -searches -. -) -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -anchored -- -bounds -- -overlapping -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -3 -] -matches -= -[ -[ -1 -1 -] -] -anchored -= -true -unicode -= -true -utf8 -= -false -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -This -tests -that -we -find -the -match -at -the -end -of -the -string -when -the -bounds -# -exclude -the -first -match -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -startbound -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -4 -] -matches -= -[ -[ -4 -4 -] -] -unicode -= -true -utf8 -= -true -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -startbound -- -overlapping -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -4 -] -matches -= -[ -[ -4 -4 -] -] -unicode -= -true -utf8 -= -true -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -Same -as -above -except -since -UTF -- -8 -mode -is -disabled -we -also -find -the -matches -# -inbetween -that -split -the -codepoint -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -startbound -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -4 -] -matches -= -[ -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -unicode -= -true -utf8 -= -false -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -startbound -- -overlapping -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -4 -] -matches -= -[ -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -unicode -= -true -utf8 -= -false -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -This -tests -that -we -don -' -t -find -any -matches -in -an -anchored -search -even -when -# -the -bounds -include -a -match -( -at -the -end -) -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -anchored -- -startbound -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -4 -] -matches -= -[ -] -anchored -= -true -unicode -= -true -utf8 -= -true -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -anchored -- -startbound -- -overlapping -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -4 -] -matches -= -[ -] -anchored -= -true -unicode -= -true -utf8 -= -true -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -Same -as -above -except -since -UTF -- -8 -mode -is -disabled -we -also -find -the -matches -# -inbetween -that -split -the -codepoint -. -Even -though -this -is -an -anchored -search -# -since -the -matches -are -adjacent -we -find -all -of -them -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -anchored -- -startbound -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -4 -] -matches -= -[ -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -] -anchored -= -true -unicode -= -true -utf8 -= -false -# -Tests -the -overlapping -case -of -the -above -. -# -# -Note -that -overlapping -anchored -searches -are -a -little -weird -and -it -' -s -not -# -totally -clear -what -their -semantics -ought -to -be -. -For -now -we -just -test -the -# -current -behavior -of -our -test -shim -that -implements -overlapping -search -. -( -This -# -is -one -of -the -reasons -why -we -don -' -t -really -expose -regex -- -level -overlapping -# -searches -. -) -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -anchored -- -startbound -- -overlapping -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -1 -4 -] -matches -= -[ -[ -1 -1 -] -] -anchored -= -true -unicode -= -true -utf8 -= -false -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -This -tests -that -we -find -the -match -at -the -end -of -the -haystack -in -UTF -- -8 -mode -# -when -our -bounds -only -include -the -empty -string -at -the -end -of -the -haystack -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -anchored -- -endbound -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -4 -4 -] -matches -= -[ -[ -4 -4 -] -] -anchored -= -true -unicode -= -true -utf8 -= -true -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8yes -- -anchored -- -endbound -- -overlapping -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -4 -4 -] -matches -= -[ -[ -4 -4 -] -] -anchored -= -true -unicode -= -true -utf8 -= -true -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" -# -Same -as -above -but -with -UTF -- -8 -mode -disabled -. -Results -remain -the -same -since -# -the -only -possible -match -does -not -split -a -codepoint -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -anchored -- -endbound -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -4 -4 -] -matches -= -[ -[ -4 -4 -] -] -anchored -= -true -unicode -= -true -utf8 -= -false -# -Tests -the -overlapping -case -of -the -above -. -[ -[ -test -] -] -name -= -" -empty -- -utf8no -- -anchored -- -endbound -- -overlapping -" -regex -= -' -' -haystack -= -' -' -bounds -= -[ -4 -4 -] -matches -= -[ -[ -4 -4 -] -] -anchored -= -true -unicode -= -true -utf8 -= -false -match -- -kind -= -" -all -" -search -- -kind -= -" -overlapping -" diff --git a/third_party/rust/regex/testdata/word-boundary.toml b/third_party/rust/regex/testdata/word-boundary.toml deleted file mode 100644 index 3ec6f977eb91f..0000000000000 --- a/third_party/rust/regex/testdata/word-boundary.toml +++ /dev/null @@ -1,4393 +0,0 @@ -# -Some -of -these -are -cribbed -from -RE2 -' -s -test -suite -. -# -These -test -\ -b -. -Below -are -tests -for -\ -B -. -[ -[ -test -] -] -name -= -" -wb1 -" -regex -= -' -\ -b -' -haystack -= -" -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb2 -" -regex -= -' -\ -b -' -haystack -= -" -a -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb3 -" -regex -= -' -\ -b -' -haystack -= -" -ab -" -matches -= -[ -[ -0 -0 -] -[ -2 -2 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb4 -" -regex -= -' -^ -\ -b -' -haystack -= -" -ab -" -matches -= -[ -[ -0 -0 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb5 -" -regex -= -' -\ -b -' -haystack -= -" -ab -" -matches -= -[ -[ -2 -2 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb6 -" -regex -= -' -^ -\ -b -' -haystack -= -" -ab -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb7 -" -regex -= -' -\ -bbar -\ -b -' -haystack -= -" -nobar -bar -foo -bar -" -matches -= -[ -[ -6 -9 -] -[ -14 -17 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb8 -" -regex -= -' -a -\ -b -' -haystack -= -" -faoa -x -" -matches -= -[ -[ -3 -4 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb9 -" -regex -= -' -\ -bbar -' -haystack -= -" -bar -x -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb10 -" -regex -= -' -\ -bbar -' -haystack -= -" -foo -\ -nbar -x -" -matches -= -[ -[ -4 -7 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb11 -" -regex -= -' -bar -\ -b -' -haystack -= -" -foobar -" -matches -= -[ -[ -3 -6 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb12 -" -regex -= -' -bar -\ -b -' -haystack -= -" -foobar -\ -nxxx -" -matches -= -[ -[ -3 -6 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb13 -" -regex -= -' -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -b -' -haystack -= -" -foo -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb14 -" -regex -= -' -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -b -' -haystack -= -" -foo -\ -n -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb15 -" -regex -= -' -\ -b -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -' -haystack -= -" -foo -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb16 -" -regex -= -' -\ -b -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -b -' -haystack -= -" -X -" -matches -= -[ -[ -0 -1 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb17 -" -regex -= -' -\ -b -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -b -' -haystack -= -" -XY -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb18 -" -regex -= -' -\ -b -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -b -' -haystack -= -" -bar -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb19 -" -regex -= -' -\ -b -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -b -' -haystack -= -" -foo -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb20 -" -regex -= -' -\ -b -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -b -' -haystack -= -" -foo -\ -n -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb21 -" -regex -= -' -\ -b -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -b -' -haystack -= -" -ffoo -bbar -N -x -" -matches -= -[ -[ -10 -11 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb22 -" -regex -= -' -\ -b -( -? -: -fo -| -foo -) -\ -b -' -haystack -= -" -fo -" -matches -= -[ -[ -0 -2 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb23 -" -regex -= -' -\ -b -( -? -: -fo -| -foo -) -\ -b -' -haystack -= -" -foo -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb24 -" -regex -= -' -\ -b -\ -b -' -haystack -= -" -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb25 -" -regex -= -' -\ -b -\ -b -' -haystack -= -" -a -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb26 -" -regex -= -' -\ -b -' -haystack -= -" -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb27 -" -regex -= -' -\ -b -' -haystack -= -" -x -" -matches -= -[ -[ -1 -1 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb28 -" -regex -= -' -\ -b -' -haystack -= -" -y -x -" -matches -= -[ -[ -3 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb29 -" -regex -= -' -( -? -- -u -: -\ -b -) -. -' -haystack -= -" -x -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -wb30 -" -regex -= -' -^ -\ -b -( -? -: -fo -| -foo -) -\ -b -' -haystack -= -" -fo -" -matches -= -[ -[ -0 -2 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb31 -" -regex -= -' -^ -\ -b -( -? -: -fo -| -foo -) -\ -b -' -haystack -= -" -foo -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb32 -" -regex -= -' -^ -\ -b -' -haystack -= -" -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb33 -" -regex -= -' -^ -\ -b -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb34 -" -regex -= -' -^ -( -? -- -u -: -\ -b -) -. -' -haystack -= -" -x -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -wb35 -" -regex -= -' -^ -( -? -- -u -: -\ -b -) -. -( -? -- -u -: -\ -b -) -' -haystack -= -" -x -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -wb36 -" -regex -= -' -^ -^ -^ -^ -^ -\ -b -' -haystack -= -" -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb37 -" -regex -= -' -^ -^ -^ -^ -^ -( -? -- -u -: -\ -b -) -. -' -haystack -= -" -x -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -wb38 -" -regex -= -' -^ -^ -^ -^ -^ -\ -b -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb39 -" -regex -= -' -^ -^ -^ -^ -^ -( -? -- -u -: -\ -b -\ -b -\ -b -) -. -( -? -- -u -: -\ -b -\ -b -\ -b -) -' -haystack -= -" -x -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -wb40 -" -regex -= -' -( -? -- -u -: -\ -b -) -. -+ -( -? -- -u -: -\ -b -) -' -haystack -= -" -abc -" -matches -= -[ -[ -2 -5 -] -] -[ -[ -test -] -] -name -= -" -wb41 -" -regex -= -' -\ -b -' -haystack -= -" -a -b -c -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb42 -" -regex -= -' -\ -bfoo -\ -b -' -haystack -= -" -zzz -foo -zzz -" -matches -= -[ -[ -4 -7 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb43 -" -regex -= -' -\ -b -^ -' -haystack -= -" -ab -" -matches -= -[ -[ -0 -0 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -wb44 -" -regex -= -' -\ -b -' -haystack -= -" -ab -" -matches -= -[ -[ -2 -2 -] -] -unicode -= -false -# -Tests -for -\ -B -. -Note -that -\ -B -is -not -allowed -if -UTF -- -8 -mode -is -enabled -so -we -# -have -to -disable -it -for -most -of -these -tests -. -This -is -because -\ -B -can -match -at -# -non -- -UTF -- -8 -boundaries -. -[ -[ -test -] -] -name -= -" -nb1 -" -regex -= -' -\ -Bfoo -\ -B -' -haystack -= -" -n -foo -xfoox -that -" -matches -= -[ -[ -7 -10 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb2 -" -regex -= -' -a -\ -B -' -haystack -= -" -faoa -x -" -matches -= -[ -[ -1 -2 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb3 -" -regex -= -' -\ -Bbar -' -haystack -= -" -bar -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb4 -" -regex -= -' -\ -Bbar -' -haystack -= -" -foo -\ -nbar -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb5 -" -regex -= -' -bar -\ -B -' -haystack -= -" -foobar -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb6 -" -regex -= -' -bar -\ -B -' -haystack -= -" -foobar -\ -nxxx -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb7 -" -regex -= -' -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -B -' -haystack -= -" -foox -" -matches -= -[ -[ -0 -3 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb8 -" -regex -= -' -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -B -' -haystack -= -" -foo -\ -n -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb9 -" -regex -= -' -\ -B -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb10 -" -regex -= -' -\ -B -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb11 -" -regex -= -' -\ -B -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -' -haystack -= -" -foo -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb12 -" -regex -= -' -\ -B -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -B -' -haystack -= -" -xXy -" -matches -= -[ -[ -1 -2 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb13 -" -regex -= -' -\ -B -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -B -' -haystack -= -" -XY -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb14 -" -regex -= -' -\ -B -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -B -' -haystack -= -" -XYZ -" -matches -= -[ -[ -1 -2 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb15 -" -regex -= -' -\ -B -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -B -' -haystack -= -" -abara -" -matches -= -[ -[ -1 -4 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb16 -" -regex -= -' -\ -B -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -B -' -haystack -= -" -xfoo_ -" -matches -= -[ -[ -1 -4 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb17 -" -regex -= -' -\ -B -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -B -' -haystack -= -" -xfoo -\ -n -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb18 -" -regex -= -' -\ -B -( -? -: -foo -| -bar -| -[ -A -- -Z -] -) -\ -B -' -haystack -= -" -foo -bar -vNX -" -matches -= -[ -[ -9 -10 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb19 -" -regex -= -' -\ -B -( -? -: -fo -| -foo -) -\ -B -' -haystack -= -" -xfoo -" -matches -= -[ -[ -1 -3 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb20 -" -regex -= -' -\ -B -( -? -: -foo -| -fo -) -\ -B -' -haystack -= -" -xfooo -" -matches -= -[ -[ -1 -4 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb21 -" -regex -= -' -\ -B -\ -B -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb22 -" -regex -= -' -\ -B -\ -B -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb23 -" -regex -= -' -\ -B -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb24 -" -regex -= -' -\ -B -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb25 -" -regex -= -' -\ -B -' -haystack -= -" -y -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb26 -" -regex -= -' -\ -B -. -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb27 -" -regex -= -' -^ -\ -B -( -? -: -fo -| -foo -) -\ -B -' -haystack -= -" -fo -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb28 -" -regex -= -' -^ -\ -B -( -? -: -fo -| -foo -) -\ -B -' -haystack -= -" -fo -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb29 -" -regex -= -' -^ -\ -B -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb30 -" -regex -= -' -^ -\ -B -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb31 -" -regex -= -' -^ -\ -B -\ -B -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb32 -" -regex -= -' -^ -\ -B -\ -B -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb33 -" -regex -= -' -^ -\ -B -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb34 -" -regex -= -' -^ -\ -B -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb35 -" -regex -= -' -^ -\ -B -. -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb36 -" -regex -= -' -^ -\ -B -. -\ -B -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb37 -" -regex -= -' -^ -^ -^ -^ -^ -\ -B -' -haystack -= -" -" -matches -= -[ -[ -0 -0 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb38 -" -regex -= -' -^ -^ -^ -^ -^ -\ -B -. -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -nb39 -" -regex -= -' -^ -^ -^ -^ -^ -\ -B -' -haystack -= -" -x -" -matches -= -[ -] -unicode -= -false -utf8 -= -false -# -unicode1 -* -and -unicode2 -* -work -for -both -Unicode -and -ASCII -because -all -matches -# -are -reported -as -byte -offsets -and -and -do -not -correspond -to -word -# -boundaries -at -either -the -character -or -byte -level -. -[ -[ -test -] -] -name -= -" -unicode1 -" -regex -= -' -\ -bx -\ -b -' -haystack -= -" -x -" -matches -= -[ -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -unicode1 -- -only -- -ascii -" -regex -= -' -\ -bx -\ -b -' -haystack -= -" -x -" -matches -= -[ -[ -2 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -unicode2 -" -regex -= -' -\ -bx -\ -b -' -haystack -= -" -x -" -matches -= -[ -[ -0 -1 -] -] -[ -[ -test -] -] -name -= -" -unicode2 -- -only -- -ascii -" -regex -= -' -\ -bx -\ -b -' -haystack -= -" -x -" -matches -= -[ -[ -0 -1 -] -] -unicode -= -false -# -ASCII -word -boundaries -are -completely -oblivious -to -Unicode -characters -so -# -even -though -is -a -character -an -ASCII -\ -b -treats -it -as -a -word -boundary -# -when -it -is -adjacent -to -another -ASCII -character -. -( -The -ASCII -\ -b -only -looks -# -at -the -leading -byte -of -. -) -For -Unicode -\ -b -the -tests -are -precisely -inverted -. -[ -[ -test -] -] -name -= -" -unicode3 -" -regex -= -' -\ -bx -\ -b -' -haystack -= -' -x -' -matches -= -[ -] -[ -[ -test -] -] -name -= -" -unicode3 -- -only -- -ascii -" -regex -= -' -\ -bx -\ -b -' -haystack -= -' -x -' -matches -= -[ -[ -2 -3 -] -] -unicode -= -false -[ -[ -test -] -] -name -= -" -unicode4 -" -regex -= -' -\ -Bx -\ -B -' -haystack -= -' -x -' -matches -= -[ -[ -2 -3 -] -] -[ -[ -test -] -] -name -= -" -unicode4 -- -only -- -ascii -" -regex -= -' -\ -Bx -\ -B -' -haystack -= -' -x -' -matches -= -[ -] -unicode -= -false -utf8 -= -false -# -The -same -as -above -but -with -\ -b -instead -of -\ -B -as -a -sanity -check -. -[ -[ -test -] -] -name -= -" -unicode5 -" -regex -= -' -\ -b -' -haystack -= -" -0 -\ -U0007EF5E -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -[ -[ -test -] -] -name -= -" -unicode5 -- -only -- -ascii -" -regex -= -' -\ -b -' -haystack -= -" -0 -\ -U0007EF5E -" -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -unicode -= -false -utf8 -= -false -[ -[ -test -] -] -name -= -" -unicode5 -- -noutf8 -" -regex -= -' -\ -b -' -haystack -= -' -0 -\ -xFF -\ -xFF -\ -xFF -\ -xFF -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -unescape -= -true -utf8 -= -false -[ -[ -test -] -] -name -= -" -unicode5 -- -noutf8 -- -only -- -ascii -" -regex -= -' -\ -b -' -haystack -= -' -0 -\ -xFF -\ -xFF -\ -xFF -\ -xFF -' -matches -= -[ -[ -0 -0 -] -[ -1 -1 -] -] -unescape -= -true -unicode -= -false -utf8 -= -false -# -Weird -special -case -to -ensure -that -ASCII -\ -B -treats -each -individual -code -unit -# -as -a -non -- -word -byte -. -( -The -specific -codepoint -is -irrelevant -. -It -' -s -an -arbitrary -# -codepoint -that -uses -4 -bytes -in -its -UTF -- -8 -encoding -and -is -not -a -member -of -the -# -\ -w -character -class -. -) -[ -[ -test -] -] -name -= -" -unicode5 -- -not -" -regex -= -' -\ -B -' -haystack -= -" -0 -\ -U0007EF5E -" -matches -= -[ -[ -5 -5 -] -] -[ -[ -test -] -] -name -= -" -unicode5 -- -not -- -only -- -ascii -" -regex -= -' -\ -B -' -haystack -= -" -0 -\ -U0007EF5E -" -matches -= -[ -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -unicode -= -false -utf8 -= -false -# -This -gets -no -matches -since -\ -B -only -matches -in -the -presence -of -valid -UTF -- -8 -# -when -Unicode -is -enabled -even -when -UTF -- -8 -mode -is -disabled -. -[ -[ -test -] -] -name -= -" -unicode5 -- -not -- -noutf8 -" -regex -= -' -\ -B -' -haystack -= -' -0 -\ -xFF -\ -xFF -\ -xFF -\ -xFF -' -matches -= -[ -] -unescape -= -true -utf8 -= -false -# -But -this -DOES -get -matches -since -\ -B -in -ASCII -mode -only -looks -at -individual -# -bytes -. -[ -[ -test -] -] -name -= -" -unicode5 -- -not -- -noutf8 -- -only -- -ascii -" -regex -= -' -\ -B -' -haystack -= -' -0 -\ -xFF -\ -xFF -\ -xFF -\ -xFF -' -matches -= -[ -[ -2 -2 -] -[ -3 -3 -] -[ -4 -4 -] -[ -5 -5 -] -] -unescape -= -true -unicode -= -false -utf8 -= -false -# -Some -tests -of -no -particular -significance -. -[ -[ -test -] -] -name -= -" -unicode6 -" -regex -= -' -\ -b -[ -0 -- -9 -] -+ -\ -b -' -haystack -= -" -foo -123 -bar -456 -quux -789 -" -matches -= -[ -[ -4 -7 -] -[ -12 -15 -] -[ -21 -24 -] -] -[ -[ -test -] -] -name -= -" -unicode7 -" -regex -= -' -\ -b -[ -0 -- -9 -] -+ -\ -b -' -haystack -= -" -foo -123 -bar -a456 -quux -789 -" -matches -= -[ -[ -4 -7 -] -[ -22 -25 -] -] -[ -[ -test -] -] -name -= -" -unicode8 -" -regex -= -' -\ -b -[ -0 -- -9 -] -+ -\ -b -' -haystack -= -" -foo -123 -bar -456a -quux -789 -" -matches -= -[ -[ -4 -7 -] -[ -22 -25 -] -] -# -A -variant -of -the -problem -described -here -: -# -https -: -/ -/ -github -. -com -/ -google -/ -re2 -/ -blob -/ -89567f5de5b23bb5ad0c26cbafc10bdc7389d1fa -/ -re2 -/ -dfa -. -cc -# -L658 -- -L667 -[ -[ -test -] -] -name -= -" -alt -- -with -- -assertion -- -repetition -" -regex -= -' -( -? -: -\ -b -| -% -) -+ -' -haystack -= -" -z -% -" -bounds -= -[ -1 -2 -] -anchored -= -true -matches -= -[ -[ -1 -1 -] -] diff --git a/third_party/rust/regex/tests/api.rs b/third_party/rust/regex/tests/api.rs new file mode 100644 index 0000000000000..d7a83442dc8b7 --- /dev/null +++ b/third_party/rust/regex/tests/api.rs @@ -0,0 +1,3080 @@ +# +[ +test +] +fn +empty_regex_empty_match +( +) +{ +let +re += +regex +! +( +" +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +0 +) +] +findall +! +( +re +" +" +) +) +; +} +# +[ +test +] +fn +empty_regex_nonempty_match +( +) +{ +let +re += +regex +! +( +" +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +] +findall +! +( +re +" +abc +" +) +) +; +} +# +[ +test +] +fn +one_zero_length_match +( +) +{ +let +re += +regex +! +( +r +" +[ +0 +- +9 +] +* +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +0 +) +( +1 +2 +) +( +3 +4 +) +] +findall +! +( +re +" +a1b2 +" +) +) +; +} +# +[ +test +] +fn +many_zero_length_match +( +) +{ +let +re += +regex +! +( +r +" +[ +0 +- +9 +] +* +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +0 +) +( +1 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +6 +) +] +findall +! +( +re +" +a1bbb2 +" +) +) +; +} +# +[ +test +] +fn +many_sequential_zero_length_match +( +) +{ +let +re += +regex +! +( +r +" +[ +0 +- +9 +] +? +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +0 +) +( +1 +2 +) +( +2 +3 +) +( +4 +5 +) +( +6 +6 +) +] +findall +! +( +re +" +a12b3c +" +) +) +; +} +# +[ +test +] +fn +quoted_bracket_set +( +) +{ +let +re += +regex +! +( +r +" +( +[ +\ +x +{ +5b +} +\ +x +{ +5d +} +] +) +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +1 +) +( +1 +2 +) +] +findall +! +( +re +" +[ +] +" +) +) +; +let +re += +regex +! +( +r +" +( +[ +\ +[ +\ +] +] +) +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +1 +) +( +1 +2 +) +] +findall +! +( +re +" +[ +] +" +) +) +; +} +# +[ +test +] +fn +first_range_starts_with_left_bracket +( +) +{ +let +re += +regex +! +( +r +" +( +[ +\ +[ +- +z +] +) +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +1 +) +( +1 +2 +) +] +findall +! +( +re +" +[ +] +" +) +) +; +} +# +[ +test +] +fn +range_ends_with_escape +( +) +{ +let +re += +regex +! +( +r +" +( +[ +\ +[ +- +\ +x +{ +5d +} +] +) +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +1 +) +( +1 +2 +) +] +findall +! +( +re +" +[ +] +" +) +) +; +} +# +[ +test +] +fn +empty_match_find_iter +( +) +{ +let +re += +regex +! +( +r +" +. +* +? +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +] +findall +! +( +re +" +abc +" +) +) +; +} +# +[ +test +] +fn +empty_match_captures_iter +( +) +{ +let +re += +regex +! +( +r +" +. +* +? +" +) +; +let +ms +: +Vec +< +_ +> += +re +. +captures_iter +( +text +! +( +" +abc +" +) +) +. +map +( +| +c +| +c +. +get +( +0 +) +. +unwrap +( +) +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +. +collect +( +) +; +assert_eq +! +( +ms +vec +! +[ +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +] +) +; +} +# +[ +test +] +fn +capture_names +( +) +{ +let +re += +regex +! +( +r +" +( +. +) +( +? +P +< +a +> +. +) +" +) +; +assert_eq +! +( +3 +re +. +captures_len +( +) +) +; +assert_eq +! +( +( +3 +Some +( +3 +) +) +re +. +capture_names +( +) +. +size_hint +( +) +) +; +assert_eq +! +( +vec +! +[ +None +None +Some +( +" +a +" +) +] +re +. +capture_names +( +) +. +collect +: +: +< +Vec +< +_ +> +> +( +) +) +; +} +# +[ +test +] +fn +regex_string +( +) +{ +assert_eq +! +( +r +" +[ +a +- +zA +- +Z0 +- +9 +] ++ +" +regex +! +( +r +" +[ +a +- +zA +- +Z0 +- +9 +] ++ +" +) +. +as_str +( +) +) +; +assert_eq +! +( +r +" +[ +a +- +zA +- +Z0 +- +9 +] ++ +" +& +format +! +( +" +{ +} +" +regex +! +( +r +" +[ +a +- +zA +- +Z0 +- +9 +] ++ +" +) +) +) +; +assert_eq +! +( +r +" +[ +a +- +zA +- +Z0 +- +9 +] ++ +" +& +format +! +( +" +{ +: +? +} +" +regex +! +( +r +" +[ +a +- +zA +- +Z0 +- +9 +] ++ +" +) +) +) +; +} +# +[ +test +] +fn +capture_index +( +) +{ +let +re += +regex +! +( +r +" +^ +( +? +P +< +name +> +. ++ +) +" +) +; +let +cap += +re +. +captures +( +t +! +( +" +abc +" +) +) +. +unwrap +( +) +; +assert_eq +! +( +& +cap +[ +0 +] +t +! +( +" +abc +" +) +) +; +assert_eq +! +( +& +cap +[ +1 +] +t +! +( +" +abc +" +) +) +; +assert_eq +! +( +& +cap +[ +" +name +" +] +t +! +( +" +abc +" +) +) +; +} +# +[ +test +] +# +[ +should_panic +] +# +[ +cfg_attr +( +all +( +target_env += +" +msvc +" +target_pointer_width += +" +32 +" +) +ignore +) +] +fn +capture_index_panic_usize +( +) +{ +let +re += +regex +! +( +r +" +^ +( +? +P +< +name +> +. ++ +) +" +) +; +let +cap += +re +. +captures +( +t +! +( +" +abc +" +) +) +. +unwrap +( +) +; +let +_ += +cap +[ +2 +] +; +} +# +[ +test +] +# +[ +should_panic +] +# +[ +cfg_attr +( +all +( +target_env += +" +msvc +" +target_pointer_width += +" +32 +" +) +ignore +) +] +fn +capture_index_panic_name +( +) +{ +let +re += +regex +! +( +r +" +^ +( +? +P +< +name +> +. ++ +) +" +) +; +let +cap += +re +. +captures +( +t +! +( +" +abc +" +) +) +. +unwrap +( +) +; +let +_ += +cap +[ +" +bad +name +" +] +; +} +# +[ +test +] +fn +capture_index_lifetime +( +) +{ +fn +inner +( +s +: +& +str +) +- +> +usize +{ +let +re += +regex +! +( +r +" +( +? +P +< +number +> +[ +0 +- +9 +] ++ +) +" +) +; +let +caps += +re +. +captures +( +t +! +( +s +) +) +. +unwrap +( +) +; +caps +[ +" +number +" +] +. +len +( +) +} +assert_eq +! +( +3 +inner +( +" +123 +" +) +) +; +} +# +[ +test +] +fn +capture_misc +( +) +{ +let +re += +regex +! +( +r +" +( +. +) +( +? +P +< +a +> +a +) +? +( +. +) +( +? +P +< +b +> +. +) +" +) +; +let +cap += +re +. +captures +( +t +! +( +" +abc +" +) +) +. +unwrap +( +) +; +assert_eq +! +( +5 +cap +. +len +( +) +) +; +assert_eq +! +( +( +0 +3 +) +{ +let +m += +cap +. +get +( +0 +) +. +unwrap +( +) +; +( +m +. +start +( +) +m +. +end +( +) +) +} +) +; +assert_eq +! +( +None +cap +. +get +( +2 +) +) +; +assert_eq +! +( +( +2 +3 +) +{ +let +m += +cap +. +get +( +4 +) +. +unwrap +( +) +; +( +m +. +start +( +) +m +. +end +( +) +) +} +) +; +assert_eq +! +( +t +! +( +" +abc +" +) +match_text +! +( +cap +. +get +( +0 +) +. +unwrap +( +) +) +) +; +assert_eq +! +( +None +cap +. +get +( +2 +) +) +; +assert_eq +! +( +t +! +( +" +c +" +) +match_text +! +( +cap +. +get +( +4 +) +. +unwrap +( +) +) +) +; +assert_eq +! +( +None +cap +. +name +( +" +a +" +) +) +; +assert_eq +! +( +t +! +( +" +c +" +) +match_text +! +( +cap +. +name +( +" +b +" +) +. +unwrap +( +) +) +) +; +} +# +[ +test +] +fn +sub_capture_matches +( +) +{ +let +re += +regex +! +( +r +" +( +[ +a +- +z +] +) +( +( +[ +a +- +z +] +) +| +( +[ +0 +- +9 +] +) +) +" +) +; +let +cap += +re +. +captures +( +t +! +( +" +a5 +" +) +) +. +unwrap +( +) +; +let +subs +: +Vec +< +_ +> += +cap +. +iter +( +) +. +collect +( +) +; +assert_eq +! +( +5 +subs +. +len +( +) +) +; +assert +! +( +subs +[ +0 +] +. +is_some +( +) +) +; +assert +! +( +subs +[ +1 +] +. +is_some +( +) +) +; +assert +! +( +subs +[ +2 +] +. +is_some +( +) +) +; +assert +! +( +subs +[ +3 +] +. +is_none +( +) +) +; +assert +! +( +subs +[ +4 +] +. +is_some +( +) +) +; +assert_eq +! +( +t +! +( +" +a5 +" +) +match_text +! +( +subs +[ +0 +] +. +unwrap +( +) +) +) +; +assert_eq +! +( +t +! +( +" +a +" +) +match_text +! +( +subs +[ +1 +] +. +unwrap +( +) +) +) +; +assert_eq +! +( +t +! +( +" +5 +" +) +match_text +! +( +subs +[ +2 +] +. +unwrap +( +) +) +) +; +assert_eq +! +( +t +! +( +" +5 +" +) +match_text +! +( +subs +[ +4 +] +. +unwrap +( +) +) +) +; +} +expand +! +( +expand1 +r +" +( +? +- +u +) +( +? +P +< +foo +> +\ +w ++ +) +" +" +abc +" +" +foo +" +" +abc +" +) +; +expand +! +( +expand2 +r +" +( +? +- +u +) +( +? +P +< +foo +> +\ +w ++ +) +" +" +abc +" +" +0 +" +" +abc +" +) +; +expand +! +( +expand3 +r +" +( +? +- +u +) +( +? +P +< +foo +> +\ +w ++ +) +" +" +abc +" +" +1 +" +" +abc +" +) +; +expand +! +( +expand4 +r +" +( +? +- +u +) +( +? +P +< +foo +> +\ +w ++ +) +" +" +abc +" +" +1 +" +" +1 +" +) +; +expand +! +( +expand5 +r +" +( +? +- +u +) +( +? +P +< +foo +> +\ +w ++ +) +" +" +abc +" +" +foo +" +" +foo +" +) +; +expand +! +( +expand6 +r +" +( +? +- +u +) +( +? +P +< +a +> +\ +w ++ +) +\ +s ++ +( +? +P +< +b +> +\ +d ++ +) +" +" +abc +123 +" +" +b +a +" +" +123abc +" +) +; +expand +! +( +expand7 +r +" +( +? +- +u +) +( +? +P +< +a +> +\ +w ++ +) +\ +s ++ +( +? +P +< +b +> +\ +d ++ +) +" +" +abc +123 +" +" +z +bz +az +" +" +z +" +) +; +expand +! +( +expand8 +r +" +( +? +- +u +) +( +? +P +< +a +> +\ +w ++ +) +\ +s ++ +( +? +P +< +b +> +\ +d ++ +) +" +" +abc +123 +" +" +. +b +. +a +. +" +" +. +123 +. +abc +. +" +) +; +expand +! +( +expand9 +r +" +( +? +- +u +) +( +? +P +< +a +> +\ +w ++ +) +\ +s ++ +( +? +P +< +b +> +\ +d ++ +) +" +" +abc +123 +" +" +b +a +" +" +123 +abc +" +) +; +expand +! +( +expand10 +r +" +( +? +- +u +) +( +? +P +< +a +> +\ +w ++ +) +\ +s ++ +( +? +P +< +b +> +\ +d ++ +) +" +" +abc +123 +" +" +bz +az +" +" +" +) +; +expand +! +( +expand_name1 +r +" +% +( +? +P +< +Z +> +[ +a +- +z +] ++ +) +" +" +% +abc +" +" +Z +% +" +" +abc +% +" +) +; +expand +! +( +expand_name2 +r +" +\ +[ +( +? +P +< +Z +> +[ +a +- +z +] ++ +) +" +" +[ +abc +" +" +Z +[ +" +" +abc +[ +" +) +; +expand +! +( +expand_name3 +r +" +\ +{ +( +? +P +< +Z +> +[ +a +- +z +] ++ +) +" +" +{ +abc +" +" +Z +{ +" +" +abc +{ +" +) +; +expand +! +( +expand_name4 +r +" +\ +} +( +? +P +< +Z +> +[ +a +- +z +] ++ +) +" +" +} +abc +" +" +Z +} +" +" +abc +} +" +) +; +expand +! +( +expand_name5 +r +" +% +( +[ +a +- +z +] ++ +) +" +" +% +abc +" +" +1a +% +" +" +% +" +) +; +expand +! +( +expand_name6 +r +" +% +( +[ +a +- +z +] ++ +) +" +" +% +abc +" +" +{ +1 +} +a +% +" +" +abca +% +" +) +; +expand +! +( +expand_name7 +r +" +\ +[ +( +? +P +< +Z +[ +> +[ +a +- +z +] ++ +) +" +" +[ +abc +" +" +{ +Z +[ +} +[ +" +" +abc +[ +" +) +; +expand +! +( +expand_name8 +r +" +\ +[ +( +? +P +< +Z +[ +> +[ +a +- +z +] ++ +) +" +" +[ +abc +" +" +{ +foo +} +[ +" +" +[ +" +) +; +expand +! +( +expand_name9 +r +" +\ +[ +( +? +P +< +Z +[ +> +[ +a +- +z +] ++ +) +" +" +[ +abc +" +" +{ +1a +} +[ +" +" +[ +" +) +; +expand +! +( +expand_name10 +r +" +\ +[ +( +? +P +< +Z +[ +> +[ +a +- +z +] ++ +) +" +" +[ +abc +" +" +{ +# +} +[ +" +" +[ +" +) +; +expand +! +( +expand_name11 +r +" +\ +[ +( +? +P +< +Z +[ +> +[ +a +- +z +] ++ +) +" +" +[ +abc +" +" +{ +} +[ +" +" +[ +" +) +; +split +! +( +split1 +r +" +( +? +- +u +) +\ +s ++ +" +" +a +b +\ +nc +\ +td +\ +n +\ +t +e +" +& +[ +t +! +( +" +a +" +) +t +! +( +" +b +" +) +t +! +( +" +c +" +) +t +! +( +" +d +" +) +t +! +( +" +e +" +) +] +) +; +split +! +( +split2 +r +" +( +? +- +u +) +\ +b +" +" +a +b +c +" +& +[ +t +! +( +" +" +) +t +! +( +" +a +" +) +t +! +( +" +" +) +t +! +( +" +b +" +) +t +! +( +" +" +) +t +! +( +" +c +" +) +t +! +( +" +" +) +] +) +; +split +! +( +split3 +r +" +a +" +" +a +" +& +[ +t +! +( +" +" +) +t +! +( +" +" +) +] +) +; +split +! +( +split_none +r +" +- +" +r +" +a +" +& +[ +t +! +( +" +a +" +) +] +) +; +split +! +( +split_trailing_blank +r +" +- +" +r +" +a +- +" +& +[ +t +! +( +" +a +" +) +t +! +( +" +" +) +] +) +; +split +! +( +split_trailing_blanks +r +" +- +" +r +" +a +- +- +" +& +[ +t +! +( +" +a +" +) +t +! +( +" +" +) +t +! +( +" +" +) +] +) +; +split +! +( +split_empty +r +" +- +" +r +" +" +& +[ +t +! +( +" +" +) +] +) +; +splitn +! +( +splitn_below_limit +r +" +- +" +r +" +a +" +2 +& +[ +t +! +( +" +a +" +) +] +) +; +splitn +! +( +splitn_at_limit +r +" +- +" +r +" +a +- +b +" +2 +& +[ +t +! +( +" +a +" +) +t +! +( +" +b +" +) +] +) +; +splitn +! +( +splitn_above_limit +r +" +- +" +r +" +a +- +b +- +c +" +2 +& +[ +t +! +( +" +a +" +) +t +! +( +" +b +- +c +" +) +] +) +; +splitn +! +( +splitn_zero_limit +r +" +- +" +r +" +a +- +b +" +0 +empty_vec +! +( +) +) +; +splitn +! +( +splitn_trailing_blank +r +" +- +" +r +" +a +- +" +2 +& +[ +t +! +( +" +a +" +) +t +! +( +" +" +) +] +) +; +splitn +! +( +splitn_trailing_separator +r +" +- +" +r +" +a +- +- +" +2 +& +[ +t +! +( +" +a +" +) +t +! +( +" +- +" +) +] +) +; +splitn +! +( +splitn_empty +r +" +- +" +r +" +" +1 +& +[ +t +! +( +" +" +) +] +) +; diff --git a/third_party/rust/regex/tests/api_str.rs b/third_party/rust/regex/tests/api_str.rs new file mode 100644 index 0000000000000..a0fd7d9d99071 --- /dev/null +++ b/third_party/rust/regex/tests/api_str.rs @@ -0,0 +1,296 @@ +# +[ +test +] +fn +empty_match_unicode_find_iter +( +) +{ +let +re += +regex +! +( +r +" +. +* +? +" +) +; +assert_eq +! +( +vec +! +[ +( +0 +0 +) +( +3 +3 +) +( +4 +4 +) +( +7 +7 +) +( +8 +8 +) +] +findall +! +( +re +" +1 +2 +" +) +) +; +} +# +[ +test +] +fn +empty_match_unicode_captures_iter +( +) +{ +let +re += +regex +! +( +r +" +. +* +? +" +) +; +let +ms +: +Vec +< +_ +> += +re +. +captures_iter +( +text +! +( +" +1 +2 +" +) +) +. +map +( +| +c +| +c +. +get +( +0 +) +. +unwrap +( +) +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +. +collect +( +) +; +assert_eq +! +( +vec +! +[ +( +0 +0 +) +( +3 +3 +) +( +4 +4 +) +( +7 +7 +) +( +8 +8 +) +] +ms +) +; +} +# +[ +test +] +fn +match_as_str +( +) +{ +let +re += +regex +! +( +r +" +fo ++ +" +) +; +let +caps += +re +. +captures +( +" +barfoobar +" +) +. +unwrap +( +) +; +assert_eq +! +( +caps +. +get +( +0 +) +. +map +( +| +m +| +m +. +as_str +( +) +) +Some +( +" +foo +" +) +) +; +assert_eq +! +( +caps +. +get +( +0 +) +. +map +( +From +: +: +from +) +Some +( +" +foo +" +) +) +; +assert_eq +! +( +caps +. +get +( +0 +) +. +map +( +Into +: +: +into +) +Some +( +" +foo +" +) +) +; +} diff --git a/third_party/rust/regex/tests/bytes.rs b/third_party/rust/regex/tests/bytes.rs new file mode 100644 index 0000000000000..44c6848aa4af7 --- /dev/null +++ b/third_party/rust/regex/tests/bytes.rs @@ -0,0 +1,1164 @@ +struct +R +< +' +a +> +( +& +' +a +[ +u8 +] +) +; +impl +< +' +a +> +R +< +' +a +> +{ +fn +as_bytes +( +& +self +) +- +> +& +' +a +[ +u8 +] +{ +self +. +0 +} +} +mat +! +( +word_boundary +r +" +( +? +- +u +) +\ +b +" +" +" +None +) +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mat +! +( +word_boundary_unicode +r +" +\ +b +" +" +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +word_not_boundary +r +" +( +? +- +u +) +\ +B +" +" +" +Some +( +( +0 +1 +) +) +) +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mat +! +( +word_not_boundary_unicode +r +" +\ +B +" +" +" +None +) +; +mat +! +( +perl_w_ascii +r +" +( +? +- +u +) +\ +w ++ +" +" +a +" +Some +( +( +0 +1 +) +) +) +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mat +! +( +perl_w_unicode +r +" +\ +w ++ +" +" +a +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +perl_d_ascii +r +" +( +? +- +u +) +\ +d ++ +" +" +1 +9 +" +Some +( +( +0 +1 +) +) +) +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mat +! +( +perl_d_unicode +r +" +\ +d ++ +" +" +1 +9 +" +Some +( +( +0 +8 +) +) +) +; +mat +! +( +perl_s_ascii +r +" +( +? +- +u +) +\ +s ++ +" +" +\ +u +{ +1680 +} +" +Some +( +( +0 +1 +) +) +) +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mat +! +( +perl_s_unicode +r +" +\ +s ++ +" +" +\ +u +{ +1680 +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +mixed1 +r +" +( +. ++ +) +( +? +- +u +) +( +. ++ +) +" +R +( +b +" +\ +xCE +\ +x93 +\ +xCE +\ +x94 +\ +xFF +" +) +Some +( +( +0 +5 +) +) +Some +( +( +0 +4 +) +) +Some +( +( +4 +5 +) +) +) +; +mat +! +( +case_ascii_one +r +" +( +? +i +- +u +) +a +" +" +A +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +case_ascii_class +r +" +( +? +i +- +u +) +[ +a +- +z +] ++ +" +" +AaAaA +" +Some +( +( +0 +5 +) +) +) +; +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] +mat +! +( +case_unicode +r +" +( +? +i +) +[ +a +- +z +] ++ +" +" +aA +\ +u +{ +212A +} +aA +" +Some +( +( +0 +7 +) +) +) +; +mat +! +( +case_not_unicode +r +" +( +? +i +- +u +) +[ +a +- +z +] ++ +" +" +aA +\ +u +{ +212A +} +aA +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +negate_unicode +r +" +[ +^ +a +] +" +" +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +negate_not_unicode +r +" +( +? +- +u +) +[ +^ +a +] +" +" +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +dotstar_prefix_not_unicode1 +r +" +( +? +- +u +) +a +" +R +( +b +" +\ +xFFa +" +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +dotstar_prefix_not_unicode2 +r +" +a +" +R +( +b +" +\ +xFFa +" +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +null_bytes +r +" +( +? +- +u +) +( +? +P +< +cstr +> +[ +^ +\ +x00 +] ++ +) +\ +x00 +" +R +( +b +" +foo +\ +x00 +" +) +Some +( +( +0 +4 +) +) +Some +( +( +0 +3 +) +) +) +; +matiter +! +( +invalidutf8_anchor1 +r +" +( +? +- +u +) +\ +xcc +? +^ +" +R +( +b +" +\ +x8d +# +; +\ +x1a +\ +xa4s3 +\ +x05foobarX +\ +\ +\ +x0f0t +\ +xe4 +\ +x9b +\ +xa4 +" +) +( +0 +0 +) +) +; +matiter +! +( +invalidutf8_anchor2 +r +" +( +? +- +u +) +^ +\ +xf7 +| +4 +\ +xff +\ +d +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +# +# +# +# +# +# +# +# +# +# +[ +] +d +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +\ +x8a +# +# +# +# +# +# +# +# +# +# +\ +[ +] +# +# +# +# +# +\ +x80 +\ +S7 +| +" +R +( +b +" +\ +x8d +# +; +\ +x1a +\ +xa4s3 +\ +x05foobarX +\ +\ +\ +x0f0t +\ +xe4 +\ +x9b +\ +xa4 +" +) +( +22 +22 +) +) +; +matiter +! +( +invalidutf8_anchor3 +r +" +( +? +- +u +) +^ +| +ddp +\ +xff +\ +xffdddddlQd +\ +x80 +" +R +( +b +" +\ +x8d +# +; +\ +x1a +\ +xa4s3 +\ +x05foobarX +\ +\ +\ +x0f0t +\ +xe4 +\ +x9b +\ +xa4 +" +) +( +0 +0 +) +) +; +# +[ +test +] +fn +negated_full_byte_range +( +) +{ +assert +! +( +: +: +regex +: +: +bytes +: +: +Regex +: +: +new +( +r +# +" +( +? +- +u +) +[ +^ +\ +x00 +- +\ +xff +] +" +# +) +. +is_err +( +) +) +; +} +matiter +! +( +word_boundary_ascii1 +r +" +( +? +- +u +: +\ +B +) +x +( +? +- +u +: +\ +B +) +" +" +x +" +) +; +matiter +! +( +word_boundary_ascii2 +r +" +( +? +- +u +: +\ +B +) +" +" +0 +\ +u +{ +7EF5E +} +" +( +2 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +5 +) +) +; +mat +! +( +ascii_boundary_no_capture +r +" +( +? +- +u +) +\ +B +" +" +\ +u +{ +28f3e +} +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +ascii_boundary_capture +r +" +( +? +- +u +) +( +\ +B +) +" +" +\ +u +{ +28f3e +} +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +end_not_wb +r +" +( +? +- +u +: +\ +B +) +" +" +\ +u +{ +5c124 +} +\ +u +{ +b576c +} +" +Some +( +( +8 +8 +) +) +) +; diff --git a/third_party/rust/regex/tests/consistent.rs b/third_party/rust/regex/tests/consistent.rs new file mode 100644 index 0000000000000..7a0968a096cda --- /dev/null +++ b/third_party/rust/regex/tests/consistent.rs @@ -0,0 +1,1303 @@ +use +regex +: +: +internal +: +: +ExecBuilder +; +pub +fn +backends_are_consistent +( +re +: +& +str +) +- +> +Result +< +u64 +String +> +{ +let +standard_backends += +vec +! +[ +( +" +bounded_backtracking_re +" +ExecBuilder +: +: +new +( +re +) +. +bounded_backtracking +( +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +? +) +( +" +pikevm_re +" +ExecBuilder +: +: +new +( +re +) +. +nfa +( +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +? +) +( +" +default_re +" +ExecBuilder +: +: +new +( +re +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +? +) +] +; +let +utf8bytes_backends += +vec +! +[ +( +" +bounded_backtracking_utf8bytes_re +" +ExecBuilder +: +: +new +( +re +) +. +bounded_backtracking +( +) +. +bytes +( +true +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +? +) +( +" +pikevm_utf8bytes_re +" +ExecBuilder +: +: +new +( +re +) +. +nfa +( +) +. +bytes +( +true +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +? +) +( +" +default_utf8bytes_re +" +ExecBuilder +: +: +new +( +re +) +. +bytes +( +true +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +? +) +] +; +let +bytes_backends += +vec +! +[ +( +" +bounded_backtracking_bytes_re +" +ExecBuilder +: +: +new +( +re +) +. +bounded_backtracking +( +) +. +only_utf8 +( +false +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_byte_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +? +) +( +" +pikevm_bytes_re +" +ExecBuilder +: +: +new +( +re +) +. +nfa +( +) +. +only_utf8 +( +false +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_byte_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +? +) +( +" +default_bytes_re +" +ExecBuilder +: +: +new +( +re +) +. +only_utf8 +( +false +) +. +build +( +) +. +map +( +| +exec +| +exec +. +into_byte_regex +( +) +) +. +map_err +( +| +err +| +format +! +( +" +{ +} +" +err +) +) +? +) +] +; +Ok +( +string_checker +: +: +check_backends +( +& +standard_backends +) +? ++ +string_checker +: +: +check_backends +( +& +utf8bytes_backends +) +? ++ +bytes_checker +: +: +check_backends +( +& +bytes_backends +) +? +) +} +macro_rules +! +checker +{ +( +module_name +: +ident +regex_type +: +path +mk_input +: +expr +) += +> +{ +mod +module_name +{ +use +quickcheck +; +use +quickcheck +: +: +{ +Arbitrary +TestResult +} +; +pub +fn +check_backends +( +backends +: +& +[ +( +& +str +regex_type +) +] +) +- +> +Result +< +u64 +String +> +{ +let +mut +total_passed += +0 +; +for +regex +in +backends +[ +1 +. +. +] +. +iter +( +) +{ +total_passed ++ += +quickcheck_regex_eq +( +& +backends +[ +0 +] +regex +) +? +; +} +Ok +( +total_passed +) +} +fn +quickcheck_regex_eq +( +& +( +name1 +ref +re1 +) +: +& +( +& +str +regex_type +) +& +( +name2 +ref +re2 +) +: +& +( +& +str +regex_type +) +) +- +> +Result +< +u64 +String +> +{ +quickcheck +: +: +QuickCheck +: +: +new +( +) +. +quicktest +( +RegexEqualityTest +: +: +new +( +re1 +. +clone +( +) +re2 +. +clone +( +) +) +) +. +map_err +( +| +err +| +{ +format +! +( +" +{ +} +( +/ +{ +} +/ +) +and +{ +} +( +/ +{ +} +/ +) +are +inconsistent +. +\ +QuickCheck +Err +: +{ +: +? +} +" +name1 +re1 +name2 +re2 +err +) +} +) +} +struct +RegexEqualityTest +{ +re1 +: +regex_type +re2 +: +regex_type +} +impl +RegexEqualityTest +{ +fn +new +( +re1 +: +regex_type +re2 +: +regex_type +) +- +> +Self +{ +RegexEqualityTest +{ +re1 +: +re1 +re2 +: +re2 +} +} +} +impl +quickcheck +: +: +Testable +for +RegexEqualityTest +{ +fn +result +( +& +self +gen +: +& +mut +quickcheck +: +: +Gen +) +- +> +TestResult +{ +let +input += +mk_input +( +gen +) +; +let +input += +& +input +; +if +self +. +re1 +. +find +( +& +input +) +! += +self +. +re2 +. +find +( +input +) +{ +return +TestResult +: +: +error +( +format +! +( +" +find +mismatch +input += +{ +: +? +} +" +input +) +) +; +} +let +cap1 += +self +. +re1 +. +captures +( +input +) +; +let +cap2 += +self +. +re2 +. +captures +( +input +) +; +match +( +cap1 +cap2 +) +{ +( +None +None +) += +> +{ +} +( +Some +( +cap1 +) +Some +( +cap2 +) +) += +> +{ +for +( +c1 +c2 +) +in +cap1 +. +iter +( +) +. +zip +( +cap2 +. +iter +( +) +) +{ +if +c1 +! += +c2 +{ +return +TestResult +: +: +error +( +format +! +( +" +captures +mismatch +input += +{ +: +? +} +" +input +) +) +; +} +} +} +_ += +> +{ +return +TestResult +: +: +error +( +format +! +( +" +captures +mismatch +input += +{ +: +? +} +" +input +) +) +} +} +let +fi1 += +self +. +re1 +. +find_iter +( +input +) +; +let +fi2 += +self +. +re2 +. +find_iter +( +input +) +; +for +( +m1 +m2 +) +in +fi1 +. +zip +( +fi2 +) +{ +if +m1 +! += +m2 +{ +return +TestResult +: +: +error +( +format +! +( +" +find_iter +mismatch +input += +{ +: +? +} +" +input +) +) +; +} +} +let +ci1 += +self +. +re1 +. +captures_iter +( +input +) +; +let +ci2 += +self +. +re2 +. +captures_iter +( +input +) +; +for +( +cap1 +cap2 +) +in +ci1 +. +zip +( +ci2 +) +{ +for +( +c1 +c2 +) +in +cap1 +. +iter +( +) +. +zip +( +cap2 +. +iter +( +) +) +{ +if +c1 +! += +c2 +{ +return +TestResult +: +: +error +( +format +! +( +" +captures_iter +mismatch +input += +{ +: +? +} +" +input +) +) +; +} +} +} +let +s1 += +self +. +re1 +. +split +( +input +) +; +let +s2 += +self +. +re2 +. +split +( +input +) +; +for +( +chunk1 +chunk2 +) +in +s1 +. +zip +( +s2 +) +{ +if +chunk1 +! += +chunk2 +{ +return +TestResult +: +: +error +( +format +! +( +" +split +mismatch +input += +{ +: +? +} +" +input +) +) +; +} +} +TestResult +: +: +from_bool +( +true +) +} +} +} +/ +/ +mod +} +; +} +checker +! +( +string_checker +: +: +regex +: +: +Regex +| +gen +| +String +: +: +arbitrary +( +gen +) +) +; +checker +! +( +bytes_checker +: +: +regex +: +: +bytes +: +: +Regex +| +gen +| +Vec +: +: +< +u8 +> +: +: +arbitrary +( +gen +) +) +; diff --git a/third_party/rust/regex/tests/crates_regex.rs b/third_party/rust/regex/tests/crates_regex.rs new file mode 100644 index 0000000000000..eec59ff1e7dfb --- /dev/null +++ b/third_party/rust/regex/tests/crates_regex.rs @@ -0,0 +1,29093 @@ +consistent +! +( +autoshutdown_0 +r +" +\ +s +* +( +\ +d ++ +) +( +\ +w +) +\ +s +* +" +) +; +consistent +! +( +epub_0 +r +" +/ +" +) +; +consistent +! +( +rpi_info_0 +" +^ +Revision +\ +t ++ +: +( +[ +0 +- +9a +- +fA +- +F +] ++ +) +" +) +; +consistent +! +( +rpi_info_1 +" +Serial +\ +t ++ +: +( +[ +0 +- +9a +- +fA +- +F +] ++ +) +" +) +; +consistent +! +( +pnet_macros_0 +r +" +^ +u +( +[ +0 +- +9 +] ++ +) +( +be +| +le +| +he +) +? +" +) +; +consistent +! +( +iban_validate_0 +r +" +^ +[ +A +- +Z +] +{ +2 +} +\ +d +{ +2 +} +[ +A +- +Z +\ +d +] +{ +1 +30 +} +" +) +; +consistent +! +( +markifier_0 +r +" +. +* +\ +[ +( +? +P +< +percent +> +. ++ +) +% +. +* +\ +] +. +* +" +) +; +consistent +! +( +mallumo_0 +r +" +( +# +include +) +( +\ +S +* +) +( +. +* +) +" +) +; +consistent +! +( +mallumo_1 +r +" +( +ERROR +: +\ +d ++ +: +) +( +\ +d ++ +) +( +: +) +( +. ++ +) +" +) +; +consistent +! +( +mallumo_2 +r +" +( +\ +d ++ +\ +( +) +( +\ +d ++ +) +( +? +: +\ +) +: +) +( +. ++ +) +" +) +; +consistent +! +( +magnet_more_0 +r +" +( +. ++ +? +) +( +\ +[ +. +* +? +\ +] +) +? +" +) +; +consistent +! +( +magnet_app_0 +r +" +: +( +? +P +< +k +> +[ +a +- +zA +- +Z_ +] ++ +) +" +) +; +consistent +! +( +yubibomb_0 +r +" +^ +\ +d +{ +6 +} +( +? +: +\ +s +* +\ +s +* +\ +d +{ +6 +} +) +* +" +) +; +consistent +! +( +multirust_rs_0 +r +" +[ +\ +\ +/ +] +( +[ +^ +\ +\ +/ +? +] ++ +) +( +\ +? +. +* +) +? +" +) +; +consistent +! +( +hueclient_0 +" +\ +" +[ +a +- +z +] +* +\ +" +: +null +" +) +; +consistent +! +( +hueclient_1 +" ++ +" +) +; +consistent +! +( +hueclient_2 +" +\ +\ +} +" +) +; +consistent +! +( +hueclient_3 +" +\ +\ +{ +" +) +; +consistent +! +( +aerial_0 +r +" +[ +a +- +zA +- +Z_ +\ +] +[ +a +- +zA +- +Z_0 +- +9 +] +* +" +) +; +consistent +! +( +aerial_1 +r +" +thi +[ +sng +] ++ +" +) +; +consistent +! +( +rvue_0 +r +" +( +. ++ +) +\ +s ++ +\ +( +( +. ++ +? +) +\ +) +" +) +; +consistent +! +( +rvue_1 +r +" +( +[ +\ +d +\ +. +] ++ +) +\ +s +* +out +\ +s +* +of +\ +s +* +( +[ +\ +d +\ +. +] ++ +) +" +) +; +consistent +! +( +rvue_2 +r +" +^ +( +[ +\ +d +\ +. +] ++ +) +\ +s +* +( +? +: +\ +( +\ +) +) +? +" +) +; +consistent +! +( +rvue_3 +r +" +( +[ +\ +d +\ +. +] ++ +) +\ +s +* +Points +\ +s +* +Possible +" +) +; +consistent +! +( +rvue_4 +r +" +( +[ +\ +d +\ +. +] ++ +) +\ +s +* +/ +\ +s +* +( +[ +\ +d +\ +. +] ++ +) +" +) +; +consistent +! +( +rvsim_0 +r +" +_ +? +( +[ +_a +- +z0 +- +9 +] ++ +) +\ +s +* +: +\ +s +* +( +[ +_a +- +z0 +- +9 +] ++ +) +\ +s +* +[ +) +] +" +) +; +consistent +! +( +nereon_0 +" +( +. +* +[ +^ +\ +\ +\ +\ +] +) +\ +\ +{ +\ +\ +} +( +. +* +) +" +) +; +consistent +! +( +next_episode_0 +r +" +( +( +? +i +) +^ +( +. ++ +) +. +s +( +\ +d ++ +) +e +( +\ +d ++ +) +. +* +) +" +) +; +consistent +! +( +migrant_lib_0 +r +" +[ +^ +a +- +z0 +- +9 +- +] ++ +" +) +; +consistent +! +( +migrant_lib_1 +r +" +[ +0 +- +9 +] +{ +14 +} +_ +[ +a +- +z0 +- +9 +- +] ++ +" +) +; +consistent +! +( +migrant_lib_2 +r +" +( +[ +0 +- +9 +] +{ +14 +} +_ +) +? +[ +a +- +z0 +- +9 +- +] ++ +" +) +; +consistent +! +( +minipre_0 +" +_ +" +) +; +consistent +! +( +minifier_0 +r +" +> +\ +s ++ +< +" +) +; +consistent +! +( +minifier_1 +r +" +\ +s +{ +2 +} +| +[ +\ +r +\ +n +] +" +) +; +consistent +! +( +minifier_2 +r +" +< +( +style +| +script +) +[ +\ +w +| +\ +s +] +. +* +? +> +" +) +; +consistent +! +( +minifier_3 +" +< +! +- +- +( +. +| +\ +n +) +* +? +- +- +> +" +) +; +consistent +! +( +minifier_4 +r +" +< +\ +w +. +* +? +> +" +) +; +consistent +! +( +minifier_5 +r +" +\ +s ++ +| +\ +s ++ +" +) +; +consistent +! +( +minifier_6 +r +" +\ +w +\ +s ++ +\ +w +" +) +; +consistent +! +( +minifier_7 +r +" +' +\ +s ++ +> +" +) +; +consistent +! +( +minifier_8 +r +" +\ +d +\ +s ++ +> +" +) +; +consistent +! +( +ggp_rs_0 +r +" +( +? +P +< +relation +> +\ +( +[ +^ +) +] ++ +\ +) +) +| +( +? +P +< +prop +> +[ +a +- +zA +- +Z0 +- +9_ +] ++ +) +" +) +; +consistent +! +( +ggp_rs_1 +r +" +\ +( +( +. +* +) +\ +) +. +" +) +; +consistent +! +( +poe_superfilter_0 +" +[ +A +- +Za +- +z0 +- +9_ +] +" +) +; +consistent +! +( +poke_a_mango_0 +r +" +( +\ +d ++ +) +x +( +\ +d ++ +) +" +) +; +consistent +! +( +pop3_rs_0 +r +" +( +? +P +< +nmsg +> +\ +d ++ +) +( +? +P +< +size +> +\ +d ++ +) +" +) +; +consistent +! +( +pop3_rs_1 +r +" +( +? +P +< +msgid +> +\ +d ++ +) +( +? +P +< +uidl +> +[ +\ +x21 +- +\ +x7E +] +{ +1 +70 +} +) +" +) +; +consistent +! +( +pop3_rs_2 +r +" +( +< +. +* +> +) +\ +r +\ +n +" +) +; +consistent +! +( +pop3_rs_3 +r +" +^ +( +? +P +< +status +> +\ ++ +OK +| +- +ERR +) +( +? +P +< +statustext +> +. +* +) +" +) +; +consistent +! +( +pop3_0 +r +" +^ +\ +. +\ +r +\ +n +" +) +; +consistent +! +( +pop3_1 +r +" +\ ++ +OK +( +. +* +) +" +) +; +consistent +! +( +pop3_2 +r +" +- +ERR +( +. +* +) +" +) +; +consistent +! +( +pop3_3 +r +" +\ ++ +OK +( +\ +d ++ +) +( +\ +d ++ +) +\ +r +\ +n +" +) +; +consistent +! +( +pop3_4 +r +" +( +\ +d ++ +) +( +[ +\ +x21 +- +\ +x7e +] ++ +) +\ +r +\ +n +" +) +; +consistent +! +( +pop3_5 +r +" +\ ++ +OK +( +\ +d ++ +) +( +[ +\ +x21 +- +\ +x7e +] ++ +) +\ +r +\ +n +" +) +; +consistent +! +( +pop3_6 +r +" +( +\ +d ++ +) +( +\ +d ++ +) +\ +r +\ +n +" +) +; +consistent +! +( +pop3_7 +r +" +\ ++ +OK +( +\ +d ++ +) +( +\ +d ++ +) +\ +r +\ +n +" +) +; +consistent +! +( +polk_0 +" +github +: +( +\ +\ +w ++ +) +/ +? +( +\ +\ +w ++ +) +? +" +) +; +consistent +! +( +geochunk_0 +" +^ +[ +0 +- +9 +] +{ +5 +} +" +) +; +consistent +! +( +generic_dns_update_0 +r +" +( +( +? +: +( +? +: +0 +| +1 +[ +\ +d +] +{ +0 +2 +} +| +2 +( +? +: +[ +0 +- +4 +] +\ +d +? +| +5 +[ +0 +- +5 +] +? +| +[ +6 +- +9 +] +) +? +| +[ +3 +- +9 +] +\ +d +? +) +\ +. +) +{ +3 +} +( +? +: +0 +| +1 +[ +\ +d +] +{ +0 +2 +} +| +2 +( +? +: +[ +0 +- +4 +] +\ +d +? +| +5 +[ +0 +- +5 +] +? +| +[ +6 +- +9 +] +) +? +| +[ +3 +- +9 +] +\ +d +? +) +) +" +) +; +consistent +! +( +generic_dns_update_1 +r +" +( +( +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +7 +} +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +) +| +( +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +6 +} +: +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +) +| +( +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +5 +} +: +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +? +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +) +| +( +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +4 +} +: +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +0 +2 +} +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +) +| +( +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +3 +} +: +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +0 +3 +} +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +) +| +( +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +2 +} +: +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +0 +4 +} +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +) +| +( +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +6 +} +( +( +\ +d +( +( +25 +[ +0 +- +5 +] +) +| +( +1 +\ +d +{ +2 +} +) +| +( +2 +[ +0 +- +4 +] +\ +d +) +| +( +\ +d +{ +1 +2 +} +) +) +\ +d +) +\ +. +) +{ +3 +} +( +\ +d +( +( +25 +[ +0 +- +5 +] +) +| +( +1 +\ +d +{ +2 +} +) +| +( +2 +[ +0 +- +4 +] +\ +d +) +| +( +\ +d +{ +1 +2 +} +) +) +\ +d +) +) +| +( +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +0 +5 +} +: +( +( +\ +d +( +( +25 +[ +0 +- +5 +] +) +| +( +1 +\ +d +{ +2 +} +) +| +( +2 +[ +0 +- +4 +] +\ +d +) +| +( +\ +d +{ +1 +2 +} +) +) +\ +d +) +\ +. +) +{ +3 +} +( +\ +d +( +( +25 +[ +0 +- +5 +] +) +| +( +1 +\ +d +{ +2 +} +) +| +( +2 +[ +0 +- +4 +] +\ +d +) +| +( +\ +d +{ +1 +2 +} +) +) +\ +d +) +) +| +( +: +: +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +0 +5 +} +( +( +\ +d +( +( +25 +[ +0 +- +5 +] +) +| +( +1 +\ +d +{ +2 +} +) +| +( +2 +[ +0 +- +4 +] +\ +d +) +| +( +\ +d +{ +1 +2 +} +) +) +\ +d +) +\ +. +) +{ +3 +} +( +\ +d +( +( +25 +[ +0 +- +5 +] +) +| +( +1 +\ +d +{ +2 +} +) +| +( +2 +[ +0 +- +4 +] +\ +d +) +| +( +\ +d +{ +1 +2 +} +) +) +\ +d +) +) +| +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +: +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +0 +5 +} +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +) +| +( +: +: +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +0 +6 +} +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +) +| +( +( +[ +0 +- +9A +- +Fa +- +f +] +{ +1 +4 +} +: +) +{ +1 +7 +} +: +) +) +" +) +; +consistent +! +( +generic_dns_update_2 +r +" +< +value +> +< +string +> +( +[ +0 +- +9 +. +] +* +) +< +/ +string +> +< +/ +value +> +" +) +; +consistent +! +( +generic_dns_update_3 +r +" +< +int +> +( +[ +0 +- +9 +] ++ +) +< +/ +int +> +" +) +; +consistent +! +( +generic_dns_update_4 +r +" +< +int +> +( +[ +0 +- +9 +] ++ +) +< +/ +int +> +" +) +; +consistent +! +( +generic_dns_update_5 +r +" +< +boolean +> +( +[ +0 +- +1 +] +* +) +< +/ +boolean +> +" +) +; +consistent +! +( +generate_nix_pkg_0 +r +" +( +\ +d +* +) +\ +. +( +\ +d +* +) +\ +. +( +\ +d +* +) +( +- +( +\ +S +* +) +) +? +" +) +; +consistent +! +( +generate_nix_pkg_1 +r +" +^ +( +\ +S +* +) +( +\ +d +* +) +\ +. +( +\ +d +* +) +\ +. +( +\ +d +* +) +( +- +( +\ +S +* +) +) +? +" +) +; +consistent +! +( +genact_0 +r +" +arch +/ +( +[ +a +- +z0 +- +9_ +] +) ++ +/ +" +) +; +consistent +! +( +genact_1 +r +" +arch +/ +( +[ +a +- +z0 +- +9_ +] +) ++ +/ +" +) +; +consistent +! +( +cron_rs_0 +r +" +^ +\ +s +* +( +( +\ +* +( +/ +\ +d ++ +) +? +) +| +[ +0 +- +9 +- +/ +] ++ +) +( +\ +s ++ +( +( +\ +* +( +/ +\ +d ++ +) +? +) +| +[ +0 +- +9 +- +/ +] ++ +) +) +{ +4 +5 +} +\ +s +* +" +) +; +consistent +! +( +systemfd_0 +r +" +^ +( +[ +a +- +zA +- +Z +] ++ +) +: +: +( +. ++ +) +" +) +; +consistent +! +( +symbolic_debuginfo_0 +" +__ +? +hidden +# +\ +\ +d ++ +_ +" +) +; +consistent +! +( +symbolic_minidump_0 +r +" +^ +Linux +( +[ +^ +] ++ +) +( +. +* +) +\ +w ++ +( +? +: +GNU +/ +Linux +) +? +" +) +; +consistent +! +( +graphql_idl_parser_0 +" +^ +( +? +u +: +\ +\ +# +) +( +? +u +: +[ +\ +t +- +\ +r +- +\ +u +{ +85 +} +- +\ +u +{ +85 +} +\ +u +{ +a0 +} +- +\ +u +{ +a0 +} +\ +u +{ +1680 +} +- +\ +u +{ +1680 +} +\ +u +{ +2000 +} +- +\ +u +{ +200a +} +\ +u +{ +2028 +} +- +\ +u +{ +2029 +} +\ +u +{ +202f +} +- +\ +u +{ +202f +} +\ +u +{ +205f +} +- +\ +u +{ +205f +} +\ +u +{ +3000 +} +- +\ +u +{ +3000 +} +] +) +* +( +? +u +: +. +) ++ +" +) +; +consistent +! +( +graphql_idl_parser_1 +" +^ +( +? +u +: += +) +( +? +u +: +[ +\ +t +- +\ +r +- +\ +u +{ +85 +} +- +\ +u +{ +85 +} +\ +u +{ +a0 +} +- +\ +u +{ +a0 +} +\ +u +{ +1680 +} +- +\ +u +{ +1680 +} +\ +u +{ +2000 +} +- +\ +u +{ +200a +} +\ +u +{ +2028 +} +- +\ +u +{ +2029 +} +\ +u +{ +202f +} +- +\ +u +{ +202f +} +\ +u +{ +205f +} +- +\ +u +{ +205f +} +\ +u +{ +3000 +} +- +\ +u +{ +3000 +} +] +) +* +( +? +u +: +. +) ++ +" +) +; +consistent +! +( +graphql_idl_parser_2 +" +^ +( +? +u +: +[ +A +- +Z_ +- +_a +- +z +] +) +( +? +u +: +[ +0 +- +9A +- +Z_ +- +_a +- +z +] +) +* +" +) +; +consistent +! +( +graphql_idl_parser_3 +" +^ +( +? +u +: +! +) +" +) +; +consistent +! +( +graphql_idl_parser_4 +" +^ +( +? +u +: +\ +\ +( +) +" +) +; +consistent +! +( +graphql_idl_parser_5 +" +^ +( +? +u +: +\ +\ +) +) +" +) +; +consistent +! +( +graphql_idl_parser_6 +" +^ +( +? +u +: +) +" +) +; +consistent +! +( +graphql_idl_parser_7 +" +^ +( +? +u +: +: +) +" +) +; +consistent +! +( +graphql_idl_parser_8 +" +^ +( +? +u +: +) +" +) +; +consistent +! +( +graphql_idl_parser_9 +" +^ +( +? +u +: +\ +\ +[ +) +" +) +; +consistent +! +( +graphql_idl_parser_10 +" +^ +( +? +u +: +\ +\ +] +) +" +) +; +consistent +! +( +graphql_idl_parser_11 +" +^ +( +? +u +: +enum +) +" +) +; +consistent +! +( +graphql_idl_parser_12 +" +^ +( +? +u +: +implements +) +" +) +; +consistent +! +( +graphql_idl_parser_13 +" +^ +( +? +u +: +input +) +" +) +; +consistent +! +( +graphql_idl_parser_14 +" +^ +( +? +u +: +interface +) +" +) +; +consistent +! +( +graphql_idl_parser_15 +" +^ +( +? +u +: +scalar +) +" +) +; +consistent +! +( +graphql_idl_parser_16 +" +^ +( +? +u +: +type +) +" +) +; +consistent +! +( +graphql_idl_parser_17 +" +^ +( +? +u +: +union +) +" +) +; +consistent +! +( +graphql_idl_parser_18 +" +^ +( +? +u +: +\ +\ +{ +) +" +) +; +consistent +! +( +graphql_idl_parser_19 +" +^ +( +? +u +: +\ +\ +} +) +" +) +; +consistent +! +( +grimoire_0 +r +" +( +? +s +) +/ +\ +* +( +? +P +< +config +> +. +* +? +) +\ +* +/ +" +) +; +consistent +! +( +phonenumber_0 +r +" +[ +\ +d +] ++ +( +? +: +[ +~ +\ +x +{ +2053 +} +\ +x +{ +223C +} +\ +x +{ +FF5E +} +] +[ +\ +d +] ++ +) +? +" +) +; +consistent +! +( +phonenumber_1 +r +" +[ +\ +[ +\ +] +] +" +) +; +consistent +! +( +phonenumber_2 +r +" +[ +\ +\ +/ +] +* +x +" +) +; +consistent +! +( +phonenumber_3 +r +" +[ +[ +\ +P +{ +N +} +& +& +\ +P +{ +L +} +] +& +& +[ +^ +# +] +] ++ +" +) +; +consistent +! +( +phonenumber_4 +r +" +( +? +: +. +* +? +[ +A +- +Za +- +z +] +) +{ +3 +} +. +* +" +) +; +consistent +! +( +phonenumber_5 +r +" +( +\ +D ++ +) +" +) +; +consistent +! +( +phonenumber_6 +r +" +( +\ +\ +d +) +" +) +; +consistent +! +( +phonenumber_7 +r +" +\ +( +? +\ +1 +\ +) +? +" +) +; +consistent +! +( +phone_number_0 +r +" +\ +D +" +) +; +consistent +! +( +phone_number_1 +r +" +^ +0 ++ +" +) +; +consistent +! +( +phone_number_2 +r +" +^ +89 +" +) +; +consistent +! +( +phone_number_3 +r +" +^ +8 ++ +" +) +; +consistent +! +( +phile_0 +r +" +^ +* +( +\ +^ +_ +* +\ +^ +) +* +" +) +; +consistent +! +( +phile_1 +r +" +^ +[ +_ +\ +p +{ +XID_Start +} +] +" +) +; +consistent +! +( +phile_2 +r +" +^ +\ +p +{ +XID_Continue +} +" +) +; +consistent +! +( +uritemplate_0 +" +% +25 +( +? +P +< +hex +> +[ +0 +- +9a +- +fA +- +F +] +[ +0 +- +9a +- +fA +- +F +] +) +" +) +; +consistent +! +( +urdf_rs_0 +" +^ +package +: +/ +/ +( +\ +\ +w ++ +) +/ +" +) +; +consistent +! +( +url_match_0 +r +" +( +? +P +< +key +> +[ +? +& +. +] +) +" +) +; +consistent +! +( +url_match_1 +r +" +: +( +? +P +< +key +> +[ +a +- +zA +- +Z0 +- +9_ +- +] ++ +) +" +) +; +consistent +! +( +tsm_sys_0 +r +" +hello +world +" +) +; +consistent +! +( +deb_version_0 +" +^ +( +? +: +( +? +: +( +? +: +\ +\ +d ++ +: +) +. ++ +) +| +( +? +: +[ +^ +: +] ++ +) +) +" +) +; +consistent +! +( +debcargo_0 +r +" +^ +( +? +i +) +( +a +| +an +| +the +) +\ +s ++ +" +) +; +consistent +! +( +debcargo_1 +r +" +^ +( +? +i +) +( +rust +\ +s ++ +) +? +( +implementation +| +library +| +tool +| +crate +) +\ +s ++ +( +of +| +to +| +for +) +\ +s ++ +" +) +; +consistent +! +( +feaders_0 +r +" +^ +. +* +\ +. +h +" +) +; +consistent +! +( +feaders_1 +r +" +^ +. +* +\ +. +c +" +) +; +consistent +! +( +feaders_2 +r +" +^ +. +* +\ +. +hpp +" +) +; +consistent +! +( +feaders_3 +r +" +^ +. +* +\ +. +cc +" +) +; +consistent +! +( +feaders_4 +r +" +^ +. +* +\ +. +cpp +" +) +; +consistent +! +( +hyperscan_0 +r +" +CPtr +\ +( +\ +w ++ +\ +) +" +) +; +consistent +! +( +hyperscan_1 +r +" +^ +Version +: +\ +s +( +\ +d +\ +. +\ +d +\ +. +\ +d +) +\ +sFeatures +: +\ +s ++ +( +\ +w ++ +) +? +\ +sMode +: +\ +s +( +\ +w ++ +) +" +) +; +consistent +! +( +hyperscan_2 +r +" +RawDatabase +< +Block +> +\ +{ +db +: +\ +w ++ +\ +} +" +) +; +consistent +! +( +hyperscan_3 +r +" +RawSerializedDatabase +\ +{ +p +: +\ +w ++ +len +: +\ +d ++ +\ +} +" +) +; +consistent +! +( +ucd_parse_0 +r +" +[ +0 +- +9A +- +F +] ++ +" +) +; +consistent +! +( +afsort_0 +r +" +. +* +" +) +; +consistent +! +( +afsort_1 +r +" +. +* +" +) +; +consistent +! +( +afsort_2 +r +" +. +* +" +) +; +consistent +! +( +afsort_3 +r +" +. +* +" +) +; +consistent +! +( +afsort_4 +r +" +. +* +" +) +; +consistent +! +( +afsort_5 +r +" +. +* +" +) +; +consistent +! +( +afsort_6 +r +" +^ +[ +a +- +z +] ++ +" +) +; +consistent +! +( +afsort_7 +r +" +^ +[ +a +- +z +] ++ +" +) +; +consistent +! +( +tin_summer_0 +r +" +( +\ +. +git +| +\ +. +pijul +| +_darcs +| +\ +. +hg +) +" +) +; +consistent +! +( +tin_drummer_0 +r +" +. +* +? +\ +. +( +a +| +la +| +lo +| +o +| +ll +| +keter +| +bc +| +dyn_o +| +d +| +rlib +| +crate +| +min +\ +. +js +| +hi +| +dyn_hi +| +S +| +jsexe +| +webapp +| +js +\ +. +externs +| +ibc +| +toc +| +aux +| +fdb_latexmk +| +fls +| +egg +- +info +| +whl +| +js_a +| +js_hi +| +jld +| +ji +| +js_o +| +so +. +* +| +dump +- +. +* +| +vmb +| +crx +| +orig +| +elmo +| +elmi +| +pyc +| +mod +| +p_hi +| +p_o +| +prof +| +tix +) +" +) +; +consistent +! +( +tin_drummer_1 +r +" +. +* +? +\ +. +( +stats +| +conf +| +h +| +out +| +cache +. +* +| +dat +| +pc +| +info +| +\ +. +js +) +" +) +; +consistent +! +( +tin_drummer_2 +r +" +. +* +? +\ +. +( +exe +| +a +| +la +| +o +| +ll +| +keter +| +bc +| +dyn_o +| +d +| +rlib +| +crate +| +min +\ +. +js +| +hi +| +dyn_hi +| +jsexe +| +webapp +| +js +\ +. +externs +| +ibc +| +toc +| +aux +| +fdb_latexmk +| +fls +| +egg +- +info +| +whl +| +js_a +| +js_hi +| +jld +| +ji +| +js_o +| +so +. +* +| +dump +- +. +* +| +vmb +| +crx +| +orig +| +elmo +| +elmi +| +pyc +| +mod +| +p_hi +| +p_o +| +prof +| +tix +) +" +) +; +consistent +! +( +tin_drummer_3 +r +" +. +* +? +\ +. +( +stats +| +conf +| +h +| +out +| +cache +. +* +| +\ +. +js +) +" +) +; +consistent +! +( +tin_drummer_4 +r +" +( +\ +. +git +| +\ +. +pijul +| +_darcs +| +\ +. +hg +) +" +) +; +consistent +! +( +tin_drummer_5 +r +" +. +* +? +\ +. +( +dyn_o +| +out +| +d +| +hi +| +dyn_hi +| +dump +- +. +* +| +p_hi +| +p_o +| +prof +| +tix +) +" +) +; +consistent +! +( +tin_drummer_6 +r +" +. +* +? +\ +. +( +ibc +) +" +) +; +consistent +! +( +tin_drummer_7 +r +" +\ +. +stack +- +work +| +dist +- +newstyle +" +) +; +consistent +! +( +timmy_0 +r +" +_NET_WM_PID +\ +( +CARDINAL +\ +) += +( +\ +d ++ +) +" +) +; +consistent +! +( +timmy_1 +r +" +today +| +yesterday +| +now +" +) +; +consistent +! +( +timmy_2 +r +" +( +? +P +< +day +> +\ +d +{ +1 +2 +} +) +/ +( +? +P +< +month +> +\ +d +{ +1 +2 +} +) +( +/ +( +? +P +< +year +> +\ +d +{ +4 +} +| +\ +d +{ +2 +} +) +) +? +" +) +; +consistent +! +( +timmy_3 +r +" +( +? +P +< +n +> +\ +d ++ +) +( +days +? +| +ds +? +) +( +? +P +< +ago +> +( +ago +) +? +) +" +) +; +consistent +! +( +timmy_4 +r +" +( +? +P +< +hr +> +\ +d +{ +2 +} +) +: +( +? +P +< +mins +> +\ +d +{ +2 +} +) +" +) +; +consistent +! +( +tinfo_0 +r +" +^ +( +\ +d ++ +) +: +\ +d ++ +windows +\ +( +. +* +\ +) +\ +[ +\ +d ++ +x +\ +d ++ +\ +] +( +\ +( +attached +\ +) +) +? +" +) +; +consistent +! +( +tinfo_1 +r +" +^ +( +\ +d ++ +) +: +( +\ +d ++ +) +: +( +. +* +) +\ +( +( +\ +d ++ +) +panes +\ +) +\ +[ +( +\ +d ++ +) +x +( +\ +d ++ +) +\ +] +" +) +; +consistent +! +( +timespan_0 +r +" +( +? +: +\ +\ +\ +{ +start +\ +\ +\ +} +| +\ +\ +\ +{ +end +\ +\ +\ +} +) +" +) +; +consistent +! +( +timespan_1 +r +" +( +. +* +) +\ +s ++ +- +\ +s ++ +( +. +* +) +" +) +; +consistent +! +( +timespan_2 +r +" +( +. +* +) +\ +s ++ +( +\ +w ++ +) +" +) +; +consistent +! +( +timespan_3 +r +" +( +. +* +) +\ +s ++ +( +\ +w ++ +) +" +) +; +consistent +! +( +timespan_4 +r +" +( +. +* +) +\ +s ++ +- +\ +s ++ +( +. +* +) +" +) +; +consistent +! +( +titlecase_0 +r +" +[ +[ +: +lower +: +] +] +" +) +; +consistent +! +( +tight_0 +r +" +^ +\ +d ++ +( +day +| +week +| +month +| +year +) +s +? +" +) +; +consistent +! +( +tight_1 +r +" +^ +\ +d ++ +( +day +| +week +| +month +| +year +) +s +? +" +) +; +consistent +! +( +yaml_0 +r +" +^ +[ +- ++ +] +? +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9_ +] +* +) +" +) +; +consistent +! +( +yaml_1 +r +" +^ +( +[ +- ++ +] +? +) +0o +? +( +[ +0 +- +7_ +] ++ +) +" +) +; +consistent +! +( +yaml_2 +r +" +^ +( +[ +- ++ +] +? +) +0x +( +[ +0 +- +9a +- +fA +- +F_ +] ++ +) +" +) +; +consistent +! +( +yaml_3 +r +" +^ +( +[ +- ++ +] +? +) +0b +( +[ +0 +- +1_ +] ++ +) +" +) +; +consistent +! +( +yaml_4 +r +" +^ +( +[ +- ++ +] +? +) +( +\ +. +[ +0 +- +9 +] ++ +| +[ +0 +- +9 +] ++ +( +\ +. +[ +0 +- +9 +] +* +) +? +( +[ +eE +] +[ +- ++ +] +? +[ +0 +- +9 +] ++ +) +? +) +" +) +; +consistent +! +( +yaml_5 +r +" +^ +[ ++ +] +? +( +\ +. +inf +| +\ +. +Inf +| +\ +. +INF +) +" +) +; +consistent +! +( +yaml_6 +r +" +^ +- +( +\ +. +inf +| +\ +. +Inf +| +\ +. +INF +) +" +) +; +consistent +! +( +yaml_7 +r +" +^ +( +\ +. +nan +| +\ +. +NaN +| +\ +. +NAN +) +" +) +; +consistent +! +( +yaml_8 +r +" +^ +( +null +| +Null +| +NULL +| +~ +) +" +) +; +consistent +! +( +yaml_9 +r +" +^ +( +true +| +True +| +TRUE +| +yes +| +Yes +| +YES +) +" +) +; +consistent +! +( +yaml_10 +r +" +^ +( +false +| +False +| +FALSE +| +no +| +No +| +NO +) +" +) +; +consistent +! +( +kefia_0 +r +" +( +? +m +) +^ +( +\ +S ++ +) +/ +( +\ +S ++ +) +( +\ +S ++ +) +( +? +: +\ +( +( +. +* +) +\ +) +) +? +" +) +; +consistent +! +( +risp_0 +" +^ +( +\ +\ +s ++ +| +; +. +* +? +( +\ +n +| +) +) ++ +" +) +; +consistent +! +( +risp_1 +" +^ +\ +" +. +* +? +\ +" +" +) +; +consistent +! +( +risp_2 +r +" +^ +[ +^ +\ +s +\ +{ +\ +} +( +) +\ +[ +\ +] +] ++ +" +) +; +consistent +! +( +risp_3 +r +" +^ +- +? +\ +d ++ +" +) +; +consistent +! +( +ripgrep_0 +" +^ +( +[ +0 +- +9 +] ++ +) +( +[ +KMG +] +) +? +" +) +; +consistent +! +( +riquid_0 +r +" +^ +\ +w ++ +" +) +; +consistent +! +( +riquid_1 +r +" +^ +\ +d ++ +" +) +; +consistent +! +( +recursive_disassembler_0 +r +" +\ +A +( +0x +) +? +( +[ +a +- +fA +- +F0 +- +9 +] ++ +) +\ +z +" +) +; +consistent +! +( +remake_0 +r +" +^ +[ +a +- +zA +- +Z_ +] +[ +a +- +zA +- +Z0 +- +9_ +] +* +" +) +; +consistent +! +( +regex_decode_0 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +\ +) +" +) +; +consistent +! +( +regex_decode_1 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +\ +) +" +) +; +consistent +! +( +regex_decode_2 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +\ +) +" +) +; +consistent +! +( +regex_decode_3 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +\ +) +" +) +; +consistent +! +( +regex_decode_4 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +\ +) +" +) +; +consistent +! +( +regex_decode_5 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +\ +) +" +) +; +consistent +! +( +regex_decode_6 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +2 +} +) +\ +) +" +) +; +consistent +! +( +regex_decode_7 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +\ +) +" +) +; +consistent +! +( +regex_decode_8 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +\ +) +" +) +; +consistent +! +( +regex_decode_9 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +? +\ +) +" +) +; +consistent +! +( +regex_decode_10 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +? +\ +) +" +) +; +consistent +! +( +regex_decode_11 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +? +\ +) +" +) +; +consistent +! +( +regex_decode_12 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +? +\ +) +" +) +; +consistent +! +( +regex_decode_13 +r +" +' +( +? +P +< +title +> +[ +^ +' +] ++ +) +' +\ +s ++ +\ +( +( +? +P +< +year +> +\ +d +{ +4 +} +) +? +\ +) +" +) +; +consistent +! +( +regex_cache_0 +" +[ +0 +- +9 +] +{ +3 +} +- +[ +0 +- +9 +] +{ +3 +} +- +[ +0 +- +9 +] +{ +4 +} +" +) +; +consistent +! +( +regex_cache_1 +r +" +^ +\ +d ++ +" +) +; +consistent +! +( +regex_cache_2 +r +" +^ +[ +a +- +z +] ++ +" +) +; +consistent +! +( +regex_cache_3 +r +" +^ +\ +d ++ +" +) +; +consistent +! +( +regex_cache_4 +r +" +^ +\ +d ++ +" +) +; +consistent +! +( +regex_dfa_0 +r +" +\ +d +{ +4 +} +- +\ +d +{ +2 +} +- +\ +d +{ +2 +} +" +) +; +consistent +! +( +reaper_0 +r +" +^ +[ +0 +- +9 +\ +p +{ +L +} +_ +\ +\ +. +] +{ +3 +16 +} +" +) +; +consistent +! +( +retdec_0 +r +" +^ +attachment +; +filename += +( +. ++ +) +" +) +; +consistent +! +( +renvsubst_0 +r +" +( +\ +\ +) +( +? +P +< +head +> +\ +[ +0 +- +9A +- +Za +- +z_ +{ +] +) +" +) +; +consistent +! +( +renvsubst_1 +r +" +\ +( +[ +[ +: +word +: +] +] ++ +) +" +) +; +consistent +! +( +renvsubst_2 +r +" +\ +\ +{ +( +[ +[ +: +word +: +] +] ++ +) +\ +} +" +) +; +consistent +! +( +rexpect_0 +r +" +' +[ +a +- +z +] ++ +' +" +) +; +consistent +! +( +rexpect_1 +r +" +^ +\ +d +{ +4 +} +- +\ +d +{ +2 +} +- +\ +d +{ +2 +} +" +) +; +consistent +! +( +rexpect_2 +r +" +- +\ +d +{ +2 +} +- +" +) +; +consistent +! +( +luther_0 +" +^ +a +( +b +| +c +) +c +* +" +) +; +consistent +! +( +little_boxes_0 +r +" +( +\ +x9B +| +\ +x1B +\ +[ +) +[ +0 +- +? +] +* +[ +- +/ +] +* +[ +- +~ +] +" +) +; +consistent +! +( +libimagentrytag_0 +" +^ +[ +a +- +zA +- +Z +] +( +[ +a +- +zA +- +Z0 +- +9_ +- +] +* +) +" +) +; +consistent +! +( +libimaginteraction_0 +r +" +^ +[ +Yy +] +( +\ +n +? +) +" +) +; +consistent +! +( +libimaginteraction_1 +r +" +^ +[ +Nn +] +( +\ +n +? +) +" +) +; +consistent +! +( +libimagutil_0 +" +^ +( +? +P +< +KEY +> +( +[ +^ += +] +* +) +) += +( +. +* +) +" +) +; +consistent +! +( +libimagutil_1 +" +( +. +* +) += +( +\ +" +( +? +P +< +QVALUE +> +( +[ +^ +\ +" +] +* +) +) +\ +" +| +( +? +P +< +VALUE +> +( +. +* +) +) +) +" +) +; +consistent +! +( +linux_ip_0 +r +" +\ +s ++ +" +) +; +consistent +! +( +linux_ip_1 +r +" +\ +s +* +[ +\ +n +\ +r +] ++ +\ +s +* +" +) +; +consistent +! +( +linux_ip_2 +r +" +^ +( +[ +0 +- +9a +- +fA +- +F +\ +. +: +/ +] ++ +) +\ +s ++ +dev +\ +s ++ +( +[ +a +- +z0 +- +9 +\ +. +] ++ +) +\ +s +* +( +. +* +) +" +) +; +consistent +! +( +linux_ip_3 +r +" +^ +( +[ +0 +- +9a +- +fA +- +F +\ +. +: +/ +] ++ +| +default +) +\ +s ++ +via +\ +s ++ +( +[ +a +- +z0 +- +9 +\ +. +: +] ++ +) +\ +s ++ +dev +\ +s ++ +( +[ +a +- +z0 +- +9 +\ +. +] ++ +) +\ +s +* +( +. +* +) +" +) +; +consistent +! +( +linux_ip_4 +r +" +^ +( +blackhole +) +\ +s ++ +( +[ +0 +- +9a +- +fA +- +F +\ +. +: +/ +] ++ +) +" +) +; +consistent +! +( +linux_ip_5 +r +" +^ +( +unreachable +) +\ +s ++ +( +[ +0 +- +9a +- +fA +- +F +\ +. +: +/ +] ++ +) +\ +s ++ +dev +\ +s ++ +( +[ +a +- +z0 +- +9 +\ +. +] ++ +) +\ +s ++ +( +. +* +) +" +) +; +consistent +! +( +linux_ip_6 +r +" +\ +s +* +[ +\ +n +\ +r +] ++ +\ +s +* +" +) +; +consistent +! +( +linux_ip_7 +r +" +^ +\ +d ++ +: +\ +s ++ +( +[ +a +- +zA +- +Z0 +- +9 +\ +. +- +] ++ +) +( +\ +S ++ +) +* +: +\ +s ++ +( +. +* +) +" +) +; +consistent +! +( +linux_ip_8 +r +" +\ +s +* +link +/ +ether +\ +s ++ +( +[ +a +- +f0 +- +9 +: +] ++ +) +\ +s ++ +. +* +" +) +; +consistent +! +( +linux_ip_9 +r +" +\ +s +* +inet +[ +6 +] +* +\ +s ++ +( +[ +0 +- +9a +- +f +: +\ +. +/ +] ++ +) +\ +s ++ +. +* +" +) +; +consistent +! +( +linky_0 +r +" +[ +^ +\ +w +- +] +" +) +; +consistent +! +( +linky_1 +r +" +^ +( +. +* +) +: +( +\ +d ++ +) +: +[ +^ +] +* +( +[ +^ +] +* +) +" +) +; +consistent +! +( +limonite_0 +r +" +^ +( +\ +d +{ +4 +} +- +\ +d +{ +2 +} +- +\ +d +{ +2 +} +) +- +( +\ +d +{ +3 +} +) +- +( +. ++ +) +" +) +; +consistent +! +( +process_queue_0 +r +" +^ +[ +a +- +zA +- +Z +] ++ +" +) +; +consistent +! +( +pronghorn_0 +r +" +^ +\ +{ +( +[ +a +- +zA +- +Z_ +] ++ +) +\ +} +" +) +; +consistent +! +( +protocol_ftp_client_0 +" +( +? +m +: +^ +( +\ +\ +d +{ +3 +} +) +( +. ++ +) +\ +r +) +" +) +; +consistent +! +( +protocol_ftp_client_1 +" +\ +" +( +. ++ +) +\ +" +" +) +; +consistent +! +( +protocol_ftp_client_2 +" +( +\ +\ +w ++ +) +[ +Tt +] +ype +: +( +\ +\ +w ++ +) +" +) +; +consistent +! +( +protocol_ftp_client_3 +" +( +? +m +: +^ +( +\ +\ +d +{ +3 +} +) +- +. ++ +\ +r +) +" +) +; +consistent +! +( +protocol_ftp_client_4 +" +Entering +Passive +Mode +\ +\ +( +( +\ +\ +d ++ +) +( +\ +\ +d ++ +) +( +\ +\ +d ++ +) +( +\ +\ +d ++ +) +( +\ +\ +d ++ +) +( +\ +\ +d ++ +) +\ +\ +) +" +) +; +consistent +! +( +protocol_ftp_client_5 +" +( +? +m +: +^ +( +. ++ +) +\ +r +) +" +) +; +consistent +! +( +protocol_ftp_client_6 +" +^ +( +[ +d +- +] +) +( +? +: +[ +rwx +- +] +{ +3 +} +) +{ +3 +} ++ +\ +\ +d ++ ++ +\ +\ +w ++ ++ +\ +\ +w ++ ++ +( +\ +\ +d ++ +) ++ +( +. ++ +) ++ +( +. ++ +) +" +) +; +consistent +! +( +article_date_extractor_0 +r +" +( +[ +\ +. +/ +\ +- +_ +] +{ +0 +1 +} +( +19 +| +20 +) +\ +d +{ +2 +} +) +[ +\ +. +/ +\ +- +_ +] +{ +0 +1 +} +( +( +[ +0 +- +3 +] +{ +0 +1 +} +[ +0 +- +9 +] +[ +\ +. +/ +\ +- +_ +] +) +| +( +\ +w +{ +3 +5 +} +[ +\ +. +/ +\ +- +_ +] +) +) +( +[ +0 +- +3 +] +{ +0 +1 +} +[ +0 +- +9 +] +[ +\ +. +/ +\ +- +] +{ +0 +1 +} +) +" +) +; +consistent +! +( +article_date_extractor_1 +r +" +( +? +i +) +publishdate +| +pubdate +| +timestamp +| +article_date +| +articledate +| +date +" +) +; +consistent +! +( +arthas_plugin_0 +r +" +type +\ +( +( +. +* +) +\ +) +" +) +; +consistent +! +( +arthas_plugin_1 +r +" +Vec +< +( +. +* +) +> +" +) +; +consistent +! +( +arthas_plugin_2 +r +" +Option +< +( +. +* +) +> +" +) +; +consistent +! +( +arthas_plugin_3 +r +" +HashMap +< +[ +a +- +z0 +- +9A +- +Z +] ++ +* +( +. +* +) +> +" +) +; +consistent +! +( +arthas_derive_0 +" +Vec +* +< +* +( +. +* +) +* +> +" +) +; +consistent +! +( +arthas_derive_1 +r +" +Option +* +< +* +( +. +* +) +* +> +" +) +; +consistent +! +( +arthas_derive_2 +r +" +HashMap +* +< +* +[ +a +- +z0 +- +9A +- +Z +] ++ +* +* +( +. +* +) +* +> +" +) +; +consistent +! +( +arpabet_0 +r +" +^ +( +[ +\ +w +\ +- +\ +( +\ +) +\ +. +' +] ++ +) +\ +s ++ +( +[ +^ +\ +s +] +. +* +) +\ +s +* +" +) +; +consistent +! +( +arpabet_1 +r +" +^ +; +; +; +\ +s ++ +" +) +; +consistent +! +( +glossy_codegen_0 +r +" +/ +\ +* +. +* +? +\ +* +/ +| +/ +/ +. +* +" +) +; +consistent +! +( +glossy_codegen_1 +" +^ +\ +\ +s +* +# +\ +\ +s +* +include +\ +\ +s ++ +< +( +[ +: +print +: +] ++ +) +> +\ +\ +s +* +" +) +; +consistent +! +( +glossy_codegen_2 +" +^ +\ +\ +s +* +# +\ +\ +s +* +include +\ +\ +s ++ +\ +" +( +[ +: +print +: +] ++ +) +\ +" +\ +\ +s +* +" +) +; +consistent +! +( +glossy_codegen_3 +r +" +^ +\ +s +* +# +\ +s +* +version +\ +s ++ +( +\ +d ++ +) +" +) +; +consistent +! +( +glossy_codegen_4 +r +" +^ +\ +s +* +" +) +; +consistent +! +( +gluster_0 +r +" +( +? +P +< +addr +> +via +\ +S ++ +) +" +) +; +consistent +! +( +gluster_1 +r +" +( +? +P +< +src +> +src +\ +S ++ +) +" +) +; +consistent +! +( +gl_helpers_0 +r +" +( +. +* +) +\ +[ +\ +d ++ +\ +] +" +) +; +consistent +! +( +gl_helpers_1 +r +" +( +\ +d ++ +) +. +( +\ +d ++ +) +" +) +; +consistent +! +( +glr_parser_0 +r +" +( +? +P +< +c +> +[ +\ +\ +\ +. +\ ++ +\ +* +\ +? +\ +( +\ +) +\ +| +\ +[ +\ +] +\ +{ +\ +} +\ +^ +\ +] +) +" +) +; +consistent +! +( +glr_parser_1 +r +" +^ +\ +w ++ +" +) +; +consistent +! +( +glr_parser_2 +" +' +[ +^ +' +] ++ +' +" +) +; +consistent +! +( +hoodlum_0 +r +" +( +? +m +) +/ +/ +. +* +" +) +; +consistent +! +( +form_checker_0 +r +" +^ +1 +\ +d +{ +10 +} +" +) +; +consistent +! +( +form_checker_1 +r +" +( +? +i +) +^ +[ +\ +w +. +% ++ +- +] ++ +( +? +: +[ +A +- +Z0 +- +9 +- +] ++ +\ +. +) ++ +[ +A +- +Z +] +{ +2 +4 +} +" +) +; +consistent +! +( +wikibase_0 +r +" +( +? +P +< +user_agent +> +[ +a +- +zA +- +Z0 +- +9 +- +_ +] ++ +/ +[ +0 +- +9 +\ +. +] ++ +) +" +) +; +consistent +! +( +wifiscanner_0 +r +" +Cell +[ +0 +- +9 +] +{ +2 +} +- +Address +: +" +) +; +consistent +! +( +wifiscanner_1 +r +" +( +[ +0 +- +9a +- +zA +- +Z +] +{ +1 +} +[ +0 +- +9a +- +zA +- +Z +] +{ +1 +} +[ +: +] +{ +1 +} +) +{ +5 +} +[ +0 +- +9a +- +zA +- +Z +] +{ +1 +} +[ +0 +- +9a +- +zA +- +Z +] +{ +1 +} +" +) +; +consistent +! +( +wifiscanner_2 +r +" +Signal +level += +( +\ +d ++ +) +/ +100 +" +) +; +consistent +! +( +bbcode_0 +r +" +( +? +s +) +\ +[ +b +\ +] +( +. +* +? +) +\ +[ +/ +b +\ +] +" +) +; +consistent +! +( +bbcode_1 +r +" +( +? +s +) +\ +[ +i +\ +] +( +. +* +? +) +\ +[ +/ +i +\ +] +" +) +; +consistent +! +( +bbcode_2 +r +" +( +? +s +) +\ +[ +u +\ +] +( +. +* +? +) +\ +[ +/ +u +\ +] +" +) +; +consistent +! +( +bbcode_3 +r +" +( +? +s +) +\ +[ +s +\ +] +( +. +* +? +) +\ +[ +/ +s +\ +] +" +) +; +consistent +! +( +bbcode_4 +r +" +( +? +s +) +\ +[ +size += +( +\ +d ++ +) +] +( +. +* +? +) +\ +[ +/ +size +\ +] +" +) +; +consistent +! +( +bbcode_5 +r +" +( +? +s +) +\ +[ +color += +( +. ++ +) +] +( +. +* +? +) +\ +[ +/ +color +\ +] +" +) +; +consistent +! +( +bbcode_6 +r +" +( +? +s +) +\ +[ +center +\ +] +( +. +* +? +) +\ +[ +/ +center +\ +] +" +) +; +consistent +! +( +bbcode_7 +r +" +( +? +s +) +\ +[ +left +\ +] +( +. +* +? +) +\ +[ +/ +left +\ +] +" +) +; +consistent +! +( +bbcode_8 +r +" +( +? +s +) +\ +[ +right +\ +] +( +. +* +? +) +\ +[ +/ +right +\ +] +" +) +; +consistent +! +( +bbcode_9 +r +" +( +? +s +) +\ +[ +table +\ +] +( +. +* +? +) +\ +[ +/ +table +\ +] +" +) +; +consistent +! +( +bbcode_10 +r +" +( +? +s +) +\ +[ +td +\ +] +( +. +* +? +) +\ +[ +/ +td +\ +] +" +) +; +consistent +! +( +bbcode_11 +r +" +( +? +s +) +\ +[ +tr +\ +] +( +. +* +? +) +\ +[ +/ +tr +\ +] +" +) +; +consistent +! +( +bbcode_12 +r +" +( +? +s +) +\ +[ +th +\ +] +( +. +* +? +) +\ +[ +/ +th +\ +] +" +) +; +consistent +! +( +bbcode_13 +r +" +( +? +s +) +\ +[ +url +\ +] +( +. +* +? +) +\ +[ +/ +url +\ +] +" +) +; +consistent +! +( +bbcode_14 +r +" +( +? +s +) +\ +[ +url += +( +. ++ +) +\ +] +( +. +* +? +) +\ +[ +/ +url +\ +] +" +) +; +consistent +! +( +bbcode_15 +r +" +( +? +s +) +\ +[ +quote +\ +] +( +. +* +? +) +\ +[ +/ +quote +\ +] +" +) +; +consistent +! +( +bbcode_16 +r +" +( +? +s +) +\ +[ +quote += +( +. ++ +) +\ +] +( +. +* +? +) +\ +[ +/ +quote +\ +] +" +) +; +consistent +! +( +bbcode_17 +r +" +( +? +s +) +\ +[ +img += +( +\ +d ++ +) +x +( +\ +d ++ +) +( +\ +b +. +* +) +? +\ +] +( +. +* +? +) +\ +[ +/ +img +\ +] +" +) +; +consistent +! +( +bbcode_18 +r +" +( +? +s +) +\ +[ +img += +( +. ++ +) +( +\ +b +. +* +) +? +\ +] +( +. +* +? +) +\ +[ +/ +img +\ +] +" +) +; +consistent +! +( +bbcode_19 +r +" +( +? +s +) +\ +[ +img +( +\ +b +. +* +) +? +\ +] +( +. +* +? +) +\ +[ +/ +img +\ +] +" +) +; +consistent +! +( +bbcode_20 +r +" +( +? +s +) +\ +[ +ol +\ +] +( +. +* +? +) +\ +[ +/ +ol +\ +] +" +) +; +consistent +! +( +bbcode_21 +r +" +( +? +s +) +\ +[ +ul +\ +] +( +. +* +? +) +\ +[ +/ +ul +\ +] +" +) +; +consistent +! +( +bbcode_22 +r +" +( +? +s +) +\ +[ +list +\ +] +( +. +* +? +) +\ +[ +/ +list +\ +] +" +) +; +consistent +! +( +bbcode_23 +r +" +( +? +s +) +\ +[ +youtube +\ +] +( +. +* +? +) +\ +[ +/ +youtube +\ +] +" +) +; +consistent +! +( +bbcode_24 +r +" +( +? +s +) +\ +[ +youtube += +( +\ +d ++ +) +x +( +\ +d ++ +) +\ +] +( +. +* +? +) +\ +[ +/ +youtube +\ +] +" +) +; +consistent +! +( +bbcode_25 +r +" +( +? +s +) +\ +[ +li +\ +] +( +. +* +? +) +\ +[ +/ +li +\ +] +" +) +; +consistent +! +( +block_utils_0 +r +" +loop +\ +d ++ +" +) +; +consistent +! +( +block_utils_1 +r +" +ram +\ +d ++ +" +) +; +consistent +! +( +block_utils_2 +r +" +md +\ +d ++ +" +) +; +consistent +! +( +kvvliveapi_0 +r +" +^ +( +[ +1 +- +9 +] +) +min +" +) +; +consistent +! +( +rfc822_sanitizer_0 +r +" +( +\ +d +{ +2 +} +) +: +( +\ +d +{ +2 +} +) +: +( +\ +d +{ +2 +} +) +" +) +; +consistent +! +( +rfc822_sanitizer_1 +r +" +( +\ +d +{ +1 +2 +} +) +: +( +\ +d +{ +1 +2 +} +) +: +( +\ +d +{ +1 +2 +} +) +" +) +; +consistent +! +( +faker_0 +r +" +[ +2 +- +9 +] +" +) +; +consistent +! +( +faker_1 +r +" +[ +1 +- +9 +] +" +) +; +consistent +! +( +faker_2 +r +" +[ +0 +- +9 +] +" +) +; +consistent +! +( +faker_3 +r +" +\ +d +{ +10 +} +" +) +; +consistent +! +( +faker_4 +r +" +\ +d +{ +1 +} +" +) +; +consistent +! +( +faker_5 +r +" +^ +\ +w ++ +" +) +; +consistent +! +( +faker_6 +r +" +^ +\ +w ++ +" +) +; +consistent +! +( +faker_7 +r +" +^ +( +\ +w ++ +\ +. +? +? +) +{ +2 +3 +} +" +) +; +consistent +! +( +faker_8 +r +" +^ +[ +A +- +Z +] +[ +a +- +z +] ++ +\ +. +? +" +) +; +consistent +! +( +faker_9 +r +" +^ +[ +A +- +Z +] +[ +A +- +Za +- +z +] +* +\ +. +? +" +) +; +consistent +! +( +faker_10 +r +" +http +: +/ +/ +lorempixel +. +com +/ +100 +/ +100 +/ +\ +w ++ +" +) +; +consistent +! +( +faker_11 +r +" +http +: +/ +/ +lorempixel +. +com +/ +100 +/ +100 +/ +cats +" +) +; +consistent +! +( +fancy_regex_0 +" +( +? +i +: +) +" +) +; +consistent +! +( +fancy_regex_1 +" +( +? +i +: +\ +\ +x +{ +0587 +} +) +" +) +; +consistent +! +( +fancy_regex_2 +" +^ +\ +\ +\ +\ +( +[ +! +- +/ +: +- +\ +\ +[ +- +\ +\ +{ +- +~ +aftnrv +] +| +[ +0 +- +7 +] +{ +1 +3 +} +| +x +[ +0 +- +9a +- +fA +- +F +] +{ +2 +} +| +x +\ +\ +{ +[ +0 +- +9a +- +fA +- +F +] +{ +1 +6 +} +\ +\ +} +) +" +) +; +consistent +! +( +fancy_prompt_0 +r +" +/ +( +[ +^ +/ +] +) +[ +^ +/ +] ++ +/ +" +) +; +consistent +! +( +fancy_prompt_1 +r +" +^ +( +[ +^ +: +] ++ +) +: +. +* +? +( +? +: +: +( +[ +^ +: +] ++ +) +) +? +" +) +; +consistent +! +( +fanta_0 +r +" +^ +( +/ +? +__ +\ +w ++ +__ +) +/ +( +. +* +) +" +) +; +consistent +! +( +fanta_cli_0 +r +" +( +. +) +( +[ +A +- +Z +] +) +" +) +; +consistent +! +( +fanta_cli_1 +" +\ +\ +{ +: +[ +^ +\ +\ +s +] ++ +\ +\ +} +" +) +; +consistent +! +( +amethyst_tools_0 +" +( +? +P +< +last +> +[ +^ +\ +r +] +) +\ +n +" +) +; +consistent +! +( +amigo_0 +r +" +^ +- +? +\ +d ++ +( +\ +. +\ +d +) +? +" +) +; +consistent +! +( +amigo_1 +r +" +^ +[ +a +- +zA +- +Z_ +] ++ +[ +\ +w +- +] +* +[ +! +? +_ +] +? +" +) +; +consistent +! +( +amigo_2 +r +" +^ +\ +( +" +) +; +consistent +! +( +amigo_3 +r +" +^ +\ +) +" +) +; +consistent +! +( +amigo_4 +r +" +^ +\ +s ++ +" +) +; +consistent +! +( +ethcore_logger_0 +" +\ +x1b +\ +\ +[ +[ +^ +m +] ++ +m +" +) +; +consistent +! +( +dash2html_0 +r +" +__ +. +* +? +__ +" +) +; +consistent +! +( +dash2html_1 +r +" +( +? +i +) +( +? +: +time +| +clipboard +| +cursor +| +date +) +" +) +; +consistent +! +( +os_type_0 +r +" +^ +Microsoft +Windows +\ +[ +Version +\ +s +( +\ +d ++ +\ +. +\ +d ++ +\ +. +\ +d ++ +) +\ +] +" +) +; +consistent +! +( +os_type_1 +r +" +ProductName +: +\ +s +( +[ +\ +w +\ +s +] ++ +) +\ +n +" +) +; +consistent +! +( +os_type_2 +r +" +ProductVersion +: +\ +s +( +\ +w ++ +\ +. +\ +w ++ +\ +. +\ +w ++ +) +" +) +; +consistent +! +( +os_type_3 +r +" +BuildVersion +: +\ +s +( +\ +w ++ +) +" +) +; +consistent +! +( +os_type_4 +r +" +( +\ +w ++ +) +Linux +release +" +) +; +consistent +! +( +os_type_5 +r +" +release +\ +s +( +[ +\ +w +\ +. +] ++ +) +" +) +; +consistent +! +( +os_type_6 +r +" +Distributor +ID +: +\ +s +( +\ +w ++ +) +" +) +; +consistent +! +( +os_type_7 +r +" +Release +: +\ +s +( +[ +\ +w +\ +. +] ++ +) +" +) +; +consistent +! +( +bindgen_0 +r +" +typename +type +\ +- +parameter +\ +- +\ +d ++ +\ +- +\ +d ++ +: +: +. ++ +" +) +; +consistent +! +( +imap_0 +" +^ ++ +( +. +* +) +\ +r +\ +n +" +) +; +consistent +! +( +image_base64_0 +r +" +^ +ffd8ffe0 +" +) +; +consistent +! +( +image_base64_1 +r +" +^ +89504e47 +" +) +; +consistent +! +( +image_base64_2 +r +" +^ +47494638 +" +) +; +consistent +! +( +json_pointer_0 +" +^ +( +/ +( +[ +^ +/ +~ +] +| +~ +[ +01 +] +) +* +) +* +" +) +; +consistent +! +( +json_pointer_1 +" +^ +# +( +/ +( +[ +^ +/ +~ +% +] +| +~ +[ +01 +] +| +% +[ +0 +- +9a +- +fA +- +F +] +{ +2 +} +) +* +) +* +" +) +; +consistent +! +( +mysql_common_0 +r +" +^ +5 +. +5 +. +5 +- +( +\ +d +{ +1 +2 +} +) +\ +. +( +\ +d +{ +1 +2 +} +) +\ +. +( +\ +d +{ +1 +3 +} +) +- +MariaDB +" +) +; +consistent +! +( +mysql_common_1 +r +" +^ +( +\ +d +{ +1 +2 +} +) +\ +. +( +\ +d +{ +1 +2 +} +) +\ +. +( +\ +d +{ +1 +3 +} +) +( +. +* +) +" +) +; +consistent +! +( +government_id_0 +r +" +^ +[ +0 +- +9 +] +{ +4 +} +[ +0 +- +9A +- +Z +] +{ +2 +} +[ +0 +- +9 +] +{ +3 +} +" +) +; +consistent +! +( +ohmers_0 +r +" +UniqueIndexViolation +: +( +\ +w ++ +) +" +) +; +consistent +! +( +eliza_0 +r +" +( +. +* +) +you +are +( +. +* +) +" +) +; +consistent +! +( +eliza_1 +r +" +( +. +* +) +you +are +( +. +* +) +" +) +; +consistent +! +( +eliza_2 +r +" +( +. +* +) +you +are +( +. +* +) +" +) +; +consistent +! +( +chema_0 +" +^ +\ +\ +s +* +\ +\ +* +" +) +; +consistent +! +( +chema_1 +" +^ +\ +\ +s +* +( +\ +\ +w ++ +) +\ +\ +s ++ +( +. +* +) +" +) +; +consistent +! +( +chord3_0 +r +" +^ +\ +s +* +# +" +) +; +consistent +! +( +chord3_1 +r +" +\ +{ +( +? +P +< +cmd +> +\ +w ++ +) +( +? +: +: +? +\ +s +* +( +? +P +< +arg +> +. +* +) +) +? +\ +} +" +) +; +consistent +! +( +chord3_2 +r +" +\ +{ +( +eot +| +end_of_tab +) +: +? +\ +s +* +" +) +; +consistent +! +( +chord3_3 +r +" +( +[ +^ +\ +[ +] +* +) +( +? +: +\ +[ +( +[ +^ +\ +] +] +* +) +\ +] +) +? +" +) +; +consistent +! +( +checkmail_0 +" +^ +[ +a +- +zA +- +Z0 +- +9 +. +! +# +% +& +' +* ++ +/ += +? +^ +_ +{ +| +} +~ +- +] ++ +[ +a +- +zA +- +Z0 +- +9 +] +( +? +: +[ +a +- +zA +- +Z0 +- +9 +- +] +{ +0 +61 +} +[ +a +- +zA +- +Z0 +- +9 +] +) +? +( +? +: +\ +\ +. +[ +a +- +zA +- +Z0 +- +9 +] +( +? +: +[ +a +- +zA +- +Z0 +- +9 +- +] +{ +0 +61 +} +[ +a +- +zA +- +Z0 +- +9 +] +) +? +) +* +" +) +; +consistent +! +( +cntk_0 +r +" +\ +b +\ +w +\ +w ++ +\ +b +" +) +; +consistent +! +( +cntk_1 +r +" +\ +b +\ +w +\ +w ++ +\ +b +" +) +; +consistent +! +( +cniguru_0 +r +" +\ +( +id +: +( +\ +d ++ +) +\ +) +" +) +; +consistent +! +( +upm_lib_0 +r +" +^ +( +\ +d ++ +) +\ +. +( +\ +d ++ +) +\ +. +( +\ +d ++ +) +( +? +: +- +( +[ +\ +dA +- +Za +- +z +- +] ++ +( +? +: +\ +. +[ +\ +dA +- +Za +- +z +- +] ++ +) +* +) +) +? +( +? +: +\ ++ +( +[ +\ +dA +- +Za +- +z +- +] ++ +( +? +: +\ +. +[ +\ +dA +- +Za +- +z +- +] ++ +) +* +) +) +? +" +) +; +consistent +! +( +avro_0 +r +" +^ +\ +s +* +( +\ +* ++ +( +\ +s ++ +) +) +? +" +) +; +consistent +! +( +avro_1 +r +" +^ +\ +s +* +( +\ +* ++ +) +? +" +) +; +consistent +! +( +nomi_0 +" +[ +0 +- +9 +] ++ +" +) +; +consistent +! +( +nodes_0 +" +( +[ +0 +- +9 +] ++ +) +( +? +: +nodes +| +n +) +? +: +( +[ +^ +] ++ +) +? +" +) +; +consistent +! +( +not_stakkr_0 +r +" +( +? +i +) +in +( +\ +d ++ +) +( +second +| +minute +| +hour +| +day +| +week +) +s +? +" +) +; +consistent +! +( +notetxt_0 +" +^ +( +[ +A +- +Za +- +z0 +- +9 +- +_ +: +] ++ +) +\ +n +- ++ +\ +n +" +) +; +consistent +! +( +nail_0 +r +" +^ +- +? +[ +0 +- +9 +] ++ +( +\ +. +[ +0 +- +9 +] ++ +) +? +( +[ +eE +] +- +? +[ +0 +- +9 +] ++ +) +? +" +) +; +consistent +! +( +nail_1 +r +" +^ +- +? +[ +0 +- +9 +] ++ +" +) +; +consistent +! +( +askalono_0 +r +" +[ +^ +\ +w +\ +s +\ +pP +] ++ +" +) +; +consistent +! +( +askalono_1 +r +" +( +? +x +) +[ +\ +t +\ +p +{ +Zs +} +\ +\ +/ +\ +| +\ +x2044 +] ++ +" +) +; +consistent +! +( +askalono_2 +r +" +\ +p +{ +Pd +} ++ +" +) +; +consistent +! +( +askalono_3 +r +" +\ +p +{ +Ps +} ++ +" +) +; +consistent +! +( +askalono_4 +r +" +\ +p +{ +Pe +} ++ +" +) +; +consistent +! +( +askalono_5 +r +" +\ +p +{ +Pc +} ++ +" +) +; +consistent +! +( +askalono_6 +r +" +[ +] +" +) +; +consistent +! +( +askalono_7 +r +" +[ +\ +r +\ +n +\ +v +\ +f +] +" +) +; +consistent +! +( +askalono_8 +r +" +\ +n +{ +3 +} +" +) +; +consistent +! +( +askalono_9 +r +" +[ +^ +\ +w +\ +s +] ++ +" +) +; +consistent +! +( +askalono_10 +r +" +\ +s ++ +" +) +; +consistent +! +( +assembunny_plus_0 +r +" +[ +^ +0 +- +9a +- +zA +- +Z_ +] +" +) +; +consistent +! +( +assembunny_plus_1 +r +" +[ +0 +- +9 +] +" +) +; +consistent +! +( +salt_compressor_0 +r +" +( +? +m +) +^ +Minion +( +\ +S +* +) +did +not +respond +\ +. +No +job +will +be +sent +\ +. +" +) +; +consistent +! +( +sabisabi_0 +r +" +< +/ +? +[ +^ +> +] ++ +? +> +" +) +; +consistent +! +( +sabisabi_1 +r +" +\ +( +[ +^ +) +] +* +\ +) +" +) +; +consistent +! +( +sassers_0 +" +import +\ +" +( +[ +^ +\ +" +] +* +) +\ +" +; +" +) +; +consistent +! +( +shadowsocks_0 +r +" +[ +A +- +Za +- +z +\ +d +- +] +{ +1 +63 +} +" +) +; +consistent +! +( +shkeleton_0 +" +[ +abc +] ++ +" +) +; +consistent +! +( +shellwords_0 +r +" +( +[ +^ +A +- +Za +- +z0 +- +9_ +\ +- +. +: +/ +\ +n +] +) +" +) +; +consistent +! +( +shellwords_1 +r +" +\ +n +" +) +; +consistent +! +( +shush_0 +" +( +? +P +< +num +> +[ +0 +- +9 +] ++ +) +( +? +P +< +units +> +[ +dhms +] +) +" +) +; +consistent +! +( +woothee_0 +r +" +( +? +: +Chrome +| +CrMo +| +CriOS +) +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_1 +r +" +Vivaldi +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_2 +r +" +Firefox +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_3 +r +" +^ +Mozilla +/ +[ +. +0 +- +9 +] ++ +\ +( +( +? +: +Mobile +| +Tablet +) +; +( +? +: +. +* +; +) +? +rv +: +( +[ +. +0 +- +9 +] ++ +) +\ +) +Gecko +/ +[ +. +0 +- +9 +] ++ +Firefox +/ +[ +. +0 +- +9 +] ++ +" +) +; +consistent +! +( +woothee_4 +r +" +FxiOS +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_5 +r +" +\ +( +( +[ +^ +; +) +] ++ +) +; +FOMA +; +" +) +; +consistent +! +( +woothee_6 +r +" +jig +browser +[ +^ +; +] ++ +; +( +[ +^ +) +; +] ++ +) +" +) +; +consistent +! +( +woothee_7 +r +" +( +? +i +) +rss +( +? +: +reader +| +bar +| +[ +- +_ +/ +; +( +) +] +| +[ ++ +] +* +/ +) +" +) +; +consistent +! +( +woothee_8 +r +" +( +? +i +) +( +? +: +bot +| +crawler +| +spider +) +( +? +: +[ +- +_ +. +/ +; +( +) +] +| +) +" +) +; +consistent +! +( +woothee_9 +r +" +( +? +i +) +( +? +: +feed +| +web +) +? +parser +" +) +; +consistent +! +( +woothee_10 +r +" +( +? +i +) +watch +? +dog +" +) +; +consistent +! +( +woothee_11 +r +" +Edge +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_12 +r +" +MSIE +( +[ +. +0 +- +9 +] ++ +) +; +" +) +; +consistent +! +( +woothee_13 +r +" +Version +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_14 +r +" +Opera +[ +/ +] +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_15 +r +" +OPR +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_16 +r +" +Version +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_17 +r +" +( +? +: +SoftBank +| +Vodafone +| +J +- +PHONE +) +/ +[ +. +0 +- +9 +] ++ +/ +( +[ +^ +/ +; +( +) +] ++ +) +" +) +; +consistent +! +( +woothee_18 +r +" +Trident +/ +( +[ +. +0 +- +9 +] ++ +) +; +" +) +; +consistent +! +( +woothee_19 +r +" +rv +: +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_20 +r +" +IEMobile +/ +( +[ +. +0 +- +9 +] ++ +) +; +" +) +; +consistent +! +( +woothee_21 +r +" +( +? +: +WILLCOM +| +DDIPOCKET +) +; +[ +^ +/ +] ++ +/ +( +[ +^ +/ +; +( +) +] ++ +) +" +) +; +consistent +! +( +woothee_22 +r +" +Windows +( +[ +. +a +- +zA +- +Z0 +- +9 +] ++ +) +[ +; +\ +\ +) +] +" +) +; +consistent +! +( +woothee_23 +r +" +^ +Phone +( +? +: +OS +) +? +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_24 +r +" +iP +( +hone +; +| +ad +; +| +od +) +. +* +like +Mac +OS +X +" +) +; +consistent +! +( +woothee_25 +r +" +Version +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_26 +r +" +rv +: +( +\ +d ++ +\ +. +\ +d ++ +\ +. +\ +d ++ +) +" +) +; +consistent +! +( +woothee_27 +r +" +FreeBSD +( +[ +^ +; +\ +) +] ++ +) +; +" +) +; +consistent +! +( +woothee_28 +r +" +CrOS +( +[ +^ +\ +) +] ++ +) +\ +) +" +) +; +consistent +! +( +woothee_29 +r +" +Android +[ +- +] +( +\ +d ++ +\ +. +\ +d ++ +( +? +: +\ +. +\ +d ++ +) +? +) +" +) +; +consistent +! +( +woothee_30 +r +" +PSP +\ +( +PlayStation +Portable +\ +) +; +( +[ +. +0 +- +9 +] ++ +) +\ +) +" +) +; +consistent +! +( +woothee_31 +r +" +PLAYSTATION +3 +; +? +( +[ +. +0 +- +9 +] ++ +) +\ +) +" +) +; +consistent +! +( +woothee_32 +r +" +PlayStation +Vita +( +[ +. +0 +- +9 +] ++ +) +\ +) +" +) +; +consistent +! +( +woothee_33 +r +" +PlayStation +4 +( +[ +. +0 +- +9 +] ++ +) +\ +) +" +) +; +consistent +! +( +woothee_34 +r +" +BB10 +( +? +: +. ++ +) +Version +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_35 +r +" +BlackBerry +( +? +: +\ +d ++ +) +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +woothee_36 +r +" +; +CPU +( +? +: +iPhone +) +? +OS +( +\ +d ++ +_ +\ +d ++ +( +? +: +_ +\ +d ++ +) +? +) +like +Mac +OS +X +" +) +; +consistent +! +( +woothee_37 +r +" +Mac +OS +X +( +10 +[ +. +_ +] +\ +d ++ +( +? +: +[ +. +_ +] +\ +d ++ +) +? +) +( +? +: +\ +) +| +; +) +" +) +; +consistent +! +( +woothee_38 +r +" +^ +( +? +: +Apache +- +HttpClient +/ +| +Jakarta +Commons +- +HttpClient +/ +| +Java +/ +) +" +) +; +consistent +! +( +woothee_39 +r +" +[ +- +] +HttpClient +( +/ +| +) +" +) +; +consistent +! +( +woothee_40 +r +" +^ +( +? +: +PHP +| +WordPress +| +CakePHP +| +PukiWiki +| +PECL +: +: +HTTP +) +( +? +: +/ +| +| +) +" +) +; +consistent +! +( +woothee_41 +r +" +( +? +: +PEAR +HTTP_Request +| +HTTP_Request +) +( +? +: +class +| +2 +) +" +) +; +consistent +! +( +woothee_42 +r +" +( +? +: +Rome +Client +| +UnwindFetchor +/ +| +ia_archiver +| +Summify +| +PostRank +/ +) +" +) +; +consistent +! +( +woothee_43 +r +" +Sleipnir +/ +( +[ +. +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +word_replace_0 +r +" +[ +a +- +z +| +A +- +Z +| +\ +d +] ++ +" +) +; +consistent +! +( +wordcount_0 +r +" +\ +w ++ +" +) +; +consistent +! +( +just_0 +" +^ +( +[ +^ += +] ++ +) += +( +. +* +) +" +) +; +consistent +! +( +emote_0 +r +" +: +[ +a +- +zA +- +Z_ +] ++ +? +: +" +) +; +consistent +! +( +emojicons_0 +r +" +: +( +[ +a +- +zA +- +Z0 +- +9_ ++ +- +] ++ +) +: +" +) +; +consistent +! +( +git2_codecommit_0 +r +" +git +- +codecommit +\ +. +( +[ +a +- +z0 +- +9 +- +] ++ +) +\ +. +amazonaws +\ +. +com +" +) +; +consistent +! +( +git_workarea_0 +r +" +^ +submodule +\ +. +( +? +P +< +name +> +. +* +) +\ +. +( +? +P +< +key +> +[ +^ += +] +* +) += +( +? +P +< +value +> +. +* +) +" +) +; +consistent +! +( +git_shell_enforce_directory_0 +r +" +^ +( +? +P +< +command +> +git +- +( +? +: +receive +| +upload +) +- +pack +) +' +( +? +P +< +path +> +. ++ +) +' +" +) +; +consistent +! +( +git_journal_0 +r +" +[ +\ +n +] +: +( +. +* +? +) +: +" +) +; +consistent +! +( +git_find_0 +r +" +^ +git +( +? +P +< +host +> +[ +[ +: +alnum +: +] +\ +. +_ +- +] ++ +) +: +( +? +P +< +path +> +[ +[ +: +alnum +: +] +\ +. +_ +\ +- +/ +] ++ +) +. +git +" +) +; +consistent +! +( +gitlab_api_0 +r +" +private_token += +\ +w +{ +20 +} +" +) +; +consistent +! +( +td_client_0 +" +^ +( +http +: +/ +/ +| +https +: +/ +/ +) +" +) +; +consistent +! +( +karaconv_0 +r +" +- +- +( +? +P +< +type +> +[ +a +- +zA +- +Z +] ++ +) +- +- +( +? +P +< +contents +> +. +* +) +" +) +; +consistent +! +( +katana_0 +r +" +( +? +P +< +comp +> +et +al +\ +. +) +( +? +: +\ +. +) +" +) +; +consistent +! +( +katana_1 +r +" +\ +. +{ +3 +} +" +) +; +consistent +! +( +katana_2 +r +" +( +? +P +< +number +> +[ +0 +- +9 +] ++ +) +\ +. +( +? +P +< +decimal +> +[ +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +katana_3 +r +" +\ +s +\ +. +( +? +P +< +nums +> +[ +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +katana_4 +r +" +( +? +: +[ +A +- +Za +- +z +] +\ +. +) +{ +2 +} +" +) +; +consistent +! +( +katana_5 +r +" +( +? +P +< +init +> +[ +A +- +Z +] +) +( +? +P +< +point +> +\ +. +) +" +) +; +consistent +! +( +katana_6 +r +" +( +? +P +< +title +> +[ +A +- +Z +] +[ +a +- +z +] +{ +1 +3 +} +) +( +\ +. +) +" +) +; +consistent +! +( +katana_7 +r +" +& += += +& +( +? +P +< +p +> +[ +. +! +? +] +) +" +) +; +consistent +! +( +katana_8 +r +" +& +\ +^ +& +( +? +P +< +p +> +[ +. +! +? +] +) +" +) +; +consistent +! +( +katana_9 +r +" +& +\ +* +\ +* +& +( +? +P +< +p +> +[ +. +! +? +] +) +" +) +; +consistent +! +( +katana_10 +r +" +& += +& +( +? +P +< +p +> +[ +. +! +? +] +) +" +) +; +consistent +! +( +katana_11 +r +" +& +# +# +& +( +? +P +< +p +> +[ +. +! +? +] +) +" +) +; +consistent +! +( +katana_12 +r +" +& +\ +& +( +? +P +< +p +> +[ +. +! +? +] +) +" +) +; +consistent +! +( +kailua_syntax_0 +r +" +( +? +: +_ +| +\ +d ++ +( +? +: +/ +\ +d ++ +( +? +: +- +\ +d ++ +) +? +) +? +) +" +) +; +consistent +! +( +kailua_syntax_1 +r +" +< +( +\ +d ++ +) +> +" +) +; +consistent +! +( +ftp_0 +r +" +\ +( +( +\ +d ++ +) +( +\ +d ++ +) +( +\ +d ++ +) +( +\ +d ++ +) +( +\ +d ++ +) +( +\ +d ++ +) +\ +) +" +) +; +consistent +! +( +ftp_1 +r +" +\ +b +( +\ +d +{ +4 +} +) +( +\ +d +{ +2 +} +) +( +\ +d +{ +2 +} +) +( +\ +d +{ +2 +} +) +( +\ +d +{ +2 +} +) +( +\ +d +{ +2 +} +) +\ +b +" +) +; +consistent +! +( +ftp_2 +r +" +\ +s ++ +( +\ +d ++ +) +\ +s +* +" +) +; +consistent +! +( +vat_0 +r +" +< +countryCode +> +( +. +* +? +) +< +/ +countryCode +> +" +) +; +consistent +! +( +vat_1 +r +" +< +vatNumber +> +( +. +* +? +) +< +/ +vatNumber +> +" +) +; +consistent +! +( +vat_2 +r +" +< +name +> +( +. +* +? +) +< +/ +name +> +" +) +; +consistent +! +( +vat_3 +r +" +< +address +> +( +? +s +) +( +. +* +? +) +( +? +- +s +) +< +/ +address +> +" +) +; +consistent +! +( +vat_4 +r +" +< +valid +> +( +true +| +false +) +< +/ +valid +> +" +) +; +consistent +! +( +vat_5 +r +" +^ +ATU +\ +d +{ +8 +} +" +) +; +consistent +! +( +vat_6 +r +" +^ +BE0 +? +\ +d +{ +9 +10 +} +" +) +; +consistent +! +( +vat_7 +r +" +^ +BG +\ +d +{ +9 +10 +} +" +) +; +consistent +! +( +vat_8 +r +" +^ +HR +\ +d +{ +11 +} +" +) +; +consistent +! +( +vat_9 +r +" +^ +CY +\ +d +{ +8 +} +[ +A +- +Z +] +" +) +; +consistent +! +( +vat_10 +r +" +^ +CZ +\ +d +{ +8 +10 +} +" +) +; +consistent +! +( +vat_11 +r +" +^ +DK +\ +d +{ +8 +} +" +) +; +consistent +! +( +vat_12 +r +" +^ +EE +\ +d +{ +9 +} +" +) +; +consistent +! +( +vat_13 +r +" +^ +FI +\ +d +{ +8 +} +" +) +; +consistent +! +( +vat_14 +r +" +^ +FR +[ +A +- +HJ +- +NP +- +Z0 +- +9 +] +[ +A +- +HJ +- +NP +- +Z0 +- +9 +] +\ +d +{ +9 +} +" +) +; +consistent +! +( +vat_15 +r +" +^ +DE +\ +d +{ +9 +} +" +) +; +consistent +! +( +vat_16 +r +" +^ +EL +\ +d +{ +9 +} +" +) +; +consistent +! +( +vat_17 +r +" +^ +HU +\ +d +{ +8 +} +" +) +; +consistent +! +( +vat_18 +r +" +^ +IE +\ +d +[ +A +- +Z0 +- +9 +\ ++ +\ +* +] +\ +d +{ +5 +} +[ +A +- +Z +] +{ +1 +2 +} +" +) +; +consistent +! +( +vat_19 +r +" +^ +IT +\ +d +{ +11 +} +" +) +; +consistent +! +( +vat_20 +r +" +^ +LV +\ +d +{ +11 +} +" +) +; +consistent +! +( +vat_21 +r +" +^ +LT +( +\ +d +{ +9 +} +| +\ +d +{ +12 +} +) +" +) +; +consistent +! +( +vat_22 +r +" +^ +LU +\ +d +{ +8 +} +" +) +; +consistent +! +( +vat_23 +r +" +^ +MT +\ +d +{ +8 +} +" +) +; +consistent +! +( +vat_24 +r +" +^ +NL +\ +d +{ +9 +} +B +\ +d +{ +2 +} +" +) +; +consistent +! +( +vat_25 +r +" +^ +PL +\ +d +{ +10 +} +" +) +; +consistent +! +( +vat_26 +r +" +^ +PT +\ +d +{ +9 +} +" +) +; +consistent +! +( +vat_27 +r +" +^ +RO +\ +d +{ +2 +10 +} +" +) +; +consistent +! +( +vat_28 +r +" +^ +SK +\ +d +{ +10 +} +" +) +; +consistent +! +( +vat_29 +r +" +^ +SI +\ +d +{ +8 +} +" +) +; +consistent +! +( +vat_30 +r +" +^ +ES +[ +A +- +Z0 +- +9 +] +\ +d +{ +7 +} +[ +A +- +Z0 +- +9 +] +" +) +; +consistent +! +( +vat_31 +r +" +^ +SE +\ +d +{ +10 +} +01 +" +) +; +consistent +! +( +vat_32 +r +" +^ +( +GB +( +GD +| +HA +) +\ +d +{ +3 +} +| +GB +\ +d +{ +9 +} +| +GB +\ +d +{ +12 +} +) +" +) +; +consistent +! +( +eve_0 +r +" +\ +{ +\ +{ +( +. +* +) +\ +} +\ +} +" +) +; +consistent +! +( +egc_0 +" +^ +mio +" +) +; +consistent +! +( +pew_0 +" +" +) +; +consistent +! +( +pew_1 +" +" +) +; +consistent +! +( +mob_0 +" +y +" +) +; +consistent +! +( +lit_0 +" +( +[ +a +- +z +] ++ +) +" +) +; +consistent +! +( +lit_1 +" +( +[ +A +- +Z +- +] ++ +) +: +( +. +* +) +" +) +; +consistent +! +( +lit_2 +" +^ +[ +a +- +zA +- +Z_ +] +[ +a +- +zA +- +Z0 +- +9_ +] +* +" +) +; +consistent +! +( +avm_0 +r +" +\ +d ++ +\ +. +\ +d ++ +\ +. +\ +d ++ +" +) +; +consistent +! +( +avm_1 +r +" +\ +d ++ +\ +. +\ +d ++ +\ +. +\ +d ++ +" +) +; +consistent +! +( +orm_0 +r +" +^ +Vec +< +( +. ++ +) +> +" +) +; +consistent +! +( +sgf_0 +r +" +\ +\ +( +\ +r +\ +n +| +\ +n +\ +r +| +\ +n +| +\ +r +) +" +) +; +consistent +! +( +sgf_1 +r +" +\ +\ +( +. +) +" +) +; +consistent +! +( +sgf_2 +r +" +\ +r +\ +n +| +\ +n +\ +r +| +\ +n +| +\ +r +" +) +; +consistent +! +( +sgf_3 +r +" +( +[ +\ +] +\ +\ +: +] +) +" +) +; +consistent +! +( +dok_0 +" +^ +Bearer +realm += +\ +" +( +. ++ +? +) +\ +" +service += +\ +" +( +. ++ +? +) +\ +" +scope += +\ +" +( +. ++ +? +) +\ +" +" +) +; +consistent +! +( +d20_0 +r +" +( +[ ++ +- +] +? +\ +s +* +\ +d ++ +[ +dD +] +\ +d ++ +| +[ ++ +- +] +? +\ +s +* +\ +d ++ +) +" +) +; +consistent +! +( +dvb_0 +" +E +" +) +; +consistent +! +( +dvb_1 +" +^ +F +" +) +; +consistent +! +( +dvb_2 +" +^ +S +" +) +; +consistent +! +( +ger_0 +r +" +Change +- +Id +: +( +I +[ +a +- +f0 +- +9 +] +{ +40 +} +) +" +) +; +consistent +! +( +ger_1 +r +" +( +refs +| +ref +| +fix +| +fixes +| +close +| +closes +) +\ +s ++ +( +[ +A +- +Z +] +{ +2 +5 +} +- +[ +0 +- +9 +] +{ +1 +5 +} +) +" +) +; +consistent +! +( +n5_0 +r +" +( +\ +d ++ +) +( +\ +. +( +\ +d ++ +) +) +? +( +\ +. +( +\ +d ++ +) +) +? +( +. +* +) +" +) +; +consistent +! +( +po_0 +r +" +[ +A +- +Za +- +z0 +- +9 +] +" +) +; +consistent +! +( +carnix_0 +" +path +is +( +| +' +) +? +( +[ +^ +' +\ +n +] +* +) +( +| +' +) +? +" +) +; +consistent +! +( +carnix_1 +r +" +^ +( +\ +S +* +) +( +\ +d +* +) +\ +. +( +\ +d +* +) +\ +. +( +\ +d +* +) +( +- +( +\ +S +* +) +) +? +( +. +* +) +? +" +) +; +consistent +! +( +carnix_2 +r +" +( +\ +d +* +) +\ +. +( +\ +d +* +) +\ +. +( +\ +d +* +) +( +- +( +\ +S +* +) +) +? +" +) +; +consistent +! +( +carnix_3 +r +" +( +\ +S +* +) +- +( +\ +d +* +) +\ +. +( +\ +d +* +) +\ +. +( +\ +d +* +) +( +- +( +\ +S +* +) +) +? +" +) +; +consistent +! +( +caseless_0 +r +" +^ +# +CaseFolding +- +( +\ +d ++ +) +\ +. +( +\ +d ++ +) +\ +. +( +\ +d ++ +) +. +txt +" +) +; +consistent +! +( +caseless_1 +r +" +^ +( +[ +0 +- +9A +- +F +] ++ +) +; +[ +CF +] +; +( +[ +0 +- +9A +- +F +] ++ +) +; +" +) +; +consistent +! +( +cabot_0 +" +\ +r +? +\ +n +\ +r +? +\ +n +" +) +; +consistent +! +( +cabot_1 +" +\ +r +? +\ +n +" +) +; +consistent +! +( +card_validate_0 +r +" +^ +600 +" +) +; +consistent +! +( +card_validate_1 +r +" +^ +5019 +" +) +; +consistent +! +( +card_validate_2 +r +" +^ +4 +" +) +; +consistent +! +( +card_validate_3 +r +" +^ +( +5 +[ +1 +- +5 +] +| +2 +[ +2 +- +7 +] +) +" +) +; +consistent +! +( +card_validate_4 +r +" +^ +3 +[ +47 +] +" +) +; +consistent +! +( +card_validate_5 +r +" +^ +3 +[ +0689 +] +" +) +; +consistent +! +( +card_validate_6 +r +" +^ +6 +( +[ +045 +] +| +22 +) +" +) +; +consistent +! +( +card_validate_7 +r +" +^ +( +62 +| +88 +) +" +) +; +consistent +! +( +card_validate_8 +r +" +^ +35 +" +) +; +consistent +! +( +card_validate_9 +r +" +^ +[ +0 +- +9 +] ++ +" +) +; +consistent +! +( +cargo_testify_0 +r +" +\ +d +{ +1 +} +passed +. +* +filtered +out +" +) +; +consistent +! +( +cargo_testify_1 +r +" +error +( +: +| +\ +[ +) +. +* +" +) +; +consistent +! +( +cargo_wix_0 +r +" +< +( +. +* +? +) +> +" +) +; +consistent +! +( +cargo_wix_1 +r +" +< +( +. +* +? +) +> +" +) +; +consistent +! +( +cargo_wix_2 +r +" +< +( +. +* +? +) +> +" +) +; +consistent +! +( +cargo_wix_3 +r +" +< +( +. +* +? +) +> +" +) +; +consistent +! +( +cargo_incremental_0 +r +" +( +? +m +) +^ +incremental +: +re +- +using +( +\ +d ++ +) +out +of +( +\ +d ++ +) +modules +" +) +; +consistent +! +( +cargo_incremental_1 +" +( +? +m +) +( +warning +| +error +) +: +( +. +* +) +\ +n +- +- +> +( +[ +^ +: +] +: +\ +\ +d ++ +: +\ +\ +d ++ +) +" +) +; +consistent +! +( +cargo_incremental_2 +r +" +( +? +m +) +^ +test +( +. +* +) +\ +. +\ +. +\ +. +( +\ +w ++ +) +" +) +; +consistent +! +( +cargo_incremental_3 +r +" +( +? +m +) +( +\ +d ++ +) +passed +; +( +\ +d ++ +) +failed +; +( +\ +d ++ +) +ignored +; +\ +d ++ +measured +" +) +; +consistent +! +( +cargo_testjs_0 +r +" +^ +[ +^ +- +] ++ +- +[ +0 +- +9a +- +f +] ++ +\ +. +js +" +) +; +consistent +! +( +cargo_tarpaulin_0 +r +" +\ +s +* +/ +/ +" +) +; +consistent +! +( +cargo_tarpaulin_1 +r +" +/ +\ +* +" +) +; +consistent +! +( +cargo_tarpaulin_2 +r +" +\ +* +/ +" +) +; +consistent +! +( +cargo_culture_kit_0 +r +" +^ +fo +" +) +; +consistent +! +( +cargo_screeps_0 +" +\ +\ +s ++ +" +) +; +consistent +! +( +cargo_brew_0 +r +" +( +\ +S ++ +) +v +( +[ +0 +- +9 +. +] ++ +) +" +) +; +consistent +! +( +cargo_release_0 +" +^ +\ +\ +[ +. ++ +\ +\ +] +" +) +; +consistent +! +( +cargo_release_1 +" +^ +\ +\ +[ +\ +\ +[ +. ++ +\ +\ +] +\ +\ +] +" +) +; +consistent +! +( +cargo_edit_0 +r +" +^ +https +: +/ +/ +github +. +com +/ +( +[ +- +_0 +- +9a +- +zA +- +Z +] ++ +) +/ +( +[ +- +_0 +- +9a +- +zA +- +Z +] ++ +) +( +/ +| +. +git +) +? +" +) +; +consistent +! +( +cargo_edit_1 +r +" +^ +https +: +/ +/ +gitlab +. +com +/ +( +[ +- +_0 +- +9a +- +zA +- +Z +] ++ +) +/ +( +[ +- +_0 +- +9a +- +zA +- +Z +] ++ +) +( +/ +| +. +git +) +? +" +) +; +consistent +! +( +cargo_disassemble_0 +" +. +* +" +) +; +consistent +! +( +cargo_demangle_0 +r +" +( +? +m +) +( +? +P +< +symbol +> +_ZN +[ +0 +- +9 +] ++ +. +* +E +) +" +) +; +consistent +! +( +cargo_coverage_annotations_0 +r +" +^ +\ +s +* +\ +} +( +? +: +\ +) +* +; +? +| +\ +s +* +else +\ +s +* +\ +{ +) +" +) +; +consistent +! +( +cargo_urlcrate_0 +" +[ +\ +u +{ +001b +} +\ +u +{ +009b +} +] +[ +\ +\ +[ +( +) +# +; +? +] +* +( +? +: +[ +0 +- +9 +] +{ +1 +4 +} +( +? +: +; +[ +0 +- +9 +] +{ +0 +4 +} +) +* +) +? +[ +0 +- +9A +- +PRZcf +- +nqry += +> +< +] +" +) +; +consistent +! +( +cargo_script_0 +r +" +^ +\ +s +* +\ +* +( +| +) +" +) +; +consistent +! +( +cargo_script_1 +r +" +^ +( +\ +s ++ +) +" +) +; +consistent +! +( +cargo_script_2 +r +" +/ +\ +* +| +\ +* +/ +" +) +; +consistent +! +( +cargo_script_3 +r +" +^ +\ +s +* +/ +/ +! +" +) +; +consistent +! +( +cargo_script_4 +r +" +^ +# +! +[ +^ +\ +[ +] +. +* +? +( +\ +r +\ +n +| +\ +n +) +" +) +; +consistent +! +( +cargo_update_0 +r +" +cargo +- +install +- +update +\ +. +exe +- +v +. ++ +" +) +; +consistent +! +( +canteen_0 +r +" +^ +< +( +? +: +( +int +| +uint +| +str +| +float +| +path +) +: +) +? +( +[ +\ +w_ +] +[ +a +- +zA +- +Z0 +- +9_ +] +* +) +> +" +) +; +consistent +! +( +thruster_cli_0 +r +" +( +. +) +( +[ +A +- +Z +] +) +" +) +; +consistent +! +( +thieves_cant_0 +" +( +[ +Z +] ++ +) +" +) +; +consistent +! +( +codeowners_0 +r +" +^ +\ +S ++ +/ +\ +S ++ +" +) +; +consistent +! +( +codeowners_1 +r +" +^ +\ +S ++ +" +) +; +consistent +! +( +codeowners_2 +r +" +^ +\ +S ++ +\ +S ++ +" +) +; +consistent +! +( +conserve_0 +r +" +^ +b0000 +{ +21 +} +complete +20 +[ +- +0 +- +9T +: ++ +] ++ +\ +s ++ +\ +d ++ +s +\ +n +" +) +; +consistent +! +( +commodore_0 +r +" +( +? +P +< +greeting +> +\ +S ++ +? +) +( +? +P +< +name +> +\ +S ++ +? +) +" +) +; +consistent +! +( +corollary_0 +r +" +( +[ +\ +t +] +* +) +haskell +( +[ +\ +s +\ +S +] +* +? +) +" +) +; +consistent +! +( +corollary_1 +r +" +\ +b +( +( +? +: +a +| +b +| +t +) +\ +d +* +) +\ +b +" +) +; +consistent +! +( +colorizex_0 +" +NB +" +) +; +consistent +! +( +colorstring_0 +r +" +( +? +i +) +\ +[ +[ +a +- +z0 +- +9_ +- +] ++ +\ +] +" +) +; +consistent +! +( +colorstring_1 +r +" +^ +( +? +i +) +( +\ +[ +[ +a +- +z0 +- +9_ +- +] ++ +\ +] +) ++ +" +) +; +consistent +! +( +cosmogony_0 +" +name +: +( +. ++ +) +" +) +; +consistent +! +( +cobalt_bin_0 +r +" +( +? +m +: +^ +{ +0 +3 +} +\ +[ +[ +^ +\ +] +] ++ +\ +] +: +. ++ +) +" +) +; +consistent +! +( +comrak_0 +r +" +[ +^ +\ +p +{ +L +} +\ +p +{ +M +} +\ +p +{ +N +} +\ +p +{ +Pc +} +- +] +" +) +; +consistent +! +( +content_blocker_0 +" +" +) +; +consistent +! +( +content_blocker_1 +" +( +? +i +) +hi +" +) +; +consistent +! +( +content_blocker_2 +" +http +[ +s +] +? +: +/ +/ +domain +. +org +" +) +; +consistent +! +( +content_blocker_3 +" +( +? +i +) +http +[ +s +] +? +: +/ +/ +domain +. +org +" +) +; +consistent +! +( +content_blocker_4 +" +http +: +/ +/ +domain +. +org +" +) +; +consistent +! +( +content_blocker_5 +" +http +: +/ +/ +domain +. +org +" +) +; +consistent +! +( +content_blocker_6 +" +ad +. +html +" +) +; +consistent +! +( +content_blocker_7 +" +ad +. +html +" +) +; +consistent +! +( +content_blocker_8 +" +http +: +/ +/ +domain +. +org +" +) +; +consistent +! +( +content_blocker_9 +" +http +: +/ +/ +domain +. +org +/ +nocookies +. +sjs +" +) +; +consistent +! +( +content_blocker_10 +" +http +: +/ +/ +domain +. +org +/ +nocookies +. +sjs +" +) +; +consistent +! +( +content_blocker_11 +" +http +: +/ +/ +domain +. +org +/ +hideme +. +jpg +" +) +; +consistent +! +( +content_blocker_12 +" +http +: +/ +/ +domain +. +org +/ +ok +. +html +" +) +; +consistent +! +( +content_blocker_13 +" +http +: +/ +/ +domain +. +org +/ +ok +. +html +\ +\ +? +except_this += +1 +" +) +; +consistent +! +( +victoria_dom_0 +" +[ +A +- +Za +- +z0 +- +9 += +] +" +) +; +consistent +! +( +numbat_0 +r +" +^ +nsq +: +/ +/ +" +) +; +consistent +! +( +airkorea_0 +r +" +[ +\ +s +\ +t +\ +r +\ +n +] +" +) +; +consistent +! +( +airkorea_1 +r +" +( +[ +\ +{ +\ +[ +] +) +| +( +[ +\ +} +\ +] +] +) +" +) +; +consistent +! +( +airkorea_2 +r +" +[ +^ +. +\ +d +] ++ +" +) +; +consistent +! +( +rogcat_0 +r +" +- +- +- +- +- +- +- +- +- +beginning +of +. +* +" +) +; +consistent +! +( +rogcat_1 +r +" +a +| +e +| +i +| +o +| +u +" +) +; +consistent +! +( +rogcat_2 +r +" +^ +( +\ +d ++ +) +( +[ +kMG +] +) +" +) +; +consistent +! +( +media_filename_0 +" +\ +\ +. +( +[ +A +- +Za +- +z0 +- +9 +] +{ +2 +4 +} +) +" +) +; +consistent +! +( +media_filename_1 +" +( +[ +0 +- +9 +] +{ +3 +4 +} +p +| +[ +0 +- +9 +] +{ +3 +4 +} +x +[ +0 +- +9 +] +{ +3 +4 +} +) +" +) +; +consistent +! +( +media_filename_2 +" +( +? +: +^ +\ +\ +[ +( +[ +^ +] +] ++ +) +\ +\ +] +| +- +? +( +[ +^ +- +] ++ +) +) +" +) +; +consistent +! +( +media_filename_3 +" +( +? +: +[ +eE +] +( +[ +0 +- +9 +] +{ +2 +3 +} +) +| +[ +^ +0 +- +9A +- +Za +- +z +] +( +[ +0 +- +9 +] +{ +2 +3 +} +) +( +? +: +v +[ +0 +- +9 +] +) +? +[ +^ +0 +- +9A +- +Za +- +z +] +) +" +) +; +consistent +! +( +media_filename_4 +" +[ +sS +] +( +[ +0 +- +9 +] +{ +1 +2 +} +) +" +) +; +consistent +! +( +media_filename_5 +" +( +( +? +i +) +( +? +: +PPV +. +) +? +[ +HP +] +DTV +| +( +? +: +HD +) +? +CAM +| +BRRIP +| +[ +^ +a +- +z +] +TS +[ +^ +a +- +z +] +| +( +? +: +PPV +) +? +WEB +. +? +DL +( +? +: +DVDRip +) +? +| +HDRip +| +DVDRip +| +CamRip +| +W +[ +EB +] +BRip +| +BluRay +| +BD +| +DVD +| +DvDScr +| +hdtv +) +" +) +; +consistent +! +( +media_filename_6 +" +( +( +19 +[ +0 +- +9 +] +| +20 +[ +01 +] +) +[ +0 +- +9 +] +) +" +) +; +consistent +! +( +media_filename_7 +" +( +( +? +i +) +xvid +| +x264 +| +h +\ +\ +. +? +264 +) +" +) +; +consistent +! +( +media_filename_8 +" +( +( +? +i +) +MP3 +| +DD5 +\ +\ +. +? +1 +| +Dual +[ +- +] +Audio +| +LiNE +| +DTS +| +AAC +( +? +: +\ +\ +. +? +2 +\ +\ +. +0 +) +? +| +AC3 +( +? +: +\ +\ +. +5 +\ +\ +. +1 +) +? +) +" +) +; +consistent +! +( +media_filename_9 +" +\ +\ +[ +( +[ +0 +- +9A +- +F +] +{ +8 +} +) +\ +\ +] +" +) +; +consistent +! +( +termimage_0 +r +" +( +\ +d ++ +) +[ +xX +] +( +\ +d ++ +) +" +) +; +consistent +! +( +teensy_0 +r +" +. +* +( +\ +d +{ +4 +} +- +\ +d +{ +2 +} +- +\ +d +{ +2 +} +) +. +* +" +) +; +consistent +! +( +telescreen_0 +r +" +< +( +. ++ +) +> +" +) +; +consistent +! +( +tempus_fugit_0 +r +" +^ +( +\ +d ++ +) +" +) +; +consistent +! +( +fselect_0 +" +( +\ +\ +? +| +\ +\ +. +| +\ +\ +* +| +\ +\ +[ +| +\ +\ +] +| +\ +\ +( +| +\ +\ +) +| +\ +\ +^ +| +\ +\ +) +" +) +; +consistent +! +( +fselect_1 +" +( +% +| +_ +| +\ +\ +? +| +\ +\ +. +| +\ +\ +* +| +\ +\ +[ +| +\ +\ +] +| +\ +\ +( +| +\ +\ +) +| +\ +\ +^ +| +\ +\ +) +" +) +; +consistent +! +( +fs_eventbridge_0 +r +" +^ +( +[ +A +- +Z +] ++ +) +( +? +: +\ +s +( +. ++ +) +) +? +\ +s +* +" +) +; +consistent +! +( +joseki_0 +r +" +( +\ +w +{ +1 +2 +} +) +\ +[ +( +. ++ +? +) +\ +] +" +) +; +consistent +! +( +tweetr_0 +r +" +( +? +i +) +in +( +\ +d ++ +) +( +second +| +minute +| +hour +| +day +| +week +) +s +? +" +) +; +consistent +! +( +bullet_core_0 +" +^ +( +? +u +: +[ +0 +- +9 +] +) ++ +" +) +; +consistent +! +( +bullet_core_1 +" +^ +( +? +u +: +[ +0 +- +9 +] +) ++ +( +? +u +: +\ +\ +. +) +( +? +u +: +[ +0 +- +9 +] +) ++ +" +) +; +consistent +! +( +bullet_core_2 +" +^ +( +? +u +: +[ +A +- +Za +- +z +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +] +) ++ +" +) +; +consistent +! +( +bullet_core_3 +" +^ +( +? +u +: +d +/ +d +) +( +( +? +u +: +[ +A +- +Za +- +z +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +] +) ++ +) +" +) +; +consistent +! +( +bullet_core_4 +" +^ +( +? +u +: +\ +\ +( +) +" +) +; +consistent +! +( +bullet_core_5 +" +^ +( +? +u +: +\ +\ +) +) +" +) +; +consistent +! +( +bullet_core_6 +" +^ +( +? +u +: +\ +\ +* +) +" +) +; +consistent +! +( +bullet_core_7 +" +^ +( +? +u +: +\ +\ ++ +) +" +) +; +consistent +! +( +bullet_core_8 +" +^ +( +? +u +: +) +" +) +; +consistent +! +( +bullet_core_9 +" +^ +( +? +u +: +\ +\ +- +) +" +) +; +consistent +! +( +bullet_core_10 +" +^ +( +? +u +: +/ +) +" +) +; +consistent +! +( +bullet_core_11 +" +^ +( +? +u +: +\ +\ +[ +) +" +) +; +consistent +! +( +bullet_core_12 +" +^ +( +? +u +: +\ +\ +] +) +" +) +; +consistent +! +( +bullet_core_13 +" +^ +( +? +u +: +\ +\ +^ +) +" +) +; +consistent +! +( +bullet_core_14 +" +^ +( +? +u +: +) +" +) +; +consistent +! +( +actix_web_0 +" +/ +/ ++ +" +) +; +consistent +! +( +actix_web_1 +" +/ +/ ++ +" +) +; +consistent +! +( +althea_kernel_interface_0 +r +" +( +\ +S +* +) +. +* +( +\ +S +* +) +( +REACHABLE +| +STALE +| +DELAY +) +" +) +; +consistent +! +( +althea_kernel_interface_1 +r +" +- +s +( +. +* +) +- +- +ip6 +- +dst +( +. +* +) +/ +. +* +bcnt += +( +. +* +) +" +) +; +consistent +! +( +alcibiades_0 +r +" +\ +buci +( +? +: +\ +s +| +) +" +) +; +consistent +! +( +ruma_identifiers_0 +r +" +\ +A +[ +a +- +z0 +- +9 +. +_ += +- +] ++ +\ +z +" +) +; +consistent +! +( +rusqbin_0 +r +" +/ +rusqbins +/ +( +( +? +i +) +[ +A +- +F0 +- +9 +] +{ +8 +} +\ +- +[ +A +- +F0 +- +9 +] +{ +4 +} +\ +- +4 +[ +A +- +F0 +- +9 +] +{ +3 +} +\ +- +[ +89AB +] +[ +A +- +F0 +- +9 +] +{ +3 +} +\ +- +[ +A +- +F0 +- +9 +] +{ +12 +} +) +" +) +; +consistent +! +( +rusqbin_1 +r +" +/ +rusqbins +/ +( +( +? +i +) +[ +A +- +F0 +- +9 +] +{ +8 +} +\ +- +[ +A +- +F0 +- +9 +] +{ +4 +} +\ +- +4 +[ +A +- +F0 +- +9 +] +{ +3 +} +\ +- +[ +89AB +] +[ +A +- +F0 +- +9 +] +{ +3 +} +\ +- +[ +A +- +F0 +- +9 +] +{ +12 +} +) +/ +requests +/ +? +" +) +; +consistent +! +( +rust_install_0 +r +" +^ +( +nightly +| +beta +| +stable +) +( +? +: +- +( +\ +d +{ +4 +} +- +\ +d +{ +2 +} +- +\ +d +{ +2 +} +) +) +? +" +) +; +consistent +! +( +rust_inbox_0 +" +^ ++ +( +. +* +) +\ +r +\ +n +" +) +; +consistent +! +( +rust_inbox_1 +r +" +^ +\ +* +CAPABILITY +( +. +* +) +\ +r +\ +n +" +) +; +consistent +! +( +rust_inbox_2 +r +" +^ +( +[ +a +- +zA +- +Z0 +- +9 +] ++ +) +( +OK +| +NO +| +BAD +) +( +. +* +) +" +) +; +consistent +! +( +rust_inbox_3 +r +" +^ +\ +* +( +\ +d ++ +) +EXISTS +\ +r +\ +n +" +) +; +consistent +! +( +rust_inbox_4 +r +" +^ +\ +* +( +\ +d ++ +) +RECENT +\ +r +\ +n +" +) +; +consistent +! +( +rust_inbox_5 +r +" +^ +\ +* +FLAGS +( +. ++ +) +\ +r +\ +n +" +) +; +consistent +! +( +rust_inbox_6 +r +" +^ +\ +* +OK +\ +[ +UNSEEN +( +\ +d ++ +) +\ +] +( +. +* +) +\ +r +\ +n +" +) +; +consistent +! +( +rust_inbox_7 +r +" +^ +\ +* +OK +\ +[ +UIDVALIDITY +( +\ +d ++ +) +\ +] +( +. +* +) +\ +r +\ +n +" +) +; +consistent +! +( +rust_inbox_8 +r +" +^ +\ +* +OK +\ +[ +UIDNEXT +( +\ +d ++ +) +\ +] +( +. +* +) +\ +r +\ +n +" +) +; +consistent +! +( +rust_inbox_9 +r +" +^ +\ +* +OK +\ +[ +PERMANENTFLAGS +( +. ++ +) +\ +] +( +. +* +) +\ +r +\ +n +" +) +; +consistent +! +( +rustml_0 +r +" +^ +[ +a +- +z +] ++ +( +\ +d ++ +) +" +) +; +consistent +! +( +rustml_1 +r +" +^ +[ +a +- +z +] ++ +( +\ +d ++ +) +" +) +; +consistent +! +( +rustml_2 +r +" +^ +[ +a +- +z +] ++ +( +\ +d ++ +) +" +) +; +consistent +! +( +rustfmt_0 +r +" +( +[ +^ +\ +\ +] +( +\ +\ +\ +\ +) +* +) +\ +\ +[ +\ +n +\ +r +] +[ +[ +: +space +: +] +] +* +" +) +; +consistent +! +( +rustfmt_core_0 +r +" +( +^ +\ +s +* +) +| +( +^ +\ +s +* +/ +/ +\ +s +* +rustfmt +- +[ +^ +: +] ++ +: +\ +s +* +\ +S ++ +) +" +) +; +consistent +! +( +rustfmt_core_1 +r +" +^ +# +# +( +[ +^ +] ++ +) +" +) +; +consistent +! +( +rustfmt_core_2 +r +" +( +[ +^ +\ +\ +] +( +\ +\ +\ +\ +) +* +) +\ +\ +[ +\ +n +\ +r +] +[ +[ +: +space +: +] +] +* +" +) +; +consistent +! +( +rustfmt_core_3 +r +" +\ +s +; +" +) +; +consistent +! +( +rust_enum_derive_0 +r +" +^ +( +0x +) +? +( +[ +: +digit +: +] ++ +) +" +) +; +consistent +! +( +rust_enum_derive_1 +r +" +^ +( +[ +: +digit +: +] ++ +) +[ +: +space +: +] +* +< +< +[ +: +space +: +] +* +( +[ +: +digit +: +] ++ +) +" +) +; +consistent +! +( +rust_enum_derive_2 +r +" +^ +[ +: +space +: +] +* +( +[ +[ +: +alnum +: +] +_ +] ++ +) +( +[ +: +space +: +] +* += +[ +: +space +: +] +* +( +[ +: +graph +: +] ++ +) +) +? +[ +: +space +: +] +* +" +) +; +consistent +! +( +rust_enum_derive_3 +r +" +^ +# +define +[ +: +space +: +] ++ +( +[ +: +graph +: +] ++ +) +[ +: +space +: +] ++ +( +[ +: +graph +: +] ++ +) +" +) +; +consistent +! +( +rustsourcebundler_0 +r +" +^ +\ +s +* +pub +mod +( +. ++ +) +; +" +) +; +consistent +! +( +rustsourcebundler_1 +r +" +^ +\ +s +* +pub +mod +( +. ++ +) +; +" +) +; +consistent +! +( +rustfmt_nightly_0 +r +" +( +[ +^ +\ +\ +] +( +\ +\ +\ +\ +) +* +) +\ +\ +[ +\ +n +\ +r +] +[ +[ +: +space +: +] +] +* +" +) +; +consistent +! +( +rustfmt_nightly_1 +r +" +\ +s +; +" +) +; +consistent +! +( +rustache_0 +r +" +( +? +s +) +( +. +* +? +) +( +[ +\ +t +\ +r +\ +n +] +* +) +( +\ +{ +\ +{ +( +\ +{ +? +\ +S +? +\ +s +* +? +[ +\ +w +\ +. +\ +s +] +* +. +* +? +\ +s +* +? +\ +} +? +) +\ +} +\ +} +) +( +[ +\ +t +\ +r +\ +n +] +* +) +" +) +; +consistent +! +( +rustfilt_0 +r +" +_ZN +[ +\ +\ +. +_ +[ +: +alnum +: +] +] +* +" +) +; +consistent +! +( +rustache_lists_0 +r +" +( +? +s +) +( +. +* +? +) +( +[ +\ +t +\ +r +\ +n +] +* +) +( +\ +{ +\ +{ +( +\ +{ +? +\ +S +? +\ +s +* +? +[ +\ +w +\ +. +\ +s +] +* +. +* +? +\ +s +* +? +\ +} +? +) +\ +} +\ +} +) +( +[ +\ +t +\ +r +\ +n +] +* +) +" +) +; +consistent +! +( +rural_0 +" +( +. ++ +) += +( +. ++ +) +" +) +; +consistent +! +( +rural_1 +" +( +. +* +) +: +( +. ++ +) +" +) +; +consistent +! +( +rural_2 +" +( +. ++ +) +: += +( +. ++ +) +" +) +; +consistent +! +( +rural_3 +" +( +. +* +) += += +( +. ++ +) +" +) +; +consistent +! +( +rusoto_credential_0 +r +" +^ +\ +[ +( +[ +^ +\ +] +] ++ +) +\ +] +" +) +; +consistent +! +( +rumblebars_0 +" +( +[ +: +blank +: +] +* +) +" +) +; +consistent +! +( +rumblebars_1 +" +( +\ +r +? +\ +n +) +[ +: +blank +: +] +* +( +\ +\ +{ +\ +\ +{ +~ +? +[ +# +! +/ +] +( +? +: +\ +\ +} +? +[ +^ +} +] +) +* +\ +\ +} +\ +\ +} +) +[ +: +blank +: +] +* +( +: +? +\ +r +? +\ +n +) +? +\ +\ +z +" +) +; +consistent +! +( +rumblebars_2 +" +( +\ +r +? +\ +n +[ +: +blank +: +] +* +) +( +\ +\ +{ +\ +\ +{ +~ +? +> +( +? +: +\ +\ +} +? +[ +^ +} +] +) +* +\ +\ +} +\ +\ +} +) +[ +: +blank +: +] +* +( +: +? +\ +r +? +\ +n +) +? +\ +\ +z +" +) +; +consistent +! +( +rumblebars_3 +" +( +( +? +: +[ +: +blank +: +] +| +\ +r +? +\ +n +) +* +) +( +\ +r +? +\ +n +) +[ +: +blank +: +] +* +" +) +; +consistent +! +( +rumblebars_4 +" +^ +( +[ +: +blank +: +] +* +\ +r +? +\ +n +) +( +. +* +) +" +) +; +consistent +! +( +diesel_cli_0 +r +" +( +? +P +< +stamp +> +[ +\ +d +- +] +* +) +_hello +" +) +; +consistent +! +( +dishub_0 +r +" +( +\ +d ++ +) +s +" +) +; +consistent +! +( +spreadsheet_textconv_0 +r +" +\ +n +" +) +; +consistent +! +( +spreadsheet_textconv_1 +r +" +\ +r +" +) +; +consistent +! +( +spreadsheet_textconv_2 +r +" +\ +t +" +) +; +consistent +! +( +split_aud_0 +r +" +DELAY +( +- +? +\ +d ++ +) +ms +" +) +; +consistent +! +( +split_aud_1 +r +" +Trim +\ +( +( +\ +d ++ +) +? +( +\ +d ++ +) +\ +) +" +) +; +consistent +! +( +spotrust_0 +r +" +spotify +: +[ +a +- +z +] ++ +: +[ +a +- +zA +- +Z0 +- +9 +] ++ +" +) +; +consistent +! +( +spaceslugs_0 +r +" +[ +^ +\ +x00 +- +\ +x7F +] +" +) +; +consistent +! +( +spaceslugs_1 +r +" +[ +' +] ++ +" +) +; +consistent +! +( +spaceslugs_2 +r +" +\ +W ++ +" +) +; +consistent +! +( +spaceslugs_3 +r +" +[ +] ++ +" +) +; +consistent +! +( +space_email_api_0 +" +PHPSESSID += +( +[ +0 +- +9a +- +f +] ++ +) +" +) +; +consistent +! +( +lorikeet_0 +" +[ +^ +0 +- +9 +. +] +" +) +; +consistent +! +( +claude_0 +r +" +^ +( +? +: +\ +b +| +( +- +) +? +) +( +\ +p +{ +Currency_Symbol +} +) +? +( +( +? +: +( +? +: +\ +d +{ +1 +3 +} +[ +\ +. +] +) ++ +\ +d +{ +3 +} +) +| +\ +d ++ +) +( +? +: +[ +\ +. +] +( +\ +d +{ +2 +} +) +) +? +\ +b +" +) +; +consistent +! +( +clam_0 +r +" +< +% += +\ +s +* +( +. ++ +? +) +\ +s +* +% +> +" +) +; +consistent +! +( +classifier_0 +r +" +( +\ +s +) +" +) +; +consistent +! +( +click_0 +r +" +( +- +- +- +- +- +BEGIN +. +* +- +- +- +- +- +\ +n +) +( +( +? +: +( +? +: +[ +A +- +Za +- +z0 +- +9 ++ +/ +] +{ +4 +} +) +* +( +? +: +[ +A +- +Za +- +z0 +- +9 ++ +/ +] +{ +2 +} += += +| +[ +A +- +Za +- +z0 +- +9 ++ +/ +] +{ +3 +} += +) +* +\ +n +) ++ +) +( +- +- +- +- +- +END +. +* +- +- +- +- +- +) +" +) +; +consistent +! +( +click_1 +r +" +- +- +- +- +- +BEGIN +PRIVATE +KEY +- +- +- +- +- +" +) +; +consistent +! +( +ultrastar_txt_0 +r +" +# +( +[ +A +- +Z3a +- +z +] +* +) +: +( +. +* +) +" +) +; +consistent +! +( +ultrastar_txt_1 +" +^ +- +\ +\ +s +? +( +- +? +[ +0 +- +9 +] ++ +) +\ +\ +s +* +" +) +; +consistent +! +( +ultrastar_txt_2 +" +^ +- +\ +\ +s +? +( +- +? +[ +0 +- +9 +] ++ +) +\ +\ +s ++ +( +- +? +[ +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +ultrastar_txt_3 +" +^ +( +. +) +\ +\ +s +* +( +- +? +[ +0 +- +9 +] ++ +) +\ +\ +s ++ +( +- +? +[ +0 +- +9 +] ++ +) +\ +\ +s ++ +( +- +? +[ +0 +- +9 +] ++ +) +\ +\ +s +? +( +. +* +) +" +) +; +consistent +! +( +ultrastar_txt_4 +" +^ +P +\ +\ +s +? +( +- +? +[ +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +db_accelerate_0 +r +" +^ +template +\ +. +add +( +| +\ +. +. ++ +) +" +) +; +consistent +! +( +db_accelerate_1 +r +" +^ +template +\ +. +sub +( +| +\ +. +. ++ +) +" +) +; +consistent +! +( +sterling_0 +r +" +( +\ +d ++ +) +( +[ +cegps +] +) +" +) +; +consistent +! +( +stache_0 +r +" +[ +^ +\ +w +] +" +) +; +consistent +! +( +strukt_0 +" +\ +" +( +[ +< +> +] +? +) +( +[ +xcbB +\ +\ +? +hHiIlLqQfdspP +] +* +) +\ +" +" +) +; +consistent +! +( +steamid_ng_0 +r +" +^ +STEAM_ +( +[ +0 +- +4 +] +) +: +( +[ +0 +- +1 +] +) +: +( +[ +0 +- +9 +] +{ +1 +10 +} +) +" +) +; +consistent +! +( +steamid_ng_1 +r +" +^ +\ +[ +( +[ +AGMPCgcLTIUai +] +) +: +( +[ +0 +- +4 +] +) +: +( +[ +0 +- +9 +] +{ +1 +10 +} +) +( +: +( +[ +0 +- +9 +] ++ +) +) +? +\ +] +" +) +; +consistent +! +( +strscan_0 +r +" +^ +\ +w ++ +" +) +; +consistent +! +( +strscan_1 +r +" +^ +\ +s ++ +" +) +; +consistent +! +( +strscan_2 +r +" +^ +\ +w ++ +" +) +; +consistent +! +( +strscan_3 +r +" +^ +\ +s ++ +" +) +; +consistent +! +( +strscan_4 +r +" +^ +( +\ +w ++ +) +\ +s ++ +" +) +; +consistent +! +( +tk_carbon_0 +r +" +^ +( +[ +a +- +zA +- +Z0 +- +9 +\ +. +- +] ++ +) +( +? +: +\ +s ++ +( +\ +d ++ +) +) +" +) +; +consistent +! +( +tk_carbon_1 +r +" +^ +( +[ +a +- +zA +- +Z0 +- +9 +\ +. +- +] ++ +) +( +? +: +\ +s ++ +( +\ +d ++ +) +) +" +) +; +consistent +! +( +evalrs_0 +r +" +extern +\ +s ++ +crate +\ +s ++ +( +[ +a +- +z0 +- +9_ +] ++ +) +\ +s +* +; +( +\ +s +* +/ +/ +( +. ++ +) +) +? +" +) +; +consistent +! +( +evalrs_1 +r +" +( +? +m +) +^ +# +" +) +; +consistent +! +( +evalrs_2 +r +" +( +? +m +) +^ +\ +s +* +fn ++ +main +* +\ +( +* +\ +) +" +) +; +consistent +! +( +evalrs_3 +r +" +( +extern +\ +s ++ +crate +\ +s ++ +[ +a +- +z0 +- +9_ +] ++ +\ +s +* +; +) +" +) +; +consistent +! +( +gate_build_0 +" +( +. +* +) +_t +( +[ +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +rake_0 +r +" +[ +^ +\ +P +{ +P +} +- +] +| +\ +s ++ +- +\ +s ++ +" +) +; +consistent +! +( +rafy_0 +r +" +^ +. +* +( +? +: +( +? +: +youtu +\ +. +be +/ +| +v +/ +| +vi +/ +| +u +/ +w +/ +| +embed +/ +) +| +( +? +: +( +? +: +watch +) +? +\ +? +v +( +? +: +i +) +? += +| +\ +& +v +( +? +: +i +) +? += +) +) +( +[ +^ +# +\ +& +\ +? +] +* +) +. +* +" +) +; +consistent +! +( +raven_0 +r +" +^ +( +? +P +< +protocol +> +. +* +? +) +: +/ +/ +( +? +P +< +public_key +> +. +* +? +) +: +( +? +P +< +secret_key +> +. +* +? +) +( +? +P +< +host +> +. +* +? +) +/ +( +? +P +< +path +> +. +* +/ +) +? +( +? +P +< +project_id +> +. +* +) +" +) +; +consistent +! +( +rargs_0 +r +" +\ +{ +[ +[ +: +space +: +] +] +* +[ +^ +{ +} +] +* +[ +[ +: +space +: +] +] +* +\ +} +" +) +; +consistent +! +( +rargs_1 +r +" +^ +\ +{ +[ +[ +: +space +: +] +] +* +( +? +P +< +name +> +[ +[ +: +word +: +] +] +* +) +[ +[ +: +space +: +] +] +* +\ +} +" +) +; +consistent +! +( +rargs_2 +r +" +^ +\ +{ +[ +[ +: +space +: +] +] +* +( +? +P +< +num +> +- +? +\ +d ++ +) +[ +[ +: +space +: +] +] +* +\ +} +" +) +; +consistent +! +( +rargs_3 +r +" +^ +\ +{ +( +? +P +< +left +> +- +? +\ +d +* +) +? +\ +. +\ +. +( +? +P +< +right +> +- +? +\ +d +* +) +? +( +? +: +: +( +? +P +< +sep +> +. +* +) +) +? +\ +} +" +) +; +consistent +! +( +rargs_4 +r +" +( +. +* +? +) +[ +[ +: +space +: +] +] ++ +| +( +. +* +? +) +" +) +; +consistent +! +( +indradb_lib_0 +r +" +[ +a +- +zA +- +Z0 +- +9 +] +{ +8 +} +" +) +; +consistent +! +( +fungi_lang_0 +r +" +: +: +" +) +; +consistent +! +( +nickel_0 +" +/ +hello +/ +( +? +P +< +name +> +[ +a +- +zA +- +Z +] ++ +) +" +) +; +consistent +! +( +nickel_1 +" +/ +hello +/ +( +? +P +< +name +> +[ +a +- +zA +- +Z +] ++ +) +" +) +; +consistent +! +( +pact_verifier_0 +r +" +\ +{ +( +\ +w ++ +) +\ +} +" +) +; +consistent +! +( +pact_matching_0 +" +application +/ +. +* +json +" +) +; +consistent +! +( +pact_matching_1 +" +application +/ +json +. +* +" +) +; +consistent +! +( +pact_matching_2 +" +application +/ +. +* +xml +" +) +; +consistent +! +( +pangu_0 +" +( +[ +\ +" +' +\ +\ +( +\ +\ +[ +\ +\ +{ +{ +< +\ +u +{ +201c +} +] +) +( +\ +\ +s +* +) +( +. ++ +? +) +( +\ +\ +s +* +) +( +[ +\ +" +' +\ +\ +) +\ +\ +] +\ +\ +} +} +> +\ +u +{ +201d +} +] +) +" +) +; +consistent +! +( +pangu_1 +" +( +[ +\ +\ +( +\ +\ +[ +\ +\ +{ +{ +< +\ +u +{ +201c +} +] ++ +) +( +\ +\ +s +* +) +( +. ++ +? +) +( +\ +\ +s +* +) +( +[ +\ +\ +) +\ +\ +] +\ +\ +} +} +> +\ +u +{ +201d +} +] ++ +) +" +) +; +consistent +! +( +parser_haskell_0 +r +" +\ +{ +- +[ +\ +s +\ +S +] +* +? +- +\ +} +" +) +; +consistent +! +( +parser_haskell_1 +r +" +( +? +m +) +; ++ +\ +s +* +" +) +; +consistent +! +( +parser_haskell_2 +r +" +( +? +m +) +^ +# +( +if +| +ifn +? +def +| +endif +| +else +| +include +| +elif +) +. +* +" +) +; +consistent +! +( +parser_haskell_3 +r +" +' +( +[ +^ +' +\ +\ +] +| +\ +\ +[ +A +- +Z +] +{ +1 +3 +} +| +\ +\ +. +) +' +" +) +; +consistent +! +( +parser_haskell_4 +r +" +forall +\ +s ++ +( +. +* +? +) +\ +. +" +) +; +consistent +! +( +html2md_0 +" +\ +\ +s +{ +2 +} +" +) +; +consistent +! +( +html2md_1 +" +\ +\ +n +{ +2 +} +" +) +; +consistent +! +( +html2md_2 +" +( +? +m +) +( +\ +\ +S +) +" +) +; +consistent +! +( +html2md_3 +" +( +? +m +) +^ +[ +- +* +] +" +) +; +consistent +! +( +ovpnfile_0 +r +" +# +. +* +" +) +; +consistent +! +( +ovpnfile_1 +r +" +^ +< +( +\ +S ++ +) +> +" +) +; +consistent +! +( +ovpnfile_2 +r +" +^ +< +/ +( +\ +S ++ +) +> +" +) +; +consistent +! +( +screenruster_saver_fractal_0 +r +" +# +( +[ +: +xdigit +: +] +{ +2 +} +) +( +[ +: +xdigit +: +] +{ +2 +} +) +( +[ +: +xdigit +: +] +{ +2 +} +) +" +) +; +consistent +! +( +scarlet_0 +r +" +rgb +\ +( +( +? +: +* +( +\ +d +{ +1 +3 +} +) +) +( +? +: +* +( +\ +d +{ +1 +3 +} +) +) +( +? +: +* +( +\ +d +{ +1 +3 +} +) +) +\ +) +" +) +; +consistent +! +( +cpp_to_rust_generator_0 +r +" +^ +( +[ +\ +w +: +] ++ +) +< +( +. ++ +) +> +" +) +; +consistent +! +( +cpp_to_rust_generator_1 +r +" +^ +type +- +parameter +- +( +\ +d ++ +) +- +( +\ +d ++ +) +" +) +; +consistent +! +( +cpp_to_rust_generator_2 +r +" +^ +( +[ +\ +w +~ +] ++ +) +< +[ +^ +< +> +] ++ +> +" +) +; +consistent +! +( +cpp_to_rust_generator_3 +r +" +( +signals +| +Q_SIGNALS +) +\ +s +* +: +" +) +; +consistent +! +( +cpp_to_rust_generator_4 +r +" +( +slots +| +Q_SLOTS +) +\ +s +* +: +" +) +; +consistent +! +( +cpp_to_rust_generator_5 +r +" +( +public +| +protected +| +private +) +\ +s +* +: +" +) +; +consistent +! +( +cpp_to_rust_0 +r +" +^ +( +[ +\ +w +: +] ++ +) +< +( +. ++ +) +> +" +) +; +consistent +! +( +cpp_to_rust_1 +r +" +^ +type +- +parameter +- +( +\ +d ++ +) +- +( +\ +d ++ +) +" +) +; +consistent +! +( +cpp_to_rust_2 +r +" +^ +( +[ +\ +w +~ +] ++ +) +< +[ +^ +< +> +] ++ +> +" +) +; +consistent +! +( +cpp_to_rust_3 +r +" +( +signals +| +Q_SIGNALS +) +\ +s +* +: +" +) +; +consistent +! +( +cpp_to_rust_4 +r +" +( +slots +| +Q_SLOTS +) +\ +s +* +: +" +) +; +consistent +! +( +cpp_to_rust_5 +r +" +( +public +| +protected +| +private +) +\ +s +* +: +" +) +; +consistent +! +( +fritzbox_logs_0 +" +( +\ +\ +d +{ +2 +} +\ +\ +. +\ +\ +d +{ +2 +} +\ +\ +. +\ +\ +d +{ +2 +} +) +( +\ +\ +d +{ +2 +} +: +\ +\ +d +{ +2 +} +: +\ +\ +d +{ +2 +} +) +( +. +* +) +" +) +; +consistent +! +( +fractal_matrix_api_0 +r +" +mxc +: +/ +/ +( +? +P +< +server +> +[ +^ +/ +] ++ +) +/ +( +? +P +< +media +> +. ++ +) +" +) +; +consistent +! +( +smtp2go_0 +r +" +^ +api +- +[ +a +- +zA +- +Z0 +- +9 +] +{ +32 +} +" +) +; +consistent +! +( +pusher_0 +r +" +^ +[ +- +a +- +zA +- +Z0 +- +9_ += +. +; +] ++ +" +) +; +consistent +! +( +pusher_1 +r +" +\ +A +\ +d ++ +\ +. +\ +d ++ +\ +z +" +) +; +consistent +! +( +bakervm_0 +r +" +^ +\ +. +( +. ++ +? +) ++ +? +( +. ++ +) +" +) +; +consistent +! +( +bakervm_1 +r +" +^ +\ +. +( +[ +^ +\ +s +] ++ +) +" +) +; +consistent +! +( +bakervm_2 +r +" +^ +include +! ++ +( +[ +^ +\ +s +] ++ +) +" +) +; +consistent +! +( +bakervm_3 +r +" +^ +( +\ +d ++ +) +" +) +; +consistent +! +( +bakervm_4 +r +" +^ +true +| +false +" +) +; +consistent +! +( +bakervm_5 +r +" +^ +( +- +? +\ +d ++ +) +? +\ +. +[ +0 +- +9 +] ++ +" +) +; +consistent +! +( +bakervm_6 +r +" +^ +( +- +? +\ +d ++ +) +? +" +) +; +consistent +! +( +bakervm_7 +r +" +^ +# +( +[ +0 +- +9abcdefABCDEF +] +{ +6 +} +) +" +) +; +consistent +! +( +bakervm_8 +r +" +^ +' +( +. +) +' +" +) +; +consistent +! +( +bakervm_9 +r +" +^ +\ +vi +\ +( +( +\ +d ++ +) +\ +) +" +) +; +consistent +! +( +bakervm_10 +r +" +^ +\ +key +\ +( +( +\ +d ++ +) +\ +) +" +) +; +consistent +! +( +banana_0 +" +( +? +P +< +type +> +[ +A +- +Z +^ +' +] ++ +) +( +? +P +< +route +> +[ +^ +' +] ++ +) +HTTP +/ +( +? +P +< +http +> +[ +^ +' +] ++ +) +" +) +; +consistent +! +( +serial_key_0 +r +" +[ +A +- +F0 +- +9 +] +{ +8 +} +" +) +; +consistent +! +( +serde_hjson_0 +" +[ +\ +\ +\ +\ +\ +" +\ +x00 +- +\ +x1f +\ +x7f +- +\ +u +{ +9f +} +\ +u +{ +00ad +} +\ +u +{ +0600 +} +- +\ +u +{ +0604 +} +\ +u +{ +070f +} +\ +u +{ +17b4 +} +\ +u +{ +17b5 +} +\ +u +{ +200c +} +- +\ +u +{ +200f +} +\ +u +{ +2028 +} +- +\ +u +{ +202f +} +\ +u +{ +2060 +} +- +\ +u +{ +206f +} +\ +u +{ +feff +} +\ +u +{ +fff0 +} +- +\ +u +{ +ffff +} +] +" +) +; +consistent +! +( +serde_hjson_1 +" +[ +\ +x00 +- +\ +x1f +\ +x7f +- +\ +u +{ +9f +} +\ +u +{ +00ad +} +\ +u +{ +0600 +} +- +\ +u +{ +0604 +} +\ +u +{ +070f +} +\ +u +{ +17b4 +} +\ +u +{ +17b5 +} +\ +u +{ +200c +} +- +\ +u +{ +200f +} +\ +u +{ +2028 +} +- +\ +u +{ +202f +} +\ +u +{ +2060 +} +- +\ +u +{ +206f +} +\ +u +{ +feff +} +\ +u +{ +fff0 +} +- +\ +u +{ +ffff +} +] +" +) +; +consistent +! +( +serde_hjson_2 +" +' +' +' +| +[ +\ +x00 +- +\ +x09 +\ +x0b +\ +x0c +\ +x0e +- +\ +x1f +\ +x7f +- +\ +u +{ +9f +} +\ +u +{ +00ad +} +\ +u +{ +0600 +} +- +\ +u +{ +0604 +} +\ +u +{ +070f +} +\ +u +{ +17b4 +} +\ +u +{ +17b5 +} +\ +u +{ +200c +} +- +\ +u +{ +200f +} +\ +u +{ +2028 +} +- +\ +u +{ +202f +} +\ +u +{ +2060 +} +- +\ +u +{ +206f +} +\ +u +{ +feff +} +\ +u +{ +fff0 +} +- +\ +u +{ +ffff +} +] +" +) +; +consistent +! +( +serde_odbc_0 +r +" +/ +todos +/ +( +? +P +< +id +> +\ +d ++ +) +" +) +; +consistent +! +( +sentry_0 +r +" +^ +( +? +: +_ +< +) +? +( +[ +a +- +zA +- +Z0 +- +9_ +] ++ +? +) +( +? +: +\ +. +\ +. +| +: +: +) +" +) +; +consistent +! +( +sentiment_0 +r +" +[ +^ +a +- +zA +- +Z0 +- +] ++ +" +) +; +consistent +! +( +sentiment_1 +r +" +{ +2 +} +" +) +; +consistent +! +( +verilog_0 +r +" +( +? +m +) +/ +/ +. +* +" +) +; +consistent +! +( +verex_0 +" +( +? +P +< +robot +> +C3PO +) +" +) +; +consistent +! +( +handlebars_0 +" +> +| +< +| +\ +" +| +& +" +) +; +consistent +! +( +haikunator_0 +r +" +^ +\ +w ++ +- +\ +w ++ +- +[ +0123456789 +] +{ +4 +} +" +) +; +consistent +! +( +haikunator_1 +r +" +^ +\ +w ++ +\ +w ++ +[ +0123456789 +] +{ +4 +} +" +) +; +consistent +! +( +haikunator_2 +r +" +^ +\ +w ++ +- +\ +w ++ +- +[ +0123456789abcdef +] +{ +4 +} +" +) +; +consistent +! +( +haikunator_3 +r +" +^ +\ +w ++ +- +\ +w ++ +- +[ +0123456789 +] +{ +10 +} +" +) +; +consistent +! +( +haikunator_4 +r +" +^ +\ +w ++ +- +\ +w ++ +" +) +; +consistent +! +( +haikunator_5 +r +" +^ +\ +w ++ +- +\ +w ++ +- +[ +foo +] +{ +4 +} +" +) +; +consistent +! +( +haikunator_6 +r +" +^ +\ +w ++ +- +\ +w ++ +- +[ +0123456789 +] +{ +5 +} +" +) +; +consistent +! +( +bobbin_cli_0 +r +" +( +. +* +) +" +) +; +consistent +! +( +bobbin_cli_1 +r +" +rustc +( +. +* +) +" +) +; +consistent +! +( +bobbin_cli_2 +r +" +cargo +( +. +* +) +" +) +; +consistent +! +( +bobbin_cli_3 +r +" +xargo +( +. +* +) +\ +n +" +) +; +consistent +! +( +bobbin_cli_4 +r +" +Open +On +- +Chip +Debugger +( +. +* +) +" +) +; +consistent +! +( +bobbin_cli_5 +r +" +arm +- +none +- +eabi +- +gcc +\ +( +GNU +Tools +for +ARM +Embedded +Processors +[ +^ +\ +) +] +* +\ +) +( +. +* +) +" +) +; +consistent +! +( +bobbin_cli_6 +r +" +( +? +m +) +. +* +\ +nBasic +Open +Source +SAM +- +BA +Application +\ +( +BOSSA +\ +) +Version +( +. +* +) +\ +n +" +) +; +consistent +! +( +bobbin_cli_7 +r +" +( +? +m +) +SEGGER +J +- +Link +Commander +( +. +* +) +\ +n +" +) +; +consistent +! +( +bobbin_cli_8 +r +" +( +? +m +) +Teensy +Loader +Command +Line +Version +( +. +* +) +\ +n +" +) +; +consistent +! +( +bobbin_cli_9 +r +" +dfu +- +util +( +. +* +) +\ +n +" +) +; +consistent +! +( +borsholder_0 +r +" +^ +/ +static +/ +[ +\ +w +. +] ++ +" +) +; +consistent +! +( +borsholder_1 +r +" +^ +/ +timeline +/ +( +[ +0 +- +9 +] ++ +) +" +) +; +consistent +! +( +fblog_0 +" +\ +u +{ +001B +} +\ +\ +[ +[ +\ +\ +d +; +] +* +[ +^ +\ +\ +d +; +] +" +) +; +consistent +! +( +fblog_1 +" +\ +u +{ +001B +} +\ +\ +[ +[ +\ +\ +d +; +] +* +[ +^ +\ +\ +d +; +] +" +) +; +consistent +! +( +toml_query_0 +r +" +^ +\ +[ +\ +d ++ +\ +] +" +) +; +consistent +! +( +todo_txt_0 +r +" +( +? +P +< +key +> +[ +^ +\ +s +] ++ +) +: +( +? +P +< +value +> +[ +^ +\ +s +^ +/ +] ++ +) +" +) +; +consistent +! +( +findr_0 +r +" +\ +band +\ +b +" +) +; +consistent +! +( +findr_1 +r +" +\ +bor +\ +b +" +) +; +consistent +! +( +findr_2 +r +" +\ +bnot +\ +b +" +) +; +consistent +! +( +file_sniffer_0 +r +" +. +* +? +\ +. +( +a +| +la +| +lo +| +o +| +ll +| +keter +| +bc +| +dyn_o +| +out +| +d +| +rlib +| +crate +| +min +\ +. +js +| +hi +| +dyn_hi +| +S +| +jsexe +| +webapp +| +js +\ +. +externs +| +ibc +| +toc +| +aux +| +fdb_latexmk +| +fls +| +egg +- +info +| +whl +| +js_a +| +js_hi +| +jld +| +ji +| +js_o +| +so +. +* +| +dump +- +. +* +| +vmb +| +crx +| +orig +| +elmo +| +elmi +| +pyc +| +mod +| +p_hi +| +p_o +| +prof +| +tix +) +" +) +; +consistent +! +( +file_sniffer_1 +r +" +. +* +? +\ +. +( +stats +| +conf +| +h +| +cache +. +* +| +dat +| +pc +| +info +) +" +) +; +consistent +! +( +file_sniffer_2 +r +" +. +* +? +\ +. +( +exe +| +a +| +la +| +o +| +ll +| +keter +| +bc +| +dyn_o +| +out +| +d +| +rlib +| +crate +| +min +\ +. +js +| +hi +| +dyn_hi +| +jsexe +| +webapp +| +js +\ +. +externs +| +ibc +| +toc +| +aux +| +fdb_latexmk +| +fls +| +egg +- +info +| +whl +| +js_a +| +js_hi +| +jld +| +ji +| +js_o +| +so +. +* +| +dump +- +. +* +| +vmb +| +crx +| +orig +| +elmo +| +elmi +| +pyc +| +mod +| +p_hi +| +p_o +| +prof +| +tix +) +" +) +; +consistent +! +( +file_sniffer_3 +r +" +. +* +? +\ +. +( +stats +| +conf +| +h +| +cache +. +* +) +" +) +; +consistent +! +( +file_sniffer_4 +r +" +( +\ +. +git +| +\ +. +pijul +| +_darcs +| +\ +. +hg +) +" +) +; +consistent +! +( +file_logger_0 +" +test +" +) +; +consistent +! +( +file_scanner_0 +r +" +foo +" +) +; +consistent +! +( +file_scanner_1 +r +" +a ++ +b +" +) +; +consistent +! +( +file_scanner_2 +r +" +a +[ +ab +] +* +b +" +) +; +consistent +! +( +file_scanner_3 +r +" +\ +s ++ +" +) +; +consistent +! +( +file_scanner_4 +r +" +\ +s ++ +" +) +; +consistent +! +( +cellsplit_0 +r +" +^ +\ +s +* +( +[ +^ +\ +s +] ++ +) +% +cellsplit +< +\ +d ++ +> +" +) +; +consistent +! +( +cellsplit_1 +r +" +^ +\ +s +* +( +[ +^ +\ +s +] ++ +) +% +cellsplit +< +\ +d ++ +> +" +) +; +consistent +! +( +aterm_0 +r +" +^ +[ ++ +\ +- +] +? +[ +0 +- +9 +] ++ +" +) +; +consistent +! +( +aterm_1 +r +" +^ +[ ++ +\ +- +] +? +[ +0 +- +9 +] ++ +\ +. +[ +0 +- +9 +] +* +( +[ +eE +] +[ ++ +\ +- +] +? +[ +0 +- +9 +] ++ +) +? +" +) +; +consistent +! +( +atarashii_imap_0 +r +" +^ +[ +* +] +OK +" +) +; +consistent +! +( +atarashii_imap_1 +r +" +FLAGS +\ +s +\ +( +( +. ++ +) +\ +) +" +) +; +consistent +! +( +atarashii_imap_2 +r +" +\ +[ +PERMANENTFLAGS +\ +s +\ +( +( +. ++ +) +\ +) +\ +] +" +) +; +consistent +! +( +atarashii_imap_3 +r +" +\ +[ +UIDVALIDITY +\ +s +( +\ +d ++ +) +\ +] +" +) +; +consistent +! +( +atarashii_imap_4 +r +" +( +\ +d ++ +) +\ +sEXISTS +" +) +; +consistent +! +( +atarashii_imap_5 +r +" +( +\ +d ++ +) +\ +sRECENT +" +) +; +consistent +! +( +atarashii_imap_6 +r +" +\ +[ +UNSEEN +\ +s +( +\ +d ++ +) +\ +] +" +) +; +consistent +! +( +atarashii_imap_7 +r +" +\ +[ +UIDNEXT +\ +s +( +\ +d ++ +) +\ +] +" +) +; +consistent +! +( +editorconfig_0 +r +" +\ +\ +( +\ +{ +| +\ +} +) +" +) +; +consistent +! +( +editorconfig_1 +r +" +( +^ +| +[ +^ +\ +\ +] +) +\ +\ +\ +| +" +) +; +consistent +! +( +editorconfig_2 +r +" +\ +[ +( +[ +^ +\ +] +] +* +) +" +) +; +consistent +! +( +editorconfig_3 +r +" +\ +[ +( +. +* +/ +. +* +) +\ +] +" +) +; +consistent +! +( +editorconfig_4 +r +" +\ +{ +( +- +? +\ +d ++ +\ +\ +\ +. +\ +\ +\ +. +- +? +\ +d ++ +) +\ +} +" +) +; +consistent +! +( +editorconfig_5 +r +" +\ +{ +( +[ +^ +] ++ +) +\ +} +" +) +; +consistent +! +( +editorconfig_6 +r +" +\ +{ +( +( +[ +^ +\ +} +] +. +* +) +? +( +| +\ +| +) +( +. +* +[ +^ +\ +\ +] +) +? +) +\ +} +" +) +; +consistent +! +( +editorconfig_7 +r +" +^ +/ +" +) +; +consistent +! +( +editorconfig_8 +r +" +( +^ +| +[ +^ +\ +\ +] +) +( +\ +{ +| +\ +} +) +" +) +; +consistent +! +( +edmunge_0 +" +^ +# +! +. +* +\ +n +" +) +; +consistent +! +( +unicode_names2_macros_0 +r +" +\ +\ +N +\ +{ +( +. +* +? +) +( +? +: +\ +} +| +) +" +) +; +consistent +! +( +unidiff_0 +r +" +^ +- +- +- +( +? +P +< +filename +> +[ +^ +\ +t +\ +n +] ++ +) +( +? +: +\ +t +( +? +P +< +timestamp +> +[ +^ +\ +n +] ++ +) +) +? +" +) +; +consistent +! +( +unidiff_1 +r +" +^ +\ ++ +\ ++ +\ ++ +( +? +P +< +filename +> +[ +^ +\ +t +\ +n +] ++ +) +( +? +: +\ +t +( +? +P +< +timestamp +> +[ +^ +\ +n +] ++ +) +) +? +" +) +; +consistent +! +( +unidiff_2 +r +" +^ +- +( +\ +d ++ +) +( +? +: +( +\ +d ++ +) +) +? +\ ++ +( +\ +d ++ +) +( +? +: +( +\ +d ++ +) +) +? +[ +] +? +( +. +* +) +" +) +; +consistent +! +( +unidiff_3 +r +" +^ +( +? +P +< +line_type +> +[ +- +\ +n +\ ++ +\ +\ +] +? +) +( +? +P +< +value +> +. +* +) +" +) +; +consistent +! +( +slippy_map_tiles_0 +" +/ +? +( +? +P +< +zoom +> +[ +0 +- +9 +] +? +[ +0 +- +9 +] +) +/ +( +? +P +< +x +> +[ +0 +- +9 +] +{ +1 +10 +} +) +/ +( +? +P +< +y +> +[ +0 +- +9 +] +{ +1 +10 +} +) +( +\ +\ +. +[ +a +- +zA +- +Z +] +{ +3 +4 +} +) +? +" +) +; +consistent +! +( +slippy_map_tiles_1 +r +" +^ +( +? +P +< +minlon +> +- +? +[ +0 +- +9 +] +{ +1 +3 +} +( +\ +. +[ +0 +- +9 +] +{ +1 +10 +} +) +? +) +( +? +P +< +minlat +> +- +? +[ +0 +- +9 +] +{ +1 +3 +} +( +\ +. +[ +0 +- +9 +] +{ +1 +10 +} +) +? +) +( +? +P +< +maxlon +> +- +? +[ +0 +- +9 +] +{ +1 +3 +} +( +\ +. +[ +0 +- +9 +] +{ +1 +10 +} +) +? +) +( +? +P +< +maxlat +> +- +? +[ +0 +- +9 +] +{ +1 +3 +} +( +\ +. +[ +0 +- +9 +] +{ +1 +10 +} +) +? +) +" +) +; +consistent +! +( +slippy_map_tiles_2 +r +" +^ +( +? +P +< +minlon +> +- +? +[ +0 +- +9 +] +{ +1 +3 +} +( +\ +. +[ +0 +- +9 +] +{ +1 +10 +} +) +? +) +( +? +P +< +minlat +> +- +? +[ +0 +- +9 +] +{ +1 +3 +} +( +\ +. +[ +0 +- +9 +] +{ +1 +10 +} +) +? +) +( +? +P +< +maxlon +> +- +? +[ +0 +- +9 +] +{ +1 +3 +} +( +\ +. +[ +0 +- +9 +] +{ +1 +10 +} +) +? +) +( +? +P +< +maxlat +> +- +? +[ +0 +- +9 +] +{ +1 +3 +} +( +\ +. +[ +0 +- +9 +] +{ +1 +10 +} +) +? +) +" +) +; +consistent +! +( +sonos_0 +r +" +^ +https +? +: +/ +/ +( +. ++ +? +) +: +1400 +/ +xml +" +) +; +consistent +! +( +validator_derive_0 +r +" +^ +[ +a +- +z +] +{ +2 +} +" +) +; +consistent +! +( +validator_derive_1 +r +" +[ +a +- +z +] +{ +2 +} +" +) +; +consistent +! +( +validator_derive_2 +r +" +[ +a +- +z +] +{ +2 +} +" +) +; +consistent +! +( +nginx_config_0 +r +" +one +of +\ +d ++ +options +" +) +; +consistent +! +( +waltz_0 +r +" +[ +\ +s +] +" +) +; +consistent +! +( +warheadhateus_0 +r +" +^ +aws_access_key_id += +( +. +* +) +" +) +; +consistent +! +( +warheadhateus_1 +r +" +^ +aws_secret_access_key += +( +. +* +) +" +) +; +consistent +! +( +warheadhateus_2 +r +" +^ +aws_access_key_id += +( +. +* +) +" +) +; +consistent +! +( +warheadhateus_3 +r +" +^ +aws_secret_access_key += +( +. +* +) +" +) +; +consistent +! +( +jieba_rs_0 +r +" +( +[ +\ +u +{ +4E00 +} +- +\ +u +{ +9FD5 +} +a +- +zA +- +Z0 +- +9 ++ +# +& +\ +. +_ +% +] ++ +) +" +) +; +consistent +! +( +jieba_rs_1 +r +" +( +\ +r +\ +n +| +\ +s +) +" +) +; +consistent +! +( +jieba_rs_2 +" +( +[ +\ +u +{ +4E00 +} +- +\ +u +{ +9FD5 +} +] ++ +) +" +) +; +consistent +! +( +jieba_rs_3 +r +" +[ +^ +a +- +zA +- +Z0 +- +9 ++ +# +\ +n +] +" +) +; +consistent +! +( +jieba_rs_4 +r +" +( +[ +\ +u +{ +4E00 +} +- +\ +u +{ +9FD5 +} +] ++ +) +" +) +; +consistent +! +( +jieba_rs_5 +r +" +( +[ +a +- +zA +- +Z0 +- +9 +] ++ +( +? +: +. +\ +d ++ +) +? +% +? +) +" +) +; +consistent +! +( +lalrpop_0 +r +" +Span +\ +( +[ +0 +- +9 +] +* +\ +) +" +) +; +consistent +! +( +lalrpop_snap_0 +r +" +Span +\ +( +[ +0 +- +9 +] +* +\ +) +" +) +; +consistent +! +( +nlp_tokenize_0 +r +" +[ +\ +S +] ++ +" +) +; +consistent +! +( +kbgpg_0 +" +[ +[ +: +xdigit +: +] +] +[ +70 +] +" +) +; +consistent +! +( +cdbd_0 +r +" +^ +( +( +? +P +< +address +> +. +* +) +: +) +? +( +? +P +< +port +> +\ +d ++ +) +" +) +; +consistent +! +( +mbutiles_0 +r +" +[ +\ +w +\ +s += ++ +- +/ +] ++ +\ +( +( +\ +{ +( +. +| +\ +n +) +* +\ +} +) +\ +) +; +? +" +) +; +consistent +! +( +extrahop_0 +r +" +^ +- +\ +d ++ +( +? +: +ms +| +s +| +m +| +h +| +d +| +w +| +y +) +? +" +) +; +consistent +! +( +pippin_0 +" +^ +( +( +? +: +. +* +) +- +) +? +ss +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +\ +\ +. +pip +" +) +; +consistent +! +( +pippin_1 +" +^ +( +( +? +: +. +* +) +- +) +? +ss +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +- +cl +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +\ +\ +. +piplog +" +) +; +consistent +! +( +pippin_2 +" +^ +( +( +? +: +. +* +) +- +) +? +ss +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +\ +\ +. +pip +" +) +; +consistent +! +( +pippin_3 +" +^ +( +( +? +: +. +* +) +- +) +? +ss +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +- +cl +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +\ +\ +. +piplog +" +) +; +consistent +! +( +pippin_4 +" +^ +. +* +pn +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +( +- +ss +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +( +\ +\ +. +pip +| +- +cl +( +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +\ +\ +. +piplog +) +) +? +" +) +; +consistent +! +( +pippin_5 +" +^ +( +. +* +) +- +ss +( +? +: +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +( +? +: +\ +\ +. +pip +| +- +cl +( +? +: +0 +| +[ +1 +- +9 +] +[ +0 +- +9 +] +* +) +\ +\ +. +piplog +) +" +) +; +consistent +! +( +pinyin_0 +r +" +( +? +i +) +[ +] +" +) +; +consistent +! +( +pinyin_1 +r +" +( +[ +aeoiuvnm +] +) +( +[ +0 +- +4 +] +) +" +) +; +consistent +! +( +duration_parser_0 +r +" +( +? +P +< +value +> +\ +d ++ +) +( +? +P +< +units +> +[ +a +- +z +] +) +" +) +; +consistent +! +( +dutree_0 +r +" +^ +\ +d ++ +\ +D +? +" +) +; +consistent +! +( +djangohashers_0 +r +" +^ +[ +A +- +Za +- +z0 +- +9 +] +* +" +) +; +consistent +! +( +rtag_0 +r +" +^ +[ +A +- +Z +] +[ +A +- +Z0 +- +9 +] +{ +2 +} +" +) +; +consistent +! +( +rtag_1 +r +" +^ +http +: +/ +/ +www +\ +. +emusic +\ +. +com +" +) +; +consistent +! +( +rtag_2 +r +" +^ +[ +A +- +Z +] +[ +A +- +Z0 +- +9 +] +{ +2 +} +" +) +; +consistent +! +( +rtag_3 +r +" +( +^ +[ +\ +x +{ +0 +} +| +\ +x +{ +feff +} +| +\ +x +{ +fffe +} +] +* +| +[ +\ +x +{ +0 +} +| +\ +x +{ +feff +} +| +\ +x +{ +fffe +} +] +* +) +" +) +; +consistent +! +( +rtow_0 +r +" +( +\ +d ++ +) +[ +xX +] +( +\ +d ++ +) +" +) +; +consistent +! +( +pleingres_sql_plugin_0 +r +" +\ +( +[ +a +- +zA +- +Z0 +- +9_ +] ++ +) +" +) +; +consistent +! +( +dono_0 +" +[ +\ +\ +n +] ++ +" +) +; +consistent +! +( +dono_1 +" +( +? +m +) +^ +\ +\ +n +" +) +; +consistent +! +( +dono_2 +" +( +? +m +) +^ +\ +\ +n +" +) +; +consistent +! +( +ssb_common_0 +r +" +^ +[ +0 +- +9A +- +Za +- +z +\ ++ +/ +] +{ +43 +} += +\ +. +ed25519 +" +) +; +consistent +! +( +ssb_common_1 +r +" +^ +[ +0 +- +9A +- +Za +- +z +\ ++ +/ +] +{ +86 +} += += +\ +. +ed25519 +" +) +; +consistent +! +( +ssb_common_2 +r +" +^ +[ +0 +- +9A +- +Za +- +z +\ ++ +/ +] +{ +43 +} += +\ +. +sha256 +" +) +; +consistent +! +( +mozversion_0 +r +" +^ +( +? +P +< +major +> +\ +d ++ +) +\ +. +( +? +P +< +minor +> +\ +d ++ +) +( +? +: +\ +. +( +? +P +< +patch +> +\ +d ++ +) +) +? +( +? +: +( +? +P +< +pre0 +> +[ +a +- +z +] ++ +) +( +? +P +< +pre1 +> +\ +d +* +) +) +? +" +) +; +consistent +! +( +monger_0 +r +" +^ +( +\ +d ++ +) +\ +. +( +\ +d ++ +) +" +) +; +consistent +! +( +mongo_rub_0 +r +" +^ +[ +rv +] +2 +\ +. +6 +" +) +; +consistent +! +( +flow_0 +" +body +value +" +) +; +consistent +! +( +flow_1 +" +start +marker +" +) +; +consistent +! +( +flow_2 +" +end +marker +" +) +; +consistent +! +( +flow_3 +" +body +value +" +) +; +consistent +! +( +vobsub_0 +" +^ +( +[ +A +- +Za +- +z +/ +] ++ +) +: +( +. +* +) +" +) +; +consistent +! +( +voidmap_0 +r +" +# +( +[ +^ +\ +s += +] ++ +) +* +" +) +; +consistent +! +( +voidmap_1 +r +" +# +( +\ +S ++ +) +* +" +) +; +consistent +! +( +voidmap_2 +r +" +# +prio += +( +\ +d ++ +) +" +) +; +consistent +! +( +voidmap_3 +r +" +\ +[ +( +\ +S ++ +) +\ +] +" +) +; +consistent +! +( +voidmap_4 +r +" +# +limit += +( +\ +d ++ +) +" +) +; +consistent +! +( +voidmap_5 +r +" +# +tagged += +( +\ +S ++ +) +" +) +; +consistent +! +( +voidmap_6 +r +" +# +rev +\ +b +" +) +; +consistent +! +( +voidmap_7 +r +" +# +done +\ +b +" +) +; +consistent +! +( +voidmap_8 +r +" +# +open +\ +b +" +) +; +consistent +! +( +voidmap_9 +r +" +# +since += +( +\ +S ++ +) +" +) +; +consistent +! +( +voidmap_10 +r +" +# +until += +( +\ +S ++ +) +" +) +; +consistent +! +( +voidmap_11 +r +" +# +plot += +( +\ +S ++ +) +" +) +; +consistent +! +( +voidmap_12 +r +" +# +n += +( +\ +d ++ +) +" +) +; +consistent +! +( +voidmap_13 +r +" +( +\ +S ++ +) +" +) +; +consistent +! +( +voidmap_14 +r +" +( +? +P +< +y +> +\ +d ++ +) +y +" +) +; +consistent +! +( +voidmap_15 +r +" +( +? +P +< +m +> +\ +d ++ +) +m +" +) +; +consistent +! +( +voidmap_16 +r +" +( +? +P +< +w +> +\ +d ++ +) +w +" +) +; +consistent +! +( +voidmap_17 +r +" +( +? +P +< +d +> +\ +d ++ +) +d +" +) +; +consistent +! +( +voidmap_18 +r +" +( +? +P +< +h +> +\ +d ++ +) +h +" +) +; +consistent +! +( +voidmap_19 +r +" +C +- +( +. +) +" +) +; +consistent +! +( +qt_generator_0 +r +" +^ +\ +. +\ +. +/ +qt +[ +^ +/ +] ++ +/ +" +) +; +consistent +! +( +qt_generator_1 +" +( +href +| +src +) += +\ +" +( +[ +^ +\ +" +] +* +) +\ +" +" +) +; +consistent +! +( +kryptos_0 +r +" +[ +01 +] +{ +5 +} +" +) +; +consistent +! +( +cifar_10_loader_0 +" +data_batch_ +[ +1 +- +5 +] +. +bin +" +) +; +consistent +! +( +cifar_10_loader_1 +" +test_batch +. +bin +" +) +; +consistent +! +( +circadian_0 +r +" +^ +\ +d ++ +. +\ +d ++ +s +" +) +; +consistent +! +( +circadian_1 +r +" +^ +\ +d ++ +: +\ +d ++ +" +) +; +consistent +! +( +circadian_2 +r +" +^ +\ +d ++ +: +\ +d ++ +m +" +) +; +consistent +! +( +cicada_0 +r +" +! +! +" +) +; +consistent +! +( +cicada_1 +r +" +^ +( +[ +^ +] +* +) +( +[ +^ +] ++ +) +( +. +* +) +" +) +; +consistent +! +( +cicada_2 +r +" +\ +* ++ +" +) +; +consistent +! +( +cicada_3 +r +" +( +[ +^ +\ +] +* +) +\ +\ +{ +? +( +[ +A +- +Za +- +z0 +- +9 +\ +? +\ +_ +] ++ +) +\ +} +? +( +. +* +) +" +) +; +consistent +! +( +cicada_4 +r +" +^ +* +alias ++ +( +[ +a +- +zA +- +Z0 +- +9_ +\ +. +- +] ++ +) += +( +. +* +) +" +) +; +consistent +! +( +vterm_sys_0 +r +" +hi +" +) +; +consistent +! +( +skim_0 +r +" +. +* +? +\ +t +" +) +; +consistent +! +( +skim_1 +r +" +. +* +? +[ +\ +t +] +" +) +; +consistent +! +( +skim_2 +r +" +( +\ +{ +- +? +[ +0 +- +9 +. +q +] +* +? +} +) +" +) +; +consistent +! +( +skim_3 +r +" +[ +\ +t +\ +n +] ++ +" +) +; +consistent +! +( +skim_4 +r +" +[ +\ +t +\ +n +] ++ +" +) +; +consistent +! +( +skim_5 +r +" +( +[ +^ +| +] ++ +( ++ +\ +| ++ +[ +^ +| +] +* +) ++ +) +| +( ++ +) +" +) +; +consistent +! +( +skim_6 +r +" ++ +\ +| ++ +" +) +; +consistent +! +( +skim_7 +r +" +^ +( +? +P +< +left +> +- +? +\ +d ++ +) +? +( +? +P +< +sep +> +\ +. +\ +. +) +? +( +? +P +< +right +> +- +? +\ +d ++ +) +? +" +) +; +consistent +! +( +skim_8 +" +" +) +; +consistent +! +( +skim_9 +" +. +* +? +" +) +; +consistent +! +( +skim_10 +" +. +* +? +" +) +; +consistent +! +( +skim_11 +" +" +) +; +consistent +! +( +skim_12 +r +" +\ +x1B +\ +[ +( +? +: +( +[ +0 +- +9 +] ++ +; +[ +0 +- +9 +] ++ +[ +Hf +] +) +| +( +[ +0 +- +9 +] ++ +[ +ABCD +] +) +| +( +s +| +u +| +2J +| +K +) +| +( +[ +0 +- +9 +; +] +* +m +) +| +( += +[ +0 +- +9 +] ++ +[ +hI +] +) +) +" +) +; +consistent +! +( +egg_mode_text_0 +r +" +[ +- +_ +. +/ +] +\ +z +" +) +; +consistent +! +( +java_properties_0 +" +^ +[ +\ +t +\ +r +\ +n +\ +x0c +] +* +[ +# +! +] +" +) +; +consistent +! +( +java_properties_1 +r +" +^ +[ +\ +t +\ +x0c +] +* +[ +# +! +] +[ +^ +\ +r +\ +n +] +* +" +) +; +consistent +! +( +java_properties_2 +r +" +^ +( +[ +\ +t +\ +x0c +] +* +[ +: += +] +[ +\ +t +\ +x0c +] +* +| +[ +\ +t +\ +x0c +] ++ +) +" +) +; +consistent +! +( +ipaddress_0 +r +" +: +. ++ +\ +. +" +) +; +consistent +! +( +ipaddress_1 +r +" +\ +. +" +) +; +consistent +! +( +ipaddress_2 +r +" +: +" +) +; +consistent +! +( +iptables_0 +r +" +v +( +\ +d ++ +) +\ +. +( +\ +d ++ +) +\ +. +( +\ +d ++ +) +" +) +; +consistent +! +( +rsure_0 +r +" +^ +( +[ +^ +- +] ++ +) +- +( +. +* +) +\ +. +dat +\ +. +gz +" +) +; +consistent +! +( +rs_jsonpath_0 +" +^ +( +. +* +? +) +( +< += +| +< +| += += +| +> += +| +> +) +( +. +* +? +) +" +) +; +consistent +! +( +oatie_0 +r +" +( +\ +n +| +^ +) +( +\ +w ++ +) +: +( +[ +\ +n +\ +w +\ +W +] ++ +? +) +( +\ +n +( +? +: +\ +w +) +| +( +\ +n +\ +] +) +) +" +) +; +consistent +! +( +weld_0 +" +# +. +* +" +) +; +consistent +! +( +weld_1 +r +" +^ +[ +A +- +Za +- +z +_ +] +[ +A +- +Za +- +z0 +- +9 +_ +] +* +" +) +; +consistent +! +( +weld_2 +r +" +^ +[ +0 +- +9 +] ++ +[ +cC +] +" +) +; +consistent +! +( +weld_3 +r +" +^ +0b +[ +0 +- +1 +] ++ +[ +cC +] +" +) +; +consistent +! +( +weld_4 +r +" +^ +0x +[ +0 +- +9a +- +fA +- +F +] ++ +[ +cC +] +" +) +; +consistent +! +( +weld_5 +r +" +^ +[ +0 +- +9 +] ++ +" +) +; +consistent +! +( +weld_6 +r +" +^ +0b +[ +0 +- +1 +] ++ +" +) +; +consistent +! +( +weld_7 +r +" +^ +0x +[ +0 +- +9a +- +fA +- +F +] ++ +" +) +; +consistent +! +( +weld_8 +r +" +^ +[ +0 +- +9 +] ++ +[ +lL +] +" +) +; +consistent +! +( +weld_9 +r +" +^ +0b +[ +0 +- +1 +] ++ +[ +lL +] +" +) +; +consistent +! +( +weld_10 +r +" +^ +0x +[ +0 +- +9a +- +fA +- +F +] ++ +[ +lL +] +" +) +; +consistent +! +( +webgl_generator_0 +" +( +[ +( +] +) +enum +\ +\ +b +" +) +; +consistent +! +( +webgl_generator_1 +" +\ +\ +bAcquireResourcesCallback +\ +\ +b +" +) +; +consistent +! +( +weave_0 +r +" +^ +( +\ +d ++ +) +( +( +\ +d ++ +) +) +? +( +[ +acd +] +) +. +* +" +) +; +consistent +! +( +wemo_0 +r +" +< +BinaryState +> +( +\ +d +) +( +\ +| +- +? +\ +d ++ +) +* +< +/ +BinaryState +> +" +) +; +consistent +! +( +webscale_0 +r +" +( +http +[ +s +] +? +: +/ +/ +[ +^ +\ +s +] ++ +) +" +) +; +consistent +! +( +svgrep_0 +r +" +^ +\ +d ++ +. +* +" +) +; +consistent +! +( +ignore_0 +r +" +^ +[ +\ +pL +\ +pN +] ++ +" +) +; +consistent +! +( +ommui_string_patterns_0 +r +" +^ +( +[ +A +- +Za +- +z +] +[ +0 +- +9A +- +Za +- +z_ +] +* +) +? +" +) +; +consistent +! +( +ommui_string_patterns_1 +r +" +^ +( +\ +S ++ +( +? +: +. +* +\ +S +) +? +) +? +" +) +; +consistent +! +( +opcua_types_0 +" +^ +( +? +P +< +min +> +[ +0 +- +9 +] +{ +1 +10 +} +) +( +: +( +? +P +< +max +> +[ +0 +- +9 +] +{ +1 +10 +} +) +) +? +" +) +; +consistent +! +( +opcua_types_1 +r +" +^ +( +ns += +( +? +P +< +ns +> +[ +0 +- +9 +] ++ +) +; +) +? +( +? +P +< +t +> +[ +isgb +] +) += +( +? +P +< +v +> +. ++ +) +" +) +; +consistent +! +( +open_read_later_0 +r +" +^ +( +. ++ +? +) +\ +s +* +: +\ +s +* +( +. ++ +) +" +) +; +consistent +! +( +youtube_downloader_0 +r +" +^ +. +* +( +? +: +( +? +: +youtu +\ +. +be +/ +| +v +/ +| +vi +/ +| +u +/ +w +/ +| +embed +/ +) +| +( +? +: +( +? +: +watch +) +? +\ +? +v +( +? +: +i +) +? += +| +\ +& +v +( +? +: +i +) +? += +) +) +( +[ +^ +# +\ +& +\ +? +] +* +) +. +* +" +) +; +consistent +! +( +yobot_0 +" +. +" +) +; +consistent +! +( +yobot_1 +r +" +. +" +) +; +consistent +! +( +yobot_2 +r +" +. ++ +" +) +; +consistent +! +( +yobot_3 +r +" +. +" +) +; +consistent +! +( +ubiquity_0 +r +" +foo +" +) +; +consistent +! +( +ubiquity_1 +r +" +/ +target +/ +" +) +; +consistent +! +( +ubiquity_2 +r +" +. +DS_Store +" +) +; +consistent +! +( +qasm_0 +r +" +/ +/ +. +* +" +) +; +consistent +! +( +drill_0 +r +" +\ +{ +\ +{ +* +( +[ +a +- +z +\ +. +_ +] ++ +) +* +\ +} +\ +} +" +) +; +consistent +! +( +queryst_0 +r +" +^ +( +[ +^ +\ +] +\ +[ +] ++ +) +" +) +; +consistent +! +( +queryst_1 +r +" +( +\ +[ +[ +^ +\ +] +\ +[ +] +* +\ +] +) +" +) +; +consistent +! +( +qui_vive_0 +r +" +^ +/ +( +\ +w ++ +) +" +) +; +consistent +! +( +qui_vive_1 +r +" +^ +/ +key +" +) +; +consistent +! +( +qui_vive_2 +r +" +^ +/ +key +/ +( +\ +w ++ +) +" +) +; +consistent +! +( +qui_vive_3 +r +" +^ +/ +url +" +) +; +consistent +! +( +qui_vive_4 +r +" +^ +/ +url +/ +( +\ +w ++ +) +" +) +; +consistent +! +( +qui_vive_5 +r +" +^ +/ +inv +" +) +; +consistent +! +( +qui_vive_6 +r +" +^ +/ +inv +/ +( +\ +w ++ +) +" +) +; +consistent +! +( +substudy_0 +r +" +^ +( +\ +d ++ +) +/ +( +\ +d ++ +) +" +) +; +consistent +! +( +substudy_1 +r +" +\ +s ++ +" +) +; +consistent +! +( +substudy_2 +r +" +< +[ +a +- +z +/ +] +[ +^ +> +] +* +> +" +) +; +consistent +! +( +substudy_3 +r +" +( +\ +( +[ +^ +) +] +* +\ +) +| +[ +^ +] +* +| +[ +A +- +Z +] +{ +2 +} +? +: +) +" +) +; +consistent +! +( +substudy_4 +r +" +\ +s ++ +" +) +; +consistent +! +( +isbnid_0 +r +" +^ +( +\ +d +( +- +| +) +? +) +{ +9 +} +( +x +| +X +| +\ +d +| +( +\ +d +( +- +| +) +? +) +{ +3 +} +\ +d +) +" +) +; +consistent +! +( +isbnid_1 +r +" +[ +^ +0 +- +9X +] +" +) +; +consistent +! +( +ispc_0 +r +" +Intel +\ +( +r +\ +) +SPMD +Program +Compiler +\ +( +ispc +\ +) +( +\ +d ++ +\ +. +\ +d ++ +\ +. +\ +d ++ +) +" +) +; diff --git a/third_party/rust/regex/tests/crazy.rs b/third_party/rust/regex/tests/crazy.rs new file mode 100644 index 0000000000000..f7877192367a9 --- /dev/null +++ b/third_party/rust/regex/tests/crazy.rs @@ -0,0 +1,3879 @@ +mat +! +( +ascii_literal +r +" +a +" +" +a +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_ranges +r +" +( +? +- +u +) +\ +b +( +? +: +[ +0 +- +9 +] +| +[ +1 +- +9 +] +[ +0 +- +9 +] +| +1 +[ +0 +- +9 +] +[ +0 +- +9 +] +| +2 +[ +0 +- +4 +] +[ +0 +- +9 +] +| +25 +[ +0 +- +5 +] +) +\ +b +" +" +num +: +255 +" +Some +( +( +5 +8 +) +) +) +; +mat +! +( +match_ranges_not +r +" +( +? +- +u +) +\ +b +( +? +: +[ +0 +- +9 +] +| +[ +1 +- +9 +] +[ +0 +- +9 +] +| +1 +[ +0 +- +9 +] +[ +0 +- +9 +] +| +2 +[ +0 +- +4 +] +[ +0 +- +9 +] +| +25 +[ +0 +- +5 +] +) +\ +b +" +" +num +: +256 +" +None +) +; +mat +! +( +match_float1 +r +" +[ +- ++ +] +? +[ +0 +- +9 +] +* +\ +. +? +[ +0 +- +9 +] ++ +" +" +0 +. +1 +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_float2 +r +" +[ +- ++ +] +? +[ +0 +- +9 +] +* +\ +. +? +[ +0 +- +9 +] ++ +" +" +0 +. +1 +. +2 +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_float3 +r +" +[ +- ++ +] +? +[ +0 +- +9 +] +* +\ +. +? +[ +0 +- +9 +] ++ +" +" +a1 +. +2 +" +Some +( +( +1 +4 +) +) +) +; +mat +! +( +match_float4 +r +" +^ +[ +- ++ +] +? +[ +0 +- +9 +] +* +\ +. +? +[ +0 +- +9 +] ++ +" +" +1 +. +a +" +None +) +; +mat +! +( +match_email +r +" +( +? +i +- +u +) +\ +b +[ +A +- +Z0 +- +9 +. +_ +% ++ +- +] ++ +[ +A +- +Z0 +- +9 +. +- +] ++ +\ +. +[ +A +- +Z +] +{ +2 +4 +} +\ +b +" +" +mine +is +jam +. +slam +gmail +. +com +" +Some +( +( +8 +26 +) +) +) +; +mat +! +( +match_email_not +r +" +( +? +i +- +u +) +\ +b +[ +A +- +Z0 +- +9 +. +_ +% ++ +- +] ++ +[ +A +- +Z0 +- +9 +. +- +] ++ +\ +. +[ +A +- +Z +] +{ +2 +4 +} +\ +b +" +" +mine +is +jam +. +slam +gmail +" +None +) +; +mat +! +( +match_email_big +r +" +[ +a +- +z0 +- +9 +! +# +% +& +' +* ++ +/ += +? +^ +_ +{ +| +} +~ +- +] ++ +( +? +: +\ +. +[ +a +- +z0 +- +9 +! +# +% +& +' +* ++ +/ += +? +^ +_ +{ +| +} +~ +- +] ++ +) +* +( +? +: +[ +a +- +z0 +- +9 +] +( +? +: +[ +a +- +z0 +- +9 +- +] +* +[ +a +- +z0 +- +9 +] +) +? +\ +. +) ++ +[ +a +- +z0 +- +9 +] +( +? +: +[ +a +- +z0 +- +9 +- +] +* +[ +a +- +z0 +- +9 +] +) +? +" +" +mine +is +jam +. +slam +gmail +. +com +" +Some +( +( +8 +26 +) +) +) +; +mat +! +( +match_date1 +r +" +( +? +- +u +) +^ +( +19 +| +20 +) +\ +d +\ +d +[ +- +/ +. +] +( +0 +[ +1 +- +9 +] +| +1 +[ +012 +] +) +[ +- +/ +. +] +( +0 +[ +1 +- +9 +] +| +[ +12 +] +[ +0 +- +9 +] +| +3 +[ +01 +] +) +" +" +1900 +- +01 +- +01 +" +Some +( +( +0 +10 +) +) +) +; +mat +! +( +match_date2 +r +" +( +? +- +u +) +^ +( +19 +| +20 +) +\ +d +\ +d +[ +- +/ +. +] +( +0 +[ +1 +- +9 +] +| +1 +[ +012 +] +) +[ +- +/ +. +] +( +0 +[ +1 +- +9 +] +| +[ +12 +] +[ +0 +- +9 +] +| +3 +[ +01 +] +) +" +" +1900 +- +00 +- +01 +" +None +) +; +mat +! +( +match_date3 +r +" +( +? +- +u +) +^ +( +19 +| +20 +) +\ +d +\ +d +[ +- +/ +. +] +( +0 +[ +1 +- +9 +] +| +1 +[ +012 +] +) +[ +- +/ +. +] +( +0 +[ +1 +- +9 +] +| +[ +12 +] +[ +0 +- +9 +] +| +3 +[ +01 +] +) +" +" +1900 +- +13 +- +01 +" +None +) +; +matiter +! +( +match_start_end_empty +r +" +^ +" +" +" +( +0 +0 +) +) +; +matiter +! +( +match_start_end_empty_many_1 +r +" +^ +^ +^ +" +" +" +( +0 +0 +) +) +; +matiter +! +( +match_start_end_empty_many_2 +r +" +^ +^ +^ +" +" +" +( +0 +0 +) +) +; +matiter +! +( +match_start_end_empty_rev +r +" +^ +" +" +" +( +0 +0 +) +) +; +matiter +! +( +match_start_end_empty_rep +r +" +( +? +: +^ +) +* +" +" +a +\ +nb +\ +nc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +5 +) +) +; +matiter +! +( +match_start_end_empty_rep_rev +r +" +( +? +: +^ +) +* +" +" +a +\ +nb +\ +nc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +5 +) +) +; +mat +! +( +negclass_letters +r +" +[ +^ +ac +] +" +" +acx +" +Some +( +( +2 +3 +) +) +) +; +mat +! +( +negclass_letter_comma +r +" +[ +^ +a +] +" +" +a +x +" +Some +( +( +2 +3 +) +) +) +; +mat +! +( +negclass_letter_space +r +" +[ +^ +a +[ +: +space +: +] +] +" +" +a +x +" +Some +( +( +2 +3 +) +) +) +; +mat +! +( +negclass_comma +r +" +[ +^ +] +" +" +x +" +Some +( +( +2 +3 +) +) +) +; +mat +! +( +negclass_space +r +" +[ +^ +[ +: +space +: +] +] +" +" +a +" +Some +( +( +1 +2 +) +) +) +; +mat +! +( +negclass_space_comma +r +" +[ +^ +[ +: +space +: +] +] +" +" +a +" +Some +( +( +2 +3 +) +) +) +; +mat +! +( +negclass_comma_space +r +" +[ +^ +[ +: +space +: +] +] +" +" +a +" +Some +( +( +2 +3 +) +) +) +; +mat +! +( +negclass_ascii +r +" +[ +^ +[ +: +alpha +: +] +Z +] +" +" +A1 +" +Some +( +( +1 +2 +) +) +) +; +mat +! +( +lazy_many_many +r +" +( +( +? +: +. +* +) +* +? +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +lazy_many_optional +r +" +( +( +? +: +. +? +) +* +? +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +lazy_one_many_many +r +" +( +( +? +: +. +* +) ++ +? +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +lazy_one_many_optional +r +" +( +( +? +: +. +? +) ++ +? +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +lazy_range_min_many +r +" +( +( +? +: +. +* +) +{ +1 +} +? +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +lazy_range_many +r +" +( +( +? +: +. +* +) +{ +1 +2 +} +? +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +greedy_many_many +r +" +( +( +? +: +. +* +) +* +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +greedy_many_optional +r +" +( +( +? +: +. +? +) +* +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +greedy_one_many_many +r +" +( +( +? +: +. +* +) ++ +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +greedy_one_many_optional +r +" +( +( +? +: +. +? +) ++ +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +greedy_range_min_many +r +" +( +( +? +: +. +* +) +{ +1 +} +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +greedy_range_many +r +" +( +( +? +: +. +* +) +{ +1 +2 +} +) += +" +" +a += +b +" +Some +( +( +0 +2 +) +) +) +; +matiter +! +( +match_empty1 +r +" +" +" +" +( +0 +0 +) +) +; +matiter +! +( +match_empty2 +r +" +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty3 +r +" +( +) +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty4 +r +" +( +) +* +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty5 +r +" +( +) ++ +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty6 +r +" +( +) +? +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty7 +r +" +( +) +( +) +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty8 +r +" +( +) ++ +| +z +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty9 +r +" +z +| +( +) ++ +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty10 +r +" +( +) ++ +| +b +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty11 +r +" +b +| +( +) ++ +" +" +abc +" +( +0 +0 +) +( +1 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty12 +r +" +| +b +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty13 +r +" +b +| +" +" +abc +" +( +0 +0 +) +( +1 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty14 +r +" +| +z +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty15 +r +" +z +| +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty16 +r +" +| +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty17 +r +" +| +| +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty18 +r +" +| +| +z +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty19 +r +" +( +? +: +) +| +b +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty20 +r +" +b +| +( +? +: +) +" +" +abc +" +( +0 +0 +) +( +1 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty21 +r +" +( +? +: +| +) +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty22 +r +" +( +? +: +| +) +| +z +" +" +abc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +) +; +matiter +! +( +match_empty23 +r +" +a +( +? +: +) +| +b +" +" +abc +" +( +0 +1 +) +( +1 +2 +) +) +; +# +[ +test +] +fn +dfa_handles_pathological_case +( +) +{ +fn +ones_and_zeroes +( +count +: +usize +) +- +> +String +{ +use +rand +: +: +rngs +: +: +SmallRng +; +use +rand +: +: +{ +Rng +SeedableRng +} +; +let +mut +rng += +SmallRng +: +: +from_entropy +( +) +; +let +mut +s += +String +: +: +new +( +) +; +for +_ +in +0 +. +. +count +{ +if +rng +. +gen +( +) +{ +s +. +push +( +' +1 +' +) +; +} +else +{ +s +. +push +( +' +0 +' +) +; +} +} +s +} +let +re += +regex +! +( +r +" +[ +01 +] +* +1 +[ +01 +] +{ +20 +} +" +) +; +let +text += +{ +let +mut +pieces += +ones_and_zeroes +( +100_000 +) +; +pieces +. +push +( +' +1 +' +) +; +pieces +. +push_str +( +& +ones_and_zeroes +( +20 +) +) +; +pieces +} +; +assert +! +( +re +. +is_match +( +text +! +( +& +* +text +) +) +) +; +} +# +[ +test +] +fn +nest_limit_makes_it_parse +( +) +{ +use +regex +: +: +RegexBuilder +; +RegexBuilder +: +: +new +( +r +# +" +( +? +- +u +) +2 +( +? +: +[ +45 +] +\ +d +{ +3 +} +| +7 +( +? +: +1 +[ +0 +- +267 +] +| +2 +[ +0 +- +289 +] +| +3 +[ +0 +- +29 +] +| +4 +[ +01 +] +| +5 +[ +1 +- +3 +] +| +6 +[ +013 +] +| +7 +[ +0178 +] +| +91 +) +| +8 +( +? +: +0 +[ +125 +] +| +[ +139 +] +[ +1 +- +6 +] +| +2 +[ +0157 +- +9 +] +| +41 +| +6 +[ +1 +- +35 +] +| +7 +[ +1 +- +5 +] +| +8 +[ +1 +- +8 +] +| +90 +) +| +9 +( +? +: +0 +[ +0 +- +2 +] +| +1 +[ +0 +- +4 +] +| +2 +[ +568 +] +| +3 +[ +3 +- +6 +] +| +5 +[ +5 +- +7 +] +| +6 +[ +0167 +] +| +7 +[ +15 +] +| +8 +[ +0146 +- +9 +] +) +) +\ +d +{ +4 +} +| +3 +( +? +: +12 +? +[ +5 +- +7 +] +\ +d +{ +2 +} +| +0 +( +? +: +2 +( +? +: +[ +025 +- +79 +] +\ +d +| +[ +348 +] +\ +d +{ +1 +2 +} +) +| +3 +( +? +: +[ +2 +- +4 +] +\ +d +| +[ +56 +] +\ +d +? +) +) +| +2 +( +? +: +1 +\ +d +{ +2 +} +| +2 +( +? +: +[ +12 +] +\ +d +| +[ +35 +] +\ +d +{ +1 +2 +} +| +4 +\ +d +? +) +) +| +3 +( +? +: +1 +\ +d +{ +2 +} +| +2 +( +? +: +[ +2356 +] +\ +d +| +4 +\ +d +{ +1 +2 +} +) +) +| +4 +( +? +: +1 +\ +d +{ +2 +} +| +2 +( +? +: +2 +\ +d +{ +1 +2 +} +| +[ +47 +] +| +5 +\ +d +{ +2 +} +) +) +| +5 +( +? +: +1 +\ +d +{ +2 +} +| +29 +) +| +[ +67 +] +1 +\ +d +{ +2 +} +| +8 +( +? +: +1 +\ +d +{ +2 +} +| +2 +( +? +: +2 +\ +d +{ +2 +} +| +3 +| +4 +\ +d +) +) +) +\ +d +{ +3 +} +| +4 +( +? +: +0 +( +? +: +2 +( +? +: +[ +09 +] +\ +d +| +7 +) +| +33 +\ +d +{ +2 +} +) +| +1 +\ +d +{ +3 +} +| +2 +( +? +: +1 +\ +d +{ +2 +} +| +2 +( +? +: +[ +25 +] +\ +d +? +| +[ +348 +] +\ +d +| +[ +67 +] +\ +d +{ +1 +2 +} +) +) +| +3 +( +? +: +1 +\ +d +{ +2 +} +( +? +: +\ +d +{ +2 +} +) +? +| +2 +( +? +: +[ +045 +] +\ +d +| +[ +236 +- +9 +] +\ +d +{ +1 +2 +} +) +| +32 +\ +d +{ +2 +} +) +| +4 +( +? +: +[ +18 +] +\ +d +{ +2 +} +| +2 +( +? +: +[ +2 +- +46 +] +\ +d +{ +2 +} +| +3 +) +| +5 +[ +25 +] +\ +d +{ +2 +} +) +| +5 +( +? +: +1 +\ +d +{ +2 +} +| +2 +( +? +: +3 +\ +d +| +5 +) +) +| +6 +( +? +: +[ +18 +] +\ +d +{ +2 +} +| +2 +( +? +: +3 +( +? +: +\ +d +{ +2 +} +) +? +| +[ +46 +] +\ +d +{ +1 +2 +} +| +5 +\ +d +{ +2 +} +| +7 +\ +d +) +| +5 +( +? +: +3 +\ +d +? +| +4 +\ +d +| +[ +57 +] +\ +d +{ +1 +2 +} +| +6 +\ +d +{ +2 +} +| +8 +) +) +| +71 +\ +d +{ +2 +} +| +8 +( +? +: +[ +18 +] +\ +d +{ +2 +} +| +23 +\ +d +{ +2 +} +| +54 +\ +d +{ +2 +} +) +| +9 +( +? +: +[ +18 +] +\ +d +{ +2 +} +| +2 +[ +2 +- +5 +] +\ +d +{ +2 +} +| +53 +\ +d +{ +1 +2 +} +) +) +\ +d +{ +3 +} +| +5 +( +? +: +02 +[ +03489 +] +\ +d +{ +2 +} +| +1 +\ +d +{ +2 +} +| +2 +( +? +: +1 +\ +d +{ +2 +} +| +2 +( +? +: +2 +( +? +: +\ +d +{ +2 +} +) +? +| +[ +457 +] +\ +d +{ +2 +} +) +) +| +3 +( +? +: +1 +\ +d +{ +2 +} +| +2 +( +? +: +[ +37 +] +( +? +: +\ +d +{ +2 +} +) +? +| +[ +569 +] +\ +d +{ +2 +} +) +) +| +4 +( +? +: +1 +\ +d +{ +2 +} +| +2 +[ +46 +] +\ +d +{ +2 +} +) +| +5 +( +? +: +1 +\ +d +{ +2 +} +| +26 +\ +d +{ +1 +2 +} +) +| +6 +( +? +: +[ +18 +] +\ +d +{ +2 +} +| +2 +| +53 +\ +d +{ +2 +} +) +| +7 +( +? +: +1 +| +24 +) +\ +d +{ +2 +} +| +8 +( +? +: +1 +| +26 +) +\ +d +{ +2 +} +| +91 +\ +d +{ +2 +} +) +\ +d +{ +3 +} +| +6 +( +? +: +0 +( +? +: +1 +\ +d +{ +2 +} +| +2 +( +? +: +3 +\ +d +{ +2 +} +| +4 +\ +d +{ +1 +2 +} +) +) +| +2 +( +? +: +2 +[ +2 +- +5 +] +\ +d +{ +2 +} +| +5 +( +? +: +[ +3 +- +5 +] +\ +d +{ +2 +} +| +7 +) +| +8 +\ +d +{ +2 +} +) +| +3 +( +? +: +1 +| +2 +[ +3478 +] +) +\ +d +{ +2 +} +| +4 +( +? +: +1 +| +2 +[ +34 +] +) +\ +d +{ +2 +} +| +5 +( +? +: +1 +| +2 +[ +47 +] +) +\ +d +{ +2 +} +| +6 +( +? +: +[ +18 +] +\ +d +{ +2 +} +| +6 +( +? +: +2 +( +? +: +2 +\ +d +| +[ +34 +] +\ +d +{ +2 +} +) +| +5 +( +? +: +[ +24 +] +\ +d +{ +2 +} +| +3 +\ +d +| +5 +\ +d +{ +1 +2 +} +) +) +) +| +72 +[ +2 +- +5 +] +\ +d +{ +2 +} +| +8 +( +? +: +1 +\ +d +{ +2 +} +| +2 +[ +2 +- +5 +] +\ +d +{ +2 +} +) +| +9 +( +? +: +1 +\ +d +{ +2 +} +| +2 +[ +2 +- +6 +] +\ +d +{ +2 +} +) +) +\ +d +{ +3 +} +| +7 +( +? +: +( +? +: +02 +| +[ +3 +- +589 +] +1 +| +6 +[ +12 +] +| +72 +[ +24 +] +) +\ +d +{ +2 +} +| +21 +\ +d +{ +3 +} +| +32 +) +\ +d +{ +3 +} +| +8 +( +? +: +( +? +: +4 +[ +12 +] +| +[ +5 +- +7 +] +2 +| +1 +\ +d +? +) +| +( +? +: +0 +| +3 +[ +12 +] +| +[ +5 +- +7 +] +1 +| +217 +) +\ +d +) +\ +d +{ +4 +} +| +9 +( +? +: +[ +35 +] +1 +| +( +? +: +[ +024 +] +2 +| +81 +) +\ +d +| +( +? +: +1 +| +[ +24 +] +1 +) +\ +d +{ +2 +} +) +\ +d +{ +3 +} +" +# +) +. +build +( +) +. +unwrap +( +) +; +} diff --git a/third_party/rust/regex/tests/flags.rs b/third_party/rust/regex/tests/flags.rs new file mode 100644 index 0000000000000..5015401ba8dda --- /dev/null +++ b/third_party/rust/regex/tests/flags.rs @@ -0,0 +1,392 @@ +mat +! +( +match_flag_case +" +( +? +- +u +) +( +? +i +) +abc +" +" +ABC +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_flag_weird_case +" +( +? +- +u +) +( +? +i +) +a +( +? +- +i +) +bc +" +" +Abc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_flag_weird_case_not +" +( +? +- +u +) +( +? +i +) +a +( +? +- +i +) +bc +" +" +ABC +" +None +) +; +mat +! +( +match_flag_case_dotnl +" +( +? +- +u +) +( +? +is +) +a +( +? +u +: +. +) +" +" +A +\ +n +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_flag_case_dotnl_toggle +" +( +? +- +u +) +( +? +is +) +a +( +? +u +: +. +) +( +? +- +is +) +a +( +? +u +: +. +) +" +" +A +\ +nab +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_flag_case_dotnl_toggle_not +" +( +? +- +u +) +( +? +is +) +a +( +? +u +: +. +) +( +? +- +is +) +a +( +? +u +: +. +) +" +" +A +\ +na +\ +n +" +None +) +; +mat +! +( +match_flag_case_dotnl_toggle_ok +" +( +? +- +u +) +( +? +is +) +a +( +? +u +: +. +) +( +? +- +is +: +a +( +? +u +: +. +) +) +? +" +" +A +\ +na +\ +n +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_flag_multi +r +" +( +? +- +u +) +( +? +m +) +( +? +: +^ +\ +d ++ +\ +n +? +) ++ +" +" +123 +\ +n456 +\ +n789 +" +Some +( +( +0 +11 +) +) +) +; +mat +! +( +match_flag_ungreedy +" +( +? +U +) +a ++ +" +" +aa +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_flag_ungreedy_greedy +" +( +? +U +) +a ++ +? +" +" +aa +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_flag_ungreedy_noop +" +( +? +U +) +( +? +- +U +) +a ++ +" +" +aa +" +Some +( +( +0 +2 +) +) +) +; diff --git a/third_party/rust/regex/tests/fowler.rs b/third_party/rust/regex/tests/fowler.rs new file mode 100644 index 0000000000000..c135c874d6b84 --- /dev/null +++ b/third_party/rust/regex/tests/fowler.rs @@ -0,0 +1,13854 @@ +mat +! +( +match_basic_3 +r +" +abracadabra +" +r +" +abracadabracadabra +" +Some +( +( +7 +18 +) +) +) +; +mat +! +( +match_basic_4 +r +" +a +. +. +. +b +" +r +" +abababbb +" +Some +( +( +2 +7 +) +) +) +; +mat +! +( +match_basic_5 +r +" +XXXXXX +" +r +" +. +. +XXXXXX +" +Some +( +( +2 +8 +) +) +) +; +mat +! +( +match_basic_6 +r +" +\ +) +" +r +" +( +) +" +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_7 +r +" +a +] +" +r +" +a +] +a +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_9 +r +" +\ +} +" +r +" +} +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_10 +r +" +\ +] +" +r +" +] +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_12 +r +" +] +" +r +" +] +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_15 +r +" +^ +a +" +r +" +ax +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_16 +r +" +\ +^ +a +" +r +" +a +^ +a +" +Some +( +( +1 +3 +) +) +) +; +mat +! +( +match_basic_17 +r +" +a +\ +^ +" +r +" +a +^ +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_18 +r +" +a +" +r +" +aa +" +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_19 +r +" +a +\ +" +r +" +a +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_20 +r +" +^ +" +r +" +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_basic_21 +r +" +^ +" +r +" +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_basic_22 +r +" +a +( +) +" +r +" +aa +" +Some +( +( +1 +2 +) +) +Some +( +( +2 +2 +) +) +) +; +mat +! +( +match_basic_23 +r +" +a +* +( +^ +a +) +" +r +" +aa +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_24 +r +" +( +. +. +) +* +( +. +. +. +) +* +" +r +" +a +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_basic_25 +r +" +( +. +. +) +* +( +. +. +. +) +* +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +Some +( +( +2 +4 +) +) +) +; +mat +! +( +match_basic_26 +r +" +( +ab +| +a +) +( +bc +| +c +) +" +r +" +abc +" +Some +( +( +0 +3 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +2 +3 +) +) +) +; +mat +! +( +match_basic_27 +r +" +( +ab +) +c +| +abc +" +r +" +abc +" +Some +( +( +0 +3 +) +) +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_28 +r +" +a +{ +0 +} +b +" +r +" +ab +" +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_29 +r +" +( +a +* +) +( +b +? +) +( +b ++ +) +b +{ +3 +} +" +r +" +aaabbbbbbb +" +Some +( +( +0 +10 +) +) +Some +( +( +0 +3 +) +) +Some +( +( +3 +4 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_30 +r +" +( +a +* +) +( +b +{ +0 +1 +} +) +( +b +{ +1 +} +) +b +{ +3 +} +" +r +" +aaabbbbbbb +" +Some +( +( +0 +10 +) +) +Some +( +( +0 +3 +) +) +Some +( +( +3 +4 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_32 +r +" +( +( +a +| +a +) +| +a +) +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_33 +r +" +( +a +* +) +( +a +| +aa +) +" +r +" +aaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +3 +) +) +Some +( +( +3 +4 +) +) +) +; +mat +! +( +match_basic_34 +r +" +a +* +( +a +. +| +aa +) +" +r +" +aaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +2 +4 +) +) +) +; +mat +! +( +match_basic_35 +r +" +a +( +b +) +| +c +( +d +) +| +a +( +e +) +f +" +r +" +aef +" +Some +( +( +0 +3 +) +) +None +None +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_36 +r +" +( +a +| +b +) +? +. +* +" +r +" +b +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_37 +r +" +( +a +| +b +) +c +| +a +( +b +| +c +) +" +r +" +ac +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_38 +r +" +( +a +| +b +) +c +| +a +( +b +| +c +) +" +r +" +ab +" +Some +( +( +0 +2 +) +) +None +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_39 +r +" +( +a +| +b +) +* +c +| +( +a +| +ab +) +* +c +" +r +" +abc +" +Some +( +( +0 +3 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_40 +r +" +( +a +| +b +) +* +c +| +( +a +| +ab +) +* +c +" +r +" +xc +" +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_41 +r +" +( +. +a +| +. +b +) +. +* +| +. +* +( +. +a +| +. +b +) +" +r +" +xa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_42 +r +" +a +? +( +ab +| +ba +) +ab +" +r +" +abab +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_43 +r +" +a +? +( +ac +{ +0 +} +b +| +ba +) +ab +" +r +" +abab +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_44 +r +" +ab +| +abab +" +r +" +abbabab +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_45 +r +" +aba +| +bab +| +bba +" +r +" +baaabbbaba +" +Some +( +( +5 +8 +) +) +) +; +mat +! +( +match_basic_46 +r +" +aba +| +bab +" +r +" +baaabbbaba +" +Some +( +( +6 +9 +) +) +) +; +mat +! +( +match_basic_47 +r +" +( +aa +| +aaa +) +* +| +( +a +| +aaaaa +) +" +r +" +aa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_48 +r +" +( +a +. +| +. +a +. +) +* +| +( +a +| +. +a +. +. +. +) +" +r +" +aa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_49 +r +" +ab +| +a +" +r +" +xabc +" +Some +( +( +1 +3 +) +) +) +; +mat +! +( +match_basic_50 +r +" +ab +| +a +" +r +" +xxabc +" +Some +( +( +2 +4 +) +) +) +; +mat +! +( +match_basic_51 +r +" +( +? +i +) +( +? +- +u +) +( +Ab +| +cD +) +* +" +r +" +aBcD +" +Some +( +( +0 +4 +) +) +Some +( +( +2 +4 +) +) +) +; +mat +! +( +match_basic_52 +r +" +[ +^ +- +] +" +r +" +- +- +a +" +Some +( +( +2 +3 +) +) +) +; +mat +! +( +match_basic_53 +r +" +[ +a +- +] +* +" +r +" +- +- +a +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_54 +r +" +[ +a +- +m +- +] +* +" +r +" +- +- +amoma +- +- +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_55 +r +" +: +: +: +1 +: +: +: +0 +: +| +: +: +: +1 +: +1 +: +0 +: +" +r +" +: +: +: +0 +: +: +: +1 +: +: +: +1 +: +: +: +0 +: +" +Some +( +( +8 +17 +) +) +) +; +mat +! +( +match_basic_56 +r +" +: +: +: +1 +: +: +: +0 +: +| +: +: +: +1 +: +1 +: +1 +: +" +r +" +: +: +: +0 +: +: +: +1 +: +: +: +1 +: +: +: +0 +: +" +Some +( +( +8 +17 +) +) +) +; +mat +! +( +match_basic_57 +r +" +[ +[ +: +upper +: +] +] +" +r +" +A +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_58 +r +" +[ +[ +: +lower +: +] +] ++ +" +r +" +az +{ +" +Some +( +( +1 +3 +) +) +) +; +mat +! +( +match_basic_59 +r +" +[ +[ +: +upper +: +] +] ++ +" +r +" +AZ +[ +" +Some +( +( +1 +3 +) +) +) +; +mat +! +( +match_basic_65 +r +" +" +r +" +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_66 +r +" +" +r +" +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_67 +r +" +[ +^ +a +] +" +r +" +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_68 +r +" +a +" +r +" +a +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_69 +r +" +( +a +) +( +b +) +( +c +) +" +r +" +abc +" +Some +( +( +0 +3 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +2 +) +) +Some +( +( +2 +3 +) +) +) +; +mat +! +( +match_basic_70 +r +" +xxx +" +r +" +xxx +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_71 +r +" +( +^ +| +[ +( +; +] +) +( +( +( +[ +Ff +] +eb +[ +^ +] +* +* +| +0 +* +2 +/ +| +\ +* +* +/ +? +) +0 +* +[ +6 +- +7 +] +) +) +( +[ +^ +0 +- +9 +] +| +) +" +r +" +feb +6 +" +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_basic_72 +r +" +( +^ +| +[ +( +; +] +) +( +( +( +[ +Ff +] +eb +[ +^ +] +* +* +| +0 +* +2 +/ +| +\ +* +* +/ +? +) +0 +* +[ +6 +- +7 +] +) +) +( +[ +^ +0 +- +9 +] +| +) +" +r +" +2 +/ +7 +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_73 +r +" +( +^ +| +[ +( +; +] +) +( +( +( +[ +Ff +] +eb +[ +^ +] +* +* +| +0 +* +2 +/ +| +\ +* +* +/ +? +) +0 +* +[ +6 +- +7 +] +) +) +( +[ +^ +0 +- +9 +] +| +) +" +r +" +feb +1 +Feb +6 +" +Some +( +( +5 +11 +) +) +) +; +mat +! +( +match_basic_74 +r +" +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +x +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +" +r +" +x +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_75 +r +" +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +x +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +) +* +" +r +" +xx +" +Some +( +( +0 +2 +) +) +Some +( +( +1 +2 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_76 +r +" +a +? +( +ab +| +ba +) +* +" +r +" +ababababababababababababababababababababababababababababababababababababababababa +" +Some +( +( +0 +81 +) +) +Some +( +( +79 +81 +) +) +) +; +mat +! +( +match_basic_77 +r +" +abaa +| +abbaa +| +abbbaa +| +abbbbaa +" +r +" +ababbabbbabbbabbbbabbbbaa +" +Some +( +( +18 +25 +) +) +) +; +mat +! +( +match_basic_78 +r +" +abaa +| +abbaa +| +abbbaa +| +abbbbaa +" +r +" +ababbabbbabbbabbbbabaa +" +Some +( +( +18 +22 +) +) +) +; +mat +! +( +match_basic_79 +r +" +aaac +| +aabc +| +abac +| +abbc +| +baac +| +babc +| +bbac +| +bbbc +" +r +" +baaabbbabac +" +Some +( +( +7 +11 +) +) +) +; +mat +! +( +match_basic_80 +r +" +. +* +" +r +" +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_81 +r +" +aaaa +| +bbbb +| +cccc +| +ddddd +| +eeeeee +| +fffffff +| +gggg +| +hhhh +| +iiiii +| +jjjjj +| +kkkkk +| +llll +" +r +" +XaaaXbbbXcccXdddXeeeXfffXgggXhhhXiiiXjjjXkkkXlllXcbaXaaaa +" +Some +( +( +53 +57 +) +) +) +; +mat +! +( +match_basic_83 +r +" +a +* +a +* +a +* +a +* +a +* +b +" +r +" +aaaaaaaaab +" +Some +( +( +0 +10 +) +) +) +; +mat +! +( +match_basic_84 +r +" +^ +" +r +" +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_basic_85 +r +" +" +r +" +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_basic_86 +r +" +^ +" +r +" +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_basic_87 +r +" +^ +a +" +r +" +a +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_88 +r +" +abc +" +r +" +abc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_89 +r +" +abc +" +r +" +xabcy +" +Some +( +( +1 +4 +) +) +) +; +mat +! +( +match_basic_90 +r +" +abc +" +r +" +ababc +" +Some +( +( +2 +5 +) +) +) +; +mat +! +( +match_basic_91 +r +" +ab +* +c +" +r +" +abc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_92 +r +" +ab +* +bc +" +r +" +abc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_93 +r +" +ab +* +bc +" +r +" +abbc +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_94 +r +" +ab +* +bc +" +r +" +abbbbc +" +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_basic_95 +r +" +ab ++ +bc +" +r +" +abbc +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_96 +r +" +ab ++ +bc +" +r +" +abbbbc +" +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_basic_97 +r +" +ab +? +bc +" +r +" +abbc +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_98 +r +" +ab +? +bc +" +r +" +abc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_99 +r +" +ab +? +c +" +r +" +abc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_100 +r +" +^ +abc +" +r +" +abc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_101 +r +" +^ +abc +" +r +" +abcc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_102 +r +" +abc +" +r +" +aabc +" +Some +( +( +1 +4 +) +) +) +; +mat +! +( +match_basic_103 +r +" +^ +" +r +" +abc +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_basic_104 +r +" +" +r +" +abc +" +Some +( +( +3 +3 +) +) +) +; +mat +! +( +match_basic_105 +r +" +a +. +c +" +r +" +abc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_106 +r +" +a +. +c +" +r +" +axc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_107 +r +" +a +. +* +c +" +r +" +axyzc +" +Some +( +( +0 +5 +) +) +) +; +mat +! +( +match_basic_108 +r +" +a +[ +bc +] +d +" +r +" +abd +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_109 +r +" +a +[ +b +- +d +] +e +" +r +" +ace +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_110 +r +" +a +[ +b +- +d +] +" +r +" +aac +" +Some +( +( +1 +3 +) +) +) +; +mat +! +( +match_basic_111 +r +" +a +[ +- +b +] +" +r +" +a +- +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_112 +r +" +a +[ +b +- +] +" +r +" +a +- +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_113 +r +" +a +] +" +r +" +a +] +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_114 +r +" +a +[ +] +] +b +" +r +" +a +] +b +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_115 +r +" +a +[ +^ +bc +] +d +" +r +" +aed +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_116 +r +" +a +[ +^ +- +b +] +c +" +r +" +adc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_117 +r +" +a +[ +^ +] +b +] +c +" +r +" +adc +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_118 +r +" +ab +| +cd +" +r +" +abc +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_119 +r +" +ab +| +cd +" +r +" +abcd +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_120 +r +" +a +\ +( +b +" +r +" +a +( +b +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_121 +r +" +a +\ +( +* +b +" +r +" +ab +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_122 +r +" +a +\ +( +* +b +" +r +" +a +( +( +b +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_123 +r +" +( +( +a +) +) +" +r +" +abc +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_124 +r +" +( +a +) +b +( +c +) +" +r +" +abc +" +Some +( +( +0 +3 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +2 +3 +) +) +) +; +mat +! +( +match_basic_125 +r +" +a ++ +b ++ +c +" +r +" +aabbabc +" +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_126 +r +" +a +* +" +r +" +aaa +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_128 +r +" +( +a +* +) +* +" +r +" +- +" +Some +( +( +0 +0 +) +) +None +) +; +mat +! +( +match_basic_129 +r +" +( +a +* +) ++ +" +r +" +- +" +Some +( +( +0 +0 +) +) +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_basic_131 +r +" +( +a +* +| +b +) +* +" +r +" +- +" +Some +( +( +0 +0 +) +) +None +) +; +mat +! +( +match_basic_132 +r +" +( +a ++ +| +b +) +* +" +r +" +ab +" +Some +( +( +0 +2 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_133 +r +" +( +a ++ +| +b +) ++ +" +r +" +ab +" +Some +( +( +0 +2 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_134 +r +" +( +a ++ +| +b +) +? +" +r +" +ab +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_135 +r +" +[ +^ +ab +] +* +" +r +" +cde +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_137 +r +" +( +^ +) +* +" +r +" +- +" +Some +( +( +0 +0 +) +) +None +) +; +mat +! +( +match_basic_138 +r +" +a +* +" +r +" +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_basic_139 +r +" +( +[ +abc +] +) +* +d +" +r +" +abbbcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +) +; +mat +! +( +match_basic_140 +r +" +( +[ +abc +] +) +* +bcd +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_141 +r +" +a +| +b +| +c +| +d +| +e +" +r +" +e +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_142 +r +" +( +a +| +b +| +c +| +d +| +e +) +f +" +r +" +ef +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_144 +r +" +( +( +a +* +| +b +) +) +* +" +r +" +- +" +Some +( +( +0 +0 +) +) +None +None +) +; +mat +! +( +match_basic_145 +r +" +abcd +* +efg +" +r +" +abcdefg +" +Some +( +( +0 +7 +) +) +) +; +mat +! +( +match_basic_146 +r +" +ab +* +" +r +" +xabyabbbz +" +Some +( +( +1 +3 +) +) +) +; +mat +! +( +match_basic_147 +r +" +ab +* +" +r +" +xayabbbz +" +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_148 +r +" +( +ab +| +cd +) +e +" +r +" +abcde +" +Some +( +( +2 +5 +) +) +Some +( +( +2 +4 +) +) +) +; +mat +! +( +match_basic_149 +r +" +[ +abhgefdc +] +ij +" +r +" +hij +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_150 +r +" +( +a +| +b +) +c +* +d +" +r +" +abcd +" +Some +( +( +1 +4 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_151 +r +" +( +ab +| +ab +* +) +bc +" +r +" +abc +" +Some +( +( +0 +3 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_152 +r +" +a +( +[ +bc +] +* +) +c +* +" +r +" +abc +" +Some +( +( +0 +3 +) +) +Some +( +( +1 +3 +) +) +) +; +mat +! +( +match_basic_153 +r +" +a +( +[ +bc +] +* +) +( +c +* +d +) +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +Some +( +( +1 +3 +) +) +Some +( +( +3 +4 +) +) +) +; +mat +! +( +match_basic_154 +r +" +a +( +[ +bc +] ++ +) +( +c +* +d +) +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +Some +( +( +1 +3 +) +) +Some +( +( +3 +4 +) +) +) +; +mat +! +( +match_basic_155 +r +" +a +( +[ +bc +] +* +) +( +c ++ +d +) +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +Some +( +( +1 +2 +) +) +Some +( +( +2 +4 +) +) +) +; +mat +! +( +match_basic_156 +r +" +a +[ +bcd +] +* +dcdcde +" +r +" +adcdcde +" +Some +( +( +0 +7 +) +) +) +; +mat +! +( +match_basic_157 +r +" +( +ab +| +a +) +b +* +c +" +r +" +abc +" +Some +( +( +0 +3 +) +) +Some +( +( +0 +2 +) +) +) +; +mat +! +( +match_basic_158 +r +" +( +( +a +) +( +b +) +c +) +( +d +) +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +3 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +2 +) +) +Some +( +( +3 +4 +) +) +) +; +mat +! +( +match_basic_159 +r +" +[ +A +- +Za +- +z_ +] +[ +A +- +Za +- +z0 +- +9_ +] +* +" +r +" +alpha +" +Some +( +( +0 +5 +) +) +) +; +mat +! +( +match_basic_160 +r +" +^ +a +( +bc ++ +| +b +[ +eh +] +) +g +| +. +h +" +r +" +abh +" +Some +( +( +1 +3 +) +) +) +; +mat +! +( +match_basic_161 +r +" +( +bc ++ +d +| +ef +* +g +. +| +h +? +i +( +j +| +k +) +) +" +r +" +effgz +" +Some +( +( +0 +5 +) +) +Some +( +( +0 +5 +) +) +) +; +mat +! +( +match_basic_162 +r +" +( +bc ++ +d +| +ef +* +g +. +| +h +? +i +( +j +| +k +) +) +" +r +" +ij +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_basic_163 +r +" +( +bc ++ +d +| +ef +* +g +. +| +h +? +i +( +j +| +k +) +) +" +r +" +reffgz +" +Some +( +( +1 +6 +) +) +Some +( +( +1 +6 +) +) +) +; +mat +! +( +match_basic_164 +r +" +( +( +( +( +( +( +( +( +( +a +) +) +) +) +) +) +) +) +) +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_basic_165 +r +" +multiple +words +" +r +" +multiple +words +yeah +" +Some +( +( +0 +14 +) +) +) +; +mat +! +( +match_basic_166 +r +" +( +. +* +) +c +( +. +* +) +" +r +" +abcde +" +Some +( +( +0 +5 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +3 +5 +) +) +) +; +mat +! +( +match_basic_167 +r +" +abcd +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_168 +r +" +a +( +bc +) +d +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +Some +( +( +1 +3 +) +) +) +; +mat +! +( +match_basic_169 +r +" +a +[ +- +] +? +c +" +r +" +a +c +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_170 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Qaddafi +" +Some +( +( +0 +15 +) +) +None +Some +( +( +10 +12 +) +) +) +; +mat +! +( +match_basic_171 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Mo +' +ammar +Gadhafi +" +Some +( +( +0 +16 +) +) +None +Some +( +( +11 +13 +) +) +) +; +mat +! +( +match_basic_172 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Kaddafi +" +Some +( +( +0 +15 +) +) +None +Some +( +( +10 +12 +) +) +) +; +mat +! +( +match_basic_173 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Qadhafi +" +Some +( +( +0 +15 +) +) +None +Some +( +( +10 +12 +) +) +) +; +mat +! +( +match_basic_174 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Gadafi +" +Some +( +( +0 +14 +) +) +None +Some +( +( +10 +11 +) +) +) +; +mat +! +( +match_basic_175 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Mu +' +ammar +Qadafi +" +Some +( +( +0 +15 +) +) +None +Some +( +( +11 +12 +) +) +) +; +mat +! +( +match_basic_176 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Moamar +Gaddafi +" +Some +( +( +0 +14 +) +) +None +Some +( +( +9 +11 +) +) +) +; +mat +! +( +match_basic_177 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Mu +' +ammar +Qadhdhafi +" +Some +( +( +0 +18 +) +) +None +Some +( +( +13 +15 +) +) +) +; +mat +! +( +match_basic_178 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Khaddafi +" +Some +( +( +0 +16 +) +) +None +Some +( +( +11 +13 +) +) +) +; +mat +! +( +match_basic_179 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Ghaddafy +" +Some +( +( +0 +16 +) +) +None +Some +( +( +11 +13 +) +) +) +; +mat +! +( +match_basic_180 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Ghadafi +" +Some +( +( +0 +15 +) +) +None +Some +( +( +11 +12 +) +) +) +; +mat +! +( +match_basic_181 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Ghaddafi +" +Some +( +( +0 +16 +) +) +None +Some +( +( +11 +13 +) +) +) +; +mat +! +( +match_basic_182 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muamar +Kaddafi +" +Some +( +( +0 +14 +) +) +None +Some +( +( +9 +11 +) +) +) +; +mat +! +( +match_basic_183 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Quathafi +" +Some +( +( +0 +16 +) +) +None +Some +( +( +11 +13 +) +) +) +; +mat +! +( +match_basic_184 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Muammar +Gheddafi +" +Some +( +( +0 +16 +) +) +None +Some +( +( +11 +13 +) +) +) +; +mat +! +( +match_basic_185 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Moammar +Khadafy +" +Some +( +( +0 +15 +) +) +None +Some +( +( +11 +12 +) +) +) +; +mat +! +( +match_basic_186 +r +" +M +[ +ou +] +' +? +am ++ +[ +ae +] +r +. +* +( +[ +AEae +] +l +[ +- +] +) +? +[ +GKQ +] +h +? +[ +aeu +] ++ +( +[ +dtz +] +[ +dhz +] +? +) ++ +af +[ +iy +] +" +r +" +Moammar +Qudhafi +" +Some +( +( +0 +15 +) +) +None +Some +( +( +10 +12 +) +) +) +; +mat +! +( +match_basic_187 +r +" +a ++ +( +b +| +c +) +* +d ++ +" +r +" +aabcdd +" +Some +( +( +0 +6 +) +) +Some +( +( +3 +4 +) +) +) +; +mat +! +( +match_basic_188 +r +" +^ +. ++ +" +r +" +vivi +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_189 +r +" +^ +( +. ++ +) +" +r +" +vivi +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_190 +r +" +^ +( +[ +^ +! +. +] ++ +) +. +att +. +com +! +( +. ++ +) +" +r +" +gryphon +. +att +. +com +! +eby +" +Some +( +( +0 +19 +) +) +Some +( +( +0 +7 +) +) +Some +( +( +16 +19 +) +) +) +; +mat +! +( +match_basic_191 +r +" +^ +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +" +r +" +bas +" +Some +( +( +0 +3 +) +) +None +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_192 +r +" +^ +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +" +r +" +bar +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +4 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_193 +r +" +^ +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +" +r +" +foo +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +4 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_194 +r +" +^ +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +" +r +" +foo +! +bar +! +bas +" +Some +( +( +0 +11 +) +) +Some +( +( +4 +8 +) +) +Some +( +( +8 +11 +) +) +) +; +mat +! +( +match_basic_195 +r +" +( +( +foo +) +| +( +bar +) +) +! +bas +" +r +" +bar +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +3 +) +) +None +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_196 +r +" +( +( +foo +) +| +( +bar +) +) +! +bas +" +r +" +foo +! +bar +! +bas +" +Some +( +( +4 +11 +) +) +Some +( +( +4 +7 +) +) +None +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_197 +r +" +( +( +foo +) +| +( +bar +) +) +! +bas +" +r +" +foo +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +3 +) +) +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_198 +r +" +( +( +foo +) +| +bar +) +! +bas +" +r +" +bar +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_199 +r +" +( +( +foo +) +| +bar +) +! +bas +" +r +" +foo +! +bar +! +bas +" +Some +( +( +4 +11 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_200 +r +" +( +( +foo +) +| +bar +) +! +bas +" +r +" +foo +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +3 +) +) +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_201 +r +" +( +foo +| +( +bar +) +) +! +bas +" +r +" +bar +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +3 +) +) +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_202 +r +" +( +foo +| +( +bar +) +) +! +bas +" +r +" +foo +! +bar +! +bas +" +Some +( +( +4 +11 +) +) +Some +( +( +4 +7 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_203 +r +" +( +foo +| +( +bar +) +) +! +bas +" +r +" +foo +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_204 +r +" +( +foo +| +bar +) +! +bas +" +r +" +bar +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_205 +r +" +( +foo +| +bar +) +! +bas +" +r +" +foo +! +bar +! +bas +" +Some +( +( +4 +11 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_206 +r +" +( +foo +| +bar +) +! +bas +" +r +" +foo +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_207 +r +" +^ +( +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +| +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +) +" +r +" +foo +! +bar +! +bas +" +Some +( +( +0 +11 +) +) +Some +( +( +0 +11 +) +) +None +None +Some +( +( +4 +8 +) +) +Some +( +( +8 +11 +) +) +) +; +mat +! +( +match_basic_208 +r +" +^ +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +| +^ +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +" +r +" +bas +" +Some +( +( +0 +3 +) +) +None +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_209 +r +" +^ +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +| +^ +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +" +r +" +bar +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +4 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_210 +r +" +^ +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +| +^ +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +" +r +" +foo +! +bar +! +bas +" +Some +( +( +0 +11 +) +) +None +None +Some +( +( +4 +8 +) +) +Some +( +( +8 +11 +) +) +) +; +mat +! +( +match_basic_211 +r +" +^ +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +| +^ +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +" +r +" +foo +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +4 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_212 +r +" +^ +( +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +| +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +) +" +r +" +bas +" +Some +( +( +0 +3 +) +) +Some +( +( +0 +3 +) +) +None +Some +( +( +0 +3 +) +) +) +; +mat +! +( +match_basic_213 +r +" +^ +( +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +| +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +) +" +r +" +bar +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +7 +) +) +Some +( +( +0 +4 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_214 +r +" +^ +( +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +| +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +) +" +r +" +foo +! +bar +! +bas +" +Some +( +( +0 +11 +) +) +Some +( +( +0 +11 +) +) +None +None +Some +( +( +4 +8 +) +) +Some +( +( +8 +11 +) +) +) +; +mat +! +( +match_basic_215 +r +" +^ +( +( +[ +^ +! +] ++ +! +) +? +( +[ +^ +! +] ++ +) +| +. ++ +! +( +[ +^ +! +] ++ +! +) +( +[ +^ +! +] ++ +) +) +" +r +" +foo +! +bas +" +Some +( +( +0 +7 +) +) +Some +( +( +0 +7 +) +) +Some +( +( +0 +4 +) +) +Some +( +( +4 +7 +) +) +) +; +mat +! +( +match_basic_216 +r +" +. +* +( +/ +XXX +) +. +* +" +r +" +/ +XXX +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_217 +r +" +. +* +( +\ +\ +XXX +) +. +* +" +r +" +\ +XXX +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_218 +r +" +\ +\ +XXX +" +r +" +\ +XXX +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_219 +r +" +. +* +( +/ +000 +) +. +* +" +r +" +/ +000 +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_220 +r +" +. +* +( +\ +\ +000 +) +. +* +" +r +" +\ +000 +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_basic_221 +r +" +\ +\ +000 +" +r +" +\ +000 +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +match_nullsubexpr_3 +r +" +( +a +* +) +* +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_5 +r +" +( +a +* +) +* +" +r +" +x +" +Some +( +( +0 +0 +) +) +None +) +; +mat +! +( +match_nullsubexpr_6 +r +" +( +a +* +) +* +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_7 +r +" +( +a +* +) +* +" +r +" +aaaaaax +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_8 +r +" +( +a +* +) ++ +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_9 +r +" +( +a +* +) ++ +" +r +" +x +" +Some +( +( +0 +0 +) +) +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_nullsubexpr_10 +r +" +( +a +* +) ++ +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_11 +r +" +( +a +* +) ++ +" +r +" +aaaaaax +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_12 +r +" +( +a ++ +) +* +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_13 +r +" +( +a ++ +) +* +" +r +" +x +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_nullsubexpr_14 +r +" +( +a ++ +) +* +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_15 +r +" +( +a ++ +) +* +" +r +" +aaaaaax +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_16 +r +" +( +a ++ +) ++ +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_17 +r +" +( +a ++ +) ++ +" +r +" +x +" +None +) +; +mat +! +( +match_nullsubexpr_18 +r +" +( +a ++ +) ++ +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_19 +r +" +( +a ++ +) ++ +" +r +" +aaaaaax +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_21 +r +" +( +[ +a +] +* +) +* +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_23 +r +" +( +[ +a +] +* +) +* +" +r +" +x +" +Some +( +( +0 +0 +) +) +None +) +; +mat +! +( +match_nullsubexpr_24 +r +" +( +[ +a +] +* +) +* +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_25 +r +" +( +[ +a +] +* +) +* +" +r +" +aaaaaax +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_26 +r +" +( +[ +a +] +* +) ++ +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_27 +r +" +( +[ +a +] +* +) ++ +" +r +" +x +" +Some +( +( +0 +0 +) +) +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_nullsubexpr_28 +r +" +( +[ +a +] +* +) ++ +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_29 +r +" +( +[ +a +] +* +) ++ +" +r +" +aaaaaax +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_30 +r +" +( +[ +^ +b +] +* +) +* +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_32 +r +" +( +[ +^ +b +] +* +) +* +" +r +" +b +" +Some +( +( +0 +0 +) +) +None +) +; +mat +! +( +match_nullsubexpr_33 +r +" +( +[ +^ +b +] +* +) +* +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_34 +r +" +( +[ +^ +b +] +* +) +* +" +r +" +aaaaaab +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_35 +r +" +( +[ +ab +] +* +) +* +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_36 +r +" +( +[ +ab +] +* +) +* +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_37 +r +" +( +[ +ab +] +* +) +* +" +r +" +ababab +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_38 +r +" +( +[ +ab +] +* +) +* +" +r +" +bababa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_39 +r +" +( +[ +ab +] +* +) +* +" +r +" +b +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_40 +r +" +( +[ +ab +] +* +) +* +" +r +" +bbbbbb +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_41 +r +" +( +[ +ab +] +* +) +* +" +r +" +aaaabcde +" +Some +( +( +0 +5 +) +) +Some +( +( +0 +5 +) +) +) +; +mat +! +( +match_nullsubexpr_42 +r +" +( +[ +^ +a +] +* +) +* +" +r +" +b +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_43 +r +" +( +[ +^ +a +] +* +) +* +" +r +" +bbbbbb +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_45 +r +" +( +[ +^ +a +] +* +) +* +" +r +" +aaaaaa +" +Some +( +( +0 +0 +) +) +None +) +; +mat +! +( +match_nullsubexpr_46 +r +" +( +[ +^ +ab +] +* +) +* +" +r +" +ccccxx +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +6 +) +) +) +; +mat +! +( +match_nullsubexpr_48 +r +" +( +[ +^ +ab +] +* +) +* +" +r +" +ababab +" +Some +( +( +0 +0 +) +) +None +) +; +mat +! +( +match_nullsubexpr_50 +r +" +( +( +z +) ++ +| +a +) +* +" +r +" +zabcde +" +Some +( +( +0 +2 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_nullsubexpr_69 +r +" +( +a +* +) +* +( +x +) +" +r +" +x +" +Some +( +( +0 +1 +) +) +None +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_70 +r +" +( +a +* +) +* +( +x +) +" +r +" +ax +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_nullsubexpr_71 +r +" +( +a +* +) +* +( +x +) +" +r +" +axa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_nullsubexpr_73 +r +" +( +a +* +) ++ +( +x +) +" +r +" +x +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +0 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_74 +r +" +( +a +* +) ++ +( +x +) +" +r +" +ax +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_nullsubexpr_75 +r +" +( +a +* +) ++ +( +x +) +" +r +" +axa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_nullsubexpr_77 +r +" +( +a +* +) +{ +2 +} +( +x +) +" +r +" +x +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +0 +) +) +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_nullsubexpr_78 +r +" +( +a +* +) +{ +2 +} +( +x +) +" +r +" +ax +" +Some +( +( +0 +2 +) +) +Some +( +( +1 +1 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_nullsubexpr_79 +r +" +( +a +* +) +{ +2 +} +( +x +) +" +r +" +axa +" +Some +( +( +0 +2 +) +) +Some +( +( +1 +1 +) +) +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_repetition_10 +r +" +( +( +. +. +) +| +( +. +) +) +" +r +" +" +None +) +; +mat +! +( +match_repetition_11 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +" +None +) +; +mat +! +( +match_repetition_12 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +" +None +) +; +mat +! +( +match_repetition_14 +r +" +( +( +. +. +) +| +( +. +) +) +{ +1 +} +" +r +" +" +None +) +; +mat +! +( +match_repetition_15 +r +" +( +( +. +. +) +| +( +. +) +) +{ +2 +} +" +r +" +" +None +) +; +mat +! +( +match_repetition_16 +r +" +( +( +. +. +) +| +( +. +) +) +{ +3 +} +" +r +" +" +None +) +; +mat +! +( +match_repetition_18 +r +" +( +( +. +. +) +| +( +. +) +) +* +" +r +" +" +Some +( +( +0 +0 +) +) +) +; +mat +! +( +match_repetition_20 +r +" +( +( +. +. +) +| +( +. +) +) +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +None +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_repetition_21 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +a +" +None +) +; +mat +! +( +match_repetition_22 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +a +" +None +) +; +mat +! +( +match_repetition_24 +r +" +( +( +. +. +) +| +( +. +) +) +{ +1 +} +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +None +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_repetition_25 +r +" +( +( +. +. +) +| +( +. +) +) +{ +2 +} +" +r +" +a +" +None +) +; +mat +! +( +match_repetition_26 +r +" +( +( +. +. +) +| +( +. +) +) +{ +3 +} +" +r +" +a +" +None +) +; +mat +! +( +match_repetition_28 +r +" +( +( +. +. +) +| +( +. +) +) +* +" +r +" +a +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +None +Some +( +( +0 +1 +) +) +) +; +mat +! +( +match_repetition_30 +r +" +( +( +. +. +) +| +( +. +) +) +" +r +" +aa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_31 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +1 +) +) +None +Some +( +( +0 +1 +) +) +Some +( +( +1 +2 +) +) +None +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_repetition_32 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aa +" +None +) +; +mat +! +( +match_repetition_34 +r +" +( +( +. +. +) +| +( +. +) +) +{ +1 +} +" +r +" +aa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_35 +r +" +( +( +. +. +) +| +( +. +) +) +{ +2 +} +" +r +" +aa +" +Some +( +( +0 +2 +) +) +Some +( +( +1 +2 +) +) +None +Some +( +( +1 +2 +) +) +) +; +mat +! +( +match_repetition_36 +r +" +( +( +. +. +) +| +( +. +) +) +{ +3 +} +" +r +" +aa +" +None +) +; +mat +! +( +match_repetition_38 +r +" +( +( +. +. +) +| +( +. +) +) +* +" +r +" +aa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_40 +r +" +( +( +. +. +) +| +( +. +) +) +" +r +" +aaa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_41 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aaa +" +Some +( +( +0 +3 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +Some +( +( +2 +3 +) +) +None +Some +( +( +2 +3 +) +) +) +; +mat +! +( +match_repetition_42 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aaa +" +Some +( +( +0 +3 +) +) +Some +( +( +0 +1 +) +) +None +Some +( +( +0 +1 +) +) +Some +( +( +1 +2 +) +) +None +Some +( +( +1 +2 +) +) +Some +( +( +2 +3 +) +) +None +Some +( +( +2 +3 +) +) +) +; +mat +! +( +match_repetition_44 +r +" +( +( +. +. +) +| +( +. +) +) +{ +1 +} +" +r +" +aaa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_46 +r +" +( +( +. +. +) +| +( +. +) +) +{ +2 +} +" +r +" +aaa +" +Some +( +( +0 +3 +) +) +Some +( +( +2 +3 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +2 +3 +) +) +) +; +mat +! +( +match_repetition_47 +r +" +( +( +. +. +) +| +( +. +) +) +{ +3 +} +" +r +" +aaa +" +Some +( +( +0 +3 +) +) +Some +( +( +2 +3 +) +) +None +Some +( +( +2 +3 +) +) +) +; +mat +! +( +match_repetition_50 +r +" +( +( +. +. +) +| +( +. +) +) +* +" +r +" +aaa +" +Some +( +( +0 +3 +) +) +Some +( +( +2 +3 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +2 +3 +) +) +) +; +mat +! +( +match_repetition_52 +r +" +( +( +. +. +) +| +( +. +) +) +" +r +" +aaaa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_53 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +Some +( +( +2 +4 +) +) +Some +( +( +2 +4 +) +) +None +) +; +mat +! +( +match_repetition_54 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +Some +( +( +2 +3 +) +) +None +Some +( +( +2 +3 +) +) +Some +( +( +3 +4 +) +) +None +Some +( +( +3 +4 +) +) +) +; +mat +! +( +match_repetition_56 +r +" +( +( +. +. +) +| +( +. +) +) +{ +1 +} +" +r +" +aaaa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_57 +r +" +( +( +. +. +) +| +( +. +) +) +{ +2 +} +" +r +" +aaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +2 +4 +) +) +Some +( +( +2 +4 +) +) +None +) +; +mat +! +( +match_repetition_59 +r +" +( +( +. +. +) +| +( +. +) +) +{ +3 +} +" +r +" +aaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +3 +4 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +3 +4 +) +) +) +; +mat +! +( +match_repetition_61 +r +" +( +( +. +. +) +| +( +. +) +) +* +" +r +" +aaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +2 +4 +) +) +Some +( +( +2 +4 +) +) +None +) +; +mat +! +( +match_repetition_63 +r +" +( +( +. +. +) +| +( +. +) +) +" +r +" +aaaaa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_64 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aaaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +Some +( +( +2 +4 +) +) +Some +( +( +2 +4 +) +) +None +) +; +mat +! +( +match_repetition_65 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aaaaa +" +Some +( +( +0 +5 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +Some +( +( +2 +4 +) +) +Some +( +( +2 +4 +) +) +None +Some +( +( +4 +5 +) +) +None +Some +( +( +4 +5 +) +) +) +; +mat +! +( +match_repetition_67 +r +" +( +( +. +. +) +| +( +. +) +) +{ +1 +} +" +r +" +aaaaa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_68 +r +" +( +( +. +. +) +| +( +. +) +) +{ +2 +} +" +r +" +aaaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +2 +4 +) +) +Some +( +( +2 +4 +) +) +None +) +; +mat +! +( +match_repetition_70 +r +" +( +( +. +. +) +| +( +. +) +) +{ +3 +} +" +r +" +aaaaa +" +Some +( +( +0 +5 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +2 +4 +) +) +Some +( +( +4 +5 +) +) +) +; +mat +! +( +match_repetition_73 +r +" +( +( +. +. +) +| +( +. +) +) +* +" +r +" +aaaaa +" +Some +( +( +0 +5 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +2 +4 +) +) +Some +( +( +4 +5 +) +) +) +; +mat +! +( +match_repetition_75 +r +" +( +( +. +. +) +| +( +. +) +) +" +r +" +aaaaaa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_76 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aaaaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +Some +( +( +2 +4 +) +) +Some +( +( +2 +4 +) +) +None +) +; +mat +! +( +match_repetition_77 +r +" +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +( +( +. +. +) +| +( +. +) +) +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +Some +( +( +2 +4 +) +) +Some +( +( +2 +4 +) +) +None +Some +( +( +4 +6 +) +) +Some +( +( +4 +6 +) +) +None +) +; +mat +! +( +match_repetition_79 +r +" +( +( +. +. +) +| +( +. +) +) +{ +1 +} +" +r +" +aaaaaa +" +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +Some +( +( +0 +2 +) +) +None +) +; +mat +! +( +match_repetition_80 +r +" +( +( +. +. +) +| +( +. +) +) +{ +2 +} +" +r +" +aaaaaa +" +Some +( +( +0 +4 +) +) +Some +( +( +2 +4 +) +) +Some +( +( +2 +4 +) +) +None +) +; +mat +! +( +match_repetition_81 +r +" +( +( +. +. +) +| +( +. +) +) +{ +3 +} +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +6 +) +) +Some +( +( +4 +6 +) +) +None +) +; +mat +! +( +match_repetition_83 +r +" +( +( +. +. +) +| +( +. +) +) +* +" +r +" +aaaaaa +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +6 +) +) +Some +( +( +4 +6 +) +) +None +) +; +mat +! +( +match_repetition_90 +r +" +X +( +. +? +) +{ +0 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +7 +8 +) +) +) +; +mat +! +( +match_repetition_91 +r +" +X +( +. +? +) +{ +1 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +7 +8 +) +) +) +; +mat +! +( +match_repetition_92 +r +" +X +( +. +? +) +{ +2 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +7 +8 +) +) +) +; +mat +! +( +match_repetition_93 +r +" +X +( +. +? +) +{ +3 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +7 +8 +) +) +) +; +mat +! +( +match_repetition_94 +r +" +X +( +. +? +) +{ +4 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +7 +8 +) +) +) +; +mat +! +( +match_repetition_95 +r +" +X +( +. +? +) +{ +5 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +7 +8 +) +) +) +; +mat +! +( +match_repetition_96 +r +" +X +( +. +? +) +{ +6 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +7 +8 +) +) +) +; +mat +! +( +match_repetition_97 +r +" +X +( +. +? +) +{ +7 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +7 +8 +) +) +) +; +mat +! +( +match_repetition_98 +r +" +X +( +. +? +) +{ +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_100 +r +" +X +( +. +? +) +{ +0 +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_102 +r +" +X +( +. +? +) +{ +1 +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_104 +r +" +X +( +. +? +) +{ +2 +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_106 +r +" +X +( +. +? +) +{ +3 +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_108 +r +" +X +( +. +? +) +{ +4 +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_110 +r +" +X +( +. +? +) +{ +5 +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_112 +r +" +X +( +. +? +) +{ +6 +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_114 +r +" +X +( +. +? +) +{ +7 +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_115 +r +" +X +( +. +? +) +{ +8 +8 +} +Y +" +r +" +X1234567Y +" +Some +( +( +0 +9 +) +) +Some +( +( +8 +8 +) +) +) +; +mat +! +( +match_repetition_126 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +0 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +1 +) +) +) +; +mat +! +( +match_repetition_127 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +1 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +1 +) +) +) +; +mat +! +( +match_repetition_128 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +2 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +3 +6 +) +) +Some +( +( +6 +6 +) +) +) +; +mat +! +( +match_repetition_129 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +3 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +3 +6 +) +) +Some +( +( +6 +6 +) +) +) +; +mat +! +( +match_repetition_130 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +4 +} +( +d +* +) +" +r +" +ababcd +" +None +) +; +mat +! +( +match_repetition_131 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +0 +10 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +1 +) +) +) +; +mat +! +( +match_repetition_132 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +1 +10 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +1 +) +) +) +; +mat +! +( +match_repetition_133 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +2 +10 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +3 +6 +) +) +Some +( +( +6 +6 +) +) +) +; +mat +! +( +match_repetition_134 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +3 +10 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +3 +6 +) +) +Some +( +( +6 +6 +) +) +) +; +mat +! +( +match_repetition_135 +r +" +( +a +| +ab +| +c +| +bcd +) +{ +4 +10 +} +( +d +* +) +" +r +" +ababcd +" +None +) +; +mat +! +( +match_repetition_136 +r +" +( +a +| +ab +| +c +| +bcd +) +* +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +1 +) +) +) +; +mat +! +( +match_repetition_137 +r +" +( +a +| +ab +| +c +| +bcd +) ++ +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +1 +) +) +Some +( +( +0 +1 +) +) +Some +( +( +1 +1 +) +) +) +; +mat +! +( +match_repetition_143 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +0 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; +mat +! +( +match_repetition_145 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +1 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; +mat +! +( +match_repetition_147 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +2 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; +mat +! +( +match_repetition_149 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +3 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; +mat +! +( +match_repetition_150 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +4 +} +( +d +* +) +" +r +" +ababcd +" +None +) +; +mat +! +( +match_repetition_152 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +0 +10 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; +mat +! +( +match_repetition_154 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +1 +10 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; +mat +! +( +match_repetition_156 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +2 +10 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; +mat +! +( +match_repetition_158 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +3 +10 +} +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; +mat +! +( +match_repetition_159 +r +" +( +ab +| +a +| +c +| +bcd +) +{ +4 +10 +} +( +d +* +) +" +r +" +ababcd +" +None +) +; +mat +! +( +match_repetition_161 +r +" +( +ab +| +a +| +c +| +bcd +) +* +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; +mat +! +( +match_repetition_163 +r +" +( +ab +| +a +| +c +| +bcd +) ++ +( +d +* +) +" +r +" +ababcd +" +Some +( +( +0 +6 +) +) +Some +( +( +4 +5 +) +) +Some +( +( +5 +6 +) +) +) +; diff --git a/third_party/rust/regex/tests/fuzz/mod.rs b/third_party/rust/regex/tests/fuzz/mod.rs deleted file mode 100644 index e2f38429bc02e..0000000000000 --- a/third_party/rust/regex/tests/fuzz/mod.rs +++ /dev/null @@ -1,517 +0,0 @@ -# -[ -test -] -fn -meta_stopat_specialize_start_states -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -crash -- -8760b19b25d74e3603d4c643e9c7404fdd3631f9 -" -) -; -let -_ -= -run -( -data -) -; -} -# -[ -test -] -fn -meta_stopat_specialize_start_states_min -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -minimized -- -from -- -8760b19b25d74e3603d4c643e9c7404fdd3631f9 -" -) -; -let -_ -= -run -( -data -) -; -} -# -[ -test -] -fn -fail_branch_prevents_match -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -crash -- -cd33b13df59ea9d74503986f9d32a270dd43cc04 -" -) -; -let -_ -= -run -( -data -) -; -} -# -[ -test -] -fn -slow_big_empty_chain -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -slow -- -unit -- -9ca9cc9929fee1fcbb847a78384effb8b98ea18a -" -) -; -let -_ -= -run -( -data -) -; -} -# -[ -test -] -fn -slow_big_empty_chain2 -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -slow -- -unit -- -3ab758ea520027fefd3f00e1384d9aeef155739e -" -) -; -let -_ -= -run -( -data -) -; -} -# -[ -test -] -fn -slow_big_empty_chain3 -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -slow -- -unit -- -b8a052f4254802edbe5f569b6ce6e9b6c927e9d6 -" -) -; -let -_ -= -run -( -data -) -; -} -# -[ -test -] -fn -slow_big_empty_chain4 -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -slow -- -unit -- -93c73a43581f205f9aaffd9c17e52b34b17becd0 -" -) -; -let -_ -= -run -( -data -) -; -} -# -[ -test -] -fn -slow_big_empty_chain5 -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -slow -- -unit -- -5345fccadf3812c53c3ccc7af5aa2741b7b2106c -" -) -; -let -_ -= -run -( -data -) -; -} -# -[ -test -] -fn -slow_big_empty_chain6 -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -slow -- -unit -- -6bd643eec330166e4ada91da2d3f284268481085 -" -) -; -let -_ -= -run -( -data -) -; -} -# -[ -test -] -fn -minimum_len_overflow -( -) -{ -let -data -= -include_bytes -! -( -" -testdata -/ -crash -- -7eb3351f0965e5d6c1cb98aa8585949ef96531ff -" -) -; -let -_ -= -run -( -data -) -; -} -fn -run -( -data -: -& -[ -u8 -] -) -- -> -Option -< -( -) -> -{ -if -data -. -len -( -) -< -2 -{ -return -None -; -} -let -mut -split_at -= -usize -: -: -from -( -data -[ -0 -] -) -; -let -data -= -std -: -: -str -: -: -from_utf8 -( -& -data -[ -1 -. -. -] -) -. -ok -( -) -? -; -let -len -= -usize -: -: -try_from -( -data -. -chars -( -) -. -count -( -) -) -. -ok -( -) -? -; -split_at -= -std -: -: -cmp -: -: -max -( -split_at -1 -) -% -len -; -let -char_index -= -data -. -char_indices -( -) -. -nth -( -split_at -) -? -. -0 -; -let -( -pattern -input -) -= -data -. -split_at -( -char_index -) -; -let -re -= -regex -: -: -Regex -: -: -new -( -pattern -) -. -ok -( -) -? -; -re -. -is_match -( -input -) -; -Some -( -( -) -) -} diff --git a/third_party/rust/regex/tests/fuzz/testdata/crash-7eb3351f0965e5d6c1cb98aa8585949ef96531ff b/third_party/rust/regex/tests/fuzz/testdata/crash-7eb3351f0965e5d6c1cb98aa8585949ef96531ff deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/fuzz/testdata/crash-8760b19b25d74e3603d4c643e9c7404fdd3631f9 b/third_party/rust/regex/tests/fuzz/testdata/crash-8760b19b25d74e3603d4c643e9c7404fdd3631f9 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/fuzz/testdata/crash-cd33b13df59ea9d74503986f9d32a270dd43cc04 b/third_party/rust/regex/tests/fuzz/testdata/crash-cd33b13df59ea9d74503986f9d32a270dd43cc04 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/fuzz/testdata/minimized-from-8760b19b25d74e3603d4c643e9c7404fdd3631f9 b/third_party/rust/regex/tests/fuzz/testdata/minimized-from-8760b19b25d74e3603d4c643e9c7404fdd3631f9 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/fuzz/testdata/slow-unit-3ab758ea520027fefd3f00e1384d9aeef155739e b/third_party/rust/regex/tests/fuzz/testdata/slow-unit-3ab758ea520027fefd3f00e1384d9aeef155739e deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/fuzz/testdata/slow-unit-5345fccadf3812c53c3ccc7af5aa2741b7b2106c b/third_party/rust/regex/tests/fuzz/testdata/slow-unit-5345fccadf3812c53c3ccc7af5aa2741b7b2106c deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/fuzz/testdata/slow-unit-6bd643eec330166e4ada91da2d3f284268481085 b/third_party/rust/regex/tests/fuzz/testdata/slow-unit-6bd643eec330166e4ada91da2d3f284268481085 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/fuzz/testdata/slow-unit-93c73a43581f205f9aaffd9c17e52b34b17becd0 b/third_party/rust/regex/tests/fuzz/testdata/slow-unit-93c73a43581f205f9aaffd9c17e52b34b17becd0 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/fuzz/testdata/slow-unit-9ca9cc9929fee1fcbb847a78384effb8b98ea18a b/third_party/rust/regex/tests/fuzz/testdata/slow-unit-9ca9cc9929fee1fcbb847a78384effb8b98ea18a deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/fuzz/testdata/slow-unit-b8a052f4254802edbe5f569b6ce6e9b6c927e9d6 b/third_party/rust/regex/tests/fuzz/testdata/slow-unit-b8a052f4254802edbe5f569b6ce6e9b6c927e9d6 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/third_party/rust/regex/tests/lib.rs b/third_party/rust/regex/tests/lib.rs deleted file mode 100644 index 046feabe03502..0000000000000 --- a/third_party/rust/regex/tests/lib.rs +++ /dev/null @@ -1,377 +0,0 @@ -# -! -[ -cfg_attr -( -feature -= -" -pattern -" -feature -( -pattern -) -) -] -mod -fuzz -; -mod -misc -; -mod -regression -; -mod -regression_fuzz -; -mod -replace -; -# -[ -cfg -( -feature -= -" -pattern -" -) -] -mod -searcher -; -mod -suite_bytes -; -mod -suite_bytes_set -; -mod -suite_string -; -mod -suite_string_set -; -const -BLACKLIST -: -& -[ -& -str -] -= -& -[ -] -; -fn -suite -( -) -- -> -anyhow -: -: -Result -< -regex_test -: -: -RegexTests -> -{ -let -_ -= -env_logger -: -: -try_init -( -) -; -let -mut -tests -= -regex_test -: -: -RegexTests -: -: -new -( -) -; -macro_rules -! -load -{ -( -name -: -expr -) -= -> -{ -{ -const -DATA -: -& -[ -u8 -] -= -include_bytes -! -( -concat -! -( -" -. -. -/ -testdata -/ -" -name -" -. -toml -" -) -) -; -tests -. -load_slice -( -name -DATA -) -? -; -} -} -; -} -load -! -( -" -anchored -" -) -; -load -! -( -" -bytes -" -) -; -load -! -( -" -crazy -" -) -; -load -! -( -" -crlf -" -) -; -load -! -( -" -earliest -" -) -; -load -! -( -" -empty -" -) -; -load -! -( -" -expensive -" -) -; -load -! -( -" -flags -" -) -; -load -! -( -" -iter -" -) -; -load -! -( -" -leftmost -- -all -" -) -; -load -! -( -" -line -- -terminator -" -) -; -load -! -( -" -misc -" -) -; -load -! -( -" -multiline -" -) -; -load -! -( -" -no -- -unicode -" -) -; -load -! -( -" -overlapping -" -) -; -load -! -( -" -regression -" -) -; -load -! -( -" -set -" -) -; -load -! -( -" -substring -" -) -; -load -! -( -" -unicode -" -) -; -load -! -( -" -utf8 -" -) -; -load -! -( -" -word -- -boundary -" -) -; -load -! -( -" -fowler -/ -basic -" -) -; -load -! -( -" -fowler -/ -nullsubexpr -" -) -; -load -! -( -" -fowler -/ -repetition -" -) -; -Ok -( -tests -) -} diff --git a/third_party/rust/regex/tests/macros.rs b/third_party/rust/regex/tests/macros.rs new file mode 100644 index 0000000000000..b7967d3f73bab --- /dev/null +++ b/third_party/rust/regex/tests/macros.rs @@ -0,0 +1,1301 @@ +macro_rules +! +findall +{ +( +re +: +expr +text +: +expr +) += +> +{ +{ +re +. +find_iter +( +text +! +( +text +) +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +. +collect +: +: +< +Vec +< +_ +> +> +( +) +} +} +} +macro_rules +! +ismatch +{ +( +name +: +ident +re +: +expr +text +: +expr +ismatch +: +expr +) += +> +{ +# +[ +test +] +fn +name +( +) +{ +let +re += +regex +! +( +re +) +; +assert_eq +! +( +ismatch +re +. +is_match +( +text +! +( +text +) +) +) +; +} +} +; +} +macro_rules +! +mat +( +( +name +: +ident +re +: +expr +text +: +expr +( +loc +: +tt +) ++ +) += +> +( +# +[ +test +] +fn +name +( +) +{ +let +text += +text +! +( +text +) +; +let +expected +: +Vec +< +Option +< +_ +> +> += +vec +! +[ +( +loc +) ++ +] +; +let +r += +regex +! +( +re +) +; +let +got +: +Vec +< +Option +< +_ +> +> += +match +r +. +captures +( +text +) +{ +Some +( +c +) += +> +{ +assert +! +( +r +. +is_match +( +text +) +) +; +assert +! +( +r +. +shortest_match +( +text +) +. +is_some +( +) +) +; +r +. +capture_names +( +) +. +enumerate +( +) +. +map +( +| +( +i +_ +) +| +c +. +get +( +i +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +) +. +collect +( +) +} +None += +> +vec +! +[ +None +] +} +; +/ +/ +The +test +set +sometimes +leave +out +capture +groups +so +truncate +/ +/ +actual +capture +groups +to +match +test +set +. +let +mut +sgot += +& +got +[ +. +. +] +; +if +sgot +. +len +( +) +> +expected +. +len +( +) +{ +sgot += +& +sgot +[ +0 +. +. +expected +. +len +( +) +] +} +if +expected +! += +sgot +{ +panic +! +( +" +For +RE +' +{ +} +' +against +' +{ +: +? +} +' +\ +expected +' +{ +: +? +} +' +but +got +' +{ +: +? +} +' +" +re +text +expected +sgot +) +; +} +} +) +; +) +; +macro_rules +! +matiter +( +( +name +: +ident +re +: +expr +text +: +expr +) += +> +( +# +[ +test +] +fn +name +( +) +{ +let +text += +text +! +( +text +) +; +let +expected +: +Vec +< +( +usize +usize +) +> += +vec +! +[ +] +; +let +r += +regex +! +( +re +) +; +let +got +: +Vec +< +_ +> += +r +. +find_iter +( +text +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +. +collect +( +) +; +if +expected +! += +got +{ +panic +! +( +" +For +RE +' +{ +} +' +against +' +{ +: +? +} +' +\ +expected +' +{ +: +? +} +' +but +got +' +{ +: +? +} +' +" +re +text +expected +got +) +; +} +let +captures_got +: +Vec +< +_ +> += +r +. +captures_iter +( +text +) +. +map +( +| +c +| +c +. +get +( +0 +) +. +unwrap +( +) +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +. +collect +( +) +; +if +captures_got +! += +got +{ +panic +! +( +" +For +RE +' +{ +} +' +against +' +{ +: +? +} +' +\ +got +' +{ +: +? +} +' +using +find_iter +but +got +' +{ +: +? +} +' +\ +using +captures_iter +" +re +text +got +captures_got +) +; +} +} +) +; +( +name +: +ident +re +: +expr +text +: +expr +( +loc +: +tt +) ++ +) += +> +( +# +[ +test +] +fn +name +( +) +{ +let +text += +text +! +( +text +) +; +let +expected +: +Vec +< +_ +> += +vec +! +[ +( +loc +) ++ +] +; +let +r += +regex +! +( +re +) +; +let +got +: +Vec +< +_ +> += +r +. +find_iter +( +text +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +. +collect +( +) +; +if +expected +! += +got +{ +panic +! +( +" +For +RE +' +{ +} +' +against +' +{ +: +? +} +' +\ +expected +' +{ +: +? +} +' +but +got +' +{ +: +? +} +' +" +re +text +expected +got +) +; +} +let +captures_got +: +Vec +< +_ +> += +r +. +captures_iter +( +text +) +. +map +( +| +c +| +c +. +get +( +0 +) +. +unwrap +( +) +) +. +map +( +| +m +| +( +m +. +start +( +) +m +. +end +( +) +) +) +. +collect +( +) +; +if +captures_got +! += +got +{ +panic +! +( +" +For +RE +' +{ +} +' +against +' +{ +: +? +} +' +\ +got +' +{ +: +? +} +' +using +find_iter +but +got +' +{ +: +? +} +' +\ +using +captures_iter +" +re +text +got +captures_got +) +; +} +} +) +; +) +; +macro_rules +! +matset +{ +( +name +: +ident +res +: +expr +text +: +expr +( +match_index +: +expr +) +* +) += +> +{ +# +[ +test +] +fn +name +( +) +{ +let +text += +text +! +( +text +) +; +let +set += +regex_set +! +( +res +) +; +assert +! +( +set +. +is_match +( +text +) +) +; +let +expected += +vec +! +[ +( +match_index +) +* +] +; +let +matches += +set +. +matches +( +text +) +; +assert +! +( +matches +. +matched_any +( +) +) +; +let +got +: +Vec +< +_ +> += +matches +. +into_iter +( +) +. +collect +( +) +; +assert_eq +! +( +expected +got +) +; +} +} +} +macro_rules +! +nomatset +{ +( +name +: +ident +res +: +expr +text +: +expr +) += +> +{ +# +[ +test +] +fn +name +( +) +{ +let +text += +text +! +( +text +) +; +let +set += +regex_set +! +( +res +) +; +assert +! +( +! +set +. +is_match +( +text +) +) +; +let +matches += +set +. +matches +( +text +) +; +assert +! +( +! +matches +. +matched_any +( +) +) +; +assert_eq +! +( +0 +matches +. +into_iter +( +) +. +count +( +) +) +; +} +} +} +macro_rules +! +split +{ +( +name +: +ident +re +: +expr +text +: +expr +expected +: +expr +) += +> +{ +# +[ +test +] +fn +name +( +) +{ +let +re += +regex +! +( +re +) +; +let +splitted +: +Vec +< +_ +> += +re +. +split +( +t +! +( +text +) +) +. +collect +( +) +; +assert_eq +! +( +expected +& +* +splitted +) +; +} +} +} +macro_rules +! +splitn +{ +( +name +: +ident +re +: +expr +text +: +expr +limit +: +expr +expected +: +expr +) += +> +{ +# +[ +test +] +fn +name +( +) +{ +let +re += +regex +! +( +re +) +; +let +splitted +: +Vec +< +_ +> += +re +. +splitn +( +t +! +( +text +) +limit +) +. +collect +( +) +; +assert_eq +! +( +expected +& +* +splitted +) +; +} +} +} diff --git a/third_party/rust/regex/tests/macros_bytes.rs b/third_party/rust/regex/tests/macros_bytes.rs new file mode 100644 index 0000000000000..825169ea03340 --- /dev/null +++ b/third_party/rust/regex/tests/macros_bytes.rs @@ -0,0 +1,332 @@ +macro_rules +! +text +{ +( +text +: +expr +) += +> +{ +text +. +as_bytes +( +) +} +} +macro_rules +! +t +{ +( +re +: +expr +) += +> +{ +text +! +( +re +) +} +} +macro_rules +! +match_text +{ +( +text +: +expr +) += +> +{ +text +. +as_bytes +( +) +} +} +macro_rules +! +use_ +{ +( +( +path +: +tt +) +* +) += +> +{ +use +regex +: +: +bytes +: +: +( +path +) +* +; +} +} +macro_rules +! +empty_vec +{ +( +) += +> +{ +< +Vec +< +& +[ +u8 +] +> +> +: +: +new +( +) +} +} +macro_rules +! +bytes +{ +( +text +: +expr +) += +> +{ +text +} +} +macro_rules +! +no_expand +{ +( +text +: +expr +) += +> +{ +{ +use +regex +: +: +bytes +: +: +NoExpand +; +NoExpand +( +text +! +( +text +) +) +} +} +} +macro_rules +! +show +{ +( +text +: +expr +) += +> +{ +{ +use +std +: +: +ascii +: +: +escape_default +; +let +mut +s += +vec +! +[ +] +; +for +& +b +in +bytes +! +( +text +) +{ +s +. +extend +( +escape_default +( +b +) +) +; +} +String +: +: +from_utf8 +( +s +) +. +unwrap +( +) +} +} +} +macro_rules +! +expand +{ +( +name +: +ident +re +: +expr +text +: +expr +expand +: +expr +expected +: +expr +) += +> +{ +# +[ +test +] +fn +name +( +) +{ +let +re += +regex +! +( +re +) +; +let +cap += +re +. +captures +( +t +! +( +text +) +) +. +unwrap +( +) +; +let +mut +got += +vec +! +[ +] +; +cap +. +expand +( +t +! +( +expand +) +& +mut +got +) +; +assert_eq +! +( +show +! +( +t +! +( +expected +) +) +show +! +( +& +* +got +) +) +; +} +} +} diff --git a/third_party/rust/regex/tests/macros_str.rs b/third_party/rust/regex/tests/macros_str.rs new file mode 100644 index 0000000000000..ffd2b639062a7 --- /dev/null +++ b/third_party/rust/regex/tests/macros_str.rs @@ -0,0 +1,344 @@ +macro_rules +! +text +{ +( +text +: +expr +) += +> +{ +text +} +} +macro_rules +! +t +{ +( +text +: +expr +) += +> +{ +text +! +( +text +) +} +} +macro_rules +! +match_text +{ +( +text +: +expr +) += +> +{ +text +. +as_str +( +) +} +} +macro_rules +! +use_ +{ +( +( +path +: +tt +) +* +) += +> +{ +use +regex +: +: +( +path +) +* +; +} +} +macro_rules +! +empty_vec +{ +( +) += +> +{ +< +Vec +< +& +str +> +> +: +: +new +( +) +} +} +macro_rules +! +bytes +{ +( +text +: +expr +) += +> +{ +std +: +: +str +: +: +from_utf8 +( +text +. +as_ref +( +) +) +. +unwrap +( +) +} +} +macro_rules +! +no_expand +{ +( +text +: +expr +) += +> +{ +{ +use +regex +: +: +NoExpand +; +NoExpand +( +text +! +( +text +) +) +} +} +} +macro_rules +! +show +{ +( +text +: +expr +) += +> +{ +text +} +} +macro_rules +! +expand +{ +( +name +: +ident +re +: +expr +text +: +expr +expand +: +expr +expected +: +expr +) += +> +{ +# +[ +test +] +fn +name +( +) +{ +let +re += +regex +! +( +re +) +; +let +cap += +re +. +captures +( +t +! +( +text +) +) +. +unwrap +( +) +; +let +mut +got += +String +: +: +new +( +) +; +cap +. +expand +( +t +! +( +expand +) +& +mut +got +) +; +assert_eq +! +( +show +! +( +t +! +( +expected +) +) +show +! +( +& +* +got +) +) +; +} +} +} +# +[ +cfg +( +feature += +" +pattern +" +) +] +macro_rules +! +searcher_expr +{ +( +e +: +expr +) += +> +( +e +) +} +# +[ +cfg +( +not +( +feature += +" +pattern +" +) +) +] +macro_rules +! +searcher_expr +{ +( +e +: +expr +) += +> +( +{ +} +) +} diff --git a/third_party/rust/regex/tests/misc.rs b/third_party/rust/regex/tests/misc.rs index e78c0c7f28832..02dd9f597aa14 100644 --- a/third_party/rust/regex/tests/misc.rs +++ b/third_party/rust/regex/tests/misc.rs @@ -1,1261 +1,71 @@ -use -regex -: -: -Regex -; -macro_rules -! -regex -{ -( -pattern -: -expr -) -= -> -{ -regex -: -: -Regex -: -: -new -( -pattern -) -. -unwrap -( -) -} -; -} -# -[ -test -] -fn -unclosed_group_error -( -) -{ -let -err -= -Regex -: -: -new -( -r -" -( -" -) -. -unwrap_err -( -) -; -let -msg -= -err -. -to_string -( -) -; -assert -! -( -msg -. -contains -( -" -unclosed -group -" -) -" -error -message -: -{ -: -? -} -" -msg -) -; -} -# -[ -test -] -fn -regex_string -( -) -{ -assert_eq -! -( -r -" -[ -a -- -zA -- -Z0 -- -9 -] -+ -" -regex -! -( -r -" -[ -a -- -zA -- -Z0 -- -9 -] -+ -" -) -. -as_str -( -) -) -; -assert_eq -! -( -r -" -[ -a -- -zA -- -Z0 -- -9 -] -+ -" -& -format -! -( -" -{ -} -" -regex -! -( -r -" -[ -a -- -zA -- -Z0 -- -9 -] -+ -" -) -) -) -; -assert_eq -! -( -r -# -" -Regex -( -" -[ -a -- -zA -- -Z0 -- -9 -] -+ -" -) -" -# -& -format -! -( -" -{ -: -? -} -" -regex +mat ! ( +prefix_literal_match r " -[ -a -- -zA -- -Z0 -- -9 -] -+ +^ +abc " -) -) -) -; -} -# -[ -test -] -fn -capture_names -( -) -{ -let -re -= -regex -! -( r " -( -. -) -( -? -P -< -a -> -. -) +abc " -) -; -assert_eq -! -( -3 -re -. -captures_len -( -) -) -; -assert_eq -! -( -( -3 -Some -( -3 -) -) -re -. -capture_names -( -) -. -size_hint -( -) -) -; -assert_eq -! -( -vec -! -[ -None -None Some ( -" -a -" -) -] -re -. -capture_names ( +0 +3 ) -. -collect -: -: -< -Vec -< -_ -> -> -( ) ) ; -} -# -[ -test -] -fn -capture_index -( -) -{ -let -re -= -regex +mat ! ( +prefix_literal_nomatch r " ^ -( -? -P -< -name -> -. -+ -) -" -) -; -let -cap -= -re -. -captures -( -" -abc -" -) -. -unwrap -( -) -; -assert_eq -! -( -& -cap -[ -0 -] -" -abc -" -) -; -assert_eq -! -( -& -cap -[ -1 -] -" -abc -" -) -; -assert_eq -! -( -& -cap -[ -" -name -" -] -" abc " -) -; -} -# -[ -test -] -# -[ -should_panic -] -fn -capture_index_panic_usize -( -) -{ -let -re -= -regex -! -( r " -^ -( -? -P -< -name -> -. -+ -) -" -) -; -let -cap -= -re -. -captures -( -" -abc +zabc " +None ) -. -unwrap -( -) -; -let -_ -= -cap -[ -2 -] ; -} -# -[ -test -] -# -[ -should_panic -] -fn -capture_index_panic_name -( -) -{ -let -re -= -regex +mat ! ( +one_literal_edge r " -^ -( -? -P -< -name -> -. -+ -) -" -) -; -let -cap -= -re -. -captures -( -" abc " -) -. -unwrap -( -) -; -let -_ -= -cap -[ -" -bad -name -" -] -; -} -# -[ -test -] -fn -capture_index_lifetime -( -) -{ -fn -inner -( -s -: -& -str -) -- -> -usize -{ -let -re -= -regex -! -( r " -( -? -P -< -number -> -[ -0 -- -9 -] -+ -) +xxxxxab " +None ) ; -let -caps -= -re -. -captures -( -s -) -. -unwrap -( -) -; -caps -[ -" -number -" -] -. -len -( -) -} -assert_eq +matiter ! ( -3 -inner -( +terminates +r " -123 +a " -) -) -; -} -# -[ -test -] -fn -capture_misc -( -) -{ -let -re -= -regex -! -( r " -( -. -) -( -? -P -< a -> -a -) -? -( -. -) -( -? -P -< -b -> -. -) " -) -; -let -cap -= -re -. -captures -( -" -abc -" -) -. -unwrap -( -) -; -assert_eq -! -( -5 -cap -. -len -( -) -) -; -assert_eq -! -( -( -0 -3 -) -{ -let -m -= -cap -. -get ( 0 -) -. -unwrap -( -) -; -( -m -. -start -( -) -m -. -end -( -) -) -} -) -; -assert_eq -! -( -None -cap -. -get -( -2 -) -) -; -assert_eq -! -( -( -2 -3 -) -{ -let -m -= -cap -. -get -( -4 -) -. -unwrap -( -) -; -( -m -. -start -( -) -m -. -end -( -) -) -} -) -; -assert_eq -! -( -" -abc -" -cap -. -get -( -0 -) -. -unwrap -( -) -. -as_str -( -) -) -; -assert_eq -! -( -None -cap -. -get -( -2 -) -) -; -assert_eq -! -( -" -c -" -cap -. -get -( -4 -) -. -unwrap -( -) -. -as_str -( -) -) -; -assert_eq -! -( -None -cap -. -name -( -" -a -" -) -) -; -assert_eq -! -( -" -c -" -cap -. -name -( -" -b -" -) -. -unwrap -( -) -. -as_str -( -) -) -; -} -# -[ -test -] -fn -sub_capture_matches -( -) -{ -let -re -= -regex -! -( -r -" -( -[ -a -- -z -] -) -( -( -[ -a -- -z -] -) -| -( -[ -0 -- -9 -] -) -) -" -) -; -let -cap -= -re -. -captures -( -" -a5 -" -) -. -unwrap -( -) -; -let -subs -: -Vec -< -_ -> -= -cap -. -iter -( -) -. -collect -( -) -; -assert_eq -! -( -5 -subs -. -len -( -) -) -; -assert -! -( -subs -[ -0 -] -. -is_some -( -) -) -; -assert -! -( -subs -[ -1 -] -. -is_some -( -) -) -; -assert -! -( -subs -[ -2 -] -. -is_some -( -) -) -; -assert -! -( -subs -[ -3 -] -. -is_none -( -) -) -; -assert -! -( -subs -[ -4 -] -. -is_some -( -) -) -; -assert_eq -! -( -" -a5 -" -subs -[ -0 -] -. -unwrap -( -) -. -as_str -( -) -) -; -assert_eq -! -( -" -a -" -subs -[ -1 -] -. -unwrap -( -) -. -as_str -( -) -) -; -assert_eq -! -( -" -5 -" -subs -[ -2 -] -. -unwrap -( -) -. -as_str -( -) -) -; -assert_eq -! -( -" -5 -" -subs -[ -4 -] -. -unwrap -( -) -. -as_str -( -) -) -; -} -# -[ -test -] -fn -dfa_handles_pathological_case -( -) -{ -fn -ones_and_zeroes -( -count -: -usize -) -- -> -String -{ -let -mut -s -= -String -: -: -new -( -) -; -for -i -in -0 -. -. -count -{ -if -i -% -3 -= -= -0 -{ -s -. -push -( -' 1 -' -) -; -} -else -{ -s -. -push -( -' -0 -' -) -; -} -} -s -} -let -re -= -regex -! -( -r -" -[ -01 -] -* -1 -[ -01 -] -{ -20 -} -" -) -; -let -text -= -{ -let -mut -pieces -= -ones_and_zeroes -( -100_000 -) -; -pieces -. -push -( -' -1 -' -) -; -pieces -. -push_str -( -& -ones_and_zeroes -( -20 -) -) -; -pieces -} -; -assert -! -( -re -. -is_match -( -& -text ) ) ; -} diff --git a/third_party/rust/regex/tests/multiline.rs b/third_party/rust/regex/tests/multiline.rs new file mode 100644 index 0000000000000..572ffd64fa4ef --- /dev/null +++ b/third_party/rust/regex/tests/multiline.rs @@ -0,0 +1,979 @@ +matiter +! +( +match_multi_1 +r +" +( +? +m +) +^ +[ +a +- +z +] ++ +" +" +abc +\ +ndef +\ +nxyz +" +( +0 +3 +) +( +4 +7 +) +( +8 +11 +) +) +; +matiter +! +( +match_multi_2 +r +" +( +? +m +) +^ +" +" +abc +\ +ndef +\ +nxyz +" +) +; +matiter +! +( +match_multi_3 +r +" +( +? +m +) +^ +" +" +abc +\ +ndef +\ +nxyz +" +( +0 +0 +) +( +4 +4 +) +( +8 +8 +) +) +; +matiter +! +( +match_multi_4 +r +" +( +? +m +) +" +" +abc +\ +ndef +\ +nxyz +" +( +3 +3 +) +( +7 +7 +) +( +11 +11 +) +) +; +matiter +! +( +match_multi_5 +r +" +( +? +m +) +^ +[ +a +- +z +] +" +" +abc +\ +ndef +\ +nxyz +" +( +0 +1 +) +( +4 +5 +) +( +8 +9 +) +) +; +matiter +! +( +match_multi_6 +r +" +( +? +m +) +[ +a +- +z +] +^ +" +" +abc +\ +ndef +\ +nxyz +" +) +; +matiter +! +( +match_multi_7 +r +" +( +? +m +) +[ +a +- +z +] +" +" +abc +\ +ndef +\ +nxyz +" +( +2 +3 +) +( +6 +7 +) +( +10 +11 +) +) +; +matiter +! +( +match_multi_8 +r +" +( +? +m +) +[ +a +- +z +] +" +" +abc +\ +ndef +\ +nxyz +" +) +; +matiter +! +( +match_multi_9 +r +" +( +? +m +) +^ +" +" +" +( +0 +0 +) +) +; +matiter +! +( +match_multi_rep_1 +r +" +( +? +m +) +( +? +: +^ +) +* +" +" +a +\ +nb +\ +nc +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +5 +) +) +; +matiter +! +( +match_multi_rep_2 +r +" +( +? +m +) +( +? +: +^ +| +a +) ++ +" +" +a +\ +naaa +\ +n +" +( +0 +0 +) +( +2 +2 +) +( +3 +5 +) +( +6 +6 +) +) +; +matiter +! +( +match_multi_rep_3 +r +" +( +? +m +) +( +? +: +^ +| +a +) +* +" +" +a +\ +naaa +\ +n +" +( +0 +1 +) +( +2 +5 +) +( +6 +6 +) +) +; +matiter +! +( +match_multi_rep_4 +r +" +( +? +m +) +( +? +: +^ +[ +a +- +z +] +) ++ +" +" +abc +\ +ndef +\ +nxyz +" +( +0 +1 +) +( +4 +5 +) +( +8 +9 +) +) +; +matiter +! +( +match_multi_rep_5 +r +" +( +? +m +) +( +? +: +^ +[ +a +- +z +] +{ +3 +} +\ +n +? +) ++ +" +" +abc +\ +ndef +\ +nxyz +" +( +0 +11 +) +) +; +matiter +! +( +match_multi_rep_6 +r +" +( +? +m +) +( +? +: +^ +[ +a +- +z +] +{ +3 +} +\ +n +? +) +* +" +" +abc +\ +ndef +\ +nxyz +" +( +0 +11 +) +) +; +matiter +! +( +match_multi_rep_7 +r +" +( +? +m +) +( +? +: +\ +n +? +[ +a +- +z +] +{ +3 +} +) ++ +" +" +abc +\ +ndef +\ +nxyz +" +( +0 +11 +) +) +; +matiter +! +( +match_multi_rep_8 +r +" +( +? +m +) +( +? +: +\ +n +? +[ +a +- +z +] +{ +3 +} +) +* +" +" +abc +\ +ndef +\ +nxyz +" +( +0 +11 +) +) +; +matiter +! +( +match_multi_rep_9 +r +" +( +? +m +) +^ +* +" +" +\ +naa +\ +n +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +( +4 +4 +) +) +; +matiter +! +( +match_multi_rep_10 +r +" +( +? +m +) +^ ++ +" +" +\ +naa +\ +n +" +( +0 +0 +) +( +1 +1 +) +( +4 +4 +) +) +; +matiter +! +( +match_multi_rep_11 +r +" +( +? +m +) +* +" +" +\ +naa +\ +n +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +( +4 +4 +) +) +; +matiter +! +( +match_multi_rep_12 +r +" +( +? +m +) ++ +" +" +\ +naa +\ +n +" +( +0 +0 +) +( +3 +3 +) +( +4 +4 +) +) +; +matiter +! +( +match_multi_rep_13 +r +" +( +? +m +) +( +? +: +\ +n +) ++ +" +" +\ +n +\ +naaa +\ +n +\ +n +" +( +0 +2 +) +( +5 +7 +) +) +; +matiter +! +( +match_multi_rep_14 +r +" +( +? +m +) +( +? +: +\ +n +) +* +" +" +\ +n +\ +naaa +\ +n +\ +n +" +( +0 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +7 +) +) +; +matiter +! +( +match_multi_rep_15 +r +" +( +? +m +) +( +? +: +\ +n +^ +) ++ +" +" +\ +n +\ +naaa +\ +n +\ +n +" +( +0 +2 +) +( +5 +7 +) +) +; +matiter +! +( +match_multi_rep_16 +r +" +( +? +m +) +( +? +: +^ +| +) ++ +" +" +\ +n +\ +naaa +\ +n +\ +n +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +5 +5 +) +( +6 +6 +) +( +7 +7 +) +) +; +matiter +! +( +match_multi_rep_17 +r +" +( +? +m +) +( +? +: +\ +n +) +* +" +" +\ +n +\ +naaa +\ +n +\ +n +" +( +0 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +7 +) +) +; diff --git a/third_party/rust/regex/tests/noparse.rs b/third_party/rust/regex/tests/noparse.rs new file mode 100644 index 0000000000000..cbe5c442fc31f --- /dev/null +++ b/third_party/rust/regex/tests/noparse.rs @@ -0,0 +1,483 @@ +macro_rules +! +noparse +( +( +name +: +ident +re +: +expr +) += +> +( +# +[ +test +] +fn +name +( +) +{ +let +re += +re +; +match +regex_new +! +( +re +) +{ +Err +( +_ +) += +> +{ +} +Ok +( +_ +) += +> +panic +! +( +" +Regex +' +{ +} +' +should +cause +a +parse +error +. +" +re +) +} +} +) +; +) +; +noparse +! +( +fail_no_repeat_arg +" +* +" +) +; +noparse +! +( +fail_incomplete_escape +" +\ +\ +" +) +; +noparse +! +( +fail_class_incomplete +" +[ +A +- +" +) +; +noparse +! +( +fail_class_not_closed +" +[ +A +" +) +; +noparse +! +( +fail_class_no_begin +r +" +[ +\ +A +] +" +) +; +noparse +! +( +fail_class_no_end +r +" +[ +\ +z +] +" +) +; +noparse +! +( +fail_class_no_boundary +r +" +[ +\ +b +] +" +) +; +noparse +! +( +fail_open_paren +" +( +" +) +; +noparse +! +( +fail_close_paren +" +) +" +) +; +noparse +! +( +fail_invalid_range +" +[ +a +- +Z +] +" +) +; +noparse +! +( +fail_empty_capture_name +" +( +? +P +< +> +a +) +" +) +; +noparse +! +( +fail_bad_capture_name +" +( +? +P +< +na +- +me +> +) +" +) +; +noparse +! +( +fail_bad_flag +" +( +? +a +) +a +" +) +; +noparse +! +( +fail_too_big +" +a +{ +10000000 +} +" +) +; +noparse +! +( +fail_counted_no_close +" +a +{ +1001 +" +) +; +noparse +! +( +fail_counted_decreasing +" +a +{ +2 +1 +} +" +) +; +noparse +! +( +fail_counted_nonnegative +" +a +{ +- +1 +1 +} +" +) +; +noparse +! +( +fail_unfinished_cap +" +( +? +" +) +; +noparse +! +( +fail_unfinished_escape +" +\ +\ +" +) +; +noparse +! +( +fail_octal_digit +r +" +\ +8 +" +) +; +noparse +! +( +fail_hex_digit +r +" +\ +xG0 +" +) +; +noparse +! +( +fail_hex_short +r +" +\ +xF +" +) +; +noparse +! +( +fail_hex_long_digits +r +" +\ +x +{ +fffg +} +" +) +; +noparse +! +( +fail_flag_bad +" +( +? +a +) +" +) +; +noparse +! +( +fail_flag_empty +" +( +? +) +" +) +; +noparse +! +( +fail_double_neg +" +( +? +- +i +- +i +) +" +) +; +noparse +! +( +fail_neg_empty +" +( +? +i +- +) +" +) +; +noparse +! +( +fail_dupe_named +" +( +? +P +< +a +> +. +) +( +? +P +< +a +> +. +) +" +) +; +noparse +! +( +fail_range_end_no_class +" +[ +a +- +[ +: +lower +: +] +] +" +) +; +noparse +! +( +fail_range_end_no_begin +r +" +[ +a +- +\ +A +] +" +) +; +noparse +! +( +fail_range_end_no_end +r +" +[ +a +- +\ +z +] +" +) +; +noparse +! +( +fail_range_end_no_boundary +r +" +[ +a +- +\ +b +] +" +) +; diff --git a/third_party/rust/regex/tests/regression.rs b/third_party/rust/regex/tests/regression.rs index 6c3598d4b7af2..022c748efb758 100644 --- a/third_party/rust/regex/tests/regression.rs +++ b/third_party/rust/regex/tests/regression.rs @@ -1,38 +1,3 @@ -use -regex -: -: -Regex -; -macro_rules -! -regex -{ -( -pattern -: -expr -) -= -> -{ -regex -: -: -Regex -: -: -new -( -pattern -) -. -unwrap -( -) -} -; -} # [ test @@ -45,10 +10,8 @@ invalid_regexes_no_crash assert ! ( -Regex -: -: -new +regex_new +! ( " ( @@ -65,10 +28,8 @@ is_err assert ! ( -Regex -: -: -new +regex_new +! ( " ( @@ -87,10 +48,8 @@ is_err assert ! ( -Regex -: -: -new +regex_new +! ( " ( @@ -107,10 +66,8 @@ is_err assert ! ( -Regex -: -: -new +regex_new +! ( " * @@ -154,43 +111,19 @@ assert_eq vec ! [ +( 0 -. -. 1 +) ] -re -. -find_iter +findall +! ( +re " a " ) -. -map -( -| -m -| -m -. -range -( -) -) -. -collect -: -: -< -Vec -< -_ -> -> -( -) ) ; } @@ -206,10 +139,8 @@ regression_invalid_repetition_expr assert ! ( -Regex -: -: -new +regex_new +! ( " ( @@ -241,10 +172,8 @@ regression_invalid_flags_expression assert ! ( -Regex -: -: -new +regex_new +! ( " ( @@ -264,6 +193,158 @@ is_ok ) ; } +mat +! +( +regression_unsorted_binary_search_1 +r +" +( +? +i +- +u +) +[ +a_ +] ++ +" +" +A_ +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +regression_unsorted_binary_search_2 +r +" +( +? +i +- +u +) +[ +A_ +] ++ +" +" +a_ +" +Some +( +( +0 +2 +) +) +) +; +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] +mat +! +( +regression_negated_char_class_1 +r +" +( +? +i +) +[ +^ +x +] +" +" +x +" +None +) +; +# +[ +cfg +( +feature += +" +unicode +- +case +" +) +] +mat +! +( +regression_negated_char_class_2 +r +" +( +? +i +) +[ +^ +x +] +" +" +X +" +None +) +; +mat +! +( +regression_ascii_word_underscore +r +" +[ +[ +: +word +: +] +] +" +" +_ +" +Some +( +( +0 +1 +) +) +) +; # [ test @@ -313,10 +394,14 @@ re . captures ( +text +! +( " abx " ) +) . unwrap ( @@ -325,212 +410,275 @@ unwrap assert_eq ! ( -& +match_text +! +( caps -[ +. +name +( " foo " -] +) +. +unwrap +( +) +) +text +! +( " x " ) +) ; } -# -[ -cfg +mat +! ( -feature -= +regression_alt_in_alt1 +r " -unicode -- -perl +ab +? +| " +" +az +" +Some +( +( +0 +1 ) -] -# -[ -test -] -fn -regression_nfa_stops1 -( ) -{ -let -re -= -regex -: -: -bytes -: -: -Regex -: -: -new +) +; +mat +! ( +regression_alt_in_alt2 r " -\ -bs +^ ( +. +* ? -: -[ -ab -] ) -" +( +\ +n +| +\ +r +\ +n +? +| ) -. -unwrap +" +" +ab +\ +rcd +" +Some ( +( +0 +3 +) +) ) ; -assert_eq +mat ! ( -0 -re -. -find_iter -( -b +regression_leftmost_first_prefix +r " -s -\ -xE4 +z +* +azb " -) -. -count +" +azb +" +Some ( +( +0 +3 +) ) ) ; -} # [ cfg ( +all +( +feature += +" +unicode +- +case +" feature = " unicode +- +gencat " ) -] -# -[ -test -] -fn -regression_bad_word_boundary -( ) -{ -let -re -= -regex +] +mat ! ( +uni_case_lower_nocase_flag r -# " ( ? i -: -( -? -: +) \ -b -| -_ +p +{ +Ll +} ++ +" +" +" +Some +( +( +0 +10 +) ) -win +) +; +mat +! ( -? -: -32 +many_alternates +r +" +1 | -64 +2 | -dows -) -? -( -? -: -\ -b +3 | -_ +4 +| +5 +| +6 +| +7 +| +8 +| +9 +| +10 +| +int +" +" +int +" +Some +( +( +0 +3 ) ) -" -# ) ; -let -hay -= +mat +! +( +anchored_prefix1 +r " -ubi -- -Darwin -- -x86_64 -. -tar -. -gz +^ +a +[ +[ +: +^ +space +: +] +] +" +" +a " +None +) ; -assert -! -( +mat ! -re -. -is_match ( -hay -) +anchored_prefix2 +r +" +^ +a +[ +[ +: +^ +space +: +] +] +" +" +foo +boo +a +" +None ) ; -let -hay -= +mat +! +( +anchored_prefix3 +r " -ubi +^ - -Windows +[ +a - -x86_64 -. -zip +z +] " -; -assert -! -( -re -. -is_match -( -hay -) +" +r +- +f +" +None ) ; -} # [ cfg @@ -544,168 +692,1156 @@ perl " ) ] -# -[ -test -] -fn -regression_unicode_perl_not_enabled +split +! ( -) -{ -let -pat -= +split_on_word_boundary r " -( -\ -d -+ \ -s +b +" +r +" +Should +this +( +work ? +) +" +& +[ +t +! ( -years -| -year -| -y +" +" ) +t +! +( +" +Should +" ) -? -\ -s -? +t +! ( -\ -d -+ -\ -s +" +" +) +t +! +( +" +this +" +) +t +! +( +" +( +" +) +t +! +( +" +work +" +) +t +! +( +" ? +) +" +) +] +) +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +matiter +! +( +word_boundary_dfa +r +" +\ +b +" +" +a +b +c +" +( +0 +0 +) +( +1 +1 +) ( -months +2 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +5 +) +) +; +matiter +! +( +partial_anchor +r +" +^ +a +| +b +" +" +ba +" +( +0 +1 +) +) +; +ismatch +! +( +partial_anchor_alternate_begin +r +" +^ +a | -month +z +" +" +yyyyya +" +false +) +; +ismatch +! +( +partial_anchor_alternate_end +r +" +a | -m +z +" +" +ayyyyy +" +false +) +; +mat +! +( +lits_unambiguous1 +r +" +( +ABC +| +CDA +| +BC +) +X +" +" +CDAX +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +lits_unambiguous2 +r +" +( +( +IMG +| +CAM +| +MG +| +MB2 +) +_ +| +( +DSCN +| +CIMG ) ) +( ? -\ -s +P +< +n +> +[ +0 +- +9 +] ++ +) +" +" +CIMG2341 +" +Some +( +( +0 +8 +) +) +Some +( +( +0 +4 +) +) +None +Some +( +( +0 +4 +) +) +Some +( +( +4 +8 +) +) +) +; +mat +! +( +endl_or_wb +r +" +( +? +m +: +) +| +( ? +- +u +: +\ +b +) +" +" +\ +u +{ +6084e +} +" +Some ( +( +4 +4 +) +) +) +; +mat +! +( +zero_or_end +r +" +( +? +i +- +u +: \ -d -+ +x00 +) +| +" +" \ -s +u +{ +e682f +} +" +Some +( +( +4 +4 +) +) +) +; +mat +! +( +y_or_endl +r +" +( ? +i +- +u +: +y +) +| ( -weeks +? +m +: +) +" +" +\ +u +{ +b4331 +} +" +Some +( +( +4 +4 +) +) +) +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mat +! +( +wb_start_x +r +" +( +? +u +: +\ +b +) +^ +( +? +- +u +: +X +) +" +" +X +" +Some +( +( +0 +1 +) +) +) +; +ismatch +! +( +strange_anchor_non_complete_prefix +r +" +a +^ +{ +2 +} +" +" +" +false +) +; +ismatch +! +( +strange_anchor_non_complete_suffix +r +" +{ +2 +} +a +" +" +" +false +) +; +ismatch +! +( +reverse_suffix1 +r +" +[ +0 +- +4 +] +[ +0 +- +4 +] +[ +0 +- +4 +] +000 +" +" +153 +. +230000 +" +true +) +; +ismatch +! +( +reverse_suffix2 +r +" +[ +0 +- +9 +] +[ +0 +- +9 +] +[ +0 +- +9 +] +000 +" +" +153 +. +230000 +\ +n +" +true +) +; +matiter +! +( +reverse_suffix3 +r +" +[ +0 +- +9 +] +[ +0 +- +9 +] +[ +0 +- +9 +] +000 +" +" +153 +. +230000 +\ +n +" +( +4 +10 +) +) +; +mat +! +( +captures_after_dfa_premature_end1 +r +" +a +( +b +* +( +X +| +) +) +? +" +" +abcbX +" +Some +( +( +0 +1 +) +) +None +None +) +; +mat +! +( +captures_after_dfa_premature_end2 +r +" +a +( +bc +* +( +X +| +) +) +? +" +" +abcbX +" +Some +( +( +0 +1 +) +) +None +None +) +; +mat +! +( +captures_after_dfa_premature_end3 +r +" +( +aa +) +? +" +" +aaz +" +Some +( +( +0 +0 +) +) +) +; +ismatch +! +( +literal_panic +r +" +typename +type +\ +- +parameter +\ +- +[ +0 +- +9 +] ++ +\ +- +[ +0 +- +9 +] ++ +: +: +. ++ +" +" +test +" +false +) +; +ismatch +! +( +blank_matches_nothing_between_space_and_tab +r +" +[ +[ +: +blank +: +] +] +" +" +\ +u +{ +a +} +\ +u +{ +b +} +\ +u +{ +c +} +\ +u +{ +d +} +\ +u +{ +e +} +\ +u +{ +f +} +\ +\ +u +{ +10 +} +\ +u +{ +11 +} +\ +u +{ +12 +} +\ +u +{ +13 +} +\ +u +{ +14 +} +\ +u +{ +15 +} +\ +u +{ +16 +} +\ +u +{ +17 +} +\ +\ +u +{ +18 +} +\ +u +{ +19 +} +\ +u +{ +1a +} +\ +u +{ +1b +} +\ +u +{ +1c +} +\ +u +{ +1d +} +\ +u +{ +1e +} +\ +u +{ +1f +} +" +false +) +; +ismatch +! +( +inverted_blank_matches_everything_between_space_and_tab +r +" +^ +[ +[ +: +^ +blank +: +] +] ++ +" +" +\ +u +{ +a +} +\ +u +{ +b +} +\ +u +{ +c +} +\ +u +{ +d +} +\ +u +{ +e +} +\ +u +{ +f +} +\ +\ +u +{ +10 +} +\ +u +{ +11 +} +\ +u +{ +12 +} +\ +u +{ +13 +} +\ +u +{ +14 +} +\ +u +{ +15 +} +\ +u +{ +16 +} +\ +u +{ +17 +} +\ +\ +u +{ +18 +} +\ +u +{ +19 +} +\ +u +{ +1a +} +\ +u +{ +1b +} +\ +u +{ +1c +} +\ +u +{ +1d +} +\ +u +{ +1e +} +\ +u +{ +1f +} +" +true +) +; +mat +! +( +ahocorasick1 +" +samwise +| +sam +| +a +| +b +| +c +| +d +| +e +| +f +| +g +| +h +| +i +| +j +| +k +| +l +| +m +| +n +| +o +| +p +| +q +| +r +| +s +| +t +| +u +| +v +| +w +| +x +| +y +| +z +| +\ +A +| +B +| +C +| +D +| +E +| +F +| +G +| +H | -week +I | -w -) -) -? -\ -s -? -( -\ -d -+ -\ -s -? -( -days +J | -day +K | -d -) -) -? -\ -s -? -( -\ -d -+ -\ -s -? -( -hours +L | -hour +M | -h -) -) -? +N +| +O +| +P +| +Q +| +R +| +S +| +T +| +U +| +V +| +W +| +X +| +Y +| +Z " -; -assert -! +" +samwise +" +Some ( -Regex -: -: -new ( -pat +0 +7 ) -. -is_ok -( ) ) ; -} # [ test ] +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] fn -regression_big_regex_overflow +regression_nfa_stops1 ( ) { let -pat +re = +: +: +regex +: +: +bytes +: +: +Regex +: +: +new +( r " -{ -2147483516 -} -{ -2147483416 -} -{ -5 -} +\ +bs +( +? +: +[ +ab +] +) " +) +. +unwrap +( +) ; -assert +assert_eq ! ( -Regex -: -: -new +0 +re +. +find_iter ( -pat +b +" +s +\ +xE4 +" ) . -is_err +count ( ) ) @@ -713,142 +1849,109 @@ is_err } # [ -test -] -fn -regression_complete_literals_suffix_incorrect +cfg ( -) -{ -let -needles +feature = -vec -! -[ -" -aA -" -" -bA -" -" -cA -" -" -dA -" -" -eA -" -" -fA -" -" -gA -" -" -hA -" -" -iA -" -" -jA -" -" -kA " +unicode +- +case " -lA -" -" -mA -" -" -nA -" -" -oA -" -" -pA -" -" -qA -" -" -rA -" -" -sA -" -" -tA -" +) +] +matiter +! +( +flags_are_unset +r " -uA +( +( +? +i +) +foo +) +| +Bar " " -vA +foo +Foo +bar +Bar " +( +0 +3 +) +( +4 +7 +) +( +12 +15 +) +) +; +ismatch +! +( +empty_group_match +r " -wA +( +) +01 " " -xA +z +01 " +true +) +; +matiter +! +( +empty_group_find +r " -yA +( +) +01 " " -zA +z +01 " -] -; -let -pattern -= -needles -. -join ( -" -| -" +1 +5 +) ) ; -let -re -= -regex +mat ! ( -& -pattern -) -; -let -hay -= +non_greedy_question_literal +r +" +ab +? +? " -FUBAR " -; -assert_eq -! +ab +" +Some ( -0 -re -. -find_iter ( -hay +0 +1 ) -. -count -( ) ) ; -} diff --git a/third_party/rust/regex/tests/regression_fuzz.rs b/third_party/rust/regex/tests/regression_fuzz.rs index 14991d78698e5..1c291256fce90 100644 --- a/third_party/rust/regex/tests/regression_fuzz.rs +++ b/third_party/rust/regex/tests/regression_fuzz.rs @@ -1,38 +1,3 @@ -use -regex -: -: -Regex -; -macro_rules -! -regex -{ -( -pattern -: -expr -) -= -> -{ -regex -: -: -Regex -: -: -new -( -pattern -) -. -unwrap -( -) -} -; -} # [ test @@ -95,17 +60,6 @@ r [ test ] -# -[ -cfg -( -feature -= -" -unicode -" -) -] fn empty_any_errors_no_panic ( @@ -114,10 +68,8 @@ empty_any_errors_no_panic assert ! ( -Regex -: -: -new +regex_new +! ( r " @@ -129,7 +81,7 @@ any " ) . -is_ok +is_err ( ) ) @@ -192,118 +144,14 @@ p assert ! ( -Regex -: -: -new -( -pat -) -. -is_err -( -) -) -; -} -# -[ -test -] -fn -todo -( -) -{ -let -pat -= -" -( -? -: -z -| -xx -) -| -xx -" -; -assert +regex_new ! ( -Regex -: -: -new -( -pat -) -. -is_ok -( -) -) -; -} -# -[ -test -] -fn -fail_branch_prevents_match -( -) -{ -let -pat -= -r -" -. -* -[ -a -& -& -b -] -A -| -B -" -; -let -hay -= -" -B -" -; -let -re -= -Regex -: -: -new -( pat ) . -unwrap -( -) -; -assert -! -( -re -. -is_match +is_err ( -hay ) ) ; diff --git a/third_party/rust/regex/tests/replace.rs b/third_party/rust/regex/tests/replace.rs index efe631ab30855..d49b0bd0b270d 100644 --- a/third_party/rust/regex/tests/replace.rs +++ b/third_party/rust/regex/tests/replace.rs @@ -38,19 +38,10 @@ let re = regex -: -: -Regex -: -: -new +! ( re ) -. -unwrap -( -) ; assert_eq ! @@ -59,11 +50,19 @@ re . which ( +text +! +( search +) replace ) +text +! +( result ) +) ; } ) @@ -88,9 +87,13 @@ age : 26 " +t +! +( " Z " +) " age : @@ -117,9 +120,13 @@ age : 26 " +t +! +( " Z " +) " age : @@ -145,9 +152,13 @@ age : 26 " +t +! +( " Z " +) " age : @@ -163,18 +174,21 @@ replace r " ( -[ -^ -] +? +- +u +) +( +\ +S + ) -[ -] +\ +s + ( -[ -^ -] +\ +S + ) " @@ -182,10 +196,14 @@ r w1 w2 " +t +! +( " 2 1 " +) " w2 w1 @@ -200,18 +218,21 @@ replace r " ( -[ -^ -] +? +- +u +) +( +\ +S + ) -[ -] +\ +s + ( -[ -^ -] +\ +S + ) " @@ -219,10 +240,14 @@ r w1 w2 " +t +! +( " 2 1 " +) " w2 1 @@ -238,17 +263,21 @@ r " ( ? +- +u +) +( +? P < first > -[ -^ -] +\ +S + ) -[ -] +\ +s + ( ? @@ -256,9 +285,8 @@ P < last > -[ -^ -] +\ +S + ) ( @@ -267,8 +295,8 @@ P < space > -[ -] +\ +s * ) " @@ -278,11 +306,15 @@ w2 w3 w4 " +t +! +( " last first space " +) " w2 w1 @@ -320,8 +352,12 @@ t \ t " +t +! +( " " +) " trim me @@ -331,7 +367,7 @@ me replace ! ( -number_hyphen +number_hypen replace r " @@ -345,11 +381,15 @@ r " ab " +t +! +( " 1 - 2 " +) " a - @@ -365,28 +405,31 @@ replace_all r " ( -[ -a +? - -z -] +u ) ( -[ -a -- -z -] +\ +w +) +( +\ +w ) " " a b " +t +! +( " 2 1 " +) " b a @@ -401,19 +444,18 @@ replace_all r " ( -[ -a +? - -z -] +u +) +( +\ +w + ) ( -[ -a -- -z -] +\ +w + ) " @@ -421,9 +463,13 @@ z a b " +t +! +( " 1 " +) " 1 " @@ -437,19 +483,18 @@ replace_all r " ( -[ -a +? - -z -] +u +) +( +\ +w + ) ( -[ -a -- -z -] +\ +w + ) " @@ -457,11 +502,15 @@ z a b " +t +! +( " 2 c 1 " +) " b c @@ -477,18 +526,21 @@ replace r " ( -[ -^ -] +? +- +u +) +( +\ +S + ) -[ -] +\ +s + ( -[ -^ -] +\ +S + ) " @@ -496,10 +548,8 @@ r w1 w2 " -regex -: -: -NoExpand +no_expand +! ( " 2 @@ -520,18 +570,21 @@ replace r " ( -[ -^ -] +? +- +u +) +( +\ +S + ) -[ -] +\ +s + ( -[ -^ -] +\ +S + ) " @@ -539,10 +592,8 @@ r w1 w2 " -regex -: -: -NoExpand +no_expand +! ( " 1 @@ -553,6 +604,12 @@ NoExpand " ) ; +use_ +! +( +Captures +) +; replace ! ( @@ -578,9 +635,6 @@ age captures : & -regex -: -: Captures < ' @@ -588,10 +642,20 @@ _ > | { +match_text +! +( captures -[ +. +get +( 1 -] +) +. +unwrap +( +) +) [ 0 . @@ -633,18 +697,19 @@ age _captures : & -regex -: -: Captures < ' _ > | +t +! +( " Z " +) . to_owned ( @@ -668,8 +733,12 @@ foo " foobar " +t +! +( " " +) " bar " @@ -687,9 +756,13 @@ r " bar " +t +! +( " foo " +) " foobar " @@ -709,6 +782,9 @@ r " b " +t +! +( " { 1 @@ -716,6 +792,7 @@ b a 1a " +) " ba " @@ -739,6 +816,9 @@ age : 26 " +t +! +( " Z " @@ -746,6 +826,7 @@ Z to_string ( ) +) " age : @@ -771,6 +852,9 @@ age : 26 " +t +! +( & " Z @@ -779,6 +863,7 @@ Z to_string ( ) +) " age : @@ -804,6 +889,9 @@ age : 26 " +t +! +( std : : @@ -826,6 +914,7 @@ Borrowed Z " ) +) " age : @@ -851,6 +940,9 @@ age : 26 " +t +! +( & std : @@ -874,6 +966,7 @@ Borrowed Z " ) +) " age : @@ -899,6 +992,9 @@ age : 26 " +t +! +( std : : @@ -925,6 +1021,7 @@ to_string ( ) ) +) " age : @@ -950,6 +1047,9 @@ age : 26 " +t +! +( & std : @@ -977,6 +1077,7 @@ to_string ( ) ) +) " age : @@ -984,26 +1085,143 @@ Z6 " ) ; -# +replace +! +( +impl_vec_u8 +replace +r +" [ -test +0 +- +9 ] -fn -replacen_no_captures +" +" +age +: +26 +" +bytes +! ( +vec +! +[ +b +' +Z +' +] ) -{ -let -re -= -regex +" +age +: +Z6 +" +) +; +replace +! +( +impl_vec_u8_ref +replace +r +" +[ +0 +- +9 +] +" +" +age +: +26 +" +bytes +! +( +& +vec +! +[ +b +' +Z +' +] +) +" +age +: +Z6 +" +) +; +replace +! +( +impl_cow_slice_borrowed +replace +r +" +[ +0 +- +9 +] +" +" +age +: +26 +" +bytes +! +( +std +: +: +borrow : : -Regex +Cow +: +: +< +' +_ +[ +u8 +] +> +: : +Borrowed +( +& +[ +b +' +Z +' +] +) +) +" +age : -new +Z6 +" +) +; +replace +! ( +impl_cow_slice_borrowed_ref +replace r " [ @@ -1012,10 +1230,191 @@ r 9 ] " +" +age +: +26 +" +bytes +! +( +& +std +: +: +borrow +: +: +Cow +: +: +< +' +_ +[ +u8 +] +> +: +: +Borrowed +( +& +[ +b +' +Z +' +] +) +) +" +age +: +Z6 +" ) -. -unwrap +; +replace +! +( +impl_cow_slice_owned +replace +r +" +[ +0 +- +9 +] +" +" +age +: +26 +" +bytes +! +( +std +: +: +borrow +: +: +Cow +: +: +< +' +_ +[ +u8 +] +> +: +: +Owned ( +vec +! +[ +b +' +Z +' +] +) +) +" +age +: +Z6 +" +) +; +replace +! +( +impl_cow_slice_owned_ref +replace +r +" +[ +0 +- +9 +] +" +" +age +: +26 +" +bytes +! +( +& +std +: +: +borrow +: +: +Cow +: +: +< +' +_ +[ +u8 +] +> +: +: +Owned +( +vec +! +[ +b +' +Z +' +] +) +) +" +age +: +Z6 +" +) +; +# +[ +test +] +fn +replacen_no_captures +( +) +{ +let +re += +regex +! +( +r +" +[ +0 +- +9 +] +" ) ; assert_eq @@ -1025,22 +1424,34 @@ re . replacen ( +text +! +( " age : 1234 " +) 2 +t +! +( " Z " ) +) +text +! +( " age : ZZ34 " ) +) ; } # @@ -1056,12 +1467,7 @@ let re = regex -: -: -Regex -: -: -new +! ( r " @@ -1074,10 +1480,6 @@ r ) " ) -. -unwrap -( -) ; assert_eq ! @@ -1086,12 +1488,19 @@ re . replacen ( +text +! +( " age : 1234 " +) 2 +t +! +( " { 1 @@ -1099,11 +1508,16 @@ age Z " ) +) +text +! +( " age : 1Z2Z34 " ) +) ; } diff --git a/third_party/rust/regex/tests/searcher.rs b/third_party/rust/regex/tests/searcher.rs index db31dc79d65bc..71badf2e01ac3 100644 --- a/third_party/rust/regex/tests/searcher.rs +++ b/third_party/rust/regex/tests/searcher.rs @@ -143,6 +143,10 @@ name ( ) { +searcher_expr +! +{ +{ use std : @@ -181,19 +185,10 @@ let re = regex -: -: -Regex -: -: -new +! ( re ) -. -unwrap -( -) ; let mut @@ -250,6 +245,8 @@ expect_steps ) ; } +} +} ) ; } diff --git a/third_party/rust/regex/tests/set.rs b/third_party/rust/regex/tests/set.rs new file mode 100644 index 0000000000000..f0d7c40a1b09d --- /dev/null +++ b/third_party/rust/regex/tests/set.rs @@ -0,0 +1,851 @@ +matset +! +( +set1 +& +[ +" +a +" +" +a +" +] +" +a +" +0 +1 +) +; +matset +! +( +set2 +& +[ +" +a +" +" +a +" +] +" +ba +" +0 +1 +) +; +matset +! +( +set3 +& +[ +" +a +" +" +b +" +] +" +a +" +0 +) +; +matset +! +( +set4 +& +[ +" +a +" +" +b +" +] +" +b +" +1 +) +; +matset +! +( +set5 +& +[ +" +a +| +b +" +" +b +| +a +" +] +" +b +" +0 +1 +) +; +matset +! +( +set6 +& +[ +" +foo +" +" +oo +" +] +" +foo +" +0 +1 +) +; +matset +! +( +set7 +& +[ +" +^ +foo +" +" +bar +" +] +" +foo +" +0 +) +; +matset +! +( +set8 +& +[ +" +^ +foo +" +" +bar +" +] +" +foo +bar +" +0 +1 +) +; +matset +! +( +set9 +& +[ +" +^ +foo +" +" +bar +" +] +" +bar +" +1 +) +; +matset +! +( +set10 +& +[ +r +" +[ +a +- +z +] ++ +" +" +foo +" +] +" +01234 +foo +" +0 +1 +) +; +matset +! +( +set11 +& +[ +r +" +[ +a +- +z +] ++ +" +" +foo +" +] +" +foo +01234 +" +1 +) +; +matset +! +( +set12 +& +[ +r +" +. +* +? +" +" +a +" +] +" +zzzzzza +" +0 +1 +) +; +matset +! +( +set13 +& +[ +r +" +. +* +" +" +a +" +] +" +zzzzzza +" +0 +1 +) +; +matset +! +( +set14 +& +[ +r +" +. +* +" +" +a +" +] +" +zzzzzz +" +0 +) +; +matset +! +( +set15 +& +[ +r +" +( +? +- +u +) +\ +ba +\ +b +" +] +" +hello +a +bye +" +0 +) +; +matset +! +( +set16 +& +[ +" +a +" +] +" +a +" +0 +) +; +matset +! +( +set17 +& +[ +" +. +* +a +" +] +" +a +" +0 +) +; +matset +! +( +set18 +& +[ +" +a +" +" +" +] +" +" +1 +) +; +matset +! +( +setempty1 +& +[ +" +" +" +a +" +] +" +abc +" +0 +1 +) +; +matset +! +( +setempty2 +& +[ +" +" +" +b +" +] +" +abc +" +0 +1 +) +; +matset +! +( +setempty3 +& +[ +" +" +" +z +" +] +" +abc +" +0 +) +; +matset +! +( +setempty4 +& +[ +" +a +" +" +" +] +" +abc +" +0 +1 +) +; +matset +! +( +setempty5 +& +[ +" +b +" +" +" +] +" +abc +" +0 +1 +) +; +matset +! +( +setempty6 +& +[ +" +z +" +" +" +] +" +abc +" +1 +) +; +matset +! +( +setempty7 +& +[ +" +b +" +" +( +? +: +) +" +] +" +abc +" +0 +1 +) +; +matset +! +( +setempty8 +& +[ +" +( +? +: +) +" +" +b +" +] +" +abc +" +0 +1 +) +; +matset +! +( +setempty9 +& +[ +" +c +( +? +: +) +" +" +b +" +] +" +abc +" +0 +1 +) +; +nomatset +! +( +nset1 +& +[ +" +a +" +" +a +" +] +" +b +" +) +; +nomatset +! +( +nset2 +& +[ +" +^ +foo +" +" +bar +" +] +" +bar +foo +" +) +; +nomatset +! +( +nset3 +{ +let +xs +: +& +[ +& +str +] += +& +[ +] +; +xs +} +" +a +" +) +; +nomatset +! +( +nset4 +& +[ +r +" +^ +rooted +" +r +" +\ +. +log +" +] +" +notrooted +" +) +; +# +[ +test +] +fn +regression_subsequent_matches +( +) +{ +let +set += +regex_set +! +( +& +[ +" +ab +" +" +b +" +] +) +; +let +text += +text +! +( +" +ba +" +) +; +assert +! +( +set +. +matches +( +text +) +. +matched +( +1 +) +) +; +assert +! +( +set +. +matches +( +text +) +. +matched +( +1 +) +) +; +} +# +[ +test +] +fn +get_set_patterns +( +) +{ +let +set += +regex_set +! +( +& +[ +" +a +" +" +b +" +] +) +; +assert_eq +! +( +vec +! +[ +" +a +" +" +b +" +] +set +. +patterns +( +) +) +; +} +# +[ +test +] +fn +len_and_empty +( +) +{ +let +empty += +regex_set +! +( +& +[ +" +" +; +0 +] +) +; +assert_eq +! +( +empty +. +len +( +) +0 +) +; +assert +! +( +empty +. +is_empty +( +) +) +; +let +not_empty += +regex_set +! +( +& +[ +" +ab +" +" +b +" +] +) +; +assert_eq +! +( +not_empty +. +len +( +) +2 +) +; +assert +! +( +! +not_empty +. +is_empty +( +) +) +; +} diff --git a/third_party/rust/regex/tests/shortest_match.rs b/third_party/rust/regex/tests/shortest_match.rs new file mode 100644 index 0000000000000..3cec41a61ea0a --- /dev/null +++ b/third_party/rust/regex/tests/shortest_match.rs @@ -0,0 +1,108 @@ +macro_rules +! +shortmat +{ +( +name +: +ident +re +: +expr +text +: +expr +shortest_match +: +expr +) += +> +{ +# +[ +test +] +fn +name +( +) +{ +let +text += +text +! +( +text +) +; +let +re += +regex +! +( +re +) +; +assert_eq +! +( +shortest_match +re +. +shortest_match +( +text +) +) +; +} +} +; +} +shortmat +! +( +t01 +r +" +a ++ +" +r +" +aa +" +Some +( +1 +) +) +; +shortmat +! +( +t02 +r +" +. +* +( +? +: +abcd +) ++ +" +r +" +abcdabcd +" +Some +( +4 +) +) +; diff --git a/third_party/rust/regex/tests/suffix_reverse.rs b/third_party/rust/regex/tests/suffix_reverse.rs new file mode 100644 index 0000000000000..9d804a046a9ac --- /dev/null +++ b/third_party/rust/regex/tests/suffix_reverse.rs @@ -0,0 +1,168 @@ +mat +! +( +t01 +r +" +. +* +abcd +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +t02 +r +" +. +* +( +? +: +abcd +) ++ +" +r +" +abcd +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +t03 +r +" +. +* +( +? +: +abcd +) ++ +" +r +" +abcdabcd +" +Some +( +( +0 +8 +) +) +) +; +mat +! +( +t04 +r +" +. +* +( +? +: +abcd +) ++ +" +r +" +abcdxabcd +" +Some +( +( +0 +9 +) +) +) +; +mat +! +( +t05 +r +" +. +* +x +( +? +: +abcd +) ++ +" +r +" +abcdxabcd +" +Some +( +( +0 +9 +) +) +) +; +mat +! +( +t06 +r +" +[ +^ +abcd +] +* +x +( +? +: +abcd +) ++ +" +r +" +abcdxabcd +" +Some +( +( +4 +9 +) +) +) +; diff --git a/third_party/rust/regex/tests/suite_bytes.rs b/third_party/rust/regex/tests/suite_bytes.rs deleted file mode 100644 index e9aad325d0d53..0000000000000 --- a/third_party/rust/regex/tests/suite_bytes.rs +++ /dev/null @@ -1,683 +0,0 @@ -use -{ -anyhow -: -: -Result -regex -: -: -bytes -: -: -{ -Regex -RegexBuilder -} -regex_test -: -: -{ -CompiledRegex -Match -RegexTest -Span -TestResult -TestRunner -} -} -; -# -[ -test -] -fn -default -( -) -- -> -Result -< -( -) -> -{ -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -. -blacklist_iter -( -super -: -: -BLACKLIST -) -. -test_iter -( -crate -: -: -suite -( -) -? -. -iter -( -) -compiler -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -run_test -( -re -: -& -Regex -test -: -& -RegexTest -) -- -> -TestResult -{ -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -TestResult -: -: -matched -( -re -. -is_match -( -test -. -haystack -( -) -) -) -" -find -" -= -> -TestResult -: -: -matches -( -re -. -find_iter -( -test -. -haystack -( -) -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -m -| -Match -{ -id -: -0 -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -) -" -captures -" -= -> -{ -let -it -= -re -. -captures_iter -( -test -. -haystack -( -) -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -caps -| -testify_captures -( -& -caps -) -) -; -TestResult -: -: -captures -( -it -) -} -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -compiler -( -test -: -& -RegexTest -_patterns -: -& -[ -String -] -) -- -> -anyhow -: -: -Result -< -CompiledRegex -> -{ -let -skip -= -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -let -pattern -= -match -test -. -regexes -( -) -. -len -( -) -{ -1 -= -> -& -test -. -regexes -( -) -[ -0 -] -_ -= -> -return -skip -} -; -if -! -matches -! -( -test -. -search_kind -( -) -regex_test -: -: -SearchKind -: -: -Leftmost -) -{ -return -skip -; -} -if -! -matches -! -( -test -. -match_kind -( -) -regex_test -: -: -MatchKind -: -: -LeftmostFirst -) -{ -return -skip -; -} -if -test -. -anchored -( -) -& -& -test -. -match_limit -( -) -! -= -Some -( -1 -) -{ -return -skip -; -} -let -bounds -= -test -. -bounds -( -) -; -if -! -( -bounds -. -start -= -= -0 -& -& -bounds -. -end -= -= -test -. -haystack -( -) -. -len -( -) -) -{ -return -skip -; -} -if -test -. -utf8 -( -) -{ -return -skip -; -} -if -test -. -unicode -( -) -& -& -! -cfg -! -( -feature -= -" -unicode -" -) -{ -return -skip -; -} -let -re -= -RegexBuilder -: -: -new -( -pattern -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -. -build -( -) -? -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -run_test -( -& -re -test -) -) -) -} -fn -testify_captures -( -caps -: -& -regex -: -: -bytes -: -: -Captures -< -' -_ -> -) -- -> -regex_test -: -: -Captures -{ -let -spans -= -caps -. -iter -( -) -. -map -( -| -group -| -{ -group -. -map -( -| -m -| -regex_test -: -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -) -} -) -; -regex_test -: -: -Captures -: -: -new -( -0 -spans -) -. -unwrap -( -) -} diff --git a/third_party/rust/regex/tests/suite_bytes_set.rs b/third_party/rust/regex/tests/suite_bytes_set.rs deleted file mode 100644 index e7d312db85c55..0000000000000 --- a/third_party/rust/regex/tests/suite_bytes_set.rs +++ /dev/null @@ -1,441 +0,0 @@ -use -{ -anyhow -: -: -Result -regex -: -: -bytes -: -: -{ -RegexSet -RegexSetBuilder -} -regex_test -: -: -{ -CompiledRegex -RegexTest -TestResult -TestRunner -} -} -; -# -[ -test -] -fn -default -( -) -- -> -Result -< -( -) -> -{ -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -which -" -] -| -test -| -test -. -compiles -( -) -) -. -blacklist_iter -( -super -: -: -BLACKLIST -) -. -test_iter -( -crate -: -: -suite -( -) -? -. -iter -( -) -compiler -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -run_test -( -re -: -& -RegexSet -test -: -& -RegexTest -) -- -> -TestResult -{ -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -TestResult -: -: -matched -( -re -. -is_match -( -test -. -haystack -( -) -) -) -" -which -" -= -> -TestResult -: -: -which -( -re -. -matches -( -test -. -haystack -( -) -) -. -iter -( -) -) -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -compiler -( -test -: -& -RegexTest -_patterns -: -& -[ -String -] -) -- -> -anyhow -: -: -Result -< -CompiledRegex -> -{ -let -skip -= -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -if -! -matches -! -( -test -. -search_kind -( -) -regex_test -: -: -SearchKind -: -: -Overlapping -) -{ -return -skip -; -} -if -! -matches -! -( -test -. -match_kind -( -) -regex_test -: -: -MatchKind -: -: -All -) -{ -return -skip -; -} -if -test -. -anchored -( -) -{ -return -skip -; -} -let -bounds -= -test -. -bounds -( -) -; -if -! -( -bounds -. -start -= -= -0 -& -& -bounds -. -end -= -= -test -. -haystack -( -) -. -len -( -) -) -{ -return -skip -; -} -if -test -. -utf8 -( -) -{ -return -skip -; -} -if -test -. -unicode -( -) -& -& -! -cfg -! -( -feature -= -" -unicode -" -) -{ -return -skip -; -} -let -re -= -RegexSetBuilder -: -: -new -( -test -. -regexes -( -) -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -. -build -( -) -? -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -run_test -( -& -re -test -) -) -) -} diff --git a/third_party/rust/regex/tests/suite_string.rs b/third_party/rust/regex/tests/suite_string.rs deleted file mode 100644 index 8374a3c675646..0000000000000 --- a/third_party/rust/regex/tests/suite_string.rs +++ /dev/null @@ -1,728 +0,0 @@ -use -{ -anyhow -: -: -Result -regex -: -: -{ -Regex -RegexBuilder -} -regex_test -: -: -{ -CompiledRegex -Match -RegexTest -Span -TestResult -TestRunner -} -} -; -# -[ -test -] -fn -default -( -) -- -> -Result -< -( -) -> -{ -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -find -" -" -captures -" -] -| -test -| -test -. -compiles -( -) -) -. -blacklist_iter -( -super -: -: -BLACKLIST -) -. -test_iter -( -crate -: -: -suite -( -) -? -. -iter -( -) -compiler -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -run_test -( -re -: -& -Regex -test -: -& -RegexTest -) -- -> -TestResult -{ -let -hay -= -match -std -: -: -str -: -: -from_utf8 -( -test -. -haystack -( -) -) -{ -Ok -( -hay -) -= -> -hay -Err -( -err -) -= -> -{ -return -TestResult -: -: -fail -( -& -format -! -( -" -haystack -is -not -valid -UTF -- -8 -: -{ -} -" -err -) -) -; -} -} -; -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -TestResult -: -: -matched -( -re -. -is_match -( -hay -) -) -" -find -" -= -> -TestResult -: -: -matches -( -re -. -find_iter -( -hay -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -m -| -Match -{ -id -: -0 -span -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -} -) -) -" -captures -" -= -> -{ -let -it -= -re -. -captures_iter -( -hay -) -. -take -( -test -. -match_limit -( -) -. -unwrap_or -( -std -: -: -usize -: -: -MAX -) -) -. -map -( -| -caps -| -testify_captures -( -& -caps -) -) -; -TestResult -: -: -captures -( -it -) -} -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -compiler -( -test -: -& -RegexTest -_patterns -: -& -[ -String -] -) -- -> -anyhow -: -: -Result -< -CompiledRegex -> -{ -let -skip -= -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -let -pattern -= -match -test -. -regexes -( -) -. -len -( -) -{ -1 -= -> -& -test -. -regexes -( -) -[ -0 -] -_ -= -> -return -skip -} -; -if -! -matches -! -( -test -. -search_kind -( -) -regex_test -: -: -SearchKind -: -: -Leftmost -) -{ -return -skip -; -} -if -! -matches -! -( -test -. -match_kind -( -) -regex_test -: -: -MatchKind -: -: -LeftmostFirst -) -{ -return -skip -; -} -if -test -. -anchored -( -) -& -& -test -. -match_limit -( -) -! -= -Some -( -1 -) -{ -return -skip -; -} -let -bounds -= -test -. -bounds -( -) -; -if -! -( -bounds -. -start -= -= -0 -& -& -bounds -. -end -= -= -test -. -haystack -( -) -. -len -( -) -) -{ -return -skip -; -} -if -! -test -. -utf8 -( -) -{ -return -skip -; -} -if -test -. -unicode -( -) -& -& -! -cfg -! -( -feature -= -" -unicode -" -) -{ -return -skip -; -} -let -re -= -RegexBuilder -: -: -new -( -pattern -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -. -build -( -) -? -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -run_test -( -& -re -test -) -) -) -} -fn -testify_captures -( -caps -: -& -regex -: -: -Captures -< -' -_ -> -) -- -> -regex_test -: -: -Captures -{ -let -spans -= -caps -. -iter -( -) -. -map -( -| -group -| -{ -group -. -map -( -| -m -| -regex_test -: -: -Span -{ -start -: -m -. -start -( -) -end -: -m -. -end -( -) -} -) -} -) -; -regex_test -: -: -Captures -: -: -new -( -0 -spans -) -. -unwrap -( -) -} diff --git a/third_party/rust/regex/tests/suite_string_set.rs b/third_party/rust/regex/tests/suite_string_set.rs deleted file mode 100644 index a02c541afe4f1..0000000000000 --- a/third_party/rust/regex/tests/suite_string_set.rs +++ /dev/null @@ -1,493 +0,0 @@ -use -{ -anyhow -: -: -Result -regex -: -: -{ -RegexSet -RegexSetBuilder -} -regex_test -: -: -{ -CompiledRegex -RegexTest -TestResult -TestRunner -} -} -; -# -[ -test -] -fn -default -( -) -- -> -Result -< -( -) -> -{ -let -mut -runner -= -TestRunner -: -: -new -( -) -? -; -runner -. -expand -( -& -[ -" -is_match -" -" -which -" -] -| -test -| -test -. -compiles -( -) -) -. -blacklist_iter -( -super -: -: -BLACKLIST -) -. -test_iter -( -crate -: -: -suite -( -) -? -. -iter -( -) -compiler -) -. -assert -( -) -; -Ok -( -( -) -) -} -fn -run_test -( -re -: -& -RegexSet -test -: -& -RegexTest -) -- -> -TestResult -{ -let -hay -= -match -std -: -: -str -: -: -from_utf8 -( -test -. -haystack -( -) -) -{ -Ok -( -hay -) -= -> -hay -Err -( -err -) -= -> -{ -return -TestResult -: -: -fail -( -& -format -! -( -" -haystack -is -not -valid -UTF -- -8 -: -{ -} -" -err -) -) -; -} -} -; -match -test -. -additional_name -( -) -{ -" -is_match -" -= -> -TestResult -: -: -matched -( -re -. -is_match -( -hay -) -) -" -which -" -= -> -TestResult -: -: -which -( -re -. -matches -( -hay -) -. -iter -( -) -) -name -= -> -TestResult -: -: -fail -( -& -format -! -( -" -unrecognized -test -name -: -{ -} -" -name -) -) -} -} -fn -compiler -( -test -: -& -RegexTest -_patterns -: -& -[ -String -] -) -- -> -anyhow -: -: -Result -< -CompiledRegex -> -{ -let -skip -= -Ok -( -CompiledRegex -: -: -skip -( -) -) -; -if -! -matches -! -( -test -. -search_kind -( -) -regex_test -: -: -SearchKind -: -: -Overlapping -) -{ -return -skip -; -} -if -! -matches -! -( -test -. -match_kind -( -) -regex_test -: -: -MatchKind -: -: -All -) -{ -return -skip -; -} -if -test -. -anchored -( -) -{ -return -skip -; -} -let -bounds -= -test -. -bounds -( -) -; -if -! -( -bounds -. -start -= -= -0 -& -& -bounds -. -end -= -= -test -. -haystack -( -) -. -len -( -) -) -{ -return -skip -; -} -if -! -test -. -utf8 -( -) -{ -return -skip -; -} -if -test -. -unicode -( -) -& -& -! -cfg -! -( -feature -= -" -unicode -" -) -{ -return -skip -; -} -let -re -= -RegexSetBuilder -: -: -new -( -test -. -regexes -( -) -) -. -case_insensitive -( -test -. -case_insensitive -( -) -) -. -unicode -( -test -. -unicode -( -) -) -. -line_terminator -( -test -. -line_terminator -( -) -) -. -build -( -) -? -; -Ok -( -CompiledRegex -: -: -compiled -( -move -| -test -| -run_test -( -& -re -test -) -) -) -} diff --git a/third_party/rust/regex/tests/test_backtrack.rs b/third_party/rust/regex/tests/test_backtrack.rs new file mode 100644 index 0000000000000..06705e1e73543 --- /dev/null +++ b/third_party/rust/regex/tests/test_backtrack.rs @@ -0,0 +1,272 @@ +# +! +[ +cfg_attr +( +feature += +" +pattern +" +feature +( +pattern +) +) +] +macro_rules +! +regex_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new +( +re +) +. +bounded_backtracking +( +) +. +build +( +) +. +map +( +| +e +| +e +. +into_regex +( +) +) +} +} +; +} +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +regex_new +! +( +re +) +. +unwrap +( +) +} +; +} +macro_rules +! +regex_set_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new_many +( +re +) +. +bounded_backtracking +( +) +. +build +( +) +. +map +( +| +e +| +e +. +into_regex_set +( +) +) +} +} +; +} +macro_rules +! +regex_set +{ +( +res +: +expr +) += +> +{ +regex_set_new +! +( +res +) +. +unwrap +( +) +} +; +} +include +! +( +" +macros_str +. +rs +" +) +; +include +! +( +" +macros +. +rs +" +) +; +mod +api +; +mod +api_str +; +mod +crazy +; +mod +flags +; +mod +fowler +; +mod +multiline +; +mod +noparse +; +mod +regression +; +mod +replace +; +mod +searcher +; +mod +set +; +mod +suffix_reverse +; +# +[ +cfg +( +feature += +" +unicode +" +) +] +mod +unicode +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary_unicode +; diff --git a/third_party/rust/regex/tests/test_backtrack_bytes.rs b/third_party/rust/regex/tests/test_backtrack_bytes.rs new file mode 100644 index 0000000000000..994362011e756 --- /dev/null +++ b/third_party/rust/regex/tests/test_backtrack_bytes.rs @@ -0,0 +1,263 @@ +macro_rules +! +regex_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new +( +re +) +. +bounded_backtracking +( +) +. +only_utf8 +( +false +) +. +build +( +) +. +map +( +| +e +| +e +. +into_byte_regex +( +) +) +} +} +; +} +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +regex_new +! +( +re +) +. +unwrap +( +) +} +; +} +macro_rules +! +regex_set_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new_many +( +re +) +. +bounded_backtracking +( +) +. +only_utf8 +( +false +) +. +build +( +) +. +map +( +| +e +| +e +. +into_byte_regex_set +( +) +) +} +} +; +} +macro_rules +! +regex_set +{ +( +res +: +expr +) += +> +{ +regex_set_new +! +( +res +) +. +unwrap +( +) +} +; +} +include +! +( +" +macros_bytes +. +rs +" +) +; +include +! +( +" +macros +. +rs +" +) +; +mod +api +; +mod +bytes +; +mod +crazy +; +mod +flags +; +mod +fowler +; +mod +multiline +; +mod +noparse +; +mod +regression +; +mod +replace +; +mod +set +; +mod +suffix_reverse +; +# +[ +cfg +( +feature += +" +unicode +" +) +] +mod +unicode +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary_ascii +; diff --git a/third_party/rust/regex/tests/test_backtrack_utf8bytes.rs b/third_party/rust/regex/tests/test_backtrack_utf8bytes.rs new file mode 100644 index 0000000000000..c1827256f53ec --- /dev/null +++ b/third_party/rust/regex/tests/test_backtrack_utf8bytes.rs @@ -0,0 +1,282 @@ +# +! +[ +cfg_attr +( +feature += +" +pattern +" +feature +( +pattern +) +) +] +macro_rules +! +regex_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new +( +re +) +. +bounded_backtracking +( +) +. +bytes +( +true +) +. +build +( +) +. +map +( +| +e +| +e +. +into_regex +( +) +) +} +} +; +} +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +regex_new +! +( +re +) +. +unwrap +( +) +} +; +} +macro_rules +! +regex_set_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new_many +( +re +) +. +bounded_backtracking +( +) +. +bytes +( +true +) +. +build +( +) +. +map +( +| +e +| +e +. +into_regex_set +( +) +) +} +} +; +} +macro_rules +! +regex_set +{ +( +res +: +expr +) += +> +{ +regex_set_new +! +( +res +) +. +unwrap +( +) +} +; +} +include +! +( +" +macros_str +. +rs +" +) +; +include +! +( +" +macros +. +rs +" +) +; +mod +api +; +mod +api_str +; +mod +crazy +; +mod +flags +; +mod +fowler +; +mod +multiline +; +mod +noparse +; +mod +regression +; +mod +replace +; +mod +searcher +; +mod +set +; +mod +suffix_reverse +; +# +[ +cfg +( +feature += +" +unicode +" +) +] +mod +unicode +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary_unicode +; diff --git a/third_party/rust/regex/tests/test_crates_regex.rs b/third_party/rust/regex/tests/test_crates_regex.rs new file mode 100644 index 0000000000000..30cf7fba36427 --- /dev/null +++ b/third_party/rust/regex/tests/test_crates_regex.rs @@ -0,0 +1,98 @@ +mod +consistent +; +mod +crates_regex +{ +macro_rules +! +consistent +{ +( +test_name +: +ident +regex_src +: +expr +) += +> +{ +# +[ +test +] +fn +test_name +( +) +{ +use +super +: +: +consistent +: +: +backends_are_consistent +; +if +option_env +! +( +" +RUST_REGEX_RANDOM_TEST +" +) +. +is_some +( +) +{ +match +backends_are_consistent +( +regex_src +) +{ +Ok +( +_ +) += +> +{ +} +Err +( +err +) += +> +panic +! +( +" +{ +} +" +err +) +} +} +} +} +; +} +include +! +( +" +crates_regex +. +rs +" +) +; +} diff --git a/third_party/rust/regex/tests/test_default.rs b/third_party/rust/regex/tests/test_default.rs new file mode 100644 index 0000000000000..88862c8f246b3 --- /dev/null +++ b/third_party/rust/regex/tests/test_default.rs @@ -0,0 +1,1205 @@ +# +! +[ +cfg_attr +( +feature += +" +pattern +" +feature +( +pattern +) +) +] +use +regex +; +macro_rules +! +regex_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +Regex +; +Regex +: +: +new +( +re +) +} +} +; +} +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +regex_new +! +( +re +) +. +unwrap +( +) +} +; +} +macro_rules +! +regex_set_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +RegexSet +; +RegexSet +: +: +new +( +re +) +} +} +; +} +macro_rules +! +regex_set +{ +( +res +: +expr +) += +> +{ +regex_set_new +! +( +res +) +. +unwrap +( +) +} +; +} +include +! +( +" +macros_str +. +rs +" +) +; +include +! +( +" +macros +. +rs +" +) +; +mod +api +; +mod +api_str +; +mod +crazy +; +mod +flags +; +mod +fowler +; +mod +misc +; +mod +multiline +; +mod +noparse +; +mod +regression +; +mod +regression_fuzz +; +mod +replace +; +mod +searcher +; +mod +set +; +mod +shortest_match +; +mod +suffix_reverse +; +# +[ +cfg +( +feature += +" +unicode +" +) +] +mod +unicode +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary_unicode +; +# +[ +test +] +fn +disallow_non_utf8 +( +) +{ +assert +! +( +regex +: +: +Regex +: +: +new +( +r +" +( +? +- +u +) +\ +xFF +" +) +. +is_err +( +) +) +; +assert +! +( +regex +: +: +Regex +: +: +new +( +r +" +( +? +- +u +) +. +" +) +. +is_err +( +) +) +; +assert +! +( +regex +: +: +Regex +: +: +new +( +r +" +( +? +- +u +) +[ +\ +xFF +] +" +) +. +is_err +( +) +) +; +assert +! +( +regex +: +: +Regex +: +: +new +( +r +" +( +? +- +u +) +" +) +. +is_err +( +) +) +; +} +# +[ +test +] +fn +disallow_octal +( +) +{ +assert +! +( +regex +: +: +Regex +: +: +new +( +r +" +\ +0 +" +) +. +is_err +( +) +) +; +} +# +[ +test +] +fn +allow_octal +( +) +{ +assert +! +( +regex +: +: +RegexBuilder +: +: +new +( +r +" +\ +0 +" +) +. +octal +( +true +) +. +build +( +) +. +is_ok +( +) +) +; +} +# +[ +test +] +fn +oibits +( +) +{ +use +regex +: +: +bytes +; +use +regex +: +: +{ +Regex +RegexBuilder +RegexSet +RegexSetBuilder +} +; +use +std +: +: +panic +: +: +{ +RefUnwindSafe +UnwindSafe +} +; +fn +assert_send +< +T +: +Send +> +( +) +{ +} +fn +assert_sync +< +T +: +Sync +> +( +) +{ +} +fn +assert_unwind_safe +< +T +: +UnwindSafe +> +( +) +{ +} +fn +assert_ref_unwind_safe +< +T +: +RefUnwindSafe +> +( +) +{ +} +assert_send +: +: +< +Regex +> +( +) +; +assert_sync +: +: +< +Regex +> +( +) +; +assert_unwind_safe +: +: +< +Regex +> +( +) +; +assert_ref_unwind_safe +: +: +< +Regex +> +( +) +; +assert_send +: +: +< +RegexBuilder +> +( +) +; +assert_sync +: +: +< +RegexBuilder +> +( +) +; +assert_unwind_safe +: +: +< +RegexBuilder +> +( +) +; +assert_ref_unwind_safe +: +: +< +RegexBuilder +> +( +) +; +assert_send +: +: +< +bytes +: +: +Regex +> +( +) +; +assert_sync +: +: +< +bytes +: +: +Regex +> +( +) +; +assert_unwind_safe +: +: +< +bytes +: +: +Regex +> +( +) +; +assert_ref_unwind_safe +: +: +< +bytes +: +: +Regex +> +( +) +; +assert_send +: +: +< +bytes +: +: +RegexBuilder +> +( +) +; +assert_sync +: +: +< +bytes +: +: +RegexBuilder +> +( +) +; +assert_unwind_safe +: +: +< +bytes +: +: +RegexBuilder +> +( +) +; +assert_ref_unwind_safe +: +: +< +bytes +: +: +RegexBuilder +> +( +) +; +assert_send +: +: +< +RegexSet +> +( +) +; +assert_sync +: +: +< +RegexSet +> +( +) +; +assert_unwind_safe +: +: +< +RegexSet +> +( +) +; +assert_ref_unwind_safe +: +: +< +RegexSet +> +( +) +; +assert_send +: +: +< +RegexSetBuilder +> +( +) +; +assert_sync +: +: +< +RegexSetBuilder +> +( +) +; +assert_unwind_safe +: +: +< +RegexSetBuilder +> +( +) +; +assert_ref_unwind_safe +: +: +< +RegexSetBuilder +> +( +) +; +assert_send +: +: +< +bytes +: +: +RegexSet +> +( +) +; +assert_sync +: +: +< +bytes +: +: +RegexSet +> +( +) +; +assert_unwind_safe +: +: +< +bytes +: +: +RegexSet +> +( +) +; +assert_ref_unwind_safe +: +: +< +bytes +: +: +RegexSet +> +( +) +; +assert_send +: +: +< +bytes +: +: +RegexSetBuilder +> +( +) +; +assert_sync +: +: +< +bytes +: +: +RegexSetBuilder +> +( +) +; +assert_unwind_safe +: +: +< +bytes +: +: +RegexSetBuilder +> +( +) +; +assert_ref_unwind_safe +: +: +< +bytes +: +: +RegexSetBuilder +> +( +) +; +} +# +[ +test +] +fn +oibits_regression +( +) +{ +use +regex +: +: +Regex +; +use +std +: +: +panic +; +let +_ += +panic +: +: +catch_unwind +( +| +| +Regex +: +: +new +( +" +a +" +) +. +unwrap +( +) +) +; +} +# +[ +test +] +# +[ +cfg +( +target_pointer_width += +" +64 +" +) +] +fn +regex_is_reasonably_small +( +) +{ +use +std +: +: +mem +: +: +size_of +; +use +regex +: +: +bytes +; +use +regex +: +: +{ +Regex +RegexSet +} +; +assert_eq +! +( +16 +size_of +: +: +< +Regex +> +( +) +) +; +assert_eq +! +( +16 +size_of +: +: +< +RegexSet +> +( +) +) +; +assert_eq +! +( +16 +size_of +: +: +< +bytes +: +: +Regex +> +( +) +) +; +assert_eq +! +( +16 +size_of +: +: +< +bytes +: +: +RegexSet +> +( +) +) +; +} +# +[ +test +] +fn +big_empty_regex_fails +( +) +{ +use +regex +: +: +Regex +; +let +result += +Regex +: +: +new +( +" +( +? +: +) +{ +4294967295 +} +" +) +; +assert +! +( +result +. +is_err +( +) +) +; +} +# +[ +test +] +fn +big_empty_reps_chain_regex_fails +( +) +{ +use +regex +: +: +Regex +; +let +result += +Regex +: +: +new +( +" +( +? +: +) +{ +64 +} +{ +64 +} +{ +64 +} +{ +64 +} +{ +64 +} +{ +64 +} +" +) +; +assert +! +( +result +. +is_err +( +) +) +; +} +# +[ +test +] +fn +big_zero_reps_regex_fails +( +) +{ +use +regex +: +: +Regex +; +let +result += +Regex +: +: +new +( +r +" +x +{ +0 +} +{ +4294967295 +} +" +) +; +assert +! +( +result +. +is_err +( +) +) +; +} +# +[ +test +] +fn +empty_alt_regex_fails +( +) +{ +use +regex +: +: +Regex +; +let +result += +Regex +: +: +new +( +r +" +( +? +: +| +) +{ +4294967295 +} +" +) +; +assert +! +( +result +. +is_err +( +) +) +; +} diff --git a/third_party/rust/regex/tests/test_default_bytes.rs b/third_party/rust/regex/tests/test_default_bytes.rs new file mode 100644 index 0000000000000..f9bfc8e88d6ab --- /dev/null +++ b/third_party/rust/regex/tests/test_default_bytes.rs @@ -0,0 +1,406 @@ +macro_rules +! +regex_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +bytes +: +: +Regex +; +Regex +: +: +new +( +re +) +} +} +; +} +macro_rules +! +regex_set_new +{ +( +res +: +expr +) += +> +{ +{ +use +regex +: +: +bytes +: +: +RegexSet +; +RegexSet +: +: +new +( +res +) +} +} +; +} +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +regex_new +! +( +re +) +. +unwrap +( +) +} +; +} +macro_rules +! +regex_set +{ +( +res +: +expr +) += +> +{ +regex_set_new +! +( +res +) +. +unwrap +( +) +} +; +} +include +! +( +" +macros_bytes +. +rs +" +) +; +include +! +( +" +macros +. +rs +" +) +; +struct +R +< +' +a +> +( +& +' +a +[ +u8 +] +) +; +impl +< +' +a +> +R +< +' +a +> +{ +fn +as_bytes +( +& +self +) +- +> +& +' +a +[ +u8 +] +{ +self +. +0 +} +} +mat +! +( +invalid_utf8_nfa1 +r +" +. +" +R +( +b +" +\ +xD4 +\ +xC2 +\ +x65 +\ +x2B +\ +x0E +\ +xFE +" +) +Some +( +( +2 +3 +) +) +) +; +mat +! +( +invalid_utf8_nfa2 +r +" +{ +2 +} +" +R +( +b +" +\ +xD4 +\ +xC2 +\ +x65 +\ +x2B +\ +x0E +\ +xFE +" +) +None +) +; +mat +! +( +invalid_utf8_nfa3 +r +" +. +" +R +( +b +" +\ +x0A +\ +xDB +\ +x82 +\ +x6E +\ +x33 +\ +x01 +\ +xDD +\ +x33 +\ +xCD +" +) +Some +( +( +1 +3 +) +) +) +; +mat +! +( +invalid_utf8_nfa4 +r +" +{ +2 +} +" +R +( +b +" +\ +x0A +\ +xDB +\ +x82 +\ +x6E +\ +x33 +\ +x01 +\ +xDD +\ +x33 +\ +xCD +" +) +None +) +; +mod +api +; +mod +bytes +; +mod +crazy +; +mod +flags +; +mod +fowler +; +mod +multiline +; +mod +noparse +; +mod +regression +; +mod +replace +; +mod +set +; +mod +shortest_match +; +mod +suffix_reverse +; +# +[ +cfg +( +feature += +" +unicode +" +) +] +mod +unicode +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary_unicode +; diff --git a/third_party/rust/regex/tests/test_nfa.rs b/third_party/rust/regex/tests/test_nfa.rs new file mode 100644 index 0000000000000..632c06a284d6e --- /dev/null +++ b/third_party/rust/regex/tests/test_nfa.rs @@ -0,0 +1,272 @@ +# +! +[ +cfg_attr +( +feature += +" +pattern +" +feature +( +pattern +) +) +] +macro_rules +! +regex_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new +( +re +) +. +nfa +( +) +. +build +( +) +. +map +( +| +e +| +e +. +into_regex +( +) +) +} +} +; +} +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +regex_new +! +( +re +) +. +unwrap +( +) +} +; +} +macro_rules +! +regex_set_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new_many +( +re +) +. +nfa +( +) +. +build +( +) +. +map +( +| +e +| +e +. +into_regex_set +( +) +) +} +} +; +} +macro_rules +! +regex_set +{ +( +res +: +expr +) += +> +{ +regex_set_new +! +( +res +) +. +unwrap +( +) +} +; +} +include +! +( +" +macros_str +. +rs +" +) +; +include +! +( +" +macros +. +rs +" +) +; +mod +api +; +mod +api_str +; +mod +crazy +; +mod +flags +; +mod +fowler +; +mod +multiline +; +mod +noparse +; +mod +regression +; +mod +replace +; +mod +searcher +; +mod +set +; +mod +suffix_reverse +; +# +[ +cfg +( +feature += +" +unicode +" +) +] +mod +unicode +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary_unicode +; diff --git a/third_party/rust/regex/tests/test_nfa_bytes.rs b/third_party/rust/regex/tests/test_nfa_bytes.rs new file mode 100644 index 0000000000000..b9d8f01bac5bb --- /dev/null +++ b/third_party/rust/regex/tests/test_nfa_bytes.rs @@ -0,0 +1,263 @@ +macro_rules +! +regex_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new +( +re +) +. +nfa +( +) +. +only_utf8 +( +false +) +. +build +( +) +. +map +( +| +e +| +e +. +into_byte_regex +( +) +) +} +} +; +} +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +regex_new +! +( +re +) +. +unwrap +( +) +} +; +} +macro_rules +! +regex_set_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new_many +( +re +) +. +nfa +( +) +. +only_utf8 +( +false +) +. +build +( +) +. +map +( +| +e +| +e +. +into_byte_regex_set +( +) +) +} +} +; +} +macro_rules +! +regex_set +{ +( +res +: +expr +) += +> +{ +regex_set_new +! +( +res +) +. +unwrap +( +) +} +; +} +include +! +( +" +macros_bytes +. +rs +" +) +; +include +! +( +" +macros +. +rs +" +) +; +mod +api +; +mod +bytes +; +mod +crazy +; +mod +flags +; +mod +fowler +; +mod +multiline +; +mod +noparse +; +mod +regression +; +mod +replace +; +mod +set +; +mod +suffix_reverse +; +# +[ +cfg +( +feature += +" +unicode +" +) +] +mod +unicode +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary_unicode +; diff --git a/third_party/rust/regex/tests/test_nfa_utf8bytes.rs b/third_party/rust/regex/tests/test_nfa_utf8bytes.rs new file mode 100644 index 0000000000000..798d43dbd9f42 --- /dev/null +++ b/third_party/rust/regex/tests/test_nfa_utf8bytes.rs @@ -0,0 +1,282 @@ +# +! +[ +cfg_attr +( +feature += +" +pattern +" +feature +( +pattern +) +) +] +macro_rules +! +regex_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new +( +re +) +. +nfa +( +) +. +bytes +( +true +) +. +build +( +) +. +map +( +| +e +| +e +. +into_regex +( +) +) +} +} +; +} +macro_rules +! +regex +{ +( +re +: +expr +) += +> +{ +regex_new +! +( +re +) +. +unwrap +( +) +} +; +} +macro_rules +! +regex_set_new +{ +( +re +: +expr +) += +> +{ +{ +use +regex +: +: +internal +: +: +ExecBuilder +; +ExecBuilder +: +: +new_many +( +re +) +. +nfa +( +) +. +bytes +( +true +) +. +build +( +) +. +map +( +| +e +| +e +. +into_regex_set +( +) +) +} +} +; +} +macro_rules +! +regex_set +{ +( +res +: +expr +) += +> +{ +regex_set_new +! +( +res +) +. +unwrap +( +) +} +; +} +include +! +( +" +macros_str +. +rs +" +) +; +include +! +( +" +macros +. +rs +" +) +; +mod +api +; +mod +api_str +; +mod +crazy +; +mod +flags +; +mod +fowler +; +mod +multiline +; +mod +noparse +; +mod +regression +; +mod +replace +; +mod +searcher +; +mod +set +; +mod +suffix_reverse +; +# +[ +cfg +( +feature += +" +unicode +" +) +] +mod +unicode +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary +; +# +[ +cfg +( +feature += +" +unicode +- +perl +" +) +] +mod +word_boundary_unicode +; diff --git a/third_party/rust/regex/tests/unicode.rs b/third_party/rust/regex/tests/unicode.rs new file mode 100644 index 0000000000000..da5cd2982cbc1 --- /dev/null +++ b/third_party/rust/regex/tests/unicode.rs @@ -0,0 +1,2256 @@ +mat +! +( +uni_literal +r +" +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_literal_plus +r +" ++ +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_literal_casei_plus +r +" +( +? +i +) ++ +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_plus +r +" +[ +] ++ +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_one +r +" +\ +pN +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_mixed +r +" +\ +pN ++ +" +" +1 +2 +" +Some +( +( +0 +8 +) +) +) +; +mat +! +( +uni_not +r +" +\ +PN ++ +" +" +ab +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +uni_not_class +r +" +[ +\ +PN +] ++ +" +" +ab +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +uni_not_class_neg +r +" +[ +^ +\ +PN +] ++ +" +" +ab +" +Some +( +( +2 +5 +) +) +) +; +mat +! +( +uni_case +r +" +( +? +i +) +" +" +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +uni_case_upper +r +" +\ +p +{ +Lu +} ++ +" +" +" +Some +( +( +0 +8 +) +) +) +; +mat +! +( +uni_case_upper_nocase_flag +r +" +( +? +i +) +\ +p +{ +Lu +} ++ +" +" +" +Some +( +( +0 +10 +) +) +) +; +mat +! +( +uni_case_upper_nocase +r +" +\ +p +{ +L +} ++ +" +" +" +Some +( +( +0 +10 +) +) +) +; +mat +! +( +uni_case_lower +r +" +\ +p +{ +Ll +} ++ +" +" +" +Some +( +( +8 +10 +) +) +) +; +mat +! +( +uni_perl_w +r +" +\ +w ++ +" +" +d +d +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_perl_w_not +r +" +\ +w ++ +" +" +" +None +) +; +mat +! +( +uni_perl_w_neg +r +" +\ +W ++ +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_perl_d +r +" +\ +d ++ +" +" +1 +9 +" +Some +( +( +0 +8 +) +) +) +; +mat +! +( +uni_perl_d_not +r +" +\ +d ++ +" +" +" +None +) +; +mat +! +( +uni_perl_d_neg +r +" +\ +D ++ +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_perl_s +r +" +\ +s ++ +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_perl_s_not +r +" +\ +s ++ +" +" +" +None +) +; +mat +! +( +uni_perl_s_neg +r +" +\ +S ++ +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_boundary_none +r +" +\ +d +\ +b +" +" +6 +" +None +) +; +mat +! +( +uni_boundary_ogham +r +" +\ +d +\ +b +" +" +6 +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +uni_not_boundary_none +r +" +\ +d +\ +B +" +" +6 +" +Some +( +( +0 +1 +) +) +) +; +mat +! +( +uni_not_boundary_ogham +r +" +\ +d +\ +B +" +" +6 +" +None +) +; +mat +! +( +uni_class_gencat_cased_letter +r +" +\ +p +{ +Cased_Letter +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_close_punctuation +r +" +\ +p +{ +Close_Punctuation +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_connector_punctuation +r +" +\ +p +{ +Connector_Punctuation +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_control +r +" +\ +p +{ +Control +} +" +" +\ +u +{ +9f +} +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +uni_class_gencat_currency_symbol +r +" +\ +p +{ +Currency_Symbol +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_dash_punctuation +r +" +\ +p +{ +Dash_Punctuation +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_decimal_numer +r +" +\ +p +{ +Decimal_Number +} +" +" +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_enclosing_mark +r +" +\ +p +{ +Enclosing_Mark +} +" +" +\ +u +{ +A672 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_final_punctuation +r +" +\ +p +{ +Final_Punctuation +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_format +r +" +\ +p +{ +Format +} +" +" +\ +u +{ +E007F +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_format_abbrev1 +r +" +\ +p +{ +cf +} +" +" +\ +u +{ +E007F +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_format_abbrev2 +r +" +\ +p +{ +gc += +cf +} +" +" +\ +u +{ +E007F +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_initial_punctuation +r +" +\ +p +{ +Initial_Punctuation +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_letter +r +" +\ +p +{ +Letter +} +" +" +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +uni_class_gencat_letter_number +r +" +\ +p +{ +Letter_Number +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_line_separator +r +" +\ +p +{ +Line_Separator +} +" +" +\ +u +{ +2028 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_lowercase_letter +r +" +\ +p +{ +Lowercase_Letter +} +" +" +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +uni_class_gencat_mark +r +" +\ +p +{ +Mark +} +" +" +\ +u +{ +E01EF +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_math +r +" +\ +p +{ +Math +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_modifier_letter +r +" +\ +p +{ +Modifier_Letter +} +" +" +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_modifier_symbol +r +" +\ +p +{ +Modifier_Symbol +} +" +" +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_nonspacing_mark +r +" +\ +p +{ +Nonspacing_Mark +} +" +" +\ +u +{ +1E94A +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_number +r +" +\ +p +{ +Number +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_open_punctuation +r +" +\ +p +{ +Open_Punctuation +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_other +r +" +\ +p +{ +Other +} +" +" +\ +u +{ +bc9 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_other_letter +r +" +\ +p +{ +Other_Letter +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_other_number +r +" +\ +p +{ +Other_Number +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_other_punctuation +r +" +\ +p +{ +Other_Punctuation +} +" +" +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_other_symbol +r +" +\ +p +{ +Other_Symbol +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_paragraph_separator +r +" +\ +p +{ +Paragraph_Separator +} +" +" +\ +u +{ +2029 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_private_use +r +" +\ +p +{ +Private_Use +} +" +" +\ +u +{ +10FFFD +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_punctuation +r +" +\ +p +{ +Punctuation +} +" +" +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_separator +r +" +\ +p +{ +Separator +} +" +" +\ +u +{ +3000 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_space_separator +r +" +\ +p +{ +Space_Separator +} +" +" +\ +u +{ +205F +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_spacing_mark +r +" +\ +p +{ +Spacing_Mark +} +" +" +\ +u +{ +16F7E +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_symbol +r +" +\ +p +{ +Symbol +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_titlecase_letter +r +" +\ +p +{ +Titlecase_Letter +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gencat_unassigned +r +" +\ +p +{ +Unassigned +} +" +" +\ +u +{ +10FFFF +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gencat_uppercase_letter +r +" +\ +p +{ +Uppercase_Letter +} +" +" +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_prop_emoji1 +r +" +\ +p +{ +Emoji +} +" +" +\ +u +{ +23E9 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_prop_emoji2 +r +" +\ +p +{ +emoji +} +" +" +\ +u +{ +1F21A +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_prop_picto1 +r +" +\ +p +{ +extendedpictographic +} +" +" +\ +u +{ +1FA6E +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_prop_picto2 +r +" +\ +p +{ +extendedpictographic +} +" +" +\ +u +{ +1FFFD +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gcb_prepend +r +" +\ +p +{ +grapheme_cluster_break += +prepend +} +" +" +\ +u +{ +11D46 +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gcb_ri1 +r +" +\ +p +{ +gcb += +regional_indicator +} +" +" +\ +u +{ +1F1E6 +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gcb_ri2 +r +" +\ +p +{ +gcb += +ri +} +" +" +\ +u +{ +1F1E7 +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gcb_ri3 +r +" +\ +p +{ +gcb += +regionalindicator +} +" +" +\ +u +{ +1F1FF +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_gcb_lvt +r +" +\ +p +{ +gcb += +lvt +} +" +" +\ +u +{ +C989 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_gcb_zwj +r +" +\ +p +{ +gcb += +zwj +} +" +" +\ +u +{ +200D +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_wb1 +r +" +\ +p +{ +word_break += +Hebrew_Letter +} +" +" +\ +u +{ +FB46 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_wb2 +r +" +\ +p +{ +wb += +hebrewletter +} +" +" +\ +u +{ +FB46 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_wb3 +r +" +\ +p +{ +wb += +ExtendNumLet +} +" +" +\ +u +{ +FF3F +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_wb4 +r +" +\ +p +{ +wb += +WSegSpace +} +" +" +\ +u +{ +3000 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_wb5 +r +" +\ +p +{ +wb += +numeric +} +" +" +\ +u +{ +1E950 +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_sb1 +r +" +\ +p +{ +sentence_break += +Lower +} +" +" +\ +u +{ +0469 +} +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +uni_class_sb2 +r +" +\ +p +{ +sb += +lower +} +" +" +\ +u +{ +0469 +} +" +Some +( +( +0 +2 +) +) +) +; +mat +! +( +uni_class_sb3 +r +" +\ +p +{ +sb += +Close +} +" +" +\ +u +{ +FF60 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_class_sb4 +r +" +\ +p +{ +sb += +Close +} +" +" +\ +u +{ +1F677 +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_class_sb5 +r +" +\ +p +{ +sb += +SContinue +} +" +" +\ +u +{ +FF64 +} +" +Some +( +( +0 +3 +) +) +) +; +mat +! +( +uni_vithkuqi_literal_upper +r +" +( +? +i +) +^ +\ +u +{ +10570 +} +" +" +\ +u +{ +10570 +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_vithkuqi_literal_lower +r +" +( +? +i +) +^ +\ +u +{ +10570 +} +" +" +\ +u +{ +10597 +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_vithkuqi_word_upper +r +" +^ +\ +w +" +" +\ +u +{ +10570 +} +" +Some +( +( +0 +4 +) +) +) +; +mat +! +( +uni_vithkuqi_word_lower +r +" +^ +\ +w +" +" +\ +u +{ +10597 +} +" +Some +( +( +0 +4 +) +) +) +; diff --git a/third_party/rust/regex/tests/word_boundary.rs b/third_party/rust/regex/tests/word_boundary.rs new file mode 100644 index 0000000000000..ca64a33fb1a30 --- /dev/null +++ b/third_party/rust/regex/tests/word_boundary.rs @@ -0,0 +1,1810 @@ +matiter +! +( +wb1 +r +" +\ +b +" +" +" +) +; +matiter +! +( +wb2 +r +" +\ +b +" +" +a +" +( +0 +0 +) +( +1 +1 +) +) +; +matiter +! +( +wb3 +r +" +\ +b +" +" +ab +" +( +0 +0 +) +( +2 +2 +) +) +; +matiter +! +( +wb4 +r +" +^ +\ +b +" +" +ab +" +( +0 +0 +) +) +; +matiter +! +( +wb5 +r +" +\ +b +" +" +ab +" +( +2 +2 +) +) +; +matiter +! +( +wb6 +r +" +^ +\ +b +" +" +ab +" +) +; +matiter +! +( +wb7 +r +" +\ +bbar +\ +b +" +" +nobar +bar +foo +bar +" +( +6 +9 +) +( +14 +17 +) +) +; +matiter +! +( +wb8 +r +" +a +\ +b +" +" +faoa +x +" +( +3 +4 +) +) +; +matiter +! +( +wb9 +r +" +\ +bbar +" +" +bar +x +" +( +0 +3 +) +) +; +matiter +! +( +wb10 +r +" +\ +bbar +" +" +foo +\ +nbar +x +" +( +4 +7 +) +) +; +matiter +! +( +wb11 +r +" +bar +\ +b +" +" +foobar +" +( +3 +6 +) +) +; +matiter +! +( +wb12 +r +" +bar +\ +b +" +" +foobar +\ +nxxx +" +( +3 +6 +) +) +; +matiter +! +( +wb13 +r +" +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +b +" +" +foo +" +( +0 +3 +) +) +; +matiter +! +( +wb14 +r +" +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +b +" +" +foo +\ +n +" +( +0 +3 +) +) +; +matiter +! +( +wb15 +r +" +\ +b +( +foo +| +bar +| +[ +A +- +Z +] +) +" +" +foo +" +( +0 +3 +) +) +; +matiter +! +( +wb16 +r +" +\ +b +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +b +" +" +X +" +( +0 +1 +) +) +; +matiter +! +( +wb17 +r +" +\ +b +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +b +" +" +XY +" +) +; +matiter +! +( +wb18 +r +" +\ +b +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +b +" +" +bar +" +( +0 +3 +) +) +; +matiter +! +( +wb19 +r +" +\ +b +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +b +" +" +foo +" +( +0 +3 +) +) +; +matiter +! +( +wb20 +r +" +\ +b +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +b +" +" +foo +\ +n +" +( +0 +3 +) +) +; +matiter +! +( +wb21 +r +" +\ +b +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +b +" +" +ffoo +bbar +N +x +" +( +10 +11 +) +) +; +matiter +! +( +wb22 +r +" +\ +b +( +fo +| +foo +) +\ +b +" +" +fo +" +( +0 +2 +) +) +; +matiter +! +( +wb23 +r +" +\ +b +( +fo +| +foo +) +\ +b +" +" +foo +" +( +0 +3 +) +) +; +matiter +! +( +wb24 +r +" +\ +b +\ +b +" +" +" +) +; +matiter +! +( +wb25 +r +" +\ +b +\ +b +" +" +a +" +( +0 +0 +) +( +1 +1 +) +) +; +matiter +! +( +wb26 +r +" +\ +b +" +" +" +) +; +matiter +! +( +wb27 +r +" +\ +b +" +" +x +" +( +1 +1 +) +) +; +matiter +! +( +wb28 +r +" +\ +b +" +" +y +x +" +( +3 +3 +) +) +; +matiter +! +( +wb29 +r +" +\ +b +. +" +" +x +" +( +0 +1 +) +) +; +matiter +! +( +wb30 +r +" +^ +\ +b +( +fo +| +foo +) +\ +b +" +" +fo +" +( +0 +2 +) +) +; +matiter +! +( +wb31 +r +" +^ +\ +b +( +fo +| +foo +) +\ +b +" +" +foo +" +( +0 +3 +) +) +; +matiter +! +( +wb32 +r +" +^ +\ +b +" +" +" +) +; +matiter +! +( +wb33 +r +" +^ +\ +b +" +" +x +" +) +; +matiter +! +( +wb34 +r +" +^ +\ +b +. +" +" +x +" +( +0 +1 +) +) +; +matiter +! +( +wb35 +r +" +^ +\ +b +. +\ +b +" +" +x +" +( +0 +1 +) +) +; +matiter +! +( +wb36 +r +" +^ +^ +^ +^ +^ +\ +b +" +" +" +) +; +matiter +! +( +wb37 +r +" +^ +^ +^ +^ +^ +\ +b +. +" +" +x +" +( +0 +1 +) +) +; +matiter +! +( +wb38 +r +" +^ +^ +^ +^ +^ +\ +b +" +" +x +" +) +; +matiter +! +( +wb39 +r +" +^ +^ +^ +^ +^ +\ +b +\ +b +\ +b +. +\ +b +\ +b +\ +b +" +" +x +" +( +0 +1 +) +) +; +matiter +! +( +wb40 +r +" +\ +b +. ++ +\ +b +" +" +abc +" +( +2 +5 +) +) +; +matiter +! +( +wb41 +r +" +\ +b +" +" +a +b +c +" +( +0 +0 +) +( +1 +1 +) +( +2 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +5 +) +) +; +matiter +! +( +nb1 +r +" +\ +Bfoo +\ +B +" +" +n +foo +xfoox +that +" +( +7 +10 +) +) +; +matiter +! +( +nb2 +r +" +a +\ +B +" +" +faoa +x +" +( +1 +2 +) +) +; +matiter +! +( +nb3 +r +" +\ +Bbar +" +" +bar +x +" +) +; +matiter +! +( +nb4 +r +" +\ +Bbar +" +" +foo +\ +nbar +x +" +) +; +matiter +! +( +nb5 +r +" +bar +\ +B +" +" +foobar +" +) +; +matiter +! +( +nb6 +r +" +bar +\ +B +" +" +foobar +\ +nxxx +" +) +; +matiter +! +( +nb7 +r +" +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +B +" +" +foox +" +( +0 +3 +) +) +; +matiter +! +( +nb8 +r +" +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +B +" +" +foo +\ +n +" +) +; +matiter +! +( +nb9 +r +" +\ +B +" +" +" +( +0 +0 +) +) +; +matiter +! +( +nb10 +r +" +\ +B +" +" +x +" +) +; +matiter +! +( +nb11 +r +" +\ +B +( +foo +| +bar +| +[ +A +- +Z +] +) +" +" +foo +" +) +; +matiter +! +( +nb12 +r +" +\ +B +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +B +" +" +xXy +" +( +1 +2 +) +) +; +matiter +! +( +nb13 +r +" +\ +B +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +B +" +" +XY +" +) +; +matiter +! +( +nb14 +r +" +\ +B +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +B +" +" +XYZ +" +( +1 +2 +) +) +; +matiter +! +( +nb15 +r +" +\ +B +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +B +" +" +abara +" +( +1 +4 +) +) +; +matiter +! +( +nb16 +r +" +\ +B +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +B +" +" +xfoo_ +" +( +1 +4 +) +) +; +matiter +! +( +nb17 +r +" +\ +B +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +B +" +" +xfoo +\ +n +" +) +; +matiter +! +( +nb18 +r +" +\ +B +( +foo +| +bar +| +[ +A +- +Z +] +) +\ +B +" +" +foo +bar +vNX +" +( +9 +10 +) +) +; +matiter +! +( +nb19 +r +" +\ +B +( +fo +| +foo +) +\ +B +" +" +xfoo +" +( +1 +3 +) +) +; +matiter +! +( +nb20 +r +" +\ +B +( +foo +| +fo +) +\ +B +" +" +xfooo +" +( +1 +4 +) +) +; +matiter +! +( +nb21 +r +" +\ +B +\ +B +" +" +" +( +0 +0 +) +) +; +matiter +! +( +nb22 +r +" +\ +B +\ +B +" +" +x +" +) +; +matiter +! +( +nb23 +r +" +\ +B +" +" +" +( +0 +0 +) +) +; +matiter +! +( +nb24 +r +" +\ +B +" +" +x +" +) +; +matiter +! +( +nb25 +r +" +\ +B +" +" +y +x +" +) +; +matiter +! +( +nb26 +r +" +\ +B +. +" +" +x +" +) +; +matiter +! +( +nb27 +r +" +^ +\ +B +( +fo +| +foo +) +\ +B +" +" +fo +" +) +; +matiter +! +( +nb28 +r +" +^ +\ +B +( +fo +| +foo +) +\ +B +" +" +foo +" +) +; +matiter +! +( +nb29 +r +" +^ +\ +B +" +" +" +( +0 +0 +) +) +; +matiter +! +( +nb30 +r +" +^ +\ +B +" +" +x +" +) +; +matiter +! +( +nb31 +r +" +^ +\ +B +\ +B +" +" +" +( +0 +0 +) +) +; +matiter +! +( +nb32 +r +" +^ +\ +B +\ +B +" +" +x +" +) +; +matiter +! +( +nb33 +r +" +^ +\ +B +" +" +" +( +0 +0 +) +) +; +matiter +! +( +nb34 +r +" +^ +\ +B +" +" +x +" +) +; +matiter +! +( +nb35 +r +" +^ +\ +B +. +" +" +x +" +) +; +matiter +! +( +nb36 +r +" +^ +\ +B +. +\ +B +" +" +x +" +) +; +matiter +! +( +nb37 +r +" +^ +^ +^ +^ +^ +\ +B +" +" +" +( +0 +0 +) +) +; +matiter +! +( +nb38 +r +" +^ +^ +^ +^ +^ +\ +B +. +" +" +x +" +) +; +matiter +! +( +nb39 +r +" +^ +^ +^ +^ +^ +\ +B +" +" +x +" +) +; +matiter +! +( +unicode1 +r +" +\ +bx +\ +b +" +" +x +" +( +2 +3 +) +) +; +matiter +! +( +unicode2 +r +" +\ +bx +\ +b +" +" +x +" +( +0 +1 +) +) +; diff --git a/third_party/rust/regex/tests/word_boundary_ascii.rs b/third_party/rust/regex/tests/word_boundary_ascii.rs new file mode 100644 index 0000000000000..5546acbf564c6 --- /dev/null +++ b/third_party/rust/regex/tests/word_boundary_ascii.rs @@ -0,0 +1,139 @@ +matiter +! +( +ascii1 +r +" +( +? +- +u +: +\ +b +) +x +( +? +- +u +: +\ +b +) +" +" +x +" +( +2 +3 +) +) +; +matiter +! +( +ascii2 +r +" +( +? +- +u +: +\ +B +) +x +( +? +- +u +: +\ +B +) +" +" +x +" +) +; +matiter +! +( +ascii3 +r +" +( +? +- +u +: +\ +B +) +" +" +0 +\ +u +{ +7EF5E +} +" +( +2 +2 +) +( +3 +3 +) +( +4 +4 +) +( +5 +5 +) +) +; +matiter +! +( +unicode1 +r +" +\ +bx +\ +b +" +" +x +" +) +; +matiter +! +( +unicode2 +r +" +\ +Bx +\ +B +" +" +x +" +( +2 +3 +) +) +; diff --git a/third_party/rust/regex/tests/word_boundary_unicode.rs b/third_party/rust/regex/tests/word_boundary_unicode.rs new file mode 100644 index 0000000000000..f5c74846ed157 --- /dev/null +++ b/third_party/rust/regex/tests/word_boundary_unicode.rs @@ -0,0 +1,69 @@ +matiter +! +( +unicode1 +r +" +\ +bx +\ +b +" +" +x +" +) +; +matiter +! +( +unicode2 +r +" +\ +Bx +\ +B +" +" +x +" +( +2 +3 +) +) +; +matiter +! +( +ascii1 +r +" +( +? +- +u +: +\ +b +) +x +( +? +- +u +: +\ +b +) +" +" +x +" +( +2 +3 +) +) +;