Skip to content

Add a URITemplate::is_uritemplate static method#2382

Merged
jviotti merged 1 commit into
mainfrom
uritemplate-check
May 14, 2026
Merged

Add a URITemplate::is_uritemplate static method#2382
jviotti merged 1 commit into
mainfrom
uritemplate-check

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented May 14, 2026

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 5 files

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 14, 2026

🤖 Augment PR Summary

Summary: This PR adds a fast validation API for RFC 6570 URI Templates.

Changes:

  • Introduced URITemplate::is_uritemplate(std::string_view) to validate templates without constructing the parsed token representation.
  • Refactored parsing helpers to support a CheckOnly mode that computes consumed length while skipping token/variable-spec construction.
  • Updated internal parse plumbing (try_parse/try_parse_any) to accept an optional token sink and to dispatch to the new check-only parsing path.
  • Adjusted variable list parsing to optionally omit emitting URITemplateVariableSpecification entries in check-only mode.
  • Extended unit tests to assert is_uritemplate is true for valid templates and false for parse-error inputs.

Technical Notes: The validation path reuses the existing parser logic, ensuring consistent rules while avoiding allocations for token vectors.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

tokens.emplace_back(std::move(result->first));
remaining.remove_prefix(result->second);
offset += result->second;
std::vector<URITemplateToken> *tokens) -> bool {
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src/core/uritemplate/uritemplate.cc:13: When instantiated with CheckOnly=true, the tokens parameter becomes unused due to the if constexpr branch, and this repo enables -Wunused-parameter, so this will likely produce a compiler warning. The same unused-parameter pattern also shows up in the check-only instantiations at the other locations listed below.

Severity: low

Other Locations
  • src/core/uritemplate/uritemplate.cc:31
  • src/core/uritemplate/helpers.h:183

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: b0c7fee Previous: e774d05 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.499449887934953 ns/iter 2.4947268985611415 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1928035894095848 ns/iter 2.1782202441127523 ns/iter 1.01
Regex_Period_Asterisk 2.502460766259149 ns/iter 2.4896992912172973 ns/iter 1.01
Regex_Group_Period_Asterisk_Group 2.1935522942672696 ns/iter 2.1911645934035326 ns/iter 1.00
Regex_Period_Plus 3.1176978748331394 ns/iter 3.1143148592615684 ns/iter 1.00
Regex_Period 2.769252395443177 ns/iter 2.801440984889888 ns/iter 0.99
Regex_Caret_Period_Plus_Dollar 2.8040409522941965 ns/iter 3.113346749804408 ns/iter 0.90
Regex_Caret_Group_Period_Plus_Group_Dollar 2.5155639259115716 ns/iter 2.800812866633846 ns/iter 0.90
Regex_Caret_Period_Asterisk_Dollar 2.8022704285979017 ns/iter 2.499588167108227 ns/iter 1.12
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.321941169137641 ns/iter 2.1797248307470705 ns/iter 1.07
Regex_Caret_X_Hyphen 6.277039264136677 ns/iter 6.851146283299355 ns/iter 0.92
Regex_Period_Md_Dollar 28.00667496859661 ns/iter 27.44882302935245 ns/iter 1.02
Regex_Caret_Slash_Period_Asterisk 6.556371795977785 ns/iter 6.537660606716677 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 3.746214816814034 ns/iter 3.7355570207243556 ns/iter 1.00
Regex_Nested_Backtrack 37.21443993147538 ns/iter 37.099636226243035 ns/iter 1.00
JSON_Array_Of_Objects_Unique 484.6260586328954 ns/iter 484.8131950156579 ns/iter 1.00
JSON_Parse_1 5764.541868205482 ns/iter 5733.7139967239345 ns/iter 1.01
JSON_Parse_Real 10835.071681250281 ns/iter 10766.665874950246 ns/iter 1.01
JSON_Parse_Decimal 11062.343166453953 ns/iter 10996.17076122525 ns/iter 1.01
JSON_Parse_Schema_ISO_Language 3601850.246153705 ns/iter 3585623.7948722155 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 66.03435189011982 ns/iter 70.09716732878368 ns/iter 0.94
JSON_Equality_Helm_Chart_Lock 169.5823576386423 ns/iter 156.04440711185111 ns/iter 1.09
JSON_Divisible_By_Decimal 248.42128971118663 ns/iter 248.42906153861603 ns/iter 1.00
JSON_String_Equal/10 5.923446074032092 ns/iter 5.923567969997356 ns/iter 1.00
JSON_String_Equal/100 6.558651013556824 ns/iter 6.556729360256251 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9357347018218893 ns/iter 0.9351843033726551 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.274191141167483 ns/iter 14.618500568072987 ns/iter 0.70
JSON_String_Fast_Hash/10 2.803446775032875 ns/iter 2.8026411739485457 ns/iter 1.00
JSON_String_Fast_Hash/100 2.8024635417154045 ns/iter 2.801868086993211 ns/iter 1.00
JSON_String_Key_Hash/10 2.182528669591399 ns/iter 2.578318310138872 ns/iter 0.85
JSON_String_Key_Hash/100 6.537003711085748 ns/iter 9.041138372888748 ns/iter 0.72
JSON_Object_Defines_Miss_Same_Length 3.7397924072992375 ns/iter 3.7423736836590904 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.742083210751714 ns/iter 3.7407097942641765 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7409116434808913 ns/iter 3.7402717905401275 ns/iter 1.00
Pointer_Object_Traverse 23.965086714729004 ns/iter 23.942435209594965 ns/iter 1.00
Pointer_Object_Try_Traverse 27.90032361701504 ns/iter 27.903535696423592 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 177.4196015375056 ns/iter 191.17549814235372 ns/iter 0.93
Pointer_Walker_Schema_ISO_Language 3048303.2025864334 ns/iter 2995579.038298139 ns/iter 1.02
Pointer_Maybe_Tracked_Deeply_Nested/0 1504910.6531051178 ns/iter 1478736.5711206465 ns/iter 1.02
Pointer_Maybe_Tracked_Deeply_Nested/1 1943614.0886426833 ns/iter 1938310.5386742696 ns/iter 1.00
Pointer_Position_Tracker_Get_Deeply_Nested 623.9689994002041 ns/iter 638.6339879656172 ns/iter 0.98
Schema_Frame_WoT_References 5287223.563909823 ns/iter 5171085.751880284 ns/iter 1.02
Schema_Frame_OMC_References 21585816.878789708 ns/iter 21436383.48484549 ns/iter 1.01
Schema_Frame_OMC_Locations 19928006.142858326 ns/iter 19685222.342851765 ns/iter 1.01
Schema_Frame_ISO_Language_Locations 101673330.5000154 ns/iter 102429351.3333608 ns/iter 0.99
Schema_Frame_KrakenD_References 40363764.9999984 ns/iter 42173872.58824387 ns/iter 0.96
Schema_Frame_KrakenD_Reachable 584882378.9999642 ns/iter 578982469.0000387 ns/iter 1.01
Schema_Iterator_ISO_Language 3048902.1140354318 ns/iter 3002425.217948615 ns/iter 1.02
Schema_Frame_ISO_Language_Locations_To_JSON 111540193.59998985 ns/iter 107236717.80001496 ns/iter 1.04
Schema_Tracker_ISO_Language 4867548.411347349 ns/iter 4868995.590277968 ns/iter 1.00
Schema_Tracker_ISO_Language_To_JSON 19663434.805554263 ns/iter 19440882.47222453 ns/iter 1.01
Schema_Format_ISO_Language_To_JSON 109801705.83331983 ns/iter 108165109.85715207 ns/iter 1.02
Schema_Bundle_Meta_2020_12 1700950.2749397918 ns/iter 1680141.0456679377 ns/iter 1.01
Schema_Frame_Many_Resources_References 383837427.0000031 ns/iter 376193393.99998355 ns/iter 1.02
EditorSchema_ForEditor_EmbeddedResources 14127926.612257732 ns/iter 13874807.95999636 ns/iter 1.02
URITemplateRouter_Create 31977.221192585406 ns/iter 31865.292059528598 ns/iter 1.00
URITemplateRouter_Match 176.02449340888447 ns/iter 170.96604971104676 ns/iter 1.03
URITemplateRouter_Match_BasePath 196.88429669460157 ns/iter 197.58482821067219 ns/iter 1.00
URITemplateRouterView_Restore 7945.2440090324235 ns/iter 7659.066104759942 ns/iter 1.04
URITemplateRouterView_Match 143.5002871051717 ns/iter 143.3635639821217 ns/iter 1.00
URITemplateRouterView_Match_BasePath 163.36567810984104 ns/iter 163.23417255433893 ns/iter 1.00
URITemplateRouterView_Arguments 473.15589281139796 ns/iter 453.31496585138115 ns/iter 1.04
JSONL_Parse_Large 10806434.276923938 ns/iter 10490349.343284046 ns/iter 1.03
JSONL_Parse_Large_GZIP 12072225.931035519 ns/iter 11737416.349997906 ns/iter 1.03
HTML_Build_Table_100000 63720413.90909544 ns/iter 72629035.00000821 ns/iter 0.88
HTML_Render_Table_100000 5653479.05555539 ns/iter 5177762.55555536 ns/iter 1.09

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Details
Benchmark suite Current: b0c7fee Previous: e774d05 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 6.83694910714345 ns/iter 7.500008928573721 ns/iter 0.91
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 6.8411283482129805 ns/iter 7.521804687498396 ns/iter 0.91
Regex_Period_Asterisk 6.837681250000774 ns/iter 7.502542410711451 ns/iter 0.91
Regex_Group_Period_Asterisk_Group 6.836033928572809 ns/iter 7.507033035713968 ns/iter 0.91
Regex_Period_Plus 8.744832550246041 ns/iter 9.681616028207024 ns/iter 0.90
Regex_Period 8.746933035713564 ns/iter 9.680866028206177 ns/iter 0.90
Regex_Caret_Period_Plus_Dollar 8.74621335381041 ns/iter 9.86298611668511 ns/iter 0.89
Regex_Caret_Group_Period_Plus_Group_Dollar 8.739716478841046 ns/iter 9.682900403200028 ns/iter 0.90
Regex_Caret_Period_Asterisk_Dollar 6.840966964284283 ns/iter 7.5041249999990045 ns/iter 0.91
Regex_Caret_Group_Period_Asterisk_Group_Dollar 6.8563205357138814 ns/iter 7.506683035716475 ns/iter 0.91
Regex_Caret_X_Hyphen 10.666034374999356 ns/iter 11.748580357139613 ns/iter 0.91
Regex_Period_Md_Dollar 31.280718749999078 ns/iter 37.819199324650306 ns/iter 0.83
Regex_Caret_Slash_Period_Asterisk 10.140546383302004 ns/iter 11.285389062500428 ns/iter 0.90
Regex_Caret_Period_Range_Dollar 8.744600853820462 ns/iter 9.700132992409307 ns/iter 0.90
Regex_Nested_Backtrack 38.999930879462376 ns/iter 46.51635561144556 ns/iter 0.84
JSON_Array_Of_Objects_Unique 375.15251116066696 ns/iter 461.22448583287587 ns/iter 0.81
JSON_Parse_1 6087.384821429153 ns/iter 7888.913442349283 ns/iter 0.77
JSON_Parse_Real 10778.500000000691 ns/iter 15696.181894075602 ns/iter 0.69
JSON_Parse_Decimal 11405.496874999699 ns/iter 15826.071428577392 ns/iter 0.72
JSON_Parse_Schema_ISO_Language 5203058.000001875 ns/iter 5980042.857142312 ns/iter 0.87
JSON_Fast_Hash_Helm_Chart_Lock 47.98335714286038 ns/iter 59.99557000000095 ns/iter 0.80
JSON_Equality_Helm_Chart_Lock 217.85440624995545 ns/iter 263.47033765497326 ns/iter 0.83
JSON_Divisible_By_Decimal 201.32231467311962 ns/iter 250.77142857136485 ns/iter 0.80
JSON_String_Equal/10 8.810427455355603 ns/iter 12.219330357140734 ns/iter 0.72
JSON_String_Equal/100 10.174095312500242 ns/iter 13.151247932358347 ns/iter 0.77
JSON_String_Equal_Small_By_Perfect_Hash/10 1.647877835924728 ns/iter 2.197891135939444 ns/iter 0.75
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 8.755620496627383 ns/iter 12.925498603014628 ns/iter 0.68
JSON_String_Fast_Hash/10 2.7398667857141845 ns/iter 3.1333674107137153 ns/iter 0.87
JSON_String_Fast_Hash/100 2.741449418419553 ns/iter 3.132274418244065 ns/iter 0.88
JSON_String_Key_Hash/10 3.0161794642852766 ns/iter 3.7712335646939676 ns/iter 0.80
JSON_String_Key_Hash/100 13.118721428570877 ns/iter 14.42639323916955 ns/iter 0.91
JSON_Object_Defines_Miss_Same_Length 3.8478152901788576 ns/iter 5.1394600000003265 ns/iter 0.75
JSON_Object_Defines_Miss_Too_Small 3.094559536085135 ns/iter 3.7806289218210534 ns/iter 0.82
JSON_Object_Defines_Miss_Too_Large 2.985513254930512 ns/iter 3.765864100417939 ns/iter 0.79
Pointer_Object_Traverse 32.684658323197084 ns/iter 42.53301458064944 ns/iter 0.77
Pointer_Object_Try_Traverse 42.24303047645955 ns/iter 52.194620000000214 ns/iter 0.81
Pointer_Push_Back_Pointer_To_Weak_Pointer 114.07307812500989 ns/iter 149.87133928566922 ns/iter 0.76
Pointer_Walker_Schema_ISO_Language 10899146.87499771 ns/iter 11437339.06249622 ns/iter 0.95
Pointer_Maybe_Tracked_Deeply_Nested/0 1596607.5067019763 ns/iter 1981291.4285710445 ns/iter 0.81
Pointer_Maybe_Tracked_Deeply_Nested/1 2348246.7857141793 ns/iter 3036258.482142427 ns/iter 0.77
Pointer_Position_Tracker_Get_Deeply_Nested 489.52696428585796 ns/iter 602.8881696431248 ns/iter 0.81
Schema_Frame_WoT_References 7938549.999999447 ns/iter 9852623.437502928 ns/iter 0.81
Schema_Frame_OMC_References 37411331.57895523 ns/iter 43353670.58823013 ns/iter 0.86
Schema_Frame_OMC_Locations 34139485.71429025 ns/iter 39212061.11110425 ns/iter 0.87
Schema_Frame_ISO_Language_Locations 178834074.9999975 ns/iter 200297200.00002274 ns/iter 0.89
Schema_Frame_KrakenD_References 76747500.00001042 ns/iter 92825585.71430854 ns/iter 0.83
Schema_Frame_KrakenD_Reachable 428173800.0000814 ns/iter 533939500.00008774 ns/iter 0.80
Schema_Iterator_ISO_Language 5226841.999999579 ns/iter 6280305.357141255 ns/iter 0.83
Schema_Frame_ISO_Language_Locations_To_JSON 252896233.3333311 ns/iter 298512150.0000787 ns/iter 0.85
Schema_Tracker_ISO_Language 8193708.888888472 ns/iter 10050124.999999356 ns/iter 0.82
Schema_Tracker_ISO_Language_To_JSON 40956052.94117591 ns/iter 50920590.90909309 ns/iter 0.80
Schema_Format_ISO_Language_To_JSON 174384399.99995124 ns/iter 203129850.00009575 ns/iter 0.86
Schema_Bundle_Meta_2020_12 2188959.062500828 ns/iter 2903401.2711883285 ns/iter 0.75
Schema_Frame_Many_Resources_References 1190023599.999904 ns/iter 1473355900.0001152 ns/iter 0.81
EditorSchema_ForEditor_EmbeddedResources 24337342.85713334 ns/iter 29380383.333318606 ns/iter 0.83
URITemplateRouter_Create 28204.564265338802 ns/iter 39719.68179139073 ns/iter 0.71
URITemplateRouter_Match 171.43393112279378 ns/iter 217.47765770190543 ns/iter 0.79
URITemplateRouter_Match_BasePath 197.52869430671504 ns/iter 251.28888845040183 ns/iter 0.79
URITemplateRouterView_Restore 17849.441512875477 ns/iter 31419.16748697308 ns/iter 0.57
URITemplateRouterView_Match 118.05298214284223 ns/iter 157.42357332927224 ns/iter 0.75
URITemplateRouterView_Match_BasePath 138.69539782609854 ns/iter 181.26235812024836 ns/iter 0.77
URITemplateRouterView_Arguments 345.9979484820312 ns/iter 468.0236089337037 ns/iter 0.74
JSONL_Parse_Large 20931193.75000185 ns/iter 28454242.307694025 ns/iter 0.74
JSONL_Parse_Large_GZIP 20626452.941174272 ns/iter 27769828.000000414 ns/iter 0.74
HTML_Build_Table_100000 73758088.88888161 ns/iter 87164955.55558544 ns/iter 0.85
HTML_Render_Table_100000 6854658.035714627 ns/iter 8111930.0000005355 ns/iter 0.85

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Details
Benchmark suite Current: b0c7fee Previous: e774d05 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.9132500362058313 ns/iter 1.7017010798870666 ns/iter 1.12
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.8671990373886487 ns/iter 1.6925418600128745 ns/iter 1.10
Regex_Period_Asterisk 1.82997602278869 ns/iter 1.6925000275564632 ns/iter 1.08
Regex_Group_Period_Asterisk_Group 1.9112081412076163 ns/iter 1.7581532792401018 ns/iter 1.09
Regex_Period_Plus 2.5055986806459507 ns/iter 2.0272907788521213 ns/iter 1.24
Regex_Period 2.3622463746147173 ns/iter 2.020561818177096 ns/iter 1.17
Regex_Caret_Period_Plus_Dollar 2.2571954360248627 ns/iter 2.014409189865328 ns/iter 1.12
Regex_Caret_Group_Period_Plus_Group_Dollar 2.0808562535342867 ns/iter 2.027760674096027 ns/iter 1.03
Regex_Caret_Period_Asterisk_Dollar 1.6966601614356145 ns/iter 1.6837002480531016 ns/iter 1.01
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.749072414178294 ns/iter 1.7292182177055049 ns/iter 1.01
Regex_Caret_X_Hyphen 7.240705497294124 ns/iter 6.093047272973537 ns/iter 1.19
Regex_Period_Md_Dollar 16.400104691838898 ns/iter 16.711738624978985 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 8.18711352757445 ns/iter 8.06618136772381 ns/iter 1.01
Regex_Caret_Period_Range_Dollar 1.7454066636913397 ns/iter 1.6944002248674195 ns/iter 1.03
Regex_Nested_Backtrack 24.787529606091894 ns/iter 24.45653217599426 ns/iter 1.01
JSON_Array_Of_Objects_Unique 348.1857189448764 ns/iter 339.82104216502074 ns/iter 1.02
JSON_Parse_1 3965.2605498225807 ns/iter 4111.331092972164 ns/iter 0.96
JSON_Parse_Real 6577.983033125118 ns/iter 6310.951532578662 ns/iter 1.04
JSON_Parse_Decimal 8279.191752324208 ns/iter 8045.7517004815345 ns/iter 1.03
JSON_Parse_Schema_ISO_Language 4022737.545977273 ns/iter 4028738.1871653236 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 59.51988282312793 ns/iter 59.51406576426429 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 138.41471035538297 ns/iter 133.540790396386 ns/iter 1.04
JSON_Divisible_By_Decimal 227.3670823228642 ns/iter 172.67372787348768 ns/iter 1.32
JSON_String_Equal/10 7.201572160732999 ns/iter 6.775008936854408 ns/iter 1.06
JSON_String_Equal/100 6.503680625936053 ns/iter 6.781214769852356 ns/iter 0.96
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7544731025455895 ns/iter 0.7828487237118 ns/iter 0.96
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.3498231636333724 ns/iter 3.3391780156116924 ns/iter 1.00
JSON_String_Fast_Hash/10 2.367741696479109 ns/iter 2.355377669689001 ns/iter 1.01
JSON_String_Fast_Hash/100 2.105243946742066 ns/iter 2.02483487465273 ns/iter 1.04
JSON_String_Key_Hash/10 1.361670072323642 ns/iter 1.3743267969849666 ns/iter 0.99
JSON_String_Key_Hash/100 2.169245102930644 ns/iter 2.2240929022869613 ns/iter 0.98
JSON_Object_Defines_Miss_Same_Length 2.4122883865778117 ns/iter 2.3759097975349857 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Small 2.6279998447761894 ns/iter 2.4269161654196836 ns/iter 1.08
JSON_Object_Defines_Miss_Too_Large 2.63396627164674 ns/iter 2.363767803869415 ns/iter 1.11
Pointer_Object_Traverse 17.2682482435979 ns/iter 14.042734968637806 ns/iter 1.23
Pointer_Object_Try_Traverse 20.518606081388334 ns/iter 18.93254394746618 ns/iter 1.08
Pointer_Push_Back_Pointer_To_Weak_Pointer 161.20081794952742 ns/iter 152.8893571578415 ns/iter 1.05
Pointer_Walker_Schema_ISO_Language 4728830.513513642 ns/iter 4216685.181286824 ns/iter 1.12
Pointer_Maybe_Tracked_Deeply_Nested/0 1139992.7160840305 ns/iter 994287.8977718258 ns/iter 1.15
Pointer_Maybe_Tracked_Deeply_Nested/1 1409402.7196652938 ns/iter 1335182.8358206127 ns/iter 1.06
Pointer_Position_Tracker_Get_Deeply_Nested 357.89079857653496 ns/iter 339.9354300842352 ns/iter 1.05
Schema_Frame_WoT_References 4960946.885495722 ns/iter 4691210.581081516 ns/iter 1.06
Schema_Frame_OMC_References 26088259.61537884 ns/iter 24274924.37036731 ns/iter 1.07
Schema_Frame_OMC_Locations 26003812.500001848 ns/iter 26311819.433332555 ns/iter 0.99
Schema_Frame_ISO_Language_Locations 77732150.9999922 ns/iter 71995115.7777814 ns/iter 1.08
Schema_Frame_KrakenD_References 48988682.69230241 ns/iter 47586219.40000012 ns/iter 1.03
Schema_Frame_KrakenD_Reachable 489657166.5000238 ns/iter 457634895.4999503 ns/iter 1.07
Schema_Iterator_ISO_Language 2579360.8803989952 ns/iter 2302144.506368903 ns/iter 1.12
Schema_Frame_ISO_Language_Locations_To_JSON 99458593.75000055 ns/iter 76768692.6250235 ns/iter 1.30
Schema_Tracker_ISO_Language 5597540.289257696 ns/iter 4632784.406451338 ns/iter 1.21
Schema_Tracker_ISO_Language_To_JSON 13590404.89130522 ns/iter 13739984.555555835 ns/iter 0.99
Schema_Format_ISO_Language_To_JSON 76572490.77780963 ns/iter 75970683.40003261 ns/iter 1.01
Schema_Bundle_Meta_2020_12 1319928.3867155742 ns/iter 1272809.7058821435 ns/iter 1.04
Schema_Frame_Many_Resources_References 290081854.50004476 ns/iter 310971729.49989724 ns/iter 0.93
EditorSchema_ForEditor_EmbeddedResources 11188054.232129779 ns/iter 10487721.18461574 ns/iter 1.07
URITemplateRouter_Create 23245.833623754545 ns/iter 22820.75618129929 ns/iter 1.02
URITemplateRouter_Match 167.0776872706743 ns/iter 161.77875778000148 ns/iter 1.03
URITemplateRouter_Match_BasePath 214.61227484006184 ns/iter 191.91024235240292 ns/iter 1.12
URITemplateRouterView_Restore 15237.347931343556 ns/iter 9366.958284974957 ns/iter 1.63
URITemplateRouterView_Match 137.8643163628447 ns/iter 128.70179088881972 ns/iter 1.07
URITemplateRouterView_Match_BasePath 150.82076197343966 ns/iter 146.50372648275086 ns/iter 1.03
URITemplateRouterView_Arguments 414.408868944945 ns/iter 403.58103680192903 ns/iter 1.03
JSONL_Parse_Large 12256550.745455157 ns/iter 12011607.633333674 ns/iter 1.02
JSONL_Parse_Large_GZIP 12551819.179998348 ns/iter 13708766.672727343 ns/iter 0.92
HTML_Build_Table_100000 67018825.81817451 ns/iter 67375318.18182354 ns/iter 0.99
HTML_Render_Table_100000 4714930.151078615 ns/iter 2913756.157635263 ns/iter 1.62

This comment was automatically generated by workflow using github-action-benchmark.

@jviotti jviotti merged commit 9d2f9fe into main May 14, 2026
13 checks passed
@jviotti jviotti deleted the uritemplate-check branch May 14, 2026 20:51
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: b0c7fee Previous: e774d05 Ratio
HTML_Build_Table_100000 62459708.63636268 ns/iter 69247175.00000952 ns/iter 0.90
HTML_Render_Table_100000 5379659.07031257 ns/iter 10263181.088235155 ns/iter 0.52
JSONL_Parse_Large 12990020.759258624 ns/iter 12427260.232146053 ns/iter 1.05
JSONL_Parse_Large_GZIP 14206787.653058793 ns/iter 13407368.499997575 ns/iter 1.06
URITemplateRouter_Create 31576.859864860646 ns/iter 28410.227494567134 ns/iter 1.11
URITemplateRouter_Match 167.93138119300068 ns/iter 147.70410146010704 ns/iter 1.14
URITemplateRouter_Match_BasePath 192.1343483861975 ns/iter 163.68699181304112 ns/iter 1.17
URITemplateRouterView_Restore 7796.494909831124 ns/iter 3463.0083109581196 ns/iter 2.25
URITemplateRouterView_Match 212.60453953886267 ns/iter 125.18889178361601 ns/iter 1.70
URITemplateRouterView_Match_BasePath 158.1290492287442 ns/iter 143.1553935892339 ns/iter 1.10
URITemplateRouterView_Arguments 482.37599745877833 ns/iter 539.0320995076547 ns/iter 0.89
EditorSchema_ForEditor_EmbeddedResources 14004437.139997208 ns/iter 12761908.03635638 ns/iter 1.10
Schema_Frame_WoT_References 5435875.640625198 ns/iter 4878358.524475179 ns/iter 1.11
Schema_Frame_OMC_References 22129475.290321644 ns/iter 21149852.303034842 ns/iter 1.05
Schema_Frame_OMC_Locations 20542493.11764606 ns/iter 19449183.19444216 ns/iter 1.06
Schema_Frame_ISO_Language_Locations 103604569.50002117 ns/iter 95383489.42857869 ns/iter 1.09
Schema_Frame_KrakenD_References 40303905.88889077 ns/iter 38781221.55555907 ns/iter 1.04
Schema_Frame_KrakenD_Reachable 535931103.99992836 ns/iter 759913367.9998431 ns/iter 0.71
Schema_Iterator_ISO_Language 3256812.7943923767 ns/iter 3155727.7058824818 ns/iter 1.03
Schema_Frame_ISO_Language_Locations_To_JSON 217393224.33336386 ns/iter 203526061.6666316 ns/iter 1.07
Schema_Tracker_ISO_Language 4618107.611843483 ns/iter 4628136.006666257 ns/iter 1.00
Schema_Tracker_ISO_Language_To_JSON 22328146.281246576 ns/iter 24865072.10714503 ns/iter 0.90
Schema_Format_ISO_Language_To_JSON 108943831.99994688 ns/iter 100769703.71424718 ns/iter 1.08
Schema_Bundle_Meta_2020_12 1819603.609377533 ns/iter 1668686.7809561417 ns/iter 1.09
Schema_Frame_Many_Resources_References 376804051.5000166 ns/iter 364140499.4999675 ns/iter 1.03
Pointer_Object_Traverse 24.859004259407936 ns/iter 26.89879696865443 ns/iter 0.92
Pointer_Object_Try_Traverse 19.84824856795419 ns/iter 24.114437286703446 ns/iter 0.82
Pointer_Push_Back_Pointer_To_Weak_Pointer 162.86512501774584 ns/iter 154.4863877037007 ns/iter 1.05
Pointer_Walker_Schema_ISO_Language 3339254.476190945 ns/iter 3399867.338163423 ns/iter 0.98
Pointer_Maybe_Tracked_Deeply_Nested/0 1595296.0045664539 ns/iter 1420203.1923077481 ns/iter 1.12
Pointer_Maybe_Tracked_Deeply_Nested/1 1797800.2724931359 ns/iter 1977681.7226889348 ns/iter 0.91
Pointer_Position_Tracker_Get_Deeply_Nested 396.86078038888917 ns/iter 413.68476435654986 ns/iter 0.96
JSON_Array_Of_Objects_Unique 371.0526515119145 ns/iter 338.0190151268979 ns/iter 1.10
JSON_Parse_1 7976.844196936677 ns/iter 6812.77310124592 ns/iter 1.17
JSON_Parse_Real 12111.986883881835 ns/iter 11029.877007372272 ns/iter 1.10
JSON_Parse_Decimal 17972.033722307762 ns/iter 14719.714162404416 ns/iter 1.22
JSON_Parse_Schema_ISO_Language 4687754.550336679 ns/iter 4287318.716050614 ns/iter 1.09
JSON_Fast_Hash_Helm_Chart_Lock 64.76658888276157 ns/iter 45.17610611041845 ns/iter 1.43
JSON_Equality_Helm_Chart_Lock 162.65176744808096 ns/iter 154.63878001504614 ns/iter 1.05
JSON_Divisible_By_Decimal 237.51467471980789 ns/iter 250.89554784713044 ns/iter 0.95
JSON_String_Equal/10 6.5620233417027345 ns/iter 5.678275020760628 ns/iter 1.16
JSON_String_Equal/100 7.271216651858608 ns/iter 6.807444414429537 ns/iter 1.07
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6236995976433333 ns/iter 0.8254770974099872 ns/iter 0.76
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.202063144300062 ns/iter 17.009344764990963 ns/iter 1.48
JSON_String_Fast_Hash/10 0.9351189858647756 ns/iter 1.1598940993470812 ns/iter 0.81
JSON_String_Fast_Hash/100 0.9347218514710258 ns/iter 1.1528511932997456 ns/iter 0.81
JSON_String_Key_Hash/10 1.5596856685339242 ns/iter 1.7297498753635003 ns/iter 0.90
JSON_String_Key_Hash/100 12.453542673639074 ns/iter 11.83370460022853 ns/iter 1.05
JSON_Object_Defines_Miss_Same_Length 3.426341955723712 ns/iter 3.3985331683444686 ns/iter 1.01
JSON_Object_Defines_Miss_Too_Small 3.1163324891709356 ns/iter 3.445608072879465 ns/iter 0.90
JSON_Object_Defines_Miss_Too_Large 3.73932417752746 ns/iter 3.733774074171434 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 0.9344143564371598 ns/iter 1.152683721846392 ns/iter 0.81
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.9341532066285462 ns/iter 1.152980889555559 ns/iter 0.81
Regex_Period_Asterisk 0.6228804555517642 ns/iter 0.864792230931925 ns/iter 0.72
Regex_Group_Period_Asterisk_Group 0.6232644804155498 ns/iter 0.8654815822388986 ns/iter 0.72
Regex_Period_Plus 0.9346638402443596 ns/iter 1.154833239224883 ns/iter 0.81
Regex_Period 0.9346362596875855 ns/iter 1.1526697218291888 ns/iter 0.81
Regex_Caret_Period_Plus_Dollar 0.6233558742388093 ns/iter 0.8648081819306856 ns/iter 0.72
Regex_Caret_Group_Period_Plus_Group_Dollar 0.6225475719017547 ns/iter 0.8647039899255082 ns/iter 0.72
Regex_Caret_Period_Asterisk_Dollar 0.9350756962331569 ns/iter 1.1531144128006894 ns/iter 0.81
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.9341197754363307 ns/iter 1.153124434771862 ns/iter 0.81
Regex_Caret_X_Hyphen 4.439118858038509 ns/iter 3.459157084158363 ns/iter 1.28
Regex_Period_Md_Dollar 28.730215142579144 ns/iter 23.84629320300295 ns/iter 1.20
Regex_Caret_Slash_Period_Asterisk 4.3577788496423855 ns/iter 3.172304993285078 ns/iter 1.37
Regex_Caret_Period_Range_Dollar 0.9344986407190672 ns/iter 1.1532237851039058 ns/iter 0.81
Regex_Nested_Backtrack 40.57690760046269 ns/iter 33.62007285397049 ns/iter 1.21

This comment was automatically generated by workflow using github-action-benchmark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant