refactor(path): cleanup join() implementations (#4946)

* refactor(path): remove dependency on `@std/assert`

* work

* work

* tweaks
This commit is contained in:
Asher Gomez 2024-06-05 10:49:50 +10:00 committed by GitHub
parent c3728a57d7
commit a2af1d0a21
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 269 additions and 297 deletions

View File

@ -4,573 +4,567 @@
<!-- Generated by graphviz version 2.44.0 (20200518.1210)
-->
<!-- Title: std_deps Pages: 1 -->
<svg width="2277pt" height="710pt"
viewBox="0.00 0.00 2276.50 710.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="2220pt" height="710pt"
viewBox="0.00 0.00 2220.00 710.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 706)">
<title>std_deps</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-706 2272.5,-706 2272.5,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-706 2216,-706 2216,4 -4,4"/>
<!-- archive -->
<g id="node1" class="node">
<title>archive</title>
<polygon fill="pink" stroke="black" points="552.2,-430.5 494.8,-430.5 494.8,-394.5 552.2,-394.5 552.2,-430.5"/>
<text text-anchor="middle" x="523.5" y="-408.3" font-family="Times,serif" font-size="14.00">archive</text>
<polygon fill="pink" stroke="black" points="1239.7,-430.5 1182.3,-430.5 1182.3,-394.5 1239.7,-394.5 1239.7,-430.5"/>
<text text-anchor="middle" x="1211" y="-408.3" font-family="Times,serif" font-size="14.00">archive</text>
</g>
<!-- io -->
<g id="node2" class="node">
<title>io</title>
<polygon fill="pink" stroke="black" points="436.5,-307.5 382.5,-307.5 382.5,-271.5 436.5,-271.5 436.5,-307.5"/>
<text text-anchor="middle" x="409.5" y="-285.3" font-family="Times,serif" font-size="14.00">io</text>
<polygon fill="pink" stroke="black" points="1274,-307.5 1220,-307.5 1220,-271.5 1274,-271.5 1274,-307.5"/>
<text text-anchor="middle" x="1247" y="-285.3" font-family="Times,serif" font-size="14.00">io</text>
</g>
<!-- archive&#45;&gt;io -->
<g id="edge1" class="edge">
<title>archive&#45;&gt;io</title>
<path fill="none" stroke="black" d="M508.75,-394.15C501.87,-386.29 493.47,-376.99 485.5,-369 468.62,-352.06 462.16,-350.16 445.5,-333 440.13,-327.47 434.61,-321.26 429.56,-315.33"/>
<polygon fill="black" stroke="black" points="432.12,-312.93 423.02,-307.51 426.75,-317.42 432.12,-312.93"/>
<path fill="none" stroke="black" d="M1216.08,-394.42C1222.02,-374.45 1231.94,-341.12 1238.94,-317.61"/>
<polygon fill="black" stroke="black" points="1242.33,-318.47 1241.83,-307.88 1235.62,-316.47 1242.33,-318.47"/>
</g>
<!-- assert -->
<g id="node3" class="node">
<title>assert</title>
<ellipse fill="none" stroke="black" cx="759.5" cy="-166.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="759.5" cy="-166.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="759.5" y="-162.3" font-family="Times,serif" font-size="14.00">assert</text>
<ellipse fill="none" stroke="black" cx="928" cy="-166.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="928" cy="-166.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="928" y="-162.3" font-family="Times,serif" font-size="14.00">assert</text>
</g>
<!-- archive&#45;&gt;assert -->
<g id="edge2" class="edge">
<title>archive&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M523.17,-394.45C523.45,-361.65 528.65,-289.21 566.5,-246 602.43,-204.98 662.97,-185.05 706.68,-175.59"/>
<polygon fill="black" stroke="black" points="707.47,-179 716.57,-173.57 706.07,-172.15 707.47,-179"/>
<path fill="none" stroke="black" d="M1211.6,-394.46C1211.8,-361.37 1207.44,-287.96 1168,-246 1119.34,-194.23 1036.11,-176.55 981.58,-170.54"/>
<polygon fill="black" stroke="black" points="981.71,-167.04 971.41,-169.52 981.01,-174 981.71,-167.04"/>
</g>
<!-- io&#45;&gt;assert -->
<g id="edge24" class="edge">
<g id="edge23" class="edge">
<title>io&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M420.22,-271.31C426.55,-262.5 435.32,-252.33 445.5,-246 527.14,-195.22 639.91,-177.25 705.73,-170.92"/>
<polygon fill="black" stroke="black" points="706.24,-174.39 715.88,-170 705.61,-167.42 706.24,-174.39"/>
<path fill="none" stroke="black" d="M1234.24,-271.46C1226.87,-262.7 1216.91,-252.53 1206,-246 1134.96,-203.48 1039.93,-183.16 981.4,-174.08"/>
<polygon fill="black" stroke="black" points="981.67,-170.58 971.26,-172.57 980.64,-177.51 981.67,-170.58"/>
</g>
<!-- bytes -->
<g id="node6" class="node">
<title>bytes</title>
<ellipse fill="none" stroke="black" cx="140.5" cy="-166.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="140.5" cy="-166.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="140.5" y="-162.3" font-family="Times,serif" font-size="14.00">bytes</text>
<ellipse fill="none" stroke="black" cx="1377" cy="-166.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1377" cy="-166.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1377" y="-162.3" font-family="Times,serif" font-size="14.00">bytes</text>
</g>
<!-- io&#45;&gt;bytes -->
<g id="edge25" class="edge">
<g id="edge24" class="edge">
<title>io&#45;&gt;bytes</title>
<path fill="none" stroke="black" d="M382.48,-276.34C337.39,-256.06 246.19,-215.04 189.53,-189.55"/>
<polygon fill="black" stroke="black" points="190.62,-186.2 180.06,-185.29 187.74,-192.59 190.62,-186.2"/>
<path fill="none" stroke="black" d="M1265.35,-271.42C1284.11,-253.96 1313.82,-226.31 1337.88,-203.92"/>
<polygon fill="black" stroke="black" points="1340.53,-206.22 1345.47,-196.85 1335.76,-201.1 1340.53,-206.22"/>
</g>
<!-- internal -->
<g id="node4" class="node">
<title>internal</title>
<ellipse fill="none" stroke="black" cx="973.5" cy="-43.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="973.5" cy="-43.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="973.5" y="-39.3" font-family="Times,serif" font-size="14.00">internal</text>
<ellipse fill="none" stroke="black" cx="547" cy="-43.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="547" cy="-43.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="547" y="-39.3" font-family="Times,serif" font-size="14.00">internal</text>
</g>
<!-- assert&#45;&gt;internal -->
<g id="edge3" class="edge">
<title>assert&#45;&gt;internal</title>
<path fill="none" stroke="black" d="M797.27,-144.15C833.37,-123.73 887.9,-92.9 926.73,-70.94"/>
<polygon fill="black" stroke="black" points="928.77,-73.81 935.75,-65.84 925.32,-67.72 928.77,-73.81"/>
<path fill="none" stroke="black" d="M886.5,-152.32C816.36,-130.05 674.58,-85.02 598.31,-60.8"/>
<polygon fill="black" stroke="black" points="599.04,-57.35 588.45,-57.66 596.92,-64.03 599.04,-57.35"/>
</g>
<!-- async -->
<g id="node5" class="node">
<title>async</title>
<ellipse fill="none" stroke="black" cx="804.5" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="804.5" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="804.5" y="-408.3" font-family="Times,serif" font-size="14.00">async</text>
<ellipse fill="none" stroke="black" cx="674" cy="-289.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="674" cy="-289.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="674" y="-285.3" font-family="Times,serif" font-size="14.00">async</text>
</g>
<!-- async&#45;&gt;assert -->
<g id="edge4" class="edge">
<title>async&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M796.76,-369.55C789.12,-328.09 777.4,-264.54 769.15,-219.81"/>
<polygon fill="black" stroke="black" points="772.54,-218.91 767.29,-209.71 765.66,-220.18 772.54,-218.91"/>
<path fill="none" stroke="black" d="M707.71,-261.62C715.45,-256.07 723.81,-250.54 732,-246 778.93,-219.95 836.3,-198.02 876.81,-184.02"/>
<polygon fill="black" stroke="black" points="878.14,-187.26 886.47,-180.72 875.88,-180.64 878.14,-187.26"/>
</g>
<!-- cli -->
<g id="node7" class="node">
<title>cli</title>
<polygon fill="pink" stroke="black" points="683.5,-307.5 629.5,-307.5 629.5,-271.5 683.5,-271.5 683.5,-307.5"/>
<text text-anchor="middle" x="656.5" y="-285.3" font-family="Times,serif" font-size="14.00">cli</text>
<polygon fill="pink" stroke="black" points="834,-430.5 780,-430.5 780,-394.5 834,-394.5 834,-430.5"/>
<text text-anchor="middle" x="807" y="-408.3" font-family="Times,serif" font-size="14.00">cli</text>
</g>
<!-- cli&#45;&gt;assert -->
<g id="edge5" class="edge">
<title>cli&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M671.04,-271.42C684.97,-255.06 706.52,-229.74 724.86,-208.19"/>
<polygon fill="black" stroke="black" points="727.63,-210.33 731.45,-200.45 722.3,-205.8 727.63,-210.33"/>
<path fill="none" stroke="black" d="M801.29,-394.45C791.82,-362.88 776.37,-294.17 803,-246 818.86,-217.31 850.08,-197.69 877.35,-185.24"/>
<polygon fill="black" stroke="black" points="879.02,-188.33 886.8,-181.14 876.23,-181.91 879.02,-188.33"/>
</g>
<!-- collections -->
<g id="node8" class="node">
<title>collections</title>
<ellipse fill="none" stroke="black" cx="1462.5" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1462.5" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1462.5" y="-408.3" font-family="Times,serif" font-size="14.00">collections</text>
<ellipse fill="none" stroke="black" cx="1406" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1406" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1406" y="-408.3" font-family="Times,serif" font-size="14.00">collections</text>
</g>
<!-- crypto -->
<g id="node9" class="node">
<title>crypto</title>
<ellipse fill="none" stroke="black" cx="79.5" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="79.5" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="79.5" y="-531.3" font-family="Times,serif" font-size="14.00">crypto</text>
</g>
<!-- encoding -->
<g id="node10" class="node">
<title>encoding</title>
<ellipse fill="none" stroke="black" cx="79.5" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="79.5" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="79.5" y="-408.3" font-family="Times,serif" font-size="14.00">encoding</text>
</g>
<!-- crypto&#45;&gt;encoding -->
<g id="edge6" class="edge">
<title>crypto&#45;&gt;encoding</title>
<path fill="none" stroke="black" d="M79.5,-491.84C79.5,-483.62 79.5,-474.91 79.5,-466.41"/>
<polygon fill="black" stroke="black" points="83,-466.18 79.5,-456.18 76,-466.18 83,-466.18"/>
<ellipse fill="none" stroke="black" cx="1496" cy="-166.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1496" cy="-166.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1496" y="-162.3" font-family="Times,serif" font-size="14.00">crypto</text>
</g>
<!-- csv -->
<g id="node11" class="node">
<g id="node10" class="node">
<title>csv</title>
<ellipse fill="none" stroke="black" cx="203.5" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="203.5" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="203.5" y="-531.3" font-family="Times,serif" font-size="14.00">csv</text>
<ellipse fill="none" stroke="black" cx="1190" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1190" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1190" y="-531.3" font-family="Times,serif" font-size="14.00">csv</text>
</g>
<!-- csv&#45;&gt;assert -->
<g id="edge7" class="edge">
<g id="edge6" class="edge">
<title>csv&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M184.33,-496.43C169.82,-462.26 154.84,-411.16 170.5,-369 195.63,-301.35 213.53,-281.25 276.5,-246 349.48,-205.15 595.92,-180.7 705.83,-171.59"/>
<polygon fill="black" stroke="black" points="706.34,-175.06 716.02,-170.75 705.77,-168.08 706.34,-175.06"/>
<path fill="none" stroke="black" d="M1180.83,-492.56C1178.27,-480.74 1175.5,-467.87 1173,-456 1153.36,-362.78 1191.45,-318.8 1130,-246 1092.77,-201.9 1027.63,-182.46 981.39,-173.97"/>
<polygon fill="black" stroke="black" points="981.7,-170.47 971.25,-172.22 980.51,-177.37 981.7,-170.47"/>
</g>
<!-- streams -->
<g id="node12" class="node">
<g id="node11" class="node">
<title>streams</title>
<ellipse fill="none" stroke="black" cx="223.5" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="223.5" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="223.5" y="-408.3" font-family="Times,serif" font-size="14.00">streams</text>
<ellipse fill="none" stroke="black" cx="1301" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1301" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1301" y="-408.3" font-family="Times,serif" font-size="14.00">streams</text>
</g>
<!-- csv&#45;&gt;streams -->
<g id="edge8" class="edge">
<g id="edge7" class="edge">
<title>csv&#45;&gt;streams</title>
<path fill="none" stroke="black" d="M210.44,-492.52C211.87,-483.89 213.38,-474.7 214.86,-465.76"/>
<polygon fill="black" stroke="black" points="218.33,-466.25 216.51,-455.82 211.42,-465.11 218.33,-466.25"/>
<path fill="none" stroke="black" d="M1219.16,-502.71C1233.18,-487.42 1250.13,-468.96 1264.95,-452.8"/>
<polygon fill="black" stroke="black" points="1267.85,-454.81 1272.03,-445.08 1262.69,-450.08 1267.85,-454.81"/>
</g>
<!-- streams&#45;&gt;io -->
<g id="edge37" class="edge">
<g id="edge35" class="edge">
<title>streams&#45;&gt;io</title>
<path fill="none" stroke="black" d="M256.19,-383.5C262.47,-378.5 269.09,-373.46 275.5,-369 307.42,-346.81 345.9,-324.71 373.42,-309.64"/>
<polygon fill="black" stroke="black" points="375.19,-312.66 382.3,-304.81 371.85,-306.51 375.19,-312.66"/>
<path fill="none" stroke="black" d="M1283.62,-372.55C1275.55,-354.47 1266.16,-333.44 1258.91,-317.19"/>
<polygon fill="black" stroke="black" points="1261.98,-315.47 1254.71,-307.77 1255.59,-318.33 1261.98,-315.47"/>
</g>
<!-- streams&#45;&gt;assert -->
<g id="edge35" class="edge">
<g id="edge33" class="edge">
<title>streams&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M246.04,-375.28C271.94,-336.9 318.06,-277.56 373.5,-246 480.43,-185.12 627.72,-171.04 705.82,-168.05"/>
<polygon fill="black" stroke="black" points="706.04,-171.54 715.91,-167.71 705.8,-164.55 706.04,-171.54"/>
<path fill="none" stroke="black" d="M1308.85,-369.4C1313.19,-332.3 1312.71,-279.14 1283,-246 1243.44,-201.86 1070.85,-180.23 981.72,-171.85"/>
<polygon fill="black" stroke="black" points="981.82,-168.34 971.54,-170.91 981.18,-175.31 981.82,-168.34"/>
</g>
<!-- streams&#45;&gt;bytes -->
<g id="edge36" class="edge">
<g id="edge34" class="edge">
<title>streams&#45;&gt;bytes</title>
<path fill="none" stroke="black" d="M209.79,-371.21C195.47,-329.09 172.96,-262.92 157.51,-217.5"/>
<polygon fill="black" stroke="black" points="160.76,-216.19 154.23,-207.85 154.13,-218.45 160.76,-216.19"/>
<path fill="none" stroke="black" d="M1333.97,-383.89C1340.22,-378.85 1346.76,-373.7 1353,-369 1375.46,-352.09 1391.95,-357.9 1405,-333 1424.16,-296.43 1413.54,-249.65 1400.23,-215.16"/>
<polygon fill="black" stroke="black" points="1403.42,-213.73 1396.42,-205.77 1396.94,-216.36 1403.42,-213.73"/>
</g>
<!-- data_\nstructures -->
<g id="node13" class="node">
<g id="node12" class="node">
<title>data_\nstructures</title>
<polygon fill="pink" stroke="black" points="1646.92,-679.1 1576.08,-679.1 1576.08,-637.9 1646.92,-637.9 1646.92,-679.1"/>
<text text-anchor="middle" x="1611.5" y="-662.7" font-family="Times,serif" font-size="14.00">data_</text>
<text text-anchor="middle" x="1611.5" y="-645.9" font-family="Times,serif" font-size="14.00">structures</text>
<polygon fill="pink" stroke="black" points="1590.42,-679.1 1519.58,-679.1 1519.58,-637.9 1590.42,-637.9 1590.42,-679.1"/>
<text text-anchor="middle" x="1555" y="-662.7" font-family="Times,serif" font-size="14.00">data_</text>
<text text-anchor="middle" x="1555" y="-645.9" font-family="Times,serif" font-size="14.00">structures</text>
</g>
<!-- datetime -->
<g id="node14" class="node">
<g id="node13" class="node">
<title>datetime</title>
<polygon fill="pink" stroke="black" points="1728.71,-676.5 1664.29,-676.5 1664.29,-640.5 1728.71,-640.5 1728.71,-676.5"/>
<text text-anchor="middle" x="1696.5" y="-654.3" font-family="Times,serif" font-size="14.00">datetime</text>
<polygon fill="pink" stroke="black" points="1672.21,-676.5 1607.79,-676.5 1607.79,-640.5 1672.21,-640.5 1672.21,-676.5"/>
<text text-anchor="middle" x="1640" y="-654.3" font-family="Times,serif" font-size="14.00">datetime</text>
</g>
<!-- dotenv -->
<g id="node15" class="node">
<g id="node14" class="node">
<title>dotenv</title>
<polygon fill="pink" stroke="black" points="1800.61,-676.5 1746.39,-676.5 1746.39,-640.5 1800.61,-640.5 1800.61,-676.5"/>
<text text-anchor="middle" x="1773.5" y="-654.3" font-family="Times,serif" font-size="14.00">dotenv</text>
<polygon fill="pink" stroke="black" points="1744.11,-676.5 1689.89,-676.5 1689.89,-640.5 1744.11,-640.5 1744.11,-676.5"/>
<text text-anchor="middle" x="1717" y="-654.3" font-family="Times,serif" font-size="14.00">dotenv</text>
</g>
<!-- encoding -->
<g id="node15" class="node">
<title>encoding</title>
<ellipse fill="none" stroke="black" cx="718" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="718" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="718" y="-408.3" font-family="Times,serif" font-size="14.00">encoding</text>
</g>
<!-- expect -->
<g id="node16" class="node">
<title>expect</title>
<polygon fill="pink" stroke="black" points="1544.5,-307.5 1490.5,-307.5 1490.5,-271.5 1544.5,-271.5 1544.5,-307.5"/>
<text text-anchor="middle" x="1517.5" y="-285.3" font-family="Times,serif" font-size="14.00">expect</text>
<polygon fill="pink" stroke="black" points="574,-307.5 520,-307.5 520,-271.5 574,-271.5 574,-307.5"/>
<text text-anchor="middle" x="547" y="-285.3" font-family="Times,serif" font-size="14.00">expect</text>
</g>
<!-- expect&#45;&gt;assert -->
<g id="edge9" class="edge">
<g id="edge8" class="edge">
<title>expect&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M1507.4,-271.17C1501.15,-262.1 1492.26,-251.71 1481.5,-246 1474.08,-242.06 978.43,-190.26 812.76,-173.03"/>
<polygon fill="black" stroke="black" points="813.11,-169.54 802.8,-171.99 812.38,-176.51 813.11,-169.54"/>
<path fill="none" stroke="black" d="M559.64,-271.25C566.97,-262.43 576.94,-252.26 588,-246 679.76,-194.05 803.93,-176.45 874.01,-170.51"/>
<polygon fill="black" stroke="black" points="874.67,-173.97 884.36,-169.69 874.11,-166.99 874.67,-173.97"/>
</g>
<!-- expect&#45;&gt;internal -->
<g id="edge10" class="edge">
<g id="edge9" class="edge">
<title>expect&#45;&gt;internal</title>
<path fill="none" stroke="black" d="M1506.11,-271.41C1499.71,-262.86 1491.08,-252.88 1481.5,-246 1333.94,-140.03 1122.93,-79.86 1025.93,-56.25"/>
<polygon fill="black" stroke="black" points="1026.61,-52.82 1016.07,-53.89 1024.97,-59.62 1026.61,-52.82"/>
<path fill="none" stroke="black" d="M547,-271.34C547,-235.78 547,-152.74 547,-97.61"/>
<polygon fill="black" stroke="black" points="550.5,-97.32 547,-87.32 543.5,-97.32 550.5,-97.32"/>
</g>
<!-- fmt -->
<g id="node17" class="node">
<title>fmt</title>
<ellipse fill="none" stroke="black" cx="909.5" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="909.5" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="909.5" y="-408.3" font-family="Times,serif" font-size="14.00">fmt</text>
<ellipse fill="none" stroke="black" cx="856" cy="-289.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="856" cy="-289.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="856" y="-285.3" font-family="Times,serif" font-size="14.00">fmt</text>
</g>
<!-- front_\nmatter -->
<g id="node18" class="node">
<title>front_\nmatter</title>
<ellipse fill="none" stroke="black" cx="1514.5" cy="-658.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1514.5" cy="-658.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1514.5" y="-662.7" font-family="Times,serif" font-size="14.00">front_</text>
<text text-anchor="middle" x="1514.5" y="-645.9" font-family="Times,serif" font-size="14.00">matter</text>
<ellipse fill="none" stroke="black" cx="1458" cy="-658.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1458" cy="-658.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1458" y="-662.7" font-family="Times,serif" font-size="14.00">front_</text>
<text text-anchor="middle" x="1458" y="-645.9" font-family="Times,serif" font-size="14.00">matter</text>
</g>
<!-- toml -->
<g id="node19" class="node">
<title>toml</title>
<ellipse fill="none" stroke="black" cx="1462.5" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1462.5" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1462.5" y="-531.3" font-family="Times,serif" font-size="14.00">toml</text>
<ellipse fill="none" stroke="black" cx="1406" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1406" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1406" y="-531.3" font-family="Times,serif" font-size="14.00">toml</text>
</g>
<!-- front_\nmatter&#45;&gt;toml -->
<g id="edge11" class="edge">
<g id="edge10" class="edge">
<title>front_\nmatter&#45;&gt;toml</title>
<path fill="none" stroke="black" d="M1497.62,-618.21C1493.12,-607.75 1488.21,-596.32 1483.52,-585.42"/>
<polygon fill="black" stroke="black" points="1486.64,-583.81 1479.48,-576 1480.21,-586.57 1486.64,-583.81"/>
<path fill="none" stroke="black" d="M1441.12,-618.21C1436.62,-607.75 1431.71,-596.32 1427.02,-585.42"/>
<polygon fill="black" stroke="black" points="1430.14,-583.81 1422.98,-576 1423.71,-586.57 1430.14,-583.81"/>
</g>
<!-- yaml -->
<g id="node20" class="node">
<title>yaml</title>
<ellipse fill="none" stroke="black" cx="1567.5" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1567.5" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1567.5" y="-531.3" font-family="Times,serif" font-size="14.00">yaml</text>
<ellipse fill="none" stroke="black" cx="1511" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1511" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1511" y="-531.3" font-family="Times,serif" font-size="14.00">yaml</text>
</g>
<!-- front_\nmatter&#45;&gt;yaml -->
<g id="edge12" class="edge">
<g id="edge11" class="edge">
<title>front_\nmatter&#45;&gt;yaml</title>
<path fill="none" stroke="black" d="M1531.71,-618.21C1536.38,-607.54 1541.5,-595.86 1546.37,-584.75"/>
<polygon fill="black" stroke="black" points="1549.57,-586.15 1550.38,-575.59 1543.16,-583.34 1549.57,-586.15"/>
<path fill="none" stroke="black" d="M1475.21,-618.21C1479.88,-607.54 1485,-595.86 1489.87,-584.75"/>
<polygon fill="black" stroke="black" points="1493.07,-586.15 1493.88,-575.59 1486.66,-583.34 1493.07,-586.15"/>
</g>
<!-- toml&#45;&gt;collections -->
<g id="edge45" class="edge">
<g id="edge44" class="edge">
<title>toml&#45;&gt;collections</title>
<path fill="none" stroke="black" d="M1462.5,-491.84C1462.5,-483.62 1462.5,-474.91 1462.5,-466.41"/>
<polygon fill="black" stroke="black" points="1466,-466.18 1462.5,-456.18 1459,-466.18 1466,-466.18"/>
<path fill="none" stroke="black" d="M1406,-491.84C1406,-483.62 1406,-474.91 1406,-466.41"/>
<polygon fill="black" stroke="black" points="1409.5,-466.18 1406,-456.18 1402.5,-466.18 1409.5,-466.18"/>
</g>
<!-- fs -->
<g id="node21" class="node">
<title>fs</title>
<ellipse fill="none" stroke="black" cx="1014.5" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1014.5" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1014.5" y="-408.3" font-family="Times,serif" font-size="14.00">fs</text>
<ellipse fill="none" stroke="black" cx="458" cy="-289.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="458" cy="-289.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="458" y="-285.3" font-family="Times,serif" font-size="14.00">fs</text>
</g>
<!-- fs&#45;&gt;assert -->
<g id="edge14" class="edge">
<g id="edge13" class="edge">
<title>fs&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M983.49,-381.82C936.9,-337.25 848.93,-253.07 798.2,-204.53"/>
<polygon fill="black" stroke="black" points="800.34,-201.73 790.7,-197.35 795.5,-206.79 800.34,-201.73"/>
<path fill="none" stroke="black" d="M489.4,-259.26C496.14,-254.19 503.5,-249.45 511,-246 632.95,-189.92 792.55,-173.91 874.43,-169.33"/>
<polygon fill="black" stroke="black" points="874.7,-172.82 884.5,-168.8 874.33,-165.83 874.7,-172.82"/>
</g>
<!-- path -->
<g id="node22" class="node">
<title>path</title>
<ellipse fill="none" stroke="black" cx="1014.5" cy="-289.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1014.5" cy="-289.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1014.5" y="-285.3" font-family="Times,serif" font-size="14.00">path</text>
<ellipse fill="none" stroke="black" cx="358" cy="-166.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="358" cy="-166.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="358" y="-162.3" font-family="Times,serif" font-size="14.00">path</text>
</g>
<!-- fs&#45;&gt;path -->
<g id="edge13" class="edge">
<g id="edge12" class="edge">
<title>fs&#45;&gt;path</title>
<path fill="none" stroke="black" d="M1014.5,-368.84C1014.5,-360.62 1014.5,-351.91 1014.5,-343.41"/>
<polygon fill="black" stroke="black" points="1018,-343.18 1014.5,-333.18 1011,-343.18 1018,-343.18"/>
</g>
<!-- path&#45;&gt;assert -->
<g id="edge34" class="edge">
<title>path&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M975.49,-269.99C930.41,-248.6 856.18,-213.38 807.57,-190.31"/>
<polygon fill="black" stroke="black" points="809.04,-187.13 798.5,-186.01 806.04,-193.46 809.04,-187.13"/>
<path fill="none" stroke="black" d="M430.67,-255.44C418.66,-240.9 404.43,-223.68 391.76,-208.34"/>
<polygon fill="black" stroke="black" points="394.36,-206 385.29,-200.52 388.96,-210.46 394.36,-206"/>
</g>
<!-- html -->
<g id="node23" class="node">
<title>html</title>
<polygon fill="pink" stroke="black" points="1872.5,-676.5 1818.5,-676.5 1818.5,-640.5 1872.5,-640.5 1872.5,-676.5"/>
<text text-anchor="middle" x="1845.5" y="-654.3" font-family="Times,serif" font-size="14.00">html</text>
<polygon fill="pink" stroke="black" points="1816,-676.5 1762,-676.5 1762,-640.5 1816,-640.5 1816,-676.5"/>
<text text-anchor="middle" x="1789" y="-654.3" font-family="Times,serif" font-size="14.00">html</text>
</g>
<!-- http -->
<g id="node24" class="node">
<title>http</title>
<polygon fill="pink" stroke="black" points="607.5,-553.5 553.5,-553.5 553.5,-517.5 607.5,-517.5 607.5,-553.5"/>
<text text-anchor="middle" x="580.5" y="-531.3" font-family="Times,serif" font-size="14.00">http</text>
<polygon fill="pink" stroke="black" points="745,-553.5 691,-553.5 691,-517.5 745,-517.5 745,-553.5"/>
<text text-anchor="middle" x="718" y="-531.3" font-family="Times,serif" font-size="14.00">http</text>
</g>
<!-- http&#45;&gt;assert -->
<g id="edge15" class="edge">
<g id="edge14" class="edge">
<title>http&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M577.93,-517.35C571.71,-469.55 560.54,-332.72 620.5,-246 641.41,-215.76 677.97,-195.79 708.34,-183.55"/>
<polygon fill="black" stroke="black" points="709.89,-186.71 717.96,-179.85 707.37,-180.18 709.89,-186.71"/>
<path fill="none" stroke="black" d="M701.98,-517.4C689.17,-502.48 672.22,-479.59 665,-456 653.69,-419.03 645.83,-402.58 665,-369 680.61,-341.66 703.05,-354.55 726,-333 760.06,-301.02 750.45,-277.45 785,-246 812.4,-221.06 849.15,-201.1 878.53,-187.56"/>
<polygon fill="black" stroke="black" points="880.11,-190.68 887.79,-183.39 877.23,-184.3 880.11,-190.68"/>
</g>
<!-- http&#45;&gt;async -->
<g id="edge17" class="edge">
<g id="edge16" class="edge">
<title>http&#45;&gt;async</title>
<path fill="none" stroke="black" d="M607.52,-519.9C644.64,-499.85 711.98,-463.48 757.47,-438.91"/>
<polygon fill="black" stroke="black" points="759.4,-441.84 766.54,-434.01 756.08,-435.68 759.4,-441.84"/>
<path fill="none" stroke="black" d="M690.61,-518.43C670.21,-504.74 643.91,-483 632,-456 616.39,-420.62 622.6,-406.51 632,-369 634.88,-357.52 639.79,-345.88 645.27,-335.21"/>
<polygon fill="black" stroke="black" points="648.51,-336.57 650.18,-326.11 642.35,-333.25 648.51,-336.57"/>
</g>
<!-- http&#45;&gt;cli -->
<g id="edge21" class="edge">
<g id="edge20" class="edge">
<title>http&#45;&gt;cli</title>
<path fill="none" stroke="black" d="M585.84,-517.34C598.9,-475.43 632.49,-367.59 648.18,-317.2"/>
<polygon fill="black" stroke="black" points="651.53,-318.23 651.16,-307.64 644.85,-316.15 651.53,-318.23"/>
</g>
<!-- http&#45;&gt;encoding -->
<g id="edge16" class="edge">
<title>http&#45;&gt;encoding</title>
<path fill="none" stroke="black" d="M553.25,-523.83C527.43,-514.13 487.38,-500.13 451.5,-492 328.7,-464.17 291.43,-491.06 170.5,-456 155.8,-451.74 140.49,-445.41 126.71,-438.92"/>
<polygon fill="black" stroke="black" points="127.97,-435.64 117.44,-434.43 124.92,-441.94 127.97,-435.64"/>
<path fill="none" stroke="black" d="M730.56,-517.42C745.58,-497 770.87,-462.62 788.21,-439.04"/>
<polygon fill="black" stroke="black" points="791.11,-441.01 794.21,-430.88 785.47,-436.87 791.11,-441.01"/>
</g>
<!-- http&#45;&gt;streams -->
<g id="edge20" class="edge">
<g id="edge19" class="edge">
<title>http&#45;&gt;streams</title>
<path fill="none" stroke="black" d="M553.1,-524.44C527.17,-515.17 487.05,-501.46 451.5,-492 374.34,-471.47 347.62,-490.26 275.5,-456 271.36,-454.03 267.26,-451.67 263.3,-449.07"/>
<polygon fill="black" stroke="black" points="265.04,-446.02 254.86,-443.09 260.99,-451.73 265.04,-446.02"/>
<path fill="none" stroke="black" d="M745.1,-532.41C840.02,-524.79 1156.62,-496.81 1249,-456 1253.37,-454.07 1257.67,-451.67 1261.82,-449"/>
<polygon fill="black" stroke="black" points="1263.9,-451.81 1270.08,-443.2 1259.88,-446.08 1263.9,-451.81"/>
</g>
<!-- http&#45;&gt;encoding -->
<g id="edge15" class="edge">
<title>http&#45;&gt;encoding</title>
<path fill="none" stroke="black" d="M718,-517.42C718,-504.01 718,-484.58 718,-466.14"/>
<polygon fill="black" stroke="black" points="721.5,-466.05 718,-456.05 714.5,-466.05 721.5,-466.05"/>
</g>
<!-- http&#45;&gt;fmt -->
<g id="edge22" class="edge">
<g id="edge21" class="edge">
<title>http&#45;&gt;fmt</title>
<path fill="none" stroke="black" d="M607.69,-530.46C658.75,-522.09 771.51,-499.87 856.5,-456 860.79,-453.78 865.07,-451.19 869.23,-448.39"/>
<polygon fill="black" stroke="black" points="871.46,-451.1 877.55,-442.43 867.38,-445.41 871.46,-451.1"/>
<path fill="none" stroke="black" d="M745.05,-525.81C774.68,-514.73 820.91,-492.5 843,-456 863.35,-422.37 865.71,-377.6 863.47,-343.1"/>
<polygon fill="black" stroke="black" points="866.93,-342.44 862.64,-332.75 859.95,-343 866.93,-342.44"/>
</g>
<!-- http&#45;&gt;path -->
<g id="edge18" class="edge">
<g id="edge17" class="edge">
<title>http&#45;&gt;path</title>
<path fill="none" stroke="black" d="M593.36,-517.46C619.47,-484.04 682.15,-409.59 751.5,-369 818.28,-329.91 906.17,-308.83 961.51,-298.63"/>
<polygon fill="black" stroke="black" points="962.23,-302.06 971.45,-296.85 960.99,-295.17 962.23,-302.06"/>
<path fill="none" stroke="black" d="M690.97,-529.59C585.21,-509.73 202.14,-431.75 139,-333 118.17,-300.42 116.74,-277.62 139,-246 176.16,-193.21 252.29,-175.74 304.25,-170.06"/>
<polygon fill="black" stroke="black" points="304.68,-173.53 314.3,-169.08 304,-166.57 304.68,-173.53"/>
</g>
<!-- media_types -->
<g id="node25" class="node">
<title>media_types</title>
<ellipse fill="none" stroke="black" cx="344.5" cy="-412.5" rx="59.69" ry="18"/>
<text text-anchor="middle" x="344.5" y="-408.3" font-family="Times,serif" font-size="14.00">media_types</text>
<ellipse fill="none" stroke="black" cx="950" cy="-412.5" rx="59.69" ry="18"/>
<text text-anchor="middle" x="950" y="-408.3" font-family="Times,serif" font-size="14.00">media_types</text>
</g>
<!-- http&#45;&gt;media_types -->
<g id="edge19" class="edge">
<g id="edge18" class="edge">
<title>http&#45;&gt;media_types</title>
<path fill="none" stroke="black" d="M553.43,-522.9C520.01,-508.33 461.69,-482.06 413.5,-456 401.39,-449.45 388.46,-441.7 377.1,-434.62"/>
<polygon fill="black" stroke="black" points="378.7,-431.5 368.38,-429.13 374.97,-437.42 378.7,-431.5"/>
<path fill="none" stroke="black" d="M745.09,-521.65C776.76,-506.49 830.63,-480.27 876,-456 889.03,-449.03 903.15,-441.03 915.52,-433.87"/>
<polygon fill="black" stroke="black" points="917.3,-436.89 924.19,-428.83 913.78,-430.84 917.3,-436.89"/>
</g>
<!-- net -->
<g id="node26" class="node">
<title>net</title>
<polygon fill="pink" stroke="black" points="476.5,-430.5 422.5,-430.5 422.5,-394.5 476.5,-394.5 476.5,-430.5"/>
<text text-anchor="middle" x="449.5" y="-408.3" font-family="Times,serif" font-size="14.00">net</text>
<polygon fill="pink" stroke="black" points="54,-430.5 0,-430.5 0,-394.5 54,-394.5 54,-430.5"/>
<text text-anchor="middle" x="27" y="-408.3" font-family="Times,serif" font-size="14.00">net</text>
</g>
<!-- http&#45;&gt;net -->
<g id="edge23" class="edge">
<g id="edge22" class="edge">
<title>http&#45;&gt;net</title>
<path fill="none" stroke="black" d="M557.66,-517.48C537.79,-502.24 508.64,-478.85 485.5,-456 480.01,-450.58 474.45,-444.41 469.39,-438.49"/>
<polygon fill="black" stroke="black" points="471.96,-436.1 462.86,-430.66 466.58,-440.58 471.96,-436.1"/>
<path fill="none" stroke="black" d="M690.81,-533.62C582.25,-529.76 180.32,-511.9 68,-456 59.69,-451.86 52.13,-445.33 45.82,-438.62"/>
<polygon fill="black" stroke="black" points="48.23,-436.06 39.03,-430.8 42.94,-440.64 48.23,-436.06"/>
</g>
<!-- ini -->
<g id="node27" class="node">
<title>ini</title>
<polygon fill="pink" stroke="black" points="1944.5,-676.5 1890.5,-676.5 1890.5,-640.5 1944.5,-640.5 1944.5,-676.5"/>
<text text-anchor="middle" x="1917.5" y="-654.3" font-family="Times,serif" font-size="14.00">ini</text>
<polygon fill="pink" stroke="black" points="1888,-676.5 1834,-676.5 1834,-640.5 1888,-640.5 1888,-676.5"/>
<text text-anchor="middle" x="1861" y="-654.3" font-family="Times,serif" font-size="14.00">ini</text>
</g>
<!-- json -->
<g id="node28" class="node">
<title>json</title>
<ellipse fill="none" stroke="black" cx="399.5" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="399.5" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="399.5" y="-531.3" font-family="Times,serif" font-size="14.00">json</text>
<ellipse fill="none" stroke="black" cx="1297" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1297" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1297" y="-531.3" font-family="Times,serif" font-size="14.00">json</text>
</g>
<!-- json&#45;&gt;streams -->
<g id="edge26" class="edge">
<g id="edge25" class="edge">
<title>json&#45;&gt;streams</title>
<path fill="none" stroke="black" d="M362.38,-512.62C337.33,-497.46 303.81,-476.42 275.5,-456 271.84,-453.36 268.09,-450.54 264.37,-447.67"/>
<polygon fill="black" stroke="black" points="266.34,-444.76 256.32,-441.32 262.01,-450.26 266.34,-444.76"/>
<path fill="none" stroke="black" d="M1298.41,-491.84C1298.68,-483.62 1298.97,-474.91 1299.25,-466.41"/>
<polygon fill="black" stroke="black" points="1302.76,-466.29 1299.59,-456.18 1295.76,-466.06 1302.76,-466.29"/>
</g>
<!-- jsonc -->
<g id="node29" class="node">
<title>jsonc</title>
<ellipse fill="none" stroke="black" cx="878.5" cy="-658.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="878.5" cy="-658.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="878.5" y="-654.3" font-family="Times,serif" font-size="14.00">jsonc</text>
<ellipse fill="none" stroke="black" cx="1205" cy="-658.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1205" cy="-658.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1205" y="-654.3" font-family="Times,serif" font-size="14.00">jsonc</text>
</g>
<!-- jsonc&#45;&gt;assert -->
<g id="edge27" class="edge">
<g id="edge26" class="edge">
<title>jsonc&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M921.79,-650.66C979.8,-640.42 1085.01,-618 1167.5,-579 1252.79,-538.68 1297.24,-539.84 1340.5,-456 1358.23,-421.64 1352.11,-405.88 1340.5,-369 1320.46,-305.38 1311.05,-281.37 1254.5,-246 1181.53,-200.36 925.75,-178.38 813.27,-170.75"/>
<polygon fill="black" stroke="black" points="813.37,-167.25 803.16,-170.08 812.91,-174.23 813.37,-167.25"/>
<path fill="none" stroke="black" d="M1172.77,-628.82C1159.46,-615.11 1145.25,-597.63 1137,-579 1106.83,-510.85 1140.77,-306.32 1097,-246 1069.62,-208.26 1019.5,-188.14 980.93,-177.75"/>
<polygon fill="black" stroke="black" points="981.45,-174.27 970.89,-175.2 979.72,-181.06 981.45,-174.27"/>
</g>
<!-- jsonc&#45;&gt;json -->
<g id="edge28" class="edge">
<g id="edge27" class="edge">
<title>jsonc&#45;&gt;json</title>
<path fill="none" stroke="black" d="M836.14,-648.32C772.55,-634.36 648.75,-606.51 544.5,-579 513.21,-570.74 478.41,-560.58 450.75,-552.26"/>
<polygon fill="black" stroke="black" points="451.48,-548.82 440.9,-549.28 449.46,-555.52 451.48,-548.82"/>
<path fill="none" stroke="black" d="M1230.87,-623.47C1241.36,-609.68 1253.58,-593.61 1264.64,-579.05"/>
<polygon fill="black" stroke="black" points="1267.74,-580.77 1271,-570.69 1262.16,-576.53 1267.74,-580.77"/>
</g>
<!-- log -->
<g id="node30" class="node">
<title>log</title>
<polygon fill="pink" stroke="black" points="847.5,-553.5 793.5,-553.5 793.5,-517.5 847.5,-517.5 847.5,-553.5"/>
<text text-anchor="middle" x="820.5" y="-531.3" font-family="Times,serif" font-size="14.00">log</text>
<polygon fill="pink" stroke="black" points="1082,-430.5 1028,-430.5 1028,-394.5 1082,-394.5 1082,-430.5"/>
<text text-anchor="middle" x="1055" y="-408.3" font-family="Times,serif" font-size="14.00">log</text>
</g>
<!-- log&#45;&gt;io -->
<g id="edge30" class="edge">
<g id="edge29" class="edge">
<title>log&#45;&gt;io</title>
<path fill="none" stroke="black" d="M798.47,-517.5C755.2,-484.79 655.15,-412.49 561.5,-369 512.54,-346.26 490.52,-362.78 445.5,-333 438.58,-328.42 432.26,-322.14 426.91,-315.81"/>
<polygon fill="black" stroke="black" points="429.61,-313.59 420.68,-307.89 424.11,-317.92 429.61,-313.59"/>
<path fill="none" stroke="black" d="M1082.1,-394.42C1115.88,-373.13 1173.72,-336.68 1211.14,-313.1"/>
<polygon fill="black" stroke="black" points="1213.13,-315.98 1219.73,-307.69 1209.4,-310.06 1213.13,-315.98"/>
</g>
<!-- log&#45;&gt;assert -->
<g id="edge32" class="edge">
<g id="edge31" class="edge">
<title>log&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M798.74,-517.5C782.26,-503.14 760.91,-480.96 751.5,-456 721.84,-377.33 734.5,-277.85 746.74,-218.63"/>
<polygon fill="black" stroke="black" points="750.18,-219.28 748.85,-208.77 743.34,-217.81 750.18,-219.28"/>
<path fill="none" stroke="black" d="M1043.04,-394.33C1036.61,-385.95 1028.13,-376.17 1019,-369 990.86,-346.9 967.52,-362.31 947,-333 924.13,-300.33 920.39,-254.84 921.8,-219.82"/>
<polygon fill="black" stroke="black" points="925.29,-219.95 922.35,-209.77 918.31,-219.57 925.29,-219.95"/>
</g>
<!-- log&#45;&gt;fmt -->
<g id="edge29" class="edge">
<g id="edge28" class="edge">
<title>log&#45;&gt;fmt</title>
<path fill="none" stroke="black" d="M833.06,-517.42C844.74,-501.55 862.61,-477.25 878.14,-456.14"/>
<polygon fill="black" stroke="black" points="881.07,-458.05 884.18,-447.92 875.44,-453.91 881.07,-458.05"/>
<path fill="none" stroke="black" d="M1043.74,-394.23C1037.37,-385.62 1028.74,-375.65 1019,-369 978.26,-341.18 957.73,-355.84 914,-333 908.68,-330.22 903.32,-326.99 898.11,-323.57"/>
<polygon fill="black" stroke="black" points="899.76,-320.46 889.54,-317.69 895.81,-326.24 899.76,-320.46"/>
</g>
<!-- log&#45;&gt;fs -->
<g id="edge31" class="edge">
<g id="edge30" class="edge">
<title>log&#45;&gt;fs</title>
<path fill="none" stroke="black" d="M847.53,-521.17C876.51,-506.49 923.49,-481.56 961.5,-456 965.45,-453.34 969.48,-450.47 973.45,-447.51"/>
<polygon fill="black" stroke="black" points="975.68,-450.21 981.5,-441.36 971.43,-444.65 975.68,-450.21"/>
<path fill="none" stroke="black" d="M1045.28,-394.45C1039.04,-385.22 1030.04,-374.6 1019,-369 918.07,-317.81 616.38,-374.27 511,-333 506.25,-331.14 501.59,-328.69 497.13,-325.91"/>
<polygon fill="black" stroke="black" points="499.04,-322.98 488.82,-320.22 495.09,-328.76 499.04,-322.98"/>
</g>
<!-- media_\ntypes -->
<g id="node31" class="node">
<title>media_\ntypes</title>
<ellipse fill="none" stroke="black" cx="2006.5" cy="-658.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="2006.5" cy="-658.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="2006.5" y="-662.7" font-family="Times,serif" font-size="14.00">media_</text>
<text text-anchor="middle" x="2006.5" y="-645.9" font-family="Times,serif" font-size="14.00">types</text>
<ellipse fill="none" stroke="black" cx="1950" cy="-658.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1950" cy="-658.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1950" y="-662.7" font-family="Times,serif" font-size="14.00">media_</text>
<text text-anchor="middle" x="1950" y="-645.9" font-family="Times,serif" font-size="14.00">types</text>
</g>
<!-- msgpack -->
<g id="node32" class="node">
<title>msgpack</title>
<polygon fill="pink" stroke="black" points="123.26,-307.5 57.74,-307.5 57.74,-271.5 123.26,-271.5 123.26,-307.5"/>
<text text-anchor="middle" x="90.5" y="-285.3" font-family="Times,serif" font-size="14.00">msgpack</text>
<polygon fill="pink" stroke="black" points="1395.76,-307.5 1330.24,-307.5 1330.24,-271.5 1395.76,-271.5 1395.76,-307.5"/>
<text text-anchor="middle" x="1363" y="-285.3" font-family="Times,serif" font-size="14.00">msgpack</text>
</g>
<!-- msgpack&#45;&gt;bytes -->
<g id="edge33" class="edge">
<g id="edge32" class="edge">
<title>msgpack&#45;&gt;bytes</title>
<path fill="none" stroke="black" d="M97.56,-271.42C103.48,-257.09 112.24,-235.89 120.31,-216.36"/>
<polygon fill="black" stroke="black" points="123.61,-217.53 124.2,-206.95 117.14,-214.86 123.61,-217.53"/>
<path fill="none" stroke="black" d="M1364.98,-271.42C1366.53,-257.95 1368.79,-238.42 1370.94,-219.92"/>
<polygon fill="black" stroke="black" points="1374.43,-220.12 1372.11,-209.79 1367.48,-219.32 1374.43,-220.12"/>
</g>
<!-- regexp -->
<g id="node33" class="node">
<title>regexp</title>
<polygon fill="pink" stroke="black" points="2122.59,-676.5 2068.41,-676.5 2068.41,-640.5 2122.59,-640.5 2122.59,-676.5"/>
<text text-anchor="middle" x="2095.5" y="-654.3" font-family="Times,serif" font-size="14.00">regexp</text>
<polygon fill="pink" stroke="black" points="2066.09,-676.5 2011.91,-676.5 2011.91,-640.5 2066.09,-640.5 2066.09,-676.5"/>
<text text-anchor="middle" x="2039" y="-654.3" font-family="Times,serif" font-size="14.00">regexp</text>
</g>
<!-- semver -->
<g id="node34" class="node">
<title>semver</title>
<polygon fill="pink" stroke="black" points="2196.93,-676.5 2140.07,-676.5 2140.07,-640.5 2196.93,-640.5 2196.93,-676.5"/>
<text text-anchor="middle" x="2168.5" y="-654.3" font-family="Times,serif" font-size="14.00">semver</text>
<polygon fill="pink" stroke="black" points="2140.43,-676.5 2083.57,-676.5 2083.57,-640.5 2140.43,-640.5 2140.43,-676.5"/>
<text text-anchor="middle" x="2112" y="-654.3" font-family="Times,serif" font-size="14.00">semver</text>
</g>
<!-- testing -->
<g id="node35" class="node">
<title>testing</title>
<ellipse fill="none" stroke="black" cx="1115.5" cy="-535.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1115.5" cy="-535.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1115.5" y="-531.3" font-family="Times,serif" font-size="14.00">testing</text>
<ellipse fill="none" stroke="black" cx="458" cy="-412.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="458" cy="-412.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="458" y="-408.3" font-family="Times,serif" font-size="14.00">testing</text>
</g>
<!-- testing&#45;&gt;assert -->
<g id="edge38" class="edge">
<g id="edge36" class="edge">
<title>testing&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M1159.11,-531.51C1207.31,-525.6 1282.82,-508.05 1318.5,-456 1340.36,-424.11 1338.99,-401.79 1318.5,-369 1209.48,-194.47 930.95,-169.59 813.27,-167.11"/>
<polygon fill="black" stroke="black" points="813.12,-163.6 803.06,-166.94 813.01,-170.6 813.12,-163.6"/>
<path fill="none" stroke="black" d="M497.61,-394.36C524.65,-380.96 559.67,-360.09 583,-333 610.53,-301.03 588.86,-273.33 621,-246 693.21,-184.6 807.27,-170.29 874.14,-167.5"/>
<polygon fill="black" stroke="black" points="874.59,-170.98 884.46,-167.14 874.35,-163.99 874.59,-170.98"/>
</g>
<!-- testing&#45;&gt;internal -->
<g id="edge40" class="edge">
<title>testing&#45;&gt;internal</title>
<path fill="none" stroke="black" d="M414.8,-407.35C335.75,-398.76 172.82,-376.15 139,-333 115.15,-302.57 121.61,-280.53 139,-246 206.71,-111.55 399.68,-65.61 493.92,-50.91"/>
<polygon fill="black" stroke="black" points="494.45,-54.37 503.82,-49.43 493.41,-47.45 494.45,-54.37"/>
</g>
<!-- testing&#45;&gt;async -->
<g id="edge43" class="edge">
<g id="edge42" class="edge">
<title>testing&#45;&gt;async</title>
<path fill="none" stroke="black" d="M1072.72,-526.88C1019.68,-516.25 927.61,-493.9 856.5,-456 852.46,-453.84 848.43,-451.35 844.5,-448.67"/>
<polygon fill="black" stroke="black" points="846.27,-445.62 836.12,-442.56 842.15,-451.28 846.27,-445.62"/>
<path fill="none" stroke="black" d="M497.63,-394.11C530.2,-379.28 577.15,-356.65 616,-333 621.12,-329.88 626.37,-326.44 631.5,-322.9"/>
<polygon fill="black" stroke="black" points="633.86,-325.52 640.01,-316.89 629.82,-319.8 633.86,-325.52"/>
</g>
<!-- testing&#45;&gt;fmt -->
<g id="edge41" class="edge">
<g id="edge39" class="edge">
<title>testing&#45;&gt;fmt</title>
<path fill="none" stroke="black" d="M1075.93,-517.19C1044.04,-502.57 998.57,-480.19 961.5,-456 957.72,-453.53 953.89,-450.84 950.12,-448.04"/>
<polygon fill="black" stroke="black" points="952.05,-445.11 941.98,-441.81 947.79,-450.67 952.05,-445.11"/>
<path fill="none" stroke="black" d="M499.9,-399.66C552.75,-384.63 646.35,-357.68 726,-333 752.21,-324.88 781.26,-315.43 805.23,-307.5"/>
<polygon fill="black" stroke="black" points="806.44,-310.79 814.83,-304.32 804.23,-304.14 806.44,-310.79"/>
</g>
<!-- testing&#45;&gt;fs -->
<g id="edge40" class="edge">
<g id="edge38" class="edge">
<title>testing&#45;&gt;fs</title>
<path fill="none" stroke="black" d="M1087.9,-501.44C1075.77,-486.9 1061.39,-469.68 1048.59,-454.34"/>
<polygon fill="black" stroke="black" points="1051.16,-451.96 1042.07,-446.52 1045.79,-456.44 1051.16,-451.96"/>
<path fill="none" stroke="black" d="M458,-368.84C458,-360.62 458,-351.91 458,-343.41"/>
<polygon fill="black" stroke="black" points="461.5,-343.18 458,-333.18 454.5,-343.18 461.5,-343.18"/>
</g>
<!-- testing&#45;&gt;path -->
<g id="edge39" class="edge">
<g id="edge37" class="edge">
<title>testing&#45;&gt;path</title>
<path fill="none" stroke="black" d="M1158.64,-529.14C1201.59,-521.25 1265.34,-502.06 1295.5,-456 1316.68,-423.65 1318.88,-399.8 1295.5,-369 1268.05,-332.82 1141.18,-308.81 1067.65,-297.67"/>
<polygon fill="black" stroke="black" points="1068.04,-294.19 1057.64,-296.19 1067.02,-301.12 1068.04,-294.19"/>
<path fill="none" stroke="black" d="M431.76,-377.74C422.31,-364.37 412.21,-348.51 405,-333 388.05,-296.55 375.93,-252.69 368.25,-219.28"/>
<polygon fill="black" stroke="black" points="371.61,-218.26 366.01,-209.26 364.78,-219.79 371.61,-218.26"/>
</g>
<!-- data_structures -->
<g id="node36" class="node">
<title>data_structures</title>
<ellipse fill="none" stroke="black" cx="1217.5" cy="-412.5" rx="69.48" ry="18"/>
<text text-anchor="middle" x="1217.5" y="-408.3" font-family="Times,serif" font-size="14.00">data_structures</text>
<ellipse fill="none" stroke="black" cx="217" cy="-289.5" rx="69.48" ry="18"/>
<text text-anchor="middle" x="217" y="-285.3" font-family="Times,serif" font-size="14.00">data_structures</text>
</g>
<!-- testing&#45;&gt;data_structures -->
<g id="edge42" class="edge">
<g id="edge41" class="edge">
<title>testing&#45;&gt;data_structures</title>
<path fill="none" stroke="black" d="M1143.1,-501.76C1159.99,-481.73 1181.24,-456.52 1196.7,-438.17"/>
<polygon fill="black" stroke="black" points="1199.59,-440.17 1203.36,-430.27 1194.24,-435.66 1199.59,-440.17"/>
<path fill="none" stroke="black" d="M418.87,-393.33C385.68,-377.75 336.92,-354.5 295,-333 281.53,-326.09 266.92,-318.23 254.02,-311.17"/>
<polygon fill="black" stroke="black" points="255.43,-307.94 244.98,-306.19 252.05,-314.08 255.43,-307.94"/>
</g>
<!-- text -->
<g id="node37" class="node">
<title>text</title>
<polygon fill="pink" stroke="black" points="1472.5,-307.5 1418.5,-307.5 1418.5,-271.5 1472.5,-271.5 1472.5,-307.5"/>
<text text-anchor="middle" x="1445.5" y="-285.3" font-family="Times,serif" font-size="14.00">text</text>
<polygon fill="pink" stroke="black" points="1010,-307.5 956,-307.5 956,-271.5 1010,-271.5 1010,-307.5"/>
<text text-anchor="middle" x="983" y="-285.3" font-family="Times,serif" font-size="14.00">text</text>
</g>
<!-- text&#45;&gt;assert -->
<g id="edge44" class="edge">
<g id="edge43" class="edge">
<title>text&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M1433.46,-271.21C1426.18,-262.15 1416.06,-251.76 1404.5,-246 1378.06,-232.83 963.04,-188.65 813.05,-173.03"/>
<polygon fill="black" stroke="black" points="813.03,-169.51 802.72,-171.96 812.31,-176.47 813.03,-169.51"/>
<path fill="none" stroke="black" d="M975.24,-271.42C968.64,-256.91 958.85,-235.36 949.88,-215.64"/>
<polygon fill="black" stroke="black" points="953.03,-214.1 945.7,-206.44 946.65,-216.99 953.03,-214.1"/>
</g>
<!-- ulid -->
<g id="node38" class="node">
<title>ulid</title>
<polygon fill="pink" stroke="black" points="2268.5,-676.5 2214.5,-676.5 2214.5,-640.5 2268.5,-640.5 2268.5,-676.5"/>
<text text-anchor="middle" x="2241.5" y="-654.3" font-family="Times,serif" font-size="14.00">ulid</text>
<polygon fill="pink" stroke="black" points="2212,-676.5 2158,-676.5 2158,-640.5 2212,-640.5 2212,-676.5"/>
<text text-anchor="middle" x="2185" y="-654.3" font-family="Times,serif" font-size="14.00">ulid</text>
</g>
<!-- url -->
<g id="node39" class="node">
<title>url</title>
<polygon fill="pink" stroke="black" points="1130.5,-430.5 1076.5,-430.5 1076.5,-394.5 1130.5,-394.5 1130.5,-430.5"/>
<text text-anchor="middle" x="1103.5" y="-408.3" font-family="Times,serif" font-size="14.00">url</text>
<polygon fill="pink" stroke="black" points="358,-307.5 304,-307.5 304,-271.5 358,-271.5 358,-307.5"/>
<text text-anchor="middle" x="331" y="-285.3" font-family="Times,serif" font-size="14.00">url</text>
</g>
<!-- url&#45;&gt;path -->
<g id="edge46" class="edge">
<g id="edge45" class="edge">
<title>url&#45;&gt;path</title>
<path fill="none" stroke="black" d="M1090.94,-394.42C1079.26,-378.55 1061.39,-354.25 1045.86,-333.14"/>
<polygon fill="black" stroke="black" points="1048.56,-330.91 1039.82,-324.92 1042.93,-335.05 1048.56,-330.91"/>
<path fill="none" stroke="black" d="M334.81,-271.42C337.87,-257.73 342.32,-237.76 346.51,-218.98"/>
<polygon fill="black" stroke="black" points="349.98,-219.53 348.74,-209.01 343.14,-218.01 349.98,-219.53"/>
</g>
<!-- uuid -->
<g id="node40" class="node">
<title>uuid</title>
<ellipse fill="none" stroke="black" cx="43.5" cy="-658.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="43.5" cy="-658.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="43.5" y="-654.3" font-family="Times,serif" font-size="14.00">uuid</text>
<ellipse fill="none" stroke="black" cx="1496" cy="-289.5" rx="39.5" ry="39.5"/>
<ellipse fill="none" stroke="black" cx="1496" cy="-289.5" rx="43.5" ry="43.5"/>
<text text-anchor="middle" x="1496" y="-285.3" font-family="Times,serif" font-size="14.00">uuid</text>
</g>
<!-- uuid&#45;&gt;bytes -->
<g id="edge47" class="edge">
<g id="edge46" class="edge">
<title>uuid&#45;&gt;bytes</title>
<path fill="none" stroke="black" d="M31.72,-616.43C11.81,-538.31 -20.01,-365.46 48.5,-246 59.81,-226.28 78.01,-209.2 95.25,-196.05"/>
<polygon fill="black" stroke="black" points="97.61,-198.66 103.6,-189.92 93.47,-193.01 97.61,-198.66"/>
<path fill="none" stroke="black" d="M1465.97,-257.97C1450.33,-242.06 1431.05,-222.46 1414.44,-205.57"/>
<polygon fill="black" stroke="black" points="1416.53,-202.7 1407.02,-198.02 1411.54,-207.61 1416.53,-202.7"/>
</g>
<!-- uuid&#45;&gt;crypto -->
<g id="edge48" class="edge">
<g id="edge47" class="edge">
<title>uuid&#45;&gt;crypto</title>
<path fill="none" stroke="black" d="M55.69,-616.53C58.5,-607.07 61.53,-596.9 64.45,-587.08"/>
<polygon fill="black" stroke="black" points="67.83,-588.01 67.32,-577.42 61.12,-586.01 67.83,-588.01"/>
<path fill="none" stroke="black" d="M1496,-245.84C1496,-237.62 1496,-228.91 1496,-220.41"/>
<polygon fill="black" stroke="black" points="1499.5,-220.18 1496,-210.18 1492.5,-220.18 1499.5,-220.18"/>
</g>
<!-- webgpu -->
<g id="node41" class="node">
<title>webgpu</title>
<polygon fill="pink" stroke="black" points="514.82,-307.5 454.18,-307.5 454.18,-271.5 514.82,-271.5 514.82,-307.5"/>
<text text-anchor="middle" x="484.5" y="-285.3" font-family="Times,serif" font-size="14.00">webgpu</text>
<polygon fill="pink" stroke="black" points="1088.32,-307.5 1027.68,-307.5 1027.68,-271.5 1088.32,-271.5 1088.32,-307.5"/>
<text text-anchor="middle" x="1058" y="-285.3" font-family="Times,serif" font-size="14.00">webgpu</text>
</g>
<!-- webgpu&#45;&gt;assert -->
<g id="edge49" class="edge">
<g id="edge48" class="edge">
<title>webgpu&#45;&gt;assert</title>
<path fill="none" stroke="black" d="M498.95,-271.3C506.93,-262.72 517.44,-252.75 528.5,-246 584.87,-211.61 658.26,-189.99 707.03,-178.34"/>
<polygon fill="black" stroke="black" points="708.1,-181.69 717.05,-176.01 706.52,-174.87 708.1,-181.69"/>
<path fill="none" stroke="black" d="M1042.88,-271.11C1035.83,-263.24 1027.2,-253.95 1019,-246 1003.17,-230.65 984.9,-214.59 968.9,-201.03"/>
<polygon fill="black" stroke="black" points="971.15,-198.35 961.25,-194.58 966.64,-203.7 971.15,-198.35"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -21,16 +21,7 @@ import { normalize } from "./normalize.ts";
*/
export function join(...paths: string[]): string {
if (paths.length === 0) return ".";
let joined: string | undefined;
for (let i = 0; i < paths.length; ++i) {
const path = paths[i]!;
assertPath(path);
if (path.length > 0) {
if (!joined) joined = path;
else joined += `/${path}`;
}
}
if (!joined) return ".";
return normalize(joined);
paths.forEach((path) => assertPath(path));
const joined = paths.filter((path) => path.length > 0).join("/");
return joined === "" ? "." : normalize(joined);
}

View File

@ -1,8 +1,6 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
// This module is browser compatible.
import { assert } from "@std/assert/assert";
import { assertPath } from "../_common/assert_path.ts";
import { isPathSeparator } from "./_util.ts";
import { normalize } from "./normalize.ts";
@ -22,21 +20,9 @@ import { normalize } from "./normalize.ts";
* @returns The joined path.
*/
export function join(...paths: string[]): string {
paths = paths.filter((path) => path.length > 0);
if (paths.length === 0) return ".";
let joined: string | undefined;
let firstPart: string | null = null;
for (let i = 0; i < paths.length; ++i) {
const path = paths[i]!;
assertPath(path);
if (path.length > 0) {
if (joined === undefined) joined = firstPart = path;
else joined += `\\${path}`;
}
}
if (joined === undefined) return ".";
// Make sure that the joined path doesn't start with two slashes, because
// normalize() will mistake it for an UNC path then.
//
@ -49,10 +35,10 @@ export function join(...paths: string[]): string {
// have at least 2 components, so we don't filter for that here.
// This means that the user can use join to construct UNC paths from
// a server name and a share name; for example:
// path.join('//server', 'share') -> '\\\\server\\share\\')
// path.join('//server', 'share') -> '\\\\server\\share\\'
let needsReplace = true;
let slashCount = 0;
assert(firstPart !== null);
const firstPart = paths[0]!;
if (isPathSeparator(firstPart.charCodeAt(0))) {
++slashCount;
const firstLen = firstPart.length;
@ -69,6 +55,7 @@ export function join(...paths: string[]): string {
}
}
}
let joined = paths.join("\\");
if (needsReplace) {
// Find any more consecutive slashes we need to replace
for (; slashCount < joined.length; ++slashCount) {