general-sam 1.0.1

A general suffix automaton implementation in Rust
Documentation
<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css"
  integrity="sha384-n8MVd4RsNIU0tAv4ct0nTaAbDJwPJzDEaqSD1odI+WdtXRGWt2kTvGFasHpSy3SV"
  crossorigin="anonymous"
/>
<script
  defer
  src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"
  integrity="sha384-XjKyOOlGwcjNTAIQHIpgOno0Hl1YQqzUOEleOLALmuqehneUG+vnGctmUb0ZY0l8"
  crossorigin="anonymous"
></script>
<script
  defer
  src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js"
  integrity="sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05"
  crossorigin="anonymous"
></script>
<script
  src="https://cdn.jsdelivr.net/npm/mermaid@10.8.0/dist/mermaid.min.js"
  integrity="sha256-4XUY29zwNw113fj/hwDto4DsA6gxjC2PaJ8BRRtwlAc="
  crossorigin="anonymous"
></script>
<script>
  // the mermaid part is from https://github.com/rust-lang/mdBook/issues/762

  function patchMermaidCodeElementClass() {
    var elements = document.getElementsByClassName("language-mermaid");
    Array.from(elements).forEach((pre) => {
      Array.from(pre.childNodes).forEach((code) => {
        if (code.tagName.toLowerCase() == "code") {
          code.className = "mermaid";
        }
      });
    });
  }

  document.addEventListener("DOMContentLoaded", function () {
    renderMathInElement(document.body, {
      delimiters: [
        { left: "$$", right: "$$", display: true },
        { left: "$", right: "$", display: false },
        { left: "\\(", right: "\\)", display: false },
        { left: "\\[", right: "\\]", display: true },
      ],
      throwOnError: false,
    });

    patchMermaidCodeElementClass();
    mermaid.initialize({ startOnLoad: true });
  });
</script>