Skip to content

Support registering context and arguments to default routes#2340

Merged
jviotti merged 2 commits intomainfrom
router-otherwise
Apr 8, 2026
Merged

Support registering context and arguments to default routes#2340
jviotti merged 2 commits intomainfrom
router-otherwise

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented Apr 8, 2026

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

jviotti added 2 commits April 8, 2026 19:02
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti marked this pull request as ready for review April 8, 2026 23:13
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 Apr 8, 2026

🤖 Augment PR Summary

Summary: This PR adds first-class support for registering a fallback ("otherwise") context/arguments that are returned when a path does not match any registered route.

Changes:

  • Added URITemplateRouter::otherwise(context, arguments) and stored the fallback context in a dedicated otherwise_ node.
  • Updated URITemplateRouter::match() to consistently finalize results so unmatched paths return {0, otherwise_context} instead of {0, 0}.
  • Extended the serialized router format: bumped ROUTER_VERSION to 5 and added otherwise_context to the binary header.
  • Updated URITemplateRouterView::match() to apply the same fallback semantics when a route isn’t found.
  • Added comprehensive unit tests covering default context/argument behavior, overwrites, base-path cases, and partial trie walks; updated corrupt-data fixtures for the new header size.

Technical Notes: The fallback uses handler id 0 with a non-zero context and stores optional fallback arguments under identifier 0; serialized views now require version 5 files.

