swactor/crates/runtime-dashboard/docs/architecture.svg
Zachery Aaron Shores-Chmielewski 32d1fea2fa feat: runtime dashboard and docs
Live and replay demo for a runtime dashboard. Added docs with svg files.
2026-02-09 15:59:14 +07:00

692 lines
62 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 14.1.1 (20251213.1925)
-->
<!-- Title: architecture Pages: 1 -->
<svg width="2903pt" height="1196pt"
viewBox="0.00 0.00 2903.00 1196.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 1191.85)">
<title>architecture</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-1191.85 2899,-1191.85 2899,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_legend</title>
<path fill="none" stroke="#888888" d="M20,-1048.15C20,-1048.15 234,-1048.15 234,-1048.15 240,-1048.15 246,-1054.15 246,-1060.15 246,-1060.15 246,-1165.35 246,-1165.35 246,-1171.35 240,-1177.35 234,-1177.35 234,-1177.35 20,-1177.35 20,-1177.35 14,-1177.35 8,-1171.35 8,-1165.35 8,-1165.35 8,-1060.15 8,-1060.15 8,-1054.15 14,-1048.15 20,-1048.15"/>
<text xml:space="preserve" text-anchor="middle" x="34.35" y="-1163.45" font-family="Helvetica,sans-Serif" font-size="11.00">Legend</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_runtime</title>
<path fill="#d6eaf8" stroke="#1a5276" d="M748,-560.25C748,-560.25 1014,-560.25 1014,-560.25 1020,-560.25 1026,-566.25 1026,-572.25 1026,-572.25 1026,-1156.85 1026,-1156.85 1026,-1162.85 1020,-1168.85 1014,-1168.85 1014,-1168.85 748,-1168.85 748,-1168.85 742,-1168.85 736,-1162.85 736,-1156.85 736,-1156.85 736,-572.25 736,-572.25 736,-566.25 742,-560.25 748,-560.25"/>
<text xml:space="preserve" text-anchor="middle" x="768.45" y="-1154.95" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#1a5276">runtime.rs</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_actor</title>
<path fill="#d5f5e3" stroke="#1e8449" d="M268,-8C268,-8 716,-8 716,-8 722,-8 728,-14 728,-20 728,-20 728,-1149.61 728,-1149.61 728,-1155.61 722,-1161.61 716,-1161.61 716,-1161.61 268,-1161.61 268,-1161.61 262,-1161.61 256,-1155.61 256,-1149.61 256,-1149.61 256,-20 256,-20 256,-14 262,-8 268,-8"/>
<text xml:space="preserve" text-anchor="middle" x="282.34" y="-1147.71" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#1e8449">actor.rs</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_delivery</title>
<path fill="#e8daef" stroke="#6c3483" d="M1046,-357.88C1046,-357.88 1947,-357.88 1947,-357.88 1953,-357.88 1959,-363.88 1959,-369.88 1959,-369.88 1959,-969.05 1959,-969.05 1959,-975.05 1953,-981.05 1947,-981.05 1947,-981.05 1046,-981.05 1046,-981.05 1040,-981.05 1034,-975.05 1034,-969.05 1034,-969.05 1034,-369.88 1034,-369.88 1034,-363.88 1040,-357.88 1046,-357.88"/>
<text xml:space="preserve" text-anchor="middle" x="1067.06" y="-967.15" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#6c3483">delivery.rs</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_worker</title>
<path fill="#fadbd8" stroke="#922b21" d="M1983,-184.85C1983,-184.85 2223,-184.85 2223,-184.85 2229,-184.85 2235,-190.85 2235,-196.85 2235,-196.85 2235,-1167.85 2235,-1167.85 2235,-1173.85 2229,-1179.85 2223,-1179.85 2223,-1179.85 1983,-1179.85 1983,-1179.85 1977,-1179.85 1971,-1173.85 1971,-1167.85 1971,-1167.85 1971,-196.85 1971,-196.85 1971,-190.85 1977,-184.85 1983,-184.85"/>
<text xml:space="preserve" text-anchor="middle" x="2001.61" y="-1165.95" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#922b21">worker.rs</text>
</g>
<g id="clust6" class="cluster">
<title>cluster_channel</title>
<path fill="#d1f2eb" stroke="#117864" d="M2255,-184.85C2255,-184.85 2489,-184.85 2489,-184.85 2495,-184.85 2501,-190.85 2501,-196.85 2501,-196.85 2501,-649.45 2501,-649.45 2501,-655.45 2495,-661.45 2489,-661.45 2489,-661.45 2255,-661.45 2255,-661.45 2249,-661.45 2243,-655.45 2243,-649.45 2243,-649.45 2243,-196.85 2243,-196.85 2243,-190.85 2249,-184.85 2255,-184.85"/>
<text xml:space="preserve" text-anchor="middle" x="2276.38" y="-647.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#117864">channel.rs</text>
</g>
<g id="clust7" class="cluster">
<title>cluster_stats</title>
<path fill="#d1c4e9" stroke="#283593" d="M2699,-339.65C2699,-339.65 2875,-339.65 2875,-339.65 2881,-339.65 2887,-345.65 2887,-351.65 2887,-351.65 2887,-1167.85 2887,-1167.85 2887,-1173.85 2881,-1179.85 2875,-1179.85 2875,-1179.85 2699,-1179.85 2699,-1179.85 2693,-1179.85 2687,-1173.85 2687,-1167.85 2687,-1167.85 2687,-351.65 2687,-351.65 2687,-345.65 2693,-339.65 2699,-339.65"/>
<text xml:space="preserve" text-anchor="middle" x="2712.72" y="-1165.95" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#283593">stats.rs</text>
</g>
<g id="clust8" class="cluster">
<title>cluster_config</title>
<path fill="#fef9e7" stroke="#b7950b" d="M2521,-328.65C2521,-328.65 2667,-328.65 2667,-328.65 2673,-328.65 2679,-334.65 2679,-340.65 2679,-340.65 2679,-682.45 2679,-682.45 2679,-688.45 2673,-694.45 2667,-694.45 2667,-694.45 2521,-694.45 2521,-694.45 2515,-694.45 2509,-688.45 2509,-682.45 2509,-682.45 2509,-340.65 2509,-340.65 2509,-334.65 2515,-328.65 2521,-328.65"/>
<text xml:space="preserve" text-anchor="middle" x="2537.79" y="-680.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#b7950b">config.rs</text>
</g>
<!-- legend -->
<g id="node1" class="node">
<title>legend</title>
<polygon fill="#f8f8f8" stroke="none" points="237.66,-1148.15 16.34,-1148.15 16.34,-1056.15 237.66,-1056.15 237.66,-1148.15"/>
<text xml:space="preserve" text-anchor="start" x="30.34" y="-1129.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#333333">───────</text>
<text xml:space="preserve" text-anchor="start" x="96.69" y="-1129.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#333333">Ownership (solid)</text>
<text xml:space="preserve" text-anchor="start" x="30.34" y="-1110.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#e67300">━━━━━━━</text>
<text xml:space="preserve" text-anchor="start" x="96.69" y="-1109.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#e67300">Arc&#45;shared (bold orange)</text>
<text xml:space="preserve" text-anchor="start" x="30.34" y="-1089.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#7b2d8b">&#45; &#45; &#45; &#45; &#45; &#45;</text>
<text xml:space="preserve" text-anchor="start" x="96.69" y="-1089.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#7b2d8b">Borrow / &amp;&#39;a (dashed purple)</text>
<text xml:space="preserve" text-anchor="start" x="30.34" y="-1069.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e8b57">· · · · · ·▷</text>
<text xml:space="preserve" text-anchor="start" x="96.69" y="-1069.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e8b57">Trait impl (dotted green)</text>
</g>
<!-- Runtime -->
<g id="node2" class="node">
<title>Runtime</title>
<polygon fill="white" stroke="black" points="744.32,-756.35 744.32,-984.35 1017.68,-984.35 1017.68,-756.35 744.32,-756.35"/>
<polygon fill="#2980b9" stroke="none" points="752.32,-958.35 752.32,-980.35 1009.68,-980.35 1009.68,-958.35 752.32,-958.35"/>
<polygon fill="none" stroke="black" points="752.32,-958.35 752.32,-980.35 1009.68,-980.35 1009.68,-958.35 752.32,-958.35"/>
<text xml:space="preserve" text-anchor="start" x="861" y="-967.35" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">Runtime</text>
<polygon fill="none" stroke="black" points="752.32,-936.35 752.32,-958.35 1009.68,-958.35 1009.68,-936.35 752.32,-936.35"/>
<text xml:space="preserve" text-anchor="start" x="757.32" y="-944.35" font-family="Helvetica,sans-Serif" font-size="10.00">config: RuntimeConfig</text>
<polygon fill="none" stroke="black" points="752.32,-914.35 752.32,-936.35 1009.68,-936.35 1009.68,-914.35 752.32,-914.35"/>
<text xml:space="preserve" text-anchor="start" x="757.32" y="-922.35" font-family="Helvetica,sans-Serif" font-size="10.00">address_map: Arc&lt;AddressMap&gt;</text>
<polygon fill="none" stroke="black" points="752.32,-892.35 752.32,-914.35 1009.68,-914.35 1009.68,-892.35 752.32,-892.35"/>
<text xml:space="preserve" text-anchor="start" x="757.32" y="-900.35" font-family="Helvetica,sans-Serif" font-size="10.00">inbox_registry: Arc&lt;InboxRegistry&gt;</text>
<polygon fill="none" stroke="black" points="752.32,-870.35 752.32,-892.35 1009.68,-892.35 1009.68,-870.35 752.32,-870.35"/>
<text xml:space="preserve" text-anchor="start" x="757.32" y="-878.35" font-family="Helvetica,sans-Serif" font-size="10.00">transfer_txs: Vec&lt;Sender&lt;Envelope&gt;&gt;</text>
<polygon fill="none" stroke="black" points="752.32,-848.35 752.32,-870.35 1009.68,-870.35 1009.68,-848.35 752.32,-848.35"/>
<text xml:space="preserve" text-anchor="start" x="757.32" y="-856.35" font-family="Helvetica,sans-Serif" font-size="10.00">spawn_txs: Vec&lt;Sender&lt;(Addr, Box&lt;dyn AnyActor&gt;)&gt;&gt;</text>
<polygon fill="none" stroke="black" points="752.32,-826.35 752.32,-848.35 1009.68,-848.35 1009.68,-826.35 752.32,-826.35"/>
<text xml:space="preserve" text-anchor="start" x="757.32" y="-834.35" font-family="Helvetica,sans-Serif" font-size="10.00">placement: Placement</text>
<polygon fill="none" stroke="black" points="752.32,-804.35 752.32,-826.35 1009.68,-826.35 1009.68,-804.35 752.32,-804.35"/>
<text xml:space="preserve" text-anchor="start" x="757.32" y="-812.35" font-family="Helvetica,sans-Serif" font-size="10.00">is_running: AtomicBool</text>
<polygon fill="none" stroke="black" points="752.32,-782.35 752.32,-804.35 1009.68,-804.35 1009.68,-782.35 752.32,-782.35"/>
<text xml:space="preserve" text-anchor="start" x="757.32" y="-790.35" font-family="Helvetica,sans-Serif" font-size="10.00">worker_stats: Vec&lt;Arc&lt;WorkerStats&gt;&gt;</text>
<polygon fill="none" stroke="black" points="752.32,-760.35 752.32,-782.35 1009.68,-782.35 1009.68,-760.35 752.32,-760.35"/>
<text xml:space="preserve" text-anchor="start" x="757.32" y="-768.35" font-family="Helvetica,sans-Serif" font-size="10.00">tick_workers: RefCell&lt;Vec&lt;Worker&gt;&gt;</text>
</g>
<!-- ContextInner -->
<g id="node10" class="node">
<title>ContextInner</title>
<ellipse fill="#a9dfbf" stroke="black" stroke-width="2" cx="631" cy="-605.75" rx="89.49" ry="42.14"/>
<text xml:space="preserve" text-anchor="start" x="583.77" y="-620.55" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">«trait» ContextInner</text>
<text xml:space="preserve" text-anchor="start" x="578.72" y="-602.45" font-family="Helvetica,sans-Serif" font-size="9.00">fn send_any(addr, msg)</text>
<text xml:space="preserve" text-anchor="start" x="578.72" y="-585.65" font-family="Helvetica,sans-Serif" font-size="9.00">fn spawn_any(addr, actor)</text>
</g>
<!-- Runtime&#45;&gt;ContextInner -->
<g id="edge35" class="edge">
<title>Runtime&#45;&gt;ContextInner</title>
<path fill="none" stroke="#2e8b57" stroke-width="1.5" stroke-dasharray="1,5" d="M784.34,-755.94C784.34,-684.49 784.34,-606 784.34,-606 784.34,-606 732.91,-606 732.91,-606"/>
<polygon fill="none" stroke="#2e8b57" stroke-width="1.5" points="732.91,-602.5 722.91,-606 732.91,-609.5 732.91,-602.5"/>
<text xml:space="preserve" text-anchor="middle" x="794.25" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">impl</text>
</g>
<!-- AddressMap -->
<g id="node14" class="node">
<title>AddressMap</title>
<polygon fill="white" stroke="black" points="1237.17,-579.75 1237.17,-631.75 1498.83,-631.75 1498.83,-579.75 1237.17,-579.75"/>
<polygon fill="#8e44ad" stroke="none" points="1245.17,-605.75 1245.17,-627.75 1490.83,-627.75 1490.83,-605.75 1245.17,-605.75"/>
<polygon fill="none" stroke="black" points="1245.17,-605.75 1245.17,-627.75 1490.83,-627.75 1490.83,-605.75 1245.17,-605.75"/>
<text xml:space="preserve" text-anchor="start" x="1337.99" y="-614.75" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">AddressMap</text>
<polygon fill="none" stroke="black" points="1245.17,-583.75 1245.17,-605.75 1490.83,-605.75 1490.83,-583.75 1245.17,-583.75"/>
<text xml:space="preserve" text-anchor="start" x="1250.17" y="-591.75" font-family="Helvetica,sans-Serif" font-size="10.00">inner: RwLock&lt;HashMap&lt;ActorAddress, WorkerId&gt;&gt;</text>
</g>
<!-- Runtime&#45;&gt;AddressMap -->
<g id="edge19" class="edge">
<title>Runtime&#45;&gt;AddressMap</title>
<path fill="none" stroke="#e67300" stroke-width="2.5" d="M1017.95,-761C1148.2,-761 1324.39,-761 1324.39,-761 1324.39,-761 1324.39,-645.87 1324.39,-645.87"/>
<polygon fill="#e67300" stroke="#e67300" stroke-width="2.5" points="1327.89,-645.87 1324.39,-635.87 1320.89,-645.87 1327.89,-645.87"/>
<text xml:space="preserve" text-anchor="middle" x="982.75" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">Arc</text>
</g>
<!-- Placement -->
<g id="node15" class="node">
<title>Placement</title>
<polygon fill="white" stroke="black" points="1527.54,-568.75 1527.54,-642.75 1642.46,-642.75 1642.46,-568.75 1527.54,-568.75"/>
<polygon fill="#8e44ad" stroke="none" points="1535.54,-616.75 1535.54,-638.75 1634.46,-638.75 1634.46,-616.75 1535.54,-616.75"/>
<polygon fill="none" stroke="black" points="1535.54,-616.75 1535.54,-638.75 1634.46,-638.75 1634.46,-616.75 1535.54,-616.75"/>
<text xml:space="preserve" text-anchor="start" x="1559.99" y="-625.75" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">Placement</text>
<polygon fill="none" stroke="black" points="1535.54,-594.75 1535.54,-616.75 1634.46,-616.75 1634.46,-594.75 1535.54,-594.75"/>
<text xml:space="preserve" text-anchor="start" x="1540.54" y="-602.75" font-family="Helvetica,sans-Serif" font-size="10.00">next: AtomicUsize</text>
<polygon fill="none" stroke="black" points="1535.54,-572.75 1535.54,-594.75 1634.46,-594.75 1634.46,-572.75 1535.54,-572.75"/>
<text xml:space="preserve" text-anchor="start" x="1540.54" y="-580.75" font-family="Helvetica,sans-Serif" font-size="10.00">num_workers: usize</text>
</g>
<!-- Runtime&#45;&gt;Placement -->
<g id="edge1" class="edge">
<title>Runtime&#45;&gt;Placement</title>
<path fill="none" stroke="#333333" d="M1017.99,-765C1222.79,-765 1585,-765 1585,-765 1585,-765 1585,-654.6 1585,-654.6"/>
<polygon fill="#333333" stroke="#333333" points="1588.5,-654.6 1585,-644.6 1581.5,-654.6 1588.5,-654.6"/>
<text xml:space="preserve" text-anchor="middle" x="1202.51" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">owns</text>
</g>
<!-- InboxRegistry -->
<g id="node16" class="node">
<title>InboxRegistry</title>
<polygon fill="white" stroke="black" points="1671.26,-579.75 1671.26,-631.75 1950.74,-631.75 1950.74,-579.75 1671.26,-579.75"/>
<polygon fill="#8e44ad" stroke="none" points="1679.26,-605.75 1679.26,-627.75 1942.74,-627.75 1942.74,-605.75 1679.26,-605.75"/>
<polygon fill="none" stroke="black" points="1679.26,-605.75 1679.26,-627.75 1942.74,-627.75 1942.74,-605.75 1679.26,-605.75"/>
<text xml:space="preserve" text-anchor="start" x="1777.66" y="-614.75" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">InboxRegistry</text>
<polygon fill="none" stroke="black" points="1679.26,-583.75 1679.26,-605.75 1942.74,-605.75 1942.74,-583.75 1679.26,-583.75"/>
<text xml:space="preserve" text-anchor="start" x="1684.26" y="-591.75" font-family="Helvetica,sans-Serif" font-size="10.00">senders: RwLock&lt;HashMap&lt;Addr, Arc&lt;dyn SenderT&gt;&gt;&gt;</text>
</g>
<!-- Runtime&#45;&gt;InboxRegistry -->
<g id="edge20" class="edge">
<title>Runtime&#45;&gt;InboxRegistry</title>
<path fill="none" stroke="#e67300" stroke-width="2.5" d="M1017.84,-770C1253.2,-770 1709.66,-770 1709.66,-770 1709.66,-770 1709.66,-645.92 1709.66,-645.92"/>
<polygon fill="#e67300" stroke="#e67300" stroke-width="2.5" points="1713.16,-645.92 1709.66,-635.92 1706.16,-645.92 1713.16,-645.92"/>
<text xml:space="preserve" text-anchor="middle" x="1337.75" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">Arc</text>
</g>
<!-- Worker -->
<g id="node19" class="node">
<title>Worker</title>
<polygon fill="white" stroke="black" points="1979.39,-535.75 1979.39,-675.75 2226.61,-675.75 2226.61,-535.75 1979.39,-535.75"/>
<polygon fill="#c0392b" stroke="none" points="1987.39,-649.75 1987.39,-671.75 2218.61,-671.75 2218.61,-649.75 1987.39,-649.75"/>
<polygon fill="none" stroke="black" points="1987.39,-649.75 1987.39,-671.75 2218.61,-671.75 2218.61,-649.75 1987.39,-649.75"/>
<text xml:space="preserve" text-anchor="start" x="2085.77" y="-658.75" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">Worker</text>
<polygon fill="none" stroke="black" points="1987.39,-627.75 1987.39,-649.75 2218.61,-649.75 2218.61,-627.75 1987.39,-627.75"/>
<text xml:space="preserve" text-anchor="start" x="1992.39" y="-635.75" font-family="Helvetica,sans-Serif" font-size="10.00">id: WorkerId</text>
<polygon fill="none" stroke="black" points="1987.39,-605.75 1987.39,-627.75 2218.61,-627.75 2218.61,-605.75 1987.39,-605.75"/>
<text xml:space="preserve" text-anchor="start" x="1992.39" y="-613.75" font-family="Helvetica,sans-Serif" font-size="10.00">pool: ActorPool</text>
<polygon fill="none" stroke="black" points="1987.39,-583.75 1987.39,-605.75 2218.61,-605.75 2218.61,-583.75 1987.39,-583.75"/>
<text xml:space="preserve" text-anchor="start" x="1992.39" y="-591.75" font-family="Helvetica,sans-Serif" font-size="10.00">transfer_rx: Receiver&lt;Envelope&gt;</text>
<polygon fill="none" stroke="black" points="1987.39,-561.75 1987.39,-583.75 2218.61,-583.75 2218.61,-561.75 1987.39,-561.75"/>
<text xml:space="preserve" text-anchor="start" x="1992.39" y="-569.75" font-family="Helvetica,sans-Serif" font-size="10.00">spawn_rx: Receiver&lt;(Addr, Box&lt;dyn AnyActor&gt;)&gt;</text>
<polygon fill="none" stroke="black" points="1987.39,-539.75 1987.39,-561.75 2218.61,-561.75 2218.61,-539.75 1987.39,-539.75"/>
<text xml:space="preserve" text-anchor="start" x="1992.39" y="-547.75" font-family="Helvetica,sans-Serif" font-size="10.00">stats: Arc&lt;WorkerStats&gt;</text>
</g>
<!-- Runtime&#45;&gt;Worker -->
<g id="edge38" class="edge">
<title>Runtime&#45;&gt;Worker</title>
<path fill="none" stroke="#333333" d="M977.66,-756.12C977.66,-707.59 977.66,-662 977.66,-662 977.66,-662 1967.57,-662 1967.57,-662"/>
<polygon fill="#333333" stroke="#333333" points="1967.57,-665.5 1977.57,-662 1967.57,-658.5 1967.57,-665.5"/>
<text xml:space="preserve" text-anchor="middle" x="2082.02" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">RefCell&lt;Vec&lt;&gt;&gt;</text>
</g>
<!-- SenderCh -->
<g id="node24" class="node">
<title>SenderCh</title>
<polygon fill="white" stroke="black" points="2266.01,-579.75 2266.01,-631.75 2435.99,-631.75 2435.99,-579.75 2266.01,-579.75"/>
<polygon fill="#148f77" stroke="none" points="2274.01,-605.75 2274.01,-627.75 2427.99,-627.75 2427.99,-605.75 2274.01,-605.75"/>
<polygon fill="none" stroke="black" points="2274.01,-605.75 2274.01,-627.75 2427.99,-627.75 2427.99,-605.75 2274.01,-605.75"/>
<text xml:space="preserve" text-anchor="start" x="2325.16" y="-614.75" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">Sender&lt;T&gt;</text>
<polygon fill="none" stroke="black" points="2274.01,-583.75 2274.01,-605.75 2427.99,-605.75 2427.99,-583.75 2274.01,-583.75"/>
<text xml:space="preserve" text-anchor="start" x="2279.01" y="-591.75" font-family="Helvetica,sans-Serif" font-size="10.00">queue: Arc&lt;HybridChannel&lt;T&gt;&gt;</text>
</g>
<!-- Runtime&#45;&gt;SenderCh -->
<g id="edge15" class="edge">
<title>Runtime&#45;&gt;SenderCh</title>
<path fill="none" stroke="#333333" d="M1017.93,-775C1377.79,-775 2322.67,-775 2322.67,-775 2322.67,-775 2322.67,-643.71 2322.67,-643.71"/>
<polygon fill="#333333" stroke="#333333" points="2326.17,-643.71 2322.67,-633.71 2319.17,-643.71 2326.17,-643.71"/>
<text xml:space="preserve" text-anchor="middle" x="2299.39" y="-718.75" font-family="Helvetica,sans-Serif" font-size="9.00">transfer_txs +</text>
<text xml:space="preserve" text-anchor="middle" x="2299.39" y="-707.95" font-family="Helvetica,sans-Serif" font-size="9.00">spawn_txs</text>
</g>
<!-- WorkerStats -->
<g id="node26" class="node">
<title>WorkerStats</title>
<polygon fill="white" stroke="black" points="2695.13,-348.15 2695.13,-444.15 2872.87,-444.15 2872.87,-348.15 2695.13,-348.15"/>
<polygon fill="#3949ab" stroke="none" points="2703.13,-418.15 2703.13,-440.15 2864.87,-440.15 2864.87,-418.15 2703.13,-418.15"/>
<polygon fill="none" stroke="black" points="2703.13,-418.15 2703.13,-440.15 2864.87,-440.15 2864.87,-418.15 2703.13,-418.15"/>
<text xml:space="preserve" text-anchor="start" x="2754.55" y="-427.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">WorkerStats</text>
<polygon fill="none" stroke="black" points="2703.13,-396.15 2703.13,-418.15 2864.87,-418.15 2864.87,-396.15 2703.13,-396.15"/>
<text xml:space="preserve" text-anchor="start" x="2708.13" y="-404.15" font-family="Helvetica,sans-Serif" font-size="10.00">num_actors: AtomicUsize</text>
<polygon fill="none" stroke="black" points="2703.13,-374.15 2703.13,-396.15 2864.87,-396.15 2864.87,-374.15 2703.13,-374.15"/>
<text xml:space="preserve" text-anchor="start" x="2708.13" y="-382.15" font-family="Helvetica,sans-Serif" font-size="10.00">total_mailbox_depth: AtomicUsize</text>
<polygon fill="none" stroke="black" points="2703.13,-352.15 2703.13,-374.15 2864.87,-374.15 2864.87,-352.15 2703.13,-352.15"/>
<text xml:space="preserve" text-anchor="start" x="2708.13" y="-360.15" font-family="Helvetica,sans-Serif" font-size="10.00">messages_processed: AtomicU64</text>
</g>
<!-- Runtime&#45;&gt;WorkerStats -->
<g id="edge21" class="edge">
<title>Runtime&#45;&gt;WorkerStats</title>
<path fill="none" stroke="#e67300" stroke-width="2.5" d="M1017.94,-784C1442.45,-784 2707.95,-784 2707.95,-784 2707.95,-784 2707.95,-458.27 2707.95,-458.27"/>
<polygon fill="#e67300" stroke="#e67300" stroke-width="2.5" points="2711.45,-458.27 2707.95,-448.27 2704.45,-458.27 2711.45,-458.27"/>
<text xml:space="preserve" text-anchor="middle" x="2797.76" y="-603.05" font-family="Helvetica,sans-Serif" font-size="9.00">Vec&lt;Arc&gt;</text>
</g>
<!-- RuntimeConfig -->
<g id="node29" class="node">
<title>RuntimeConfig</title>
<polygon fill="white" stroke="black" points="2516.52,-546.75 2516.52,-664.75 2671.48,-664.75 2671.48,-546.75 2516.52,-546.75"/>
<polygon fill="#d4ac0d" stroke="none" points="2524.52,-638.75 2524.52,-660.75 2663.48,-660.75 2663.48,-638.75 2524.52,-638.75"/>
<polygon fill="none" stroke="black" points="2524.52,-638.75 2524.52,-660.75 2663.48,-660.75 2663.48,-638.75 2524.52,-638.75"/>
<text xml:space="preserve" text-anchor="start" x="2558.17" y="-647.75" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">RuntimeConfig</text>
<polygon fill="none" stroke="black" points="2524.52,-616.75 2524.52,-638.75 2663.48,-638.75 2663.48,-616.75 2524.52,-616.75"/>
<text xml:space="preserve" text-anchor="start" x="2529.52" y="-624.75" font-family="Helvetica,sans-Serif" font-size="10.00">max_actors: usize</text>
<polygon fill="none" stroke="black" points="2524.52,-594.75 2524.52,-616.75 2663.48,-616.75 2663.48,-594.75 2524.52,-594.75"/>
<text xml:space="preserve" text-anchor="start" x="2529.52" y="-602.75" font-family="Helvetica,sans-Serif" font-size="10.00">actor_max_messages: usize</text>
<polygon fill="none" stroke="black" points="2524.52,-572.75 2524.52,-594.75 2663.48,-594.75 2663.48,-572.75 2524.52,-572.75"/>
<text xml:space="preserve" text-anchor="start" x="2529.52" y="-580.75" font-family="Helvetica,sans-Serif" font-size="10.00">num_threads: usize</text>
<polygon fill="none" stroke="black" points="2524.52,-550.75 2524.52,-572.75 2663.48,-572.75 2663.48,-550.75 2524.52,-550.75"/>
<text xml:space="preserve" text-anchor="start" x="2529.52" y="-558.75" font-family="Helvetica,sans-Serif" font-size="10.00">backoff_policy: BackoffPolicy</text>
</g>
<!-- Runtime&#45;&gt;RuntimeConfig -->
<g id="edge2" class="edge">
<title>Runtime&#45;&gt;RuntimeConfig</title>
<path fill="none" stroke="#333333" d="M1018,-779C1419.98,-779 2568.17,-779 2568.17,-779 2568.17,-779 2568.17,-736.04 2568.17,-705.72"/>
<polygon fill="#333333" stroke="#333333" points="2571.68,-705.96 2568.17,-695.96 2564.68,-705.96 2571.68,-705.96"/>
<text xml:space="preserve" text-anchor="middle" x="2487.51" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">owns</text>
</g>
<!-- RuntimeHandle -->
<g id="node3" class="node">
<title>RuntimeHandle</title>
<polygon fill="white" stroke="black" points="799.9,-1065.15 799.9,-1139.15 962.1,-1139.15 962.1,-1065.15 799.9,-1065.15"/>
<polygon fill="#2980b9" stroke="none" points="807.9,-1113.15 807.9,-1135.15 954.1,-1135.15 954.1,-1113.15 807.9,-1113.15"/>
<polygon fill="none" stroke="black" points="807.9,-1113.15 807.9,-1135.15 954.1,-1135.15 954.1,-1113.15 807.9,-1113.15"/>
<text xml:space="preserve" text-anchor="start" x="844.33" y="-1122.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">RuntimeHandle</text>
<polygon fill="none" stroke="black" points="807.9,-1091.15 807.9,-1113.15 954.1,-1113.15 954.1,-1091.15 807.9,-1091.15"/>
<text xml:space="preserve" text-anchor="start" x="812.9" y="-1099.15" font-family="Helvetica,sans-Serif" font-size="10.00">runtime: Arc&lt;Runtime&gt;</text>
<polygon fill="none" stroke="black" points="807.9,-1069.15 807.9,-1091.15 954.1,-1091.15 954.1,-1069.15 807.9,-1069.15"/>
<text xml:space="preserve" text-anchor="start" x="812.9" y="-1077.15" font-family="Helvetica,sans-Serif" font-size="10.00">threads: Vec&lt;JoinHandle&lt;()&gt;&gt;</text>
</g>
<!-- RuntimeHandle&#45;&gt;Runtime -->
<g id="edge18" class="edge">
<title>RuntimeHandle&#45;&gt;Runtime</title>
<path fill="none" stroke="#e67300" stroke-width="2.5" d="M881,-1064.9C881,-1064.9 881,-998.45 881,-998.45"/>
<polygon fill="#e67300" stroke="#e67300" stroke-width="2.5" points="884.5,-998.45 881,-988.45 877.5,-998.45 884.5,-998.45"/>
<text xml:space="preserve" text-anchor="middle" x="887.75" y="-1016.55" font-family="Helvetica,sans-Serif" font-size="9.00">Arc</text>
</g>
<!-- Inbox -->
<g id="node4" class="node">
<title>Inbox</title>
<polygon fill="white" stroke="black" points="824.37,-568.75 824.37,-642.75 937.63,-642.75 937.63,-568.75 824.37,-568.75"/>
<polygon fill="#2980b9" stroke="none" points="832.37,-616.75 832.37,-638.75 929.63,-638.75 929.63,-616.75 832.37,-616.75"/>
<polygon fill="none" stroke="black" points="832.37,-616.75 832.37,-638.75 929.63,-638.75 929.63,-616.75 832.37,-616.75"/>
<text xml:space="preserve" text-anchor="start" x="857.66" y="-625.75" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">Inbox&lt;M&gt;</text>
<polygon fill="none" stroke="black" points="832.37,-594.75 832.37,-616.75 929.63,-616.75 929.63,-594.75 832.37,-594.75"/>
<text xml:space="preserve" text-anchor="start" x="837.37" y="-602.75" font-family="Helvetica,sans-Serif" font-size="10.00">addr: ActorAddress</text>
<polygon fill="none" stroke="black" points="832.37,-572.75 832.37,-594.75 929.63,-594.75 929.63,-572.75 832.37,-572.75"/>
<text xml:space="preserve" text-anchor="start" x="837.37" y="-580.75" font-family="Helvetica,sans-Serif" font-size="10.00">inner: Receiver&lt;M&gt;</text>
</g>
<!-- ActorAddress -->
<g id="node5" class="node">
<title>ActorAddress</title>
<polygon fill="white" stroke="black" points="623.98,-359.15 623.98,-433.15 720.02,-433.15 720.02,-359.15 623.98,-359.15"/>
<polygon fill="#27ae60" stroke="none" points="631.98,-407.15 631.98,-429.15 712.02,-429.15 712.02,-407.15 631.98,-407.15"/>
<polygon fill="none" stroke="black" points="631.98,-407.15 631.98,-429.15 712.02,-429.15 712.02,-407.15 631.98,-407.15"/>
<text xml:space="preserve" text-anchor="start" x="638.94" y="-416.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">ActorAddress</text>
<polygon fill="none" stroke="black" points="631.98,-385.15 631.98,-407.15 712.02,-407.15 712.02,-385.15 631.98,-385.15"/>
<text xml:space="preserve" text-anchor="start" x="636.98" y="-393.15" font-family="Helvetica,sans-Serif" font-size="10.00">0: [u8; 32]</text>
<polygon fill="none" stroke="black" points="631.98,-363.15 631.98,-385.15 712.02,-385.15 712.02,-363.15 631.98,-363.15"/>
<text xml:space="preserve" text-anchor="start" x="636.98" y="-372.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="10.00">Copy, Eq, Hash</text>
</g>
<!-- Inbox&#45;&gt;ActorAddress -->
<g id="edge10" class="edge">
<title>Inbox&#45;&gt;ActorAddress</title>
<path fill="none" stroke="#333333" d="M862.12,-568.47C862.12,-517.42 862.12,-432 862.12,-432 862.12,-432 731.98,-432 731.98,-432"/>
<polygon fill="#333333" stroke="#333333" points="731.98,-428.5 721.98,-432 731.98,-435.5 731.98,-428.5"/>
<text xml:space="preserve" text-anchor="middle" x="781.01" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">addr</text>
</g>
<!-- ReceiverCh -->
<g id="node25" class="node">
<title>ReceiverCh</title>
<polygon fill="white" stroke="black" points="2251.01,-370.15 2251.01,-422.15 2420.99,-422.15 2420.99,-370.15 2251.01,-370.15"/>
<polygon fill="#148f77" stroke="none" points="2259.01,-396.15 2259.01,-418.15 2412.99,-418.15 2412.99,-396.15 2259.01,-396.15"/>
<polygon fill="none" stroke="black" points="2259.01,-396.15 2259.01,-418.15 2412.99,-418.15 2412.99,-396.15 2259.01,-396.15"/>
<text xml:space="preserve" text-anchor="start" x="2306.26" y="-405.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">Receiver&lt;T&gt;</text>
<polygon fill="none" stroke="black" points="2259.01,-374.15 2259.01,-396.15 2412.99,-396.15 2412.99,-374.15 2259.01,-374.15"/>
<text xml:space="preserve" text-anchor="start" x="2264.01" y="-382.15" font-family="Helvetica,sans-Serif" font-size="10.00">queue: Arc&lt;HybridChannel&lt;T&gt;&gt;</text>
</g>
<!-- Inbox&#45;&gt;ReceiverCh -->
<g id="edge9" class="edge">
<title>Inbox&#45;&gt;ReceiverCh</title>
<path fill="none" stroke="#333333" d="M899.88,-568.46C899.88,-520.98 899.88,-445 899.88,-445 899.88,-445 2256.01,-445 2256.01,-445 2256.01,-445 2256.01,-434.09 2256.01,-434.09"/>
<polygon fill="#333333" stroke="#333333" points="2259.51,-434.09 2256.01,-424.09 2252.51,-434.09 2259.51,-434.09"/>
<text xml:space="preserve" text-anchor="middle" x="2363.51" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">owns</text>
</g>
<!-- Actor -->
<g id="node6" class="node">
<title>Actor</title>
<polygon fill="white" stroke="black" points="402.75,-204.35 402.75,-256.35 563.25,-256.35 563.25,-204.35 402.75,-204.35"/>
<polygon fill="#27ae60" stroke="none" points="410.75,-230.35 410.75,-252.35 555.25,-252.35 555.25,-230.35 410.75,-230.35"/>
<polygon fill="none" stroke="black" points="410.75,-230.35 410.75,-252.35 555.25,-252.35 555.25,-230.35 410.75,-230.35"/>
<text xml:space="preserve" text-anchor="start" x="460.49" y="-239.35" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">Actor&lt;A&gt;</text>
<polygon fill="none" stroke="black" points="410.75,-208.35 410.75,-230.35 555.25,-230.35 555.25,-208.35 410.75,-208.35"/>
<text xml:space="preserve" text-anchor="start" x="415.75" y="-217.35" font-family="Helvetica,sans-Serif" font-size="10.00">0: A &#160;</text>
<text xml:space="preserve" text-anchor="start" x="439.1" y="-217.35" font-family="Helvetica,sans-Serif" font-style="italic" font-size="10.00">(where A: ActorInterface)</text>
</g>
<!-- ActorInterface -->
<g id="node8" class="node">
<title>ActorInterface</title>
<ellipse fill="#a9dfbf" stroke="black" stroke-width="2" cx="364" cy="-70.02" rx="99.73" ry="54.02"/>
<text xml:space="preserve" text-anchor="start" x="313.71" y="-93.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">«trait» ActorInterface</text>
<text xml:space="preserve" text-anchor="start" x="304.48" y="-75.12" font-family="Helvetica,sans-Serif" font-size="9.00">type Incoming: Message</text>
<text xml:space="preserve" text-anchor="start" x="304.48" y="-58.32" font-family="Helvetica,sans-Serif" font-size="9.00">type Response: Message</text>
<text xml:space="preserve" text-anchor="start" x="304.48" y="-41.52" font-family="Helvetica,sans-Serif" font-size="9.00">fn handle(&amp;mut self, ctx, msg)</text>
</g>
<!-- Actor&#45;&gt;ActorInterface -->
<g id="edge34" class="edge">
<title>Actor&#45;&gt;ActorInterface</title>
<path fill="none" stroke="#2e8b57" stroke-width="1.5" stroke-dasharray="1,5" d="M433.24,-203.87C433.24,-203.87 433.24,-121.42 433.24,-121.42"/>
<polygon fill="none" stroke="#2e8b57" stroke-width="1.5" points="436.74,-121.42 433.24,-111.42 429.74,-121.42 436.74,-121.42"/>
<text xml:space="preserve" text-anchor="middle" x="415.01" y="-155.75" font-family="Helvetica,sans-Serif" font-size="9.00">wraps A: impl</text>
</g>
<!-- AnyActor -->
<g id="node9" class="node">
<title>AnyActor</title>
<ellipse fill="#a9dfbf" stroke="black" stroke-width="2" cx="606" cy="-70.02" rx="113.53" ry="30.26"/>
<text xml:space="preserve" text-anchor="start" x="567.11" y="-76.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">«trait» AnyActor</text>
<text xml:space="preserve" text-anchor="start" x="536.72" y="-58.32" font-family="Helvetica,sans-Serif" font-size="9.00">fn handle_any(&amp;mut self, ctx, msg)</text>
</g>
<!-- Actor&#45;&gt;AnyActor -->
<g id="edge33" class="edge">
<title>Actor&#45;&gt;AnyActor</title>
<path fill="none" stroke="#2e8b57" stroke-width="1.5" stroke-dasharray="1,5" d="M527.86,-203.87C527.86,-203.87 527.86,-104.66 527.86,-104.66"/>
<polygon fill="none" stroke="#2e8b57" stroke-width="1.5" points="531.36,-104.66 527.86,-94.66 524.36,-104.66 531.36,-104.66"/>
<text xml:space="preserve" text-anchor="middle" x="564.25" y="-155.75" font-family="Helvetica,sans-Serif" font-size="9.00">impl</text>
</g>
<!-- Ctx -->
<g id="node7" class="node">
<title>Ctx</title>
<polygon fill="white" stroke="black" points="447.57,-833.35 447.57,-907.35 594.43,-907.35 594.43,-833.35 447.57,-833.35"/>
<polygon fill="#27ae60" stroke="none" points="455.57,-881.35 455.57,-903.35 586.43,-903.35 586.43,-881.35 455.57,-881.35"/>
<polygon fill="none" stroke="black" points="455.57,-881.35 455.57,-903.35 586.43,-903.35 586.43,-881.35 455.57,-881.35"/>
<text xml:space="preserve" text-anchor="start" x="503.13" y="-890.35" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">Ctx&lt;&#39;a&gt;</text>
<polygon fill="none" stroke="black" points="455.57,-859.35 455.57,-881.35 586.43,-881.35 586.43,-859.35 455.57,-859.35"/>
<text xml:space="preserve" text-anchor="start" x="460.57" y="-867.35" font-family="Helvetica,sans-Serif" font-size="10.00">inner: &amp;&#39;a dyn ContextInner</text>
<polygon fill="none" stroke="black" points="455.57,-837.35 455.57,-859.35 586.43,-859.35 586.43,-837.35 455.57,-837.35"/>
<text xml:space="preserve" text-anchor="start" x="460.57" y="-845.35" font-family="Helvetica,sans-Serif" font-size="10.00">self_addr: ActorAddress</text>
</g>
<!-- Ctx&#45;&gt;ActorAddress -->
<g id="edge11" class="edge">
<title>Ctx&#45;&gt;ActorAddress</title>
<path fill="none" stroke="#333333" d="M494.54,-833.12C494.54,-721.3 494.54,-396 494.54,-396 494.54,-396 611.99,-396 611.99,-396"/>
<polygon fill="#333333" stroke="#333333" points="611.99,-399.5 621.99,-396 611.99,-392.5 611.99,-399.5"/>
<text xml:space="preserve" text-anchor="middle" x="493.51" y="-603.05" font-family="Helvetica,sans-Serif" font-size="9.00">self_addr</text>
</g>
<!-- Ctx&#45;&gt;ContextInner -->
<g id="edge26" class="edge">
<title>Ctx&#45;&gt;ContextInner</title>
<path fill="none" stroke="#7b2d8b" stroke-width="1.5" stroke-dasharray="5,2" d="M567.97,-833C567.97,-833 567.97,-648.2 567.97,-648.2"/>
<polygon fill="#7b2d8b" stroke="#7b2d8b" stroke-width="1.5" points="571.47,-648.2 567.97,-638.2 564.47,-648.2 571.47,-648.2"/>
<text xml:space="preserve" text-anchor="middle" x="590.87" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">&amp;&#39;a dyn</text>
</g>
<!-- MessageTrait -->
<g id="node11" class="node">
<title>MessageTrait</title>
<ellipse fill="#a9dfbf" stroke="black" stroke-width="2" cx="493" cy="-1102.15" rx="99.02" ry="30.26"/>
<text xml:space="preserve" text-anchor="start" x="455.49" y="-1108.55" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">«trait» Message</text>
<text xml:space="preserve" text-anchor="start" x="433.98" y="-1090.45" font-family="Helvetica,sans-Serif" font-size="9.00">&#39;static + Clone + Send + Sync</text>
</g>
<!-- Envelope -->
<g id="node12" class="node">
<title>Envelope</title>
<polygon fill="white" stroke="black" points="1041.81,-568.75 1041.81,-642.75 1208.19,-642.75 1208.19,-568.75 1041.81,-568.75"/>
<polygon fill="#8e44ad" stroke="none" points="1049.81,-616.75 1049.81,-638.75 1200.19,-638.75 1200.19,-616.75 1049.81,-616.75"/>
<polygon fill="none" stroke="black" points="1049.81,-616.75 1049.81,-638.75 1200.19,-638.75 1200.19,-616.75 1049.81,-616.75"/>
<text xml:space="preserve" text-anchor="start" x="1102.77" y="-625.75" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">Envelope</text>
<polygon fill="none" stroke="black" points="1049.81,-594.75 1049.81,-616.75 1200.19,-616.75 1200.19,-594.75 1049.81,-594.75"/>
<text xml:space="preserve" text-anchor="start" x="1054.81" y="-602.75" font-family="Helvetica,sans-Serif" font-size="10.00">dest: ActorAddress</text>
<polygon fill="none" stroke="black" points="1049.81,-572.75 1049.81,-594.75 1200.19,-594.75 1200.19,-572.75 1049.81,-572.75"/>
<text xml:space="preserve" text-anchor="start" x="1054.81" y="-580.75" font-family="Helvetica,sans-Serif" font-size="10.00">payload: Box&lt;dyn Any + Send&gt;</text>
</g>
<!-- Envelope&#45;&gt;ActorAddress -->
<g id="edge12" class="edge">
<title>Envelope&#45;&gt;ActorAddress</title>
<path fill="none" stroke="#333333" d="M1125,-568.47C1125,-516.89 1125,-430 1125,-430 1125,-430 731.99,-430 731.99,-430"/>
<polygon fill="#333333" stroke="#333333" points="731.99,-426.5 721.99,-430 731.99,-433.5 731.99,-426.5"/>
<text xml:space="preserve" text-anchor="middle" x="1032.51" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">dest</text>
</g>
<!-- WorkerId -->
<g id="node13" class="node">
<title>WorkerId</title>
<polygon fill="white" stroke="black" points="1470.33,-370.15 1470.33,-422.15 1539.67,-422.15 1539.67,-370.15 1470.33,-370.15"/>
<polygon fill="#8e44ad" stroke="none" points="1478.33,-396.15 1478.33,-418.15 1531.67,-418.15 1531.67,-396.15 1478.33,-396.15"/>
<polygon fill="none" stroke="black" points="1478.33,-396.15 1478.33,-418.15 1531.67,-418.15 1531.67,-396.15 1478.33,-396.15"/>
<text xml:space="preserve" text-anchor="start" x="1483.33" y="-405.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">WorkerId</text>
<polygon fill="none" stroke="black" points="1478.33,-374.15 1478.33,-396.15 1531.67,-396.15 1531.67,-374.15 1478.33,-374.15"/>
<text xml:space="preserve" text-anchor="start" x="1483.33" y="-382.15" font-family="Helvetica,sans-Serif" font-size="10.00">0: usize</text>
</g>
<!-- AddressMap&#45;&gt;ActorAddress -->
<g id="edge14" class="edge">
<title>AddressMap&#45;&gt;ActorAddress</title>
<path fill="none" stroke="#333333" d="M1353.75,-579.52C1353.75,-530.08 1353.75,-428 1353.75,-428 1353.75,-428 732,-428 732,-428"/>
<polygon fill="#333333" stroke="#333333" points="732,-424.5 722,-428 732,-431.5 732,-424.5"/>
<text xml:space="preserve" text-anchor="middle" x="1254.51" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">HashMap key</text>
</g>
<!-- AddressMap&#45;&gt;WorkerId -->
<g id="edge13" class="edge">
<title>AddressMap&#45;&gt;WorkerId</title>
<path fill="none" stroke="#333333" d="M1484.58,-579.62C1484.58,-579.62 1484.58,-434.11 1484.58,-434.11"/>
<polygon fill="#333333" stroke="#333333" points="1488.08,-434.11 1484.58,-424.11 1481.08,-434.11 1488.08,-434.11"/>
<text xml:space="preserve" text-anchor="middle" x="1462.26" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">HashMap val</text>
</g>
<!-- SenderT -->
<g id="node18" class="node">
<title>SenderT</title>
<ellipse fill="#d2b4de" stroke="black" stroke-width="2" cx="1824" cy="-396.15" rx="122.03" ry="30.26"/>
<text xml:space="preserve" text-anchor="start" x="1787.6" y="-402.55" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">«trait» SenderT</text>
<text xml:space="preserve" text-anchor="start" x="1748.71" y="-384.45" font-family="Helvetica,sans-Serif" font-size="9.00">fn try_send_any(msg: Box&lt;dyn Any&gt;)</text>
</g>
<!-- InboxRegistry&#45;&gt;SenderT -->
<g id="edge25" class="edge">
<title>InboxRegistry&#45;&gt;SenderT</title>
<path fill="none" stroke="#e67300" stroke-width="2.5" d="M1783.32,-579.62C1783.32,-579.62 1783.32,-438.74 1783.32,-438.74"/>
<polygon fill="#e67300" stroke="#e67300" stroke-width="2.5" points="1786.82,-438.74 1783.32,-428.74 1779.82,-438.74 1786.82,-438.74"/>
<text xml:space="preserve" text-anchor="middle" x="1834.26" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">Arc&lt;dyn&gt;</text>
</g>
<!-- TickContext -->
<g id="node17" class="node">
<title>TickContext</title>
<polygon fill="white" stroke="black" points="1748.05,-789.35 1748.05,-951.35 1939.95,-951.35 1939.95,-789.35 1748.05,-789.35"/>
<polygon fill="#8e44ad" stroke="none" points="1756.05,-925.35 1756.05,-947.35 1931.95,-947.35 1931.95,-925.35 1756.05,-925.35"/>
<polygon fill="none" stroke="black" points="1756.05,-925.35 1756.05,-947.35 1931.95,-947.35 1931.95,-925.35 1756.05,-925.35"/>
<text xml:space="preserve" text-anchor="start" x="1805.57" y="-934.35" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">TickContext&lt;&#39;a&gt;</text>
<polygon fill="none" stroke="black" points="1756.05,-903.35 1756.05,-925.35 1931.95,-925.35 1931.95,-903.35 1756.05,-903.35"/>
<text xml:space="preserve" text-anchor="start" x="1761.05" y="-911.35" font-family="Helvetica,sans-Serif" font-size="10.00">address_map: &amp;&#39;a AddressMap</text>
<polygon fill="none" stroke="black" points="1756.05,-881.35 1756.05,-903.35 1931.95,-903.35 1931.95,-881.35 1756.05,-881.35"/>
<text xml:space="preserve" text-anchor="start" x="1761.05" y="-889.35" font-family="Helvetica,sans-Serif" font-size="10.00">transfer_txs: &amp;&#39;a [Sender&lt;Envelope&gt;]</text>
<polygon fill="none" stroke="black" points="1756.05,-859.35 1756.05,-881.35 1931.95,-881.35 1931.95,-859.35 1756.05,-859.35"/>
<text xml:space="preserve" text-anchor="start" x="1761.05" y="-867.35" font-family="Helvetica,sans-Serif" font-size="10.00">spawn_txs: &amp;&#39;a [Sender&lt;...&gt;]</text>
<polygon fill="none" stroke="black" points="1756.05,-837.35 1756.05,-859.35 1931.95,-859.35 1931.95,-837.35 1756.05,-837.35"/>
<text xml:space="preserve" text-anchor="start" x="1761.05" y="-845.35" font-family="Helvetica,sans-Serif" font-size="10.00">placement: &amp;&#39;a Placement</text>
<polygon fill="none" stroke="black" points="1756.05,-815.35 1756.05,-837.35 1931.95,-837.35 1931.95,-815.35 1756.05,-815.35"/>
<text xml:space="preserve" text-anchor="start" x="1761.05" y="-823.35" font-family="Helvetica,sans-Serif" font-size="10.00">inbox_registry: &amp;&#39;a InboxRegistry</text>
<polygon fill="none" stroke="black" points="1756.05,-793.35 1756.05,-815.35 1931.95,-815.35 1931.95,-793.35 1756.05,-793.35"/>
<text xml:space="preserve" text-anchor="start" x="1761.05" y="-801.35" font-family="Helvetica,sans-Serif" font-size="10.00">config: &amp;&#39;a RuntimeConfig</text>
</g>
<!-- TickContext&#45;&gt;AddressMap -->
<g id="edge27" class="edge">
<title>TickContext&#45;&gt;AddressMap</title>
<path fill="none" stroke="#7b2d8b" stroke-width="1.5" stroke-dasharray="5,2" d="M1747.77,-870C1620.36,-870 1411.61,-870 1411.61,-870 1411.61,-870 1411.61,-644.32 1411.61,-644.32"/>
<polygon fill="#7b2d8b" stroke="#7b2d8b" stroke-width="1.5" points="1415.11,-644.32 1411.61,-634.32 1408.11,-644.32 1415.11,-644.32"/>
<text xml:space="preserve" text-anchor="middle" x="1509.36" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">&amp;&#39;a</text>
</g>
<!-- TickContext&#45;&gt;Placement -->
<g id="edge29" class="edge">
<title>TickContext&#45;&gt;Placement</title>
<path fill="none" stroke="#7b2d8b" stroke-width="1.5" stroke-dasharray="5,2" d="M1812.02,-789.08C1812.02,-722.08 1812.02,-638 1812.02,-638 1812.02,-638 1655.14,-638 1655.14,-638"/>
<polygon fill="#7b2d8b" stroke="#7b2d8b" stroke-width="1.5" points="1655.14,-634.5 1645.14,-638 1655.14,-641.5 1655.14,-634.5"/>
<text xml:space="preserve" text-anchor="middle" x="1691.36" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">&amp;&#39;a</text>
</g>
<!-- TickContext&#45;&gt;InboxRegistry -->
<g id="edge30" class="edge">
<title>TickContext&#45;&gt;InboxRegistry</title>
<path fill="none" stroke="#7b2d8b" stroke-width="1.5" stroke-dasharray="5,2" d="M1875.98,-789.16C1875.98,-789.16 1875.98,-644.27 1875.98,-644.27"/>
<polygon fill="#7b2d8b" stroke="#7b2d8b" stroke-width="1.5" points="1879.48,-644.27 1875.98,-634.27 1872.48,-644.27 1879.48,-644.27"/>
<text xml:space="preserve" text-anchor="middle" x="1839.36" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">&amp;&#39;a</text>
</g>
<!-- TickContext&#45;&gt;SenderCh -->
<g id="edge28" class="edge">
<title>TickContext&#45;&gt;SenderCh</title>
<path fill="none" stroke="#7b2d8b" stroke-width="1.5" stroke-dasharray="5,2" d="M1940.32,-796C2094.45,-796 2379.33,-796 2379.33,-796 2379.33,-796 2379.33,-644.47 2379.33,-644.47"/>
<polygon fill="#7b2d8b" stroke="#7b2d8b" stroke-width="1.5" points="2382.83,-644.47 2379.33,-634.47 2375.83,-644.47 2382.83,-644.47"/>
<text xml:space="preserve" text-anchor="middle" x="2371.11" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">&amp;&#39;a []</text>
</g>
<!-- TickContext&#45;&gt;RuntimeConfig -->
<g id="edge31" class="edge">
<title>TickContext&#45;&gt;RuntimeConfig</title>
<path fill="none" stroke="#7b2d8b" stroke-width="1.5" stroke-dasharray="5,2" d="M1940.3,-804C2148.07,-804 2619.83,-804 2619.83,-804 2619.83,-804 2619.83,-677.5 2619.83,-677.5"/>
<polygon fill="#7b2d8b" stroke="#7b2d8b" stroke-width="1.5" points="2623.33,-677.5 2619.83,-667.5 2616.33,-677.5 2623.33,-677.5"/>
<text xml:space="preserve" text-anchor="middle" x="2569.36" y="-713.35" font-family="Helvetica,sans-Serif" font-size="9.00">&amp;&#39;a</text>
</g>
<!-- Worker&#45;&gt;WorkerId -->
<g id="edge6" class="edge">
<title>Worker&#45;&gt;WorkerId</title>
<path fill="none" stroke="#333333" d="M1979.1,-549C1811.6,-549 1533.6,-549 1533.6,-549 1533.6,-549 1533.6,-433.94 1533.6,-433.94"/>
<polygon fill="#333333" stroke="#333333" points="1537.1,-433.94 1533.6,-423.94 1530.1,-433.94 1537.1,-433.94"/>
<text xml:space="preserve" text-anchor="middle" x="1974.5" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">id</text>
</g>
<!-- ActorPool -->
<g id="node21" class="node">
<title>ActorPool</title>
<polygon fill="white" stroke="black" points="1991.29,-370.15 1991.29,-422.15 2210.71,-422.15 2210.71,-370.15 1991.29,-370.15"/>
<polygon fill="#c0392b" stroke="none" points="1999.29,-396.15 1999.29,-418.15 2202.71,-418.15 2202.71,-396.15 1999.29,-396.15"/>
<polygon fill="none" stroke="black" points="1999.29,-396.15 1999.29,-418.15 2202.71,-418.15 2202.71,-396.15 1999.29,-396.15"/>
<text xml:space="preserve" text-anchor="start" x="2077.11" y="-405.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">ActorPool</text>
<polygon fill="none" stroke="black" points="1999.29,-374.15 1999.29,-396.15 2202.71,-396.15 2202.71,-374.15 1999.29,-374.15"/>
<text xml:space="preserve" text-anchor="start" x="2004.29" y="-382.15" font-family="Helvetica,sans-Serif" font-size="10.00">actors: HashMap&lt;ActorAddress, ActorSlot&gt;</text>
</g>
<!-- Worker&#45;&gt;ActorPool -->
<g id="edge5" class="edge">
<title>Worker&#45;&gt;ActorPool</title>
<path fill="none" stroke="#333333" d="M2101,-535.37C2101,-535.37 2101,-434.08 2101,-434.08"/>
<polygon fill="#333333" stroke="#333333" points="2104.5,-434.08 2101,-424.08 2097.5,-434.08 2104.5,-434.08"/>
<text xml:space="preserve" text-anchor="middle" x="2112.51" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">owns</text>
</g>
<!-- Worker&#45;&gt;ReceiverCh -->
<g id="edge16" class="edge">
<title>Worker&#45;&gt;ReceiverCh</title>
<path fill="none" stroke="#333333" d="M2226.72,-539C2246.72,-539 2261.01,-539 2261.01,-539 2261.01,-539 2261.01,-433.86 2261.01,-433.86"/>
<polygon fill="#333333" stroke="#333333" points="2264.51,-433.86 2261.01,-423.86 2257.51,-433.86 2264.51,-433.86"/>
<text xml:space="preserve" text-anchor="middle" x="2433.39" y="-498.15" font-family="Helvetica,sans-Serif" font-size="9.00">transfer_rx +</text>
<text xml:space="preserve" text-anchor="middle" x="2433.39" y="-487.35" font-family="Helvetica,sans-Serif" font-size="9.00">spawn_rx</text>
</g>
<!-- Worker&#45;&gt;WorkerStats -->
<g id="edge22" class="edge">
<title>Worker&#45;&gt;WorkerStats</title>
<path fill="none" stroke="#e67300" stroke-width="2.5" d="M2227.04,-543C2402.39,-543 2701.65,-543 2701.65,-543 2701.65,-543 2701.65,-458.42 2701.65,-458.42"/>
<polygon fill="#e67300" stroke="#e67300" stroke-width="2.5" points="2705.15,-458.42 2701.65,-448.42 2698.15,-458.42 2705.15,-458.42"/>
<text xml:space="preserve" text-anchor="middle" x="2728.75" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">Arc</text>
</g>
<!-- WorkerContext -->
<g id="node20" class="node">
<title>WorkerContext</title>
<polygon fill="white" stroke="black" points="1979.05,-1054.15 1979.05,-1150.15 2170.95,-1150.15 2170.95,-1054.15 1979.05,-1054.15"/>
<polygon fill="#c0392b" stroke="none" points="1987.05,-1124.15 1987.05,-1146.15 2162.95,-1146.15 2162.95,-1124.15 1987.05,-1124.15"/>
<polygon fill="none" stroke="black" points="1987.05,-1124.15 1987.05,-1146.15 2162.95,-1146.15 2162.95,-1124.15 1987.05,-1124.15"/>
<text xml:space="preserve" text-anchor="start" x="2029.35" y="-1133.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">WorkerContext&lt;&#39;a&gt;</text>
<polygon fill="none" stroke="black" points="1987.05,-1102.15 1987.05,-1124.15 2162.95,-1124.15 2162.95,-1102.15 1987.05,-1102.15"/>
<text xml:space="preserve" text-anchor="start" x="1992.05" y="-1110.15" font-family="Helvetica,sans-Serif" font-size="10.00">worker_id: WorkerId</text>
<polygon fill="none" stroke="black" points="1987.05,-1080.15 1987.05,-1102.15 2162.95,-1102.15 2162.95,-1080.15 1987.05,-1080.15"/>
<text xml:space="preserve" text-anchor="start" x="1992.05" y="-1088.15" font-family="Helvetica,sans-Serif" font-size="10.00">tc: &amp;&#39;a TickContext&lt;&#39;a&gt;</text>
<polygon fill="none" stroke="black" points="1987.05,-1058.15 1987.05,-1080.15 2162.95,-1080.15 2162.95,-1058.15 1987.05,-1058.15"/>
<text xml:space="preserve" text-anchor="start" x="1992.05" y="-1066.15" font-family="Helvetica,sans-Serif" font-size="10.00">pending_local: &amp;&#39;a RefCell&lt;Vec&lt;...&gt;&gt;</text>
</g>
<!-- WorkerContext&#45;&gt;ContextInner -->
<g id="edge36" class="edge">
<title>WorkerContext&#45;&gt;ContextInner</title>
<path fill="none" stroke="#2e8b57" stroke-width="1.5" stroke-dasharray="1,5" d="M1978.68,-1062C1659.63,-1062 657.46,-1062 657.46,-1062 657.46,-1062 657.46,-658.51 657.46,-658.51"/>
<polygon fill="none" stroke="#2e8b57" stroke-width="1.5" points="660.96,-658.51 657.46,-648.51 653.96,-658.51 660.96,-658.51"/>
<text xml:space="preserve" text-anchor="middle" x="707.25" y="-867.65" font-family="Helvetica,sans-Serif" font-size="9.00">impl</text>
</g>
<!-- WorkerContext&#45;&gt;TickContext -->
<g id="edge32" class="edge">
<title>WorkerContext&#45;&gt;TickContext</title>
<path fill="none" stroke="#7b2d8b" stroke-width="1.5" stroke-dasharray="5,2" d="M1978.71,-1059C1915.32,-1059 1844,-1059 1844,-1059 1844,-1059 1844,-963.99 1844,-963.99"/>
<polygon fill="#7b2d8b" stroke="#7b2d8b" stroke-width="1.5" points="1847.5,-963.99 1844,-953.99 1840.5,-963.99 1847.5,-963.99"/>
<text xml:space="preserve" text-anchor="middle" x="1965.36" y="-1016.55" font-family="Helvetica,sans-Serif" font-size="9.00">&amp;&#39;a</text>
</g>
<!-- ActorSlot -->
<g id="node22" class="node">
<title>ActorSlot</title>
<polygon fill="white" stroke="black" points="1981.91,-193.35 1981.91,-267.35 2206.09,-267.35 2206.09,-193.35 1981.91,-193.35"/>
<polygon fill="#c0392b" stroke="none" points="1989.91,-241.35 1989.91,-263.35 2198.09,-263.35 2198.09,-241.35 1989.91,-241.35"/>
<polygon fill="none" stroke="black" points="1989.91,-241.35 1989.91,-263.35 2198.09,-263.35 2198.09,-241.35 1989.91,-241.35"/>
<text xml:space="preserve" text-anchor="start" x="2071.5" y="-250.35" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">ActorSlot</text>
<polygon fill="none" stroke="black" points="1989.91,-219.35 1989.91,-241.35 2198.09,-241.35 2198.09,-219.35 1989.91,-219.35"/>
<text xml:space="preserve" text-anchor="start" x="1994.91" y="-227.35" font-family="Helvetica,sans-Serif" font-size="10.00">mailbox: VecDeque&lt;Box&lt;dyn Any + Send&gt;&gt;</text>
<polygon fill="none" stroke="black" points="1989.91,-197.35 1989.91,-219.35 2198.09,-219.35 2198.09,-197.35 1989.91,-197.35"/>
<text xml:space="preserve" text-anchor="start" x="1994.91" y="-205.35" font-family="Helvetica,sans-Serif" font-size="10.00">actor: Box&lt;dyn AnyActor&gt;</text>
</g>
<!-- ActorPool&#45;&gt;ActorSlot -->
<g id="edge7" class="edge">
<title>ActorPool&#45;&gt;ActorSlot</title>
<path fill="none" stroke="#333333" d="M2098.69,-369.87C2098.69,-369.87 2098.69,-279.11 2098.69,-279.11"/>
<polygon fill="#333333" stroke="#333333" points="2102.19,-279.11 2098.69,-269.11 2095.19,-279.11 2102.19,-279.11"/>
<text xml:space="preserve" text-anchor="middle" x="2134.02" y="-299.55" font-family="Helvetica,sans-Serif" font-size="9.00">HashMap&lt;Addr, _&gt;</text>
</g>
<!-- ActorSlot&#45;&gt;AnyActor -->
<g id="edge8" class="edge">
<title>ActorSlot&#45;&gt;AnyActor</title>
<path fill="none" stroke="#333333" d="M1981.51,-198C1645.39,-198 671.76,-198 671.76,-198 671.76,-198 671.76,-106.52 671.76,-106.52"/>
<polygon fill="#333333" stroke="#333333" points="675.26,-106.52 671.76,-96.52 668.26,-106.52 675.26,-106.52"/>
<text xml:space="preserve" text-anchor="middle" x="675.27" y="-155.75" font-family="Helvetica,sans-Serif" font-size="9.00">Box&lt;dyn&gt;</text>
</g>
<!-- HybridChannel -->
<g id="node23" class="node">
<title>HybridChannel</title>
<polygon fill="white" stroke="black" points="2258.8,-193.35 2258.8,-267.35 2393.2,-267.35 2393.2,-193.35 2258.8,-193.35"/>
<polygon fill="#148f77" stroke="none" points="2266.8,-241.35 2266.8,-263.35 2385.2,-263.35 2385.2,-241.35 2266.8,-241.35"/>
<polygon fill="none" stroke="black" points="2266.8,-241.35 2266.8,-263.35 2385.2,-263.35 2385.2,-241.35 2266.8,-241.35"/>
<text xml:space="preserve" text-anchor="start" x="2281.55" y="-250.35" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">HybridChannel&lt;T&gt;</text>
<polygon fill="none" stroke="black" points="2266.8,-219.35 2266.8,-241.35 2385.2,-241.35 2385.2,-219.35 2266.8,-219.35"/>
<text xml:space="preserve" text-anchor="start" x="2271.8" y="-227.35" font-family="Helvetica,sans-Serif" font-size="10.00">ring: ArrayQueue&lt;T&gt;</text>
<polygon fill="none" stroke="black" points="2266.8,-197.35 2266.8,-219.35 2385.2,-219.35 2385.2,-197.35 2266.8,-197.35"/>
<text xml:space="preserve" text-anchor="start" x="2271.8" y="-205.35" font-family="Helvetica,sans-Serif" font-size="10.00">overflow: SegQueue&lt;T&gt;</text>
</g>
<!-- HybridChannel&#45;&gt;HybridChannel -->
<g id="edge17" class="edge">
<title>HybridChannel&#45;&gt;HybridChannel</title>
<path fill="none" stroke="#333333" d="M2303.6,-267.43C2303.6,-284.92 2303.6,-302 2303.6,-302 2303.6,-302 2254.91,-302 2254.91,-302 2254.91,-302 2254.91,-158 2254.91,-158 2254.91,-158 2326,-158 2326,-158 2326,-158 2326,-175.25 2326,-192.9"/>
</g>
<!-- SenderCh&#45;&gt;SenderT -->
<g id="edge37" class="edge">
<title>SenderCh&#45;&gt;SenderT</title>
<path fill="none" stroke="#2e8b57" stroke-width="1.5" stroke-dasharray="1,5" d="M2343.5,-579.5C2343.5,-546.75 2343.5,-495 2343.5,-495 2343.5,-495 1864.68,-495 1864.68,-495 1864.68,-495 1864.68,-437.27 1864.68,-437.27"/>
<polygon fill="none" stroke="#2e8b57" stroke-width="1.5" points="1868.18,-437.27 1864.68,-427.27 1861.18,-437.27 1868.18,-437.27"/>
<text xml:space="preserve" text-anchor="middle" x="2295.52" y="-498.15" font-family="Helvetica,sans-Serif" font-size="9.00">impl for</text>
<text xml:space="preserve" text-anchor="middle" x="2295.52" y="-487.35" font-family="Helvetica,sans-Serif" font-size="9.00">Sender&lt;M&gt;</text>
</g>
<!-- SenderCh&#45;&gt;HybridChannel -->
<g id="edge23" class="edge">
<title>SenderCh&#45;&gt;HybridChannel</title>
<path fill="none" stroke="#e67300" stroke-width="2.5" d="M2428.49,-579.32C2428.49,-493.8 2428.49,-230 2428.49,-230 2428.49,-230 2407.29,-230 2407.29,-230"/>
<polygon fill="#e67300" stroke="#e67300" stroke-width="2.5" points="2407.29,-226.5 2397.29,-230 2407.29,-233.5 2407.29,-226.5"/>
<text xml:space="preserve" text-anchor="middle" x="2485.75" y="-393.45" font-family="Helvetica,sans-Serif" font-size="9.00">Arc</text>
</g>
<!-- ReceiverCh&#45;&gt;HybridChannel -->
<g id="edge24" class="edge">
<title>ReceiverCh&#45;&gt;HybridChannel</title>
<path fill="none" stroke="#e67300" stroke-width="2.5" d="M2348.4,-369.87C2348.4,-369.87 2348.4,-281.38 2348.4,-281.38"/>
<polygon fill="#e67300" stroke="#e67300" stroke-width="2.5" points="2351.9,-281.38 2348.4,-271.38 2344.9,-281.38 2351.9,-281.38"/>
<text xml:space="preserve" text-anchor="middle" x="2337.75" y="-299.55" font-family="Helvetica,sans-Serif" font-size="9.00">Arc</text>
</g>
<!-- WorkerInfo -->
<g id="node27" class="node">
<title>WorkerInfo</title>
<polygon fill="white" stroke="black" points="2714.24,-811.35 2714.24,-929.35 2859.76,-929.35 2859.76,-811.35 2714.24,-811.35"/>
<polygon fill="#3949ab" stroke="none" points="2722.24,-903.35 2722.24,-925.35 2851.76,-925.35 2851.76,-903.35 2722.24,-903.35"/>
<polygon fill="none" stroke="black" points="2722.24,-903.35 2722.24,-925.35 2851.76,-925.35 2851.76,-903.35 2722.24,-903.35"/>
<text xml:space="preserve" text-anchor="start" x="2760.61" y="-912.35" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">WorkerInfo</text>
<polygon fill="none" stroke="black" points="2722.24,-881.35 2722.24,-903.35 2851.76,-903.35 2851.76,-881.35 2722.24,-881.35"/>
<text xml:space="preserve" text-anchor="start" x="2727.24" y="-889.35" font-family="Helvetica,sans-Serif" font-size="10.00">id: usize</text>
<polygon fill="none" stroke="black" points="2722.24,-859.35 2722.24,-881.35 2851.76,-881.35 2851.76,-859.35 2722.24,-859.35"/>
<text xml:space="preserve" text-anchor="start" x="2727.24" y="-867.35" font-family="Helvetica,sans-Serif" font-size="10.00">num_actors: usize</text>
<polygon fill="none" stroke="black" points="2722.24,-837.35 2722.24,-859.35 2851.76,-859.35 2851.76,-837.35 2722.24,-837.35"/>
<text xml:space="preserve" text-anchor="start" x="2727.24" y="-845.35" font-family="Helvetica,sans-Serif" font-size="10.00">mailbox_depth: usize</text>
<polygon fill="none" stroke="black" points="2722.24,-815.35 2722.24,-837.35 2851.76,-837.35 2851.76,-815.35 2722.24,-815.35"/>
<text xml:space="preserve" text-anchor="start" x="2727.24" y="-823.35" font-family="Helvetica,sans-Serif" font-size="10.00">messages_processed: u64</text>
</g>
<!-- RuntimeStats -->
<g id="node28" class="node">
<title>RuntimeStats</title>
<polygon fill="white" stroke="black" points="2695.36,-1054.15 2695.36,-1150.15 2878.64,-1150.15 2878.64,-1054.15 2695.36,-1054.15"/>
<polygon fill="#3949ab" stroke="none" points="2703.36,-1124.15 2703.36,-1146.15 2870.64,-1146.15 2870.64,-1124.15 2703.36,-1124.15"/>
<polygon fill="none" stroke="black" points="2703.36,-1124.15 2703.36,-1146.15 2870.64,-1146.15 2870.64,-1124.15 2703.36,-1124.15"/>
<text xml:space="preserve" text-anchor="start" x="2754.77" y="-1133.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">RuntimeStats</text>
<polygon fill="none" stroke="black" points="2703.36,-1102.15 2703.36,-1124.15 2870.64,-1124.15 2870.64,-1102.15 2703.36,-1102.15"/>
<text xml:space="preserve" text-anchor="start" x="2708.36" y="-1110.15" font-family="Helvetica,sans-Serif" font-size="10.00">num_workers: usize</text>
<polygon fill="none" stroke="black" points="2703.36,-1080.15 2703.36,-1102.15 2870.64,-1102.15 2870.64,-1080.15 2703.36,-1080.15"/>
<text xml:space="preserve" text-anchor="start" x="2708.36" y="-1088.15" font-family="Helvetica,sans-Serif" font-size="10.00">actors: Vec&lt;(ActorAddress, usize)&gt;</text>
<polygon fill="none" stroke="black" points="2703.36,-1058.15 2703.36,-1080.15 2870.64,-1080.15 2870.64,-1058.15 2703.36,-1058.15"/>
<text xml:space="preserve" text-anchor="start" x="2708.36" y="-1066.15" font-family="Helvetica,sans-Serif" font-size="10.00">workers: Vec&lt;WorkerInfo&gt;</text>
</g>
<!-- RuntimeStats&#45;&gt;WorkerInfo -->
<g id="edge4" class="edge">
<title>RuntimeStats&#45;&gt;WorkerInfo</title>
<path fill="none" stroke="#333333" d="M2787,-1053.84C2787,-1053.84 2787,-941.22 2787,-941.22"/>
<polygon fill="#333333" stroke="#333333" points="2790.5,-941.22 2787,-931.22 2783.5,-941.22 2790.5,-941.22"/>
<text xml:space="preserve" text-anchor="middle" x="2800.01" y="-1016.55" font-family="Helvetica,sans-Serif" font-size="9.00">Vec&lt;&gt;</text>
</g>
<!-- BackoffPolicy -->
<g id="node30" class="node">
<title>BackoffPolicy</title>
<polygon fill="white" stroke="black" points="2525.13,-337.15 2525.13,-455.15 2662.87,-455.15 2662.87,-337.15 2525.13,-337.15"/>
<polygon fill="#d4ac0d" stroke="none" points="2533.13,-429.15 2533.13,-451.15 2654.87,-451.15 2654.87,-429.15 2533.13,-429.15"/>
<polygon fill="none" stroke="black" points="2533.13,-429.15 2533.13,-451.15 2654.87,-451.15 2654.87,-429.15 2533.13,-429.15"/>
<text xml:space="preserve" text-anchor="start" x="2560.93" y="-438.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="white">BackoffPolicy</text>
<polygon fill="none" stroke="black" points="2533.13,-407.15 2533.13,-429.15 2654.87,-429.15 2654.87,-407.15 2533.13,-407.15"/>
<text xml:space="preserve" text-anchor="start" x="2538.13" y="-415.15" font-family="Helvetica,sans-Serif" font-size="10.00">spin_threshold: u32</text>
<polygon fill="none" stroke="black" points="2533.13,-385.15 2533.13,-407.15 2654.87,-407.15 2654.87,-385.15 2533.13,-385.15"/>
<text xml:space="preserve" text-anchor="start" x="2538.13" y="-393.15" font-family="Helvetica,sans-Serif" font-size="10.00">yield_threshold: u32</text>
<polygon fill="none" stroke="black" points="2533.13,-363.15 2533.13,-385.15 2654.87,-385.15 2654.87,-363.15 2533.13,-363.15"/>
<text xml:space="preserve" text-anchor="start" x="2538.13" y="-371.15" font-family="Helvetica,sans-Serif" font-size="10.00">sleep_increment_us: u64</text>
<polygon fill="none" stroke="black" points="2533.13,-341.15 2533.13,-363.15 2654.87,-363.15 2654.87,-341.15 2533.13,-341.15"/>
<text xml:space="preserve" text-anchor="start" x="2538.13" y="-349.15" font-family="Helvetica,sans-Serif" font-size="10.00">sleep_max_us: u64</text>
</g>
<!-- RuntimeConfig&#45;&gt;BackoffPolicy -->
<g id="edge3" class="edge">
<title>RuntimeConfig&#45;&gt;BackoffPolicy</title>
<path fill="none" stroke="#333333" d="M2594,-546.52C2594,-546.52 2594,-467.1 2594,-467.1"/>
<polygon fill="#333333" stroke="#333333" points="2597.5,-467.1 2594,-457.1 2590.5,-467.1 2597.5,-467.1"/>
<text xml:space="preserve" text-anchor="middle" x="2604.51" y="-492.75" font-family="Helvetica,sans-Serif" font-size="9.00">owns</text>
</g>
</g>
</svg>