<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1133 118" width="1133" height="118">
  <!-- svg-source:excalidraw -->
  
  <defs>
    <style class="style-fonts">
      @font-face {
        font-family: "Virgil";
        src: url("https://excalidraw.com/Virgil.woff2");
      }
      @font-face {
        font-family: "Cascadia";
        src: url("https://excalidraw.com/Cascadia.woff2");
      }
    </style>
  </defs>
  <rect x="0" y="0" width="1133" height="118" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(444 10) rotate(0 122.5 49)"><path d="M24.5 0 M24.5 0 C68.68 -1.2, 112.89 0.83, 220.5 0 M24.5 0 C89.66 -0.64, 153.54 -0.11, 220.5 0 M220.5 0 C235.66 1.87, 245.57 7.88, 245 24.5 M220.5 0 C234.75 -0.39, 246.77 6.67, 245 24.5 M245 24.5 C244.43 37.56, 245.46 50.53, 245 73.5 M245 24.5 C245.27 40.76, 244.78 55.13, 245 73.5 M245 73.5 C243.13 90.56, 235.82 97.92, 220.5 98 M245 73.5 C243.3 90.33, 238.34 97.4, 220.5 98 M220.5 98 C164.3 99.03, 109.71 98.66, 24.5 98 M220.5 98 C173.23 97.4, 126.24 97.89, 24.5 98 M24.5 98 C9.72 98.99, -0.6 91.4, 0 73.5 M24.5 98 C6.43 99.45, -1.75 88.83, 0 73.5 M0 73.5 C0.28 57.17, -0.7 43.43, 0 24.5 M0 73.5 C0.36 54.39, -0.95 34.77, 0 24.5 M0 24.5 C1.38 8.94, 8.03 0.47, 24.5 0 M0 24.5 C2.3 9.91, 6.92 -1.77, 24.5 0" stroke="#e03131" stroke-width="1" fill="none"></path></g><g transform="translate(478.625 47) rotate(0 87.875 12)"><text x="87.875" y="0" font-family="Cascadia, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">struct ring_buf</text></g><g stroke-linecap="round" transform="translate(10 10) rotate(0 122.5 49)"><path d="M24.5 0 M24.5 0 C70.32 -3.36, 118.92 -2.91, 220.5 0 M24.5 0 C65.84 -2.26, 106.57 -1.65, 220.5 0 M220.5 0 C238.45 1.81, 243.75 7.1, 245 24.5 M220.5 0 C237.47 -0.97, 246.96 9.06, 245 24.5 M245 24.5 C242.74 40.67, 243.61 58.45, 245 73.5 M245 24.5 C245.23 41.06, 244.3 58.54, 245 73.5 M245 73.5 C244.12 91.6, 234.89 96.31, 220.5 98 M245 73.5 C247 89, 235.5 97.93, 220.5 98 M220.5 98 C165.03 96.92, 112.45 95.13, 24.5 98 M220.5 98 C150.17 97.37, 80.86 96.01, 24.5 98 M24.5 98 C8.84 99.29, 0.05 91.49, 0 73.5 M24.5 98 C7.9 96.39, -1.38 92.11, 0 73.5 M0 73.5 C1 63.39, 1.66 49.37, 0 24.5 M0 73.5 C0.64 59.37, 1.31 43.16, 0 24.5 M0 24.5 C1.14 8.45, 6.78 1.32, 24.5 0 M0 24.5 C-0.44 7.92, 10.28 2.01, 24.5 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(89.9000015258789 46.5) rotate(0 42.599998474121094 12.5)"><text x="42.599998474121094" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Producer</text></g><g stroke-linecap="round" transform="translate(878 10) rotate(0 122.5 49)"><path d="M24.5 0 M24.5 0 C65.37 0.28, 105.44 2.33, 220.5 0 M24.5 0 C74.56 0.6, 124.74 0.49, 220.5 0 M220.5 0 C238.8 1.07, 243.11 7.13, 245 24.5 M220.5 0 C238.22 0.7, 243.54 7.66, 245 24.5 M245 24.5 C244.58 41.96, 243.73 60.29, 245 73.5 M245 24.5 C244.08 43.54, 244.1 61.38, 245 73.5 M245 73.5 C243.73 88.11, 235.3 98.14, 220.5 98 M245 73.5 C243.32 89.41, 238.7 97.01, 220.5 98 M220.5 98 C178.67 96.59, 135.18 94.76, 24.5 98 M220.5 98 C174.44 97.76, 126.34 97.55, 24.5 98 M24.5 98 C7.36 97.98, -0.72 88.05, 0 73.5 M24.5 98 C8.92 96.94, -1.33 87.7, 0 73.5 M0 73.5 C1.45 62.06, 2.29 54, 0 24.5 M0 73.5 C0.29 55.27, -0.48 35.83, 0 24.5 M0 24.5 C0.38 7.94, 6.43 1.68, 24.5 0 M0 24.5 C-0.2 6.36, 7.11 -0.91, 24.5 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(956.6500015258789 46.5) rotate(0 43.849998474121094 12.5)"><text x="43.849998474121094" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Consumer</text></g><g stroke-linecap="round"><g transform="translate(256.5 58.000190291026) rotate(0 90.35605026446285 -0.5976841147989091)"><path d="M-1.14 0 C29.11 -0.07, 151.37 -1.08, 181.85 -1.19 M0.47 -1.05 C30.6 -0.95, 151.2 -0.5, 181.34 -0.28" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(256.5 58.000190291026) rotate(0 90.35605026446285 -0.5976841147989091)"><path d="M153.09 11.25 C160.51 7.98, 170.66 2.23, 179.72 -0.55 M152.64 10.7 C161.65 6.93, 168.65 4.13, 180.68 -0.89" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(256.5 58.000190291026) rotate(0 90.35605026446285 -0.5976841147989091)"><path d="M153.2 -9.28 C160.44 -5.76, 170.56 -4.73, 179.72 -0.55 M152.75 -9.82 C161.88 -7.72, 168.84 -4.65, 180.68 -0.89" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(695.5 60.00012163676706) rotate(0 87.01258466748516 0.22549524154558753)"><path d="M0.37 0.35 C29.67 0.42, 145.79 -0.47, 174.92 -0.38 M-0.9 -0.51 C28.41 -0.21, 145.14 1.04, 174.46 0.96" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(695.5 60.00012163676706) rotate(0 87.01258466748516 0.22549524154558753)"><path d="M146.81 12.62 C152.01 10.66, 160.45 5.9, 175.34 2.82 M146.36 10.87 C157.2 7.74, 167.57 2.82, 174.13 1.17" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(695.5 60.00012163676706) rotate(0 87.01258466748516 0.22549524154558753)"><path d="M146.91 -7.9 C151.96 -5.23, 160.37 -5.37, 175.34 2.82 M146.46 -9.65 C157.09 -5.33, 167.42 -2.8, 174.13 1.17" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(271.5 78) rotate(0 76.26667022705078 12)"><text x="0" y="0" font-family="Cascadia, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ring_buf_put*</text></g><g transform="translate(707.1999969482422 77) rotate(0 76.26667022705078 12)"><text x="0" y="0" font-family="Cascadia, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ring_buf_get*</text></g></svg>