🤖 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. No suggestions at this time.

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

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: 239739a Previous: bd4eb91 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.167252025022575 ns/iter 3.153450541141338 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1140511762352374 ns/iter 3.112355076324441 ns/iter 1.00
Regex_Period_Asterisk 3.1130658657654244 ns/iter 3.1130424055420973 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.1154523445501745 ns/iter 3.1123050053216836 ns/iter 1.00
Regex_Period_Plus 2.925041916214429 ns/iter 3.115775641762459 ns/iter 0.94
Regex_Period 2.892868172160731 ns/iter 3.1215612321324415 ns/iter 0.93
Regex_Caret_Period_Plus_Dollar 2.839017923447059 ns/iter 3.1128594117303185 ns/iter 0.91
Regex_Caret_Group_Period_Plus_Group_Dollar 2.9173615905021113 ns/iter 3.113100743125995 ns/iter 0.94
Regex_Caret_Period_Asterisk_Dollar 3.112583680635884 ns/iter 3.732914468672998 ns/iter 0.83
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.112190348442982 ns/iter 3.733472063963268 ns/iter 0.83
Regex_Caret_X_Hyphen 10.283151870520797 ns/iter 13.070937397702089 ns/iter 0.79
Regex_Period_Md_Dollar 27.371663731054337 ns/iter 27.671453082622236 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 6.231290136179823 ns/iter 6.538573863026287 ns/iter 0.95
Regex_Caret_Period_Range_Dollar 3.365310871838643 ns/iter 4.044529202848952 ns/iter 0.83
Regex_Nested_Backtrack 62.42256766876607 ns/iter 49.41872186321178 ns/iter 1.26
JSON_Array_Of_Objects_Unique 386.66515072476267 ns/iter 387.24138452868027 ns/iter 1.00
JSON_Parse_1 5948.038459631283 ns/iter 5907.692838078527 ns/iter 1.01
JSON_Parse_Real 10561.136916880743 ns/iter 11183.798067973552 ns/iter 0.94
JSON_Parse_Decimal 11477.723911471869 ns/iter 11732.516864846933 ns/iter 0.98
JSON_Parse_Schema_ISO_Language 3636575.9119171393 ns/iter 3567993.9289342063 ns/iter 1.02
JSON_Fast_Hash_Helm_Chart_Lock 53.55140398102025 ns/iter 53.55499566843075 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 162.3585813537913 ns/iter 163.5900072860942 ns/iter 0.99
JSON_Divisible_By_Decimal 246.21667051033305 ns/iter 244.91362459814255 ns/iter 1.01
JSON_String_Equal/10 6.235932545151977 ns/iter 6.230320835921451 ns/iter 1.00
JSON_String_Equal/100 6.857834475360677 ns/iter 6.855683174031488 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9364317562600054 ns/iter 0.9360403931035198 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.277288977001318 ns/iter 14.630287250546695 ns/iter 0.70
JSON_String_Fast_Hash/10 2.492115923162629 ns/iter 2.491834230122572 ns/iter 1.00
JSON_String_Fast_Hash/100 2.491693384660617 ns/iter 2.4916570780214546 ns/iter 1.00
JSON_String_Key_Hash/10 2.1814099882540816 ns/iter 2.5808582655941272 ns/iter 0.85
JSON_String_Key_Hash/100 6.550002870025293 ns/iter 9.04873312109899 ns/iter 0.72
JSON_Object_Defines_Miss_Same_Length 3.7394551570290924 ns/iter 3.7453357138951544 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.75221053077921 ns/iter 3.7405901935841754 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7413841147662525 ns/iter 3.7422224489120115 ns/iter 1.00
Pointer_Object_Traverse 25.410370051619402 ns/iter 28.23185989538583 ns/iter 0.90
Pointer_Object_Try_Traverse 28.034475654491377 ns/iter 28.729977657997132 ns/iter 0.98
Pointer_Push_Back_Pointer_To_Weak_Pointer 156.0414565136537 ns/iter 175.42742763585923 ns/iter 0.89
Pointer_Walker_Schema_ISO_Language 3088483.547170083 ns/iter 3048065.7510913843 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/0 1399617.052208758 ns/iter 1440866.7811246149 ns/iter 0.97
Pointer_Maybe_Tracked_Deeply_Nested/1 1782540.4256410156 ns/iter 1727175.4770407644 ns/iter 1.03
Pointer_Position_Tracker_Get_Deeply_Nested 667.7159385032859 ns/iter 674.689778670997 ns/iter 0.99
Schema_Frame_WoT_References 5199610.291044927 ns/iter 5120289.451851763 ns/iter 1.02
Schema_Frame_OMC_References 24618467.64285675 ns/iter 21803541.43750307 ns/iter 1.13
Schema_Frame_OMC_Locations 22814391.66666711 ns/iter 20196334.500002086 ns/iter 1.13
Schema_Frame_ISO_Language_Locations 105502095.4999956 ns/iter 102252516.00000244 ns/iter 1.03
Schema_Frame_KrakenD_References 46870099.74999512 ns/iter 42852722.64705915 ns/iter 1.09
Schema_Frame_KrakenD_Reachable 630044476.0000801 ns/iter 605606670.0000429 ns/iter 1.04
Schema_Iterator_ISO_Language 2337643.052458991 ns/iter 2379256.2266665604 ns/iter 0.98
Schema_Frame_ISO_Language_Locations_To_JSON 109920478.39999941 ns/iter 106566228.7999885 ns/iter 1.03
Schema_Tracker_ISO_Language 5144735.707692514 ns/iter 4900059.587412756 ns/iter 1.05
Schema_Tracker_ISO_Language_To_JSON 19450218.94444368 ns/iter 20160492.628571905 ns/iter 0.96
Schema_Format_ISO_Language_To_JSON 113659236.00000845 ns/iter 108204373.16666205 ns/iter 1.05
Schema_Bundle_Meta_2020_12 1685221.3725993163 ns/iter 1655665.151302473 ns/iter 1.02
Schema_Frame_Many_Resources_References 380569048.50003546 ns/iter 382582766.49997926 ns/iter 0.99
Alterschema_Check_Readibility_ISO_Language_Set_3 221319431.33335122 ns/iter 217269084.00000867 ns/iter 1.02
Alterschema_Check_Readibility_OMC 40711407.176472135 ns/iter 34198111.05000008 ns/iter 1.19
Alterschema_Apply_Readibility_KrakenD 716430974.0001044 ns/iter 637524402.0000536 ns/iter 1.12
Alterschema_Check_Invalid_External_Refs 127453635.16667871 ns/iter 122596969.66666903 ns/iter 1.04
EditorSchema_ForEditor_EmbeddedResources 14709824.500001736 ns/iter 14044573.959999979 ns/iter 1.05
URITemplateRouter_Create 16349.57764681197 ns/iter 16577.70494799005 ns/iter 0.99
URITemplateRouter_Match 168.78619623844983 ns/iter 190.95583261420498 ns/iter 0.88
URITemplateRouter_Match_BasePath 195.65743441557666 ns/iter 216.82437141802797 ns/iter 0.90
URITemplateRouterView_Restore 5162.822376401762 ns/iter 5082.89339846906 ns/iter 1.02
URITemplateRouterView_Match 157.27795955493622 ns/iter 159.68744099741565 ns/iter 0.98
URITemplateRouterView_Match_BasePath 175.75735288244346 ns/iter 182.90420426403398 ns/iter 0.96
URITemplateRouterView_Arguments 475.0422841086429 ns/iter 425.58754288845097 ns/iter 1.12
HTML_Build_Table_100000 62263321.090912625 ns/iter 63186646.72727954 ns/iter 0.99
HTML_Render_Table_100000 5459222.303029905 ns/iter 5138988.074073765 ns/iter 1.06

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: 239739a Previous: bd4eb91 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.1728949849868764 ns/iter 1.6886790068525956 ns/iter 1.29
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.889574174934062 ns/iter 1.754027029826557 ns/iter 1.08
Regex_Period_Asterisk 2.0936141505909203 ns/iter 1.8089111416931005 ns/iter 1.16
Regex_Group_Period_Asterisk_Group 2.090733225370476 ns/iter 1.9269091138294505 ns/iter 1.09
Regex_Period_Plus 2.214183491050061 ns/iter 2.3434413823696043 ns/iter 0.94
Regex_Period 2.3016383687345927 ns/iter 2.1609885779678 ns/iter 1.07
Regex_Caret_Period_Plus_Dollar 2.358390971191527 ns/iter 2.056978337957007 ns/iter 1.15
Regex_Caret_Group_Period_Plus_Group_Dollar 2.4381446034867946 ns/iter 2.1888835997507643 ns/iter 1.11
Regex_Caret_Period_Asterisk_Dollar 1.8132751595012977 ns/iter 1.823156456878016 ns/iter 0.99
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.1606538574806327 ns/iter 1.9358298664426408 ns/iter 1.12
Regex_Caret_X_Hyphen 8.379728948664912 ns/iter 7.521759384672639 ns/iter 1.11
Regex_Period_Md_Dollar 31.967946058827895 ns/iter 25.237313906660468 ns/iter 1.27
Regex_Caret_Slash_Period_Asterisk 6.627150913157891 ns/iter 5.654480469227708 ns/iter 1.17
Regex_Caret_Period_Range_Dollar 2.132440558815472 ns/iter 2.156484118151819 ns/iter 0.99
Regex_Nested_Backtrack 31.72576067112259 ns/iter 30.08676746361354 ns/iter 1.05
JSON_Array_Of_Objects_Unique 389.0719759754891 ns/iter 468.4217448212842 ns/iter 0.83
JSON_Parse_1 4886.009295176556 ns/iter 4990.942550232866 ns/iter 0.98
JSON_Parse_Real 7211.194686207421 ns/iter 6974.144424787719 ns/iter 1.03
JSON_Parse_Decimal 10833.599176175854 ns/iter 9470.244886561484 ns/iter 1.14
JSON_Parse_Schema_ISO_Language 6191145.454547288 ns/iter 5054589.999999735 ns/iter 1.22
JSON_Fast_Hash_Helm_Chart_Lock 66.88432877052993 ns/iter 62.21289521871951 ns/iter 1.08
JSON_Equality_Helm_Chart_Lock 144.61440293915737 ns/iter 134.81376856805792 ns/iter 1.07
JSON_Divisible_By_Decimal 194.86779205153206 ns/iter 184.13186092398755 ns/iter 1.06
JSON_String_Equal/10 8.489067345342946 ns/iter 6.863270137500926 ns/iter 1.24
JSON_String_Equal/100 7.160292479442851 ns/iter 6.59599725889058 ns/iter 1.09
JSON_String_Equal_Small_By_Perfect_Hash/10 0.8628391389607902 ns/iter 0.7956068901044242 ns/iter 1.08
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.666932029154718 ns/iter 3.918354978875526 ns/iter 0.94
JSON_String_Fast_Hash/10 3.0110208695675955 ns/iter 2.43285555084863 ns/iter 1.24
JSON_String_Fast_Hash/100 2.9371121353706773 ns/iter 3.0625858689944336 ns/iter 0.96
JSON_String_Key_Hash/10 1.6478778203796063 ns/iter 2.144376145407308 ns/iter 0.77
JSON_String_Key_Hash/100 3.016659799581064 ns/iter 2.1679377435110267 ns/iter 1.39
JSON_Object_Defines_Miss_Same_Length 2.648108187223823 ns/iter 2.3591025937140873 ns/iter 1.12
JSON_Object_Defines_Miss_Too_Small 3.0870140918333178 ns/iter 2.3639628472304226 ns/iter 1.31
JSON_Object_Defines_Miss_Too_Large 2.9074801693188452 ns/iter 2.3083706890284263 ns/iter 1.26
Pointer_Object_Traverse 16.945611502642524 ns/iter 14.681585670408342 ns/iter 1.15
Pointer_Object_Try_Traverse 23.26427856975552 ns/iter 22.5019730044967 ns/iter 1.03
Pointer_Push_Back_Pointer_To_Weak_Pointer 193.38234339999656 ns/iter 170.05305035858916 ns/iter 1.14
Pointer_Walker_Schema_ISO_Language 5227071.773723612 ns/iter 4556551.834644693 ns/iter 1.15
Pointer_Maybe_Tracked_Deeply_Nested/0 1433567.5058136915 ns/iter 1005973.0428358114 ns/iter 1.43
Pointer_Maybe_Tracked_Deeply_Nested/1 1724606.6415524166 ns/iter 1347016.3934425542 ns/iter 1.28
Pointer_Position_Tracker_Get_Deeply_Nested 412.5223971156167 ns/iter 399.08611256005423 ns/iter 1.03
Schema_Frame_WoT_References 6992861.778846086 ns/iter 6010346.000000937 ns/iter 1.16
Schema_Frame_OMC_References 30617494.31818002 ns/iter 27570581.68000185 ns/iter 1.11
Schema_Frame_OMC_Locations 28917277.79167278 ns/iter 27448248.586206947 ns/iter 1.05
Schema_Frame_ISO_Language_Locations 77085020.87498914 ns/iter 73583984.37500568 ns/iter 1.05
Schema_Frame_KrakenD_References 49450395.857141815 ns/iter 49045803.571419 ns/iter 1.01
Schema_Frame_KrakenD_Reachable 481113333.5001614 ns/iter 384370104.4999079 ns/iter 1.25
Schema_Iterator_ISO_Language 2052827.977143222 ns/iter 1985716.822751764 ns/iter 1.03
Schema_Frame_ISO_Language_Locations_To_JSON 74164562.4999876 ns/iter 106376016.59996107 ns/iter 0.70
Schema_Tracker_ISO_Language 9152245.065790435 ns/iter 9140909.192305677 ns/iter 1.00
Schema_Tracker_ISO_Language_To_JSON 14472278.897960212 ns/iter 13619931.744676463 ns/iter 1.06
Schema_Format_ISO_Language_To_JSON 76303379.55558592 ns/iter 70726062.70003234 ns/iter 1.08
Schema_Bundle_Meta_2020_12 1424701.9236822985 ns/iter 1389307.280224108 ns/iter 1.03
Schema_Frame_Many_Resources_References 351085375.00002515 ns/iter 382209583.5000709 ns/iter 0.92
Alterschema_Check_Readibility_ISO_Language_Set_3 169246812.5000346 ns/iter 139122950.00000086 ns/iter 1.22
Alterschema_Check_Readibility_OMC 35862656.25000351 ns/iter 30775670.454545435 ns/iter 1.17
Alterschema_Apply_Readibility_KrakenD 545129959.0001781 ns/iter 417783708.0000017 ns/iter 1.30
Alterschema_Check_Invalid_External_Refs 90247537.0000199 ns/iter 64908068.18181805 ns/iter 1.39
EditorSchema_ForEditor_EmbeddedResources 15992925.421059817 ns/iter 9543067.16417406 ns/iter 1.68
URITemplateRouter_Create 23534.706127062575 ns/iter 16126.998585387766 ns/iter 1.46
URITemplateRouter_Match 234.79900532798723 ns/iter 168.08653615153295 ns/iter 1.40
URITemplateRouter_Match_BasePath 227.24638109469348 ns/iter 199.67481974292699 ns/iter 1.14
URITemplateRouterView_Restore 24112.755110533733 ns/iter 15729.300114069343 ns/iter 1.53
URITemplateRouterView_Match 183.7228476894606 ns/iter 132.02227261199874 ns/iter 1.39
URITemplateRouterView_Match_BasePath 188.4689972194088 ns/iter 151.00267367788797 ns/iter 1.25
URITemplateRouterView_Arguments 482.58458991993643 ns/iter 418.05047853575064 ns/iter 1.15
HTML_Build_Table_100000 80735577.2856876 ns/iter 66140772.727253124 ns/iter 1.22
HTML_Render_Table_100000 5023069.589999523 ns/iter 3457557.577889221 ns/iter 1.45

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: 239739a Previous: bd4eb91 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.27409831539851 ns/iter 4.1119174180571925 ns/iter 1.04
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.281325989787316 ns/iter 4.082657551933558 ns/iter 1.05
Regex_Period_Asterisk 4.259867140955203 ns/iter 4.3994961275909015 ns/iter 0.97
Regex_Group_Period_Asterisk_Group 3.9539517481332918 ns/iter 4.096465989457068 ns/iter 0.97
Regex_Period_Plus 4.607293349244814 ns/iter 4.111123489483975 ns/iter 1.12
Regex_Period 4.616869429949998 ns/iter 4.084257016222841 ns/iter 1.13
Regex_Caret_Period_Plus_Dollar 4.252681874999098 ns/iter 3.7801333861067716 ns/iter 1.13
Regex_Caret_Group_Period_Plus_Group_Dollar 4.2526808016724775 ns/iter 3.7707942789803575 ns/iter 1.13
Regex_Caret_Period_Asterisk_Dollar 3.911322544643627 ns/iter 4.079330357143871 ns/iter 0.96
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.904190848214029 ns/iter 4.09138206087752 ns/iter 0.95
Regex_Caret_X_Hyphen 6.736686607143026 ns/iter 7.535785714285989 ns/iter 0.89
Regex_Period_Md_Dollar 34.34562472045918 ns/iter 34.948468927653224 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 6.388084821428005 ns/iter 7.219765625001072 ns/iter 0.88
Regex_Caret_Period_Range_Dollar 3.9157656250005908 ns/iter 4.236736570065446 ns/iter 0.92
Regex_Nested_Backtrack 83.5664620535478 ns/iter 95.2651296756663 ns/iter 0.88
JSON_Array_Of_Objects_Unique 488.6424528218231 ns/iter 503.7723000000369 ns/iter 0.97
JSON_Parse_1 7729.237723214258 ns/iter 7929.641741069661 ns/iter 0.97
JSON_Parse_Real 13996.018321347747 ns/iter 15808.654017856075 ns/iter 0.89
JSON_Parse_Decimal 15431.102678574249 ns/iter 15683.428571427223 ns/iter 0.98
JSON_Parse_Schema_ISO_Language 6339668.8888891125 ns/iter 5729183.928571453 ns/iter 1.11
JSON_Fast_Hash_Helm_Chart_Lock 61.89764285717761 ns/iter 72.03619642857412 ns/iter 0.86
JSON_Equality_Helm_Chart_Lock 283.1919784289688 ns/iter 256.1066071428643 ns/iter 1.11
JSON_Divisible_By_Decimal 259.88007410185025 ns/iter 245.6569285714392 ns/iter 1.06
JSON_String_Equal/10 11.361846428574802 ns/iter 12.263755357139416 ns/iter 0.93
JSON_String_Equal/100 13.160540625001715 ns/iter 12.929203571425367 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 1.8948150016921992 ns/iter 1.8816760731085933 ns/iter 1.01
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 11.32516718750054 ns/iter 12.938503571429498 ns/iter 0.88
JSON_String_Fast_Hash/10 3.205461160713899 ns/iter 3.7579112723218344 ns/iter 0.85
JSON_String_Fast_Hash/100 3.2229999999994363 ns/iter 3.8107645089281914 ns/iter 0.85
JSON_String_Key_Hash/10 3.9021876545063043 ns/iter 4.078751167997515 ns/iter 0.96
JSON_String_Key_Hash/100 16.953118859690306 ns/iter 14.368102167999469 ns/iter 1.18
JSON_Object_Defines_Miss_Same_Length 4.976230023433544 ns/iter 5.023219934157368 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 3.930720051660529 ns/iter 3.7615683646589426 ns/iter 1.04
JSON_Object_Defines_Miss_Too_Large 3.8594095982144188 ns/iter 3.766108921846612 ns/iter 1.02
Pointer_Object_Traverse 43.240781250005966 ns/iter 42.038168749996885 ns/iter 1.03
Pointer_Object_Try_Traverse 54.98947000000954 ns/iter 49.37829431220254 ns/iter 1.11
Pointer_Push_Back_Pointer_To_Weak_Pointer 156.47015624996436 ns/iter 147.57386160714043 ns/iter 1.06
Pointer_Walker_Schema_ISO_Language 12322342.857146395 ns/iter 11216266.071431035 ns/iter 1.10
Pointer_Maybe_Tracked_Deeply_Nested/0 2226222.857141888 ns/iter 1982229.2857140512 ns/iter 1.12
Pointer_Maybe_Tracked_Deeply_Nested/1 3008495.7627114835 ns/iter 3033826.9076313754 ns/iter 0.99
Pointer_Position_Tracker_Get_Deeply_Nested 637.0084821425743 ns/iter 626.0693080358338 ns/iter 1.02
Schema_Frame_WoT_References 10492225.000000132 ns/iter 9858498.666665884 ns/iter 1.06
Schema_Frame_OMC_References 45967299.99999904 ns/iter 42466568.75000099 ns/iter 1.08
Schema_Frame_OMC_Locations 42122847.05882292 ns/iter 38778394.44444615 ns/iter 1.09
Schema_Frame_ISO_Language_Locations 201751399.99992096 ns/iter 189299424.9999447 ns/iter 1.07
Schema_Frame_KrakenD_References 94580271.42857516 ns/iter 87252628.57144247 ns/iter 1.08
Schema_Frame_KrakenD_Reachable 528672199.9996189 ns/iter 510182699.99985933 ns/iter 1.04
Schema_Iterator_ISO_Language 5279732.142858913 ns/iter 5073806.711408797 ns/iter 1.04
Schema_Frame_ISO_Language_Locations_To_JSON 308748999.999807 ns/iter 278974749.99997485 ns/iter 1.11
Schema_Tracker_ISO_Language 15605179.999993198 ns/iter 15711095.555555707 ns/iter 0.99
Schema_Tracker_ISO_Language_To_JSON 49013281.81817503 ns/iter 49834033.3333393 ns/iter 0.98
Schema_Format_ISO_Language_To_JSON 200615900.00007832 ns/iter 184258500.0000933 ns/iter 1.09
Schema_Bundle_Meta_2020_12 2864289.9598368336 ns/iter 2851876.3052200237 ns/iter 1.00
Schema_Frame_Many_Resources_References 1465938000.0002785 ns/iter 1440102999.9999082 ns/iter 1.02
Alterschema_Check_Readibility_ISO_Language_Set_3 317643950.00004697 ns/iter 309402249.99994826 ns/iter 1.03
Alterschema_Check_Readibility_OMC 62715236.36364278 ns/iter 58989890.90910205 ns/iter 1.06
Alterschema_Apply_Readibility_KrakenD 991196399.999808 ns/iter 970417499.9999396 ns/iter 1.02
Alterschema_Check_Invalid_External_Refs 136098399.99996135 ns/iter 140910919.99998754 ns/iter 0.97
EditorSchema_ForEditor_EmbeddedResources 29850359.090894267 ns/iter 28021162.49998221 ns/iter 1.07
URITemplateRouter_Create 21287.15106494393 ns/iter 22066.462499999772 ns/iter 0.96
URITemplateRouter_Match 216.25793749990407 ns/iter 205.10473414712283 ns/iter 1.05
URITemplateRouter_Match_BasePath 256.00737526827993 ns/iter 236.78612312660866 ns/iter 1.08
URITemplateRouterView_Restore 25387.35357143196 ns/iter 30748.55156896211 ns/iter 0.83
URITemplateRouterView_Match 154.30095982133756 ns/iter 149.94540178575124 ns/iter 1.03
URITemplateRouterView_Match_BasePath 178.49323070264938 ns/iter 174.46396480788093 ns/iter 1.02
URITemplateRouterView_Arguments 442.22643750003954 ns/iter 441.4363125000875 ns/iter 1.00
HTML_Build_Table_100000 91542814.28573085 ns/iter 84314977.77779542 ns/iter 1.09
HTML_Render_Table_100000 7972991.111111898 ns/iter 7787136.666666407 ns/iter 1.02

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

@jviotti jviotti merged commit 53a1888 into main Apr 8, 2026
13 checks passed
@jviotti jviotti deleted the router-otherwise branch April 8, 2026 23:34
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: 239739a Previous: bd4eb91 Ratio
HTML_Build_Table_100000 62423431.99999761 ns/iter 62685533.818177484 ns/iter 1.00
HTML_Render_Table_100000 5196046.440298925 ns/iter 5411394.1171873845 ns/iter 0.96
URITemplateRouter_Create 14702.556866574163 ns/iter 14755.631081650426 ns/iter 1.00
URITemplateRouter_Match 213.56557335648273 ns/iter 214.3977575939136 ns/iter 1.00
URITemplateRouter_Match_BasePath 264.02212488373715 ns/iter 249.95853845501986 ns/iter 1.06
URITemplateRouterView_Restore 6686.781891305648 ns/iter 6678.889228746181 ns/iter 1.00
URITemplateRouterView_Match 133.86799368723345 ns/iter 133.69505170323535 ns/iter 1.00
URITemplateRouterView_Match_BasePath 153.52671409231138 ns/iter 159.04510008160594 ns/iter 0.97
URITemplateRouterView_Arguments 475.9574135379169 ns/iter 479.631766143963 ns/iter 0.99
EditorSchema_ForEditor_EmbeddedResources 14046141.699986946 ns/iter 14223288.163237864 ns/iter 0.99
Alterschema_Check_Readibility_ISO_Language_Set_3 206677630.00005832 ns/iter 209571829.6666291 ns/iter 0.99
Alterschema_Check_Readibility_OMC 34210380.449997045 ns/iter 33962470.14285065 ns/iter 1.01
Alterschema_Apply_Readibility_KrakenD 576446453.0000168 ns/iter 561141013.0002241 ns/iter 1.03
Alterschema_Check_Invalid_External_Refs 128302808.16664678 ns/iter 120583778.33333604 ns/iter 1.06
Schema_Frame_WoT_References 5473171.679687639 ns/iter 5396694.131782839 ns/iter 1.01
Schema_Frame_OMC_References 22298378.193549834 ns/iter 22519506.937499046 ns/iter 0.99
Schema_Frame_OMC_Locations 20738635.823530626 ns/iter 20741777.727270152 ns/iter 1.00
Schema_Frame_ISO_Language_Locations 101079926.14286688 ns/iter 98614129.71430841 ns/iter 1.03
Schema_Frame_KrakenD_References 40751600.058830954 ns/iter 38911598.11111164 ns/iter 1.05
Schema_Frame_KrakenD_Reachable 532220328.9999834 ns/iter 523953814.0001514 ns/iter 1.02
Schema_Iterator_ISO_Language 2509562.795699254 ns/iter 2618000.230483452 ns/iter 0.96
Schema_Frame_ISO_Language_Locations_To_JSON 210384349.3333291 ns/iter 208909033.00005448 ns/iter 1.01
Schema_Tracker_ISO_Language 4798962.827586867 ns/iter 4795659.417809101 ns/iter 1.00
Schema_Tracker_ISO_Language_To_JSON 22374066.906245105 ns/iter 22240328.218749993 ns/iter 1.01
Schema_Format_ISO_Language_To_JSON 107281170.49999733 ns/iter 104754006.85715744 ns/iter 1.02
Schema_Bundle_Meta_2020_12 1826403.9556126052 ns/iter 1818107.2467553336 ns/iter 1.00
Schema_Frame_Many_Resources_References 397359408.5000514 ns/iter 381992757.0000346 ns/iter 1.04
Pointer_Object_Traverse 25.981428746203054 ns/iter 26.118123530682436 ns/iter 0.99
Pointer_Object_Try_Traverse 24.634418545789714 ns/iter 27.34573294727084 ns/iter 0.90
Pointer_Push_Back_Pointer_To_Weak_Pointer 173.47716397446146 ns/iter 154.78041776247625 ns/iter 1.12
Pointer_Walker_Schema_ISO_Language 3306659.800970911 ns/iter 3340629.0619051927 ns/iter 0.99
Pointer_Maybe_Tracked_Deeply_Nested/0 1553592.824053696 ns/iter 1592095.3514741294 ns/iter 0.98
Pointer_Maybe_Tracked_Deeply_Nested/1 1812663.9300516844 ns/iter 1855215.421052866 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 385.2037970436975 ns/iter 428.3986918148713 ns/iter 0.90
JSON_Array_Of_Objects_Unique 386.08588896682113 ns/iter 420.00147542573274 ns/iter 0.92
JSON_Parse_1 7938.480448381595 ns/iter 8052.175394561119 ns/iter 0.99
JSON_Parse_Real 11812.737491008675 ns/iter 12368.215659582565 ns/iter 0.96
JSON_Parse_Decimal 17822.517274816353 ns/iter 18660.60373946328 ns/iter 0.96
JSON_Parse_Schema_ISO_Language 4606697.215686699 ns/iter 4705287.297297588 ns/iter 0.98
JSON_Fast_Hash_Helm_Chart_Lock 62.84565702323866 ns/iter 73.36678184159146 ns/iter 0.86
JSON_Equality_Helm_Chart_Lock 157.85055100354458 ns/iter 160.4993811758239 ns/iter 0.98
JSON_Divisible_By_Decimal 256.21108882873943 ns/iter 243.16304134273176 ns/iter 1.05
JSON_String_Equal/10 6.008399109095517 ns/iter 6.621777826764199 ns/iter 0.91
JSON_String_Equal/100 6.626202143834504 ns/iter 7.2507145239708635 ns/iter 0.91
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7525166310495727 ns/iter 0.7530363682118661 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 19.619690791349704 ns/iter 28.039964991028036 ns/iter 0.70
JSON_String_Fast_Hash/10 0.9342373144639176 ns/iter 1.5606475485304427 ns/iter 0.60
JSON_String_Fast_Hash/100 0.9338632864235905 ns/iter 1.557611064731231 ns/iter 0.60
JSON_String_Key_Hash/10 1.2473429872869093 ns/iter 1.2465851503328644 ns/iter 1.00
JSON_String_Key_Hash/100 12.444380588046494 ns/iter 12.440941641100457 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.424792914739435 ns/iter 3.1158422088324604 ns/iter 1.10
JSON_Object_Defines_Miss_Too_Small 3.1156196715342497 ns/iter 3.4241544849880463 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Large 3.1134044189928294 ns/iter 3.4242112888238068 ns/iter 0.91
Regex_Lower_S_Or_Upper_S_Asterisk 1.5566471265802264 ns/iter 1.5564553928439728 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.2465987923591184 ns/iter 1.558352616659759 ns/iter 0.80
Regex_Period_Asterisk 1.2920995328949452 ns/iter 1.5587541081008573 ns/iter 0.83
Regex_Group_Period_Asterisk_Group 1.2456537266069698 ns/iter 1.5605464624158996 ns/iter 0.80
Regex_Period_Plus 1.2459204105678714 ns/iter 1.5573313604514822 ns/iter 0.80
Regex_Period 1.2537633662517433 ns/iter 1.5586884517806474 ns/iter 0.80
Regex_Caret_Period_Plus_Dollar 1.2475094763701664 ns/iter 1.5569601791609229 ns/iter 0.80
Regex_Caret_Group_Period_Plus_Group_Dollar 1.2452395809913086 ns/iter 1.2452721600477579 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 1.24607909259723 ns/iter 1.2463708033904786 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5565844708405212 ns/iter 1.2463096896029455 ns/iter 1.25
Regex_Caret_X_Hyphen 12.754689495859074 ns/iter 12.134896420066676 ns/iter 1.05
Regex_Period_Md_Dollar 28.161670231797228 ns/iter 28.905215603615705 ns/iter 0.97
Regex_Caret_Slash_Period_Asterisk 4.671674448959024 ns/iter 4.671262034349987 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.2494705998806623 ns/iter 1.5576134847079353 ns/iter 0.80
Regex_Nested_Backtrack 48.800178534885944 ns/iter 50.287869813627175 ns/iter 0.97

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