These are just a couple of brain farts that came up and I'd rather note down.
There's no clear structure.

RFC 1341 Boundary Matching in a Circular Buffer
1. Algorithm Considerations

Knuth-Morris-Pratt (KMP) Limitations:

    Useful when patterns have prefix-suffix overlaps for efficient skipping.

    If the failure table consists only of zeros, KMP provides no speed advantage
    over naive searching.

    Boundary pattern is arbitrary, meaning KMP’s preprocessing may not be
    beneficial.

Alternatives to KMP:

    Rabin-Karp rolling hash → Uses fast hash comparisons instead of
    character-by-character matching.

    Boyer-Moore-Horspool → Precomputes skip distances to avoid redundant
    comparisons, works well for longer patterns.

    Crochemore-Perrin two-way search → used by str.find(), flexible
    but assumes a linear memory layout so not really applicable for my circular
    buffer approach

2. Boundary Characteristics

Max length: 70 bytes. Character set: ASCII only. No structure guarantees: The
boundary is client-defined, so I must be able to handle arbitrary sequences.

3. Algorithm Selection

Rolling Hash → Best for arbitrary short-to-medium patterns in a circular buffer.
Boyer-Moore → Ideal if the boundary has distinct character distributions to
optimize skipping.




# Optimized Chunk-Based Rolling Hash Matching

We need to efficiently detect an RFC 1341 multipart boundary inside a circular
buffer, ensuring minimal overhead while avoiding unnecessary comparisons.

Traditional approaches like Knuth-Morris-Pratt (KMP) don’t provide an advantage
when the boundary lacks repeated subpatterns. Meanwhile, full rolling hash
matching scans every byte, which can be wasteful.

Thus, we introduce a chunk-wise hash-based skipping strategy, allowing us to
skip large sections of the buffer when an early non-match is detected.

## Core Idea

Precompute hashes for evenly sized chunks of the boundary. -> First, match only
the hash of the first chunk → immediately skip unnecessary buffer sections if no
match. -> If the first chunk matches, progressively verify subsequent chunks
until the full boundary is confirmed.  Benefits Over Full Matching

## Benefits Over Full Matching

- Reduces comparisons significantly → eliminates large sections early when
  non-matches occur.
- Balances preprocessing cost vs runtime → faster
  elimination means fewer wasted cycles.
  Integrates seamlessly into circular buffers → allows skipping intelligently.


### Precompute Chunk Hashes

- Divide the pattern into `N` equal-sized chunks (e.g., 7 chunks of 10 bytes
  for a 70-byte boundary).
- Compute a rolling hash for each chunk in addition to the full pattern, storing
  them for quick lookup.

### Sliding Window Search in the Buffer

- Compute the rolling hash for each window of size chunk_size.
- Compare the first chunk’s hash with the buffer window.
- If no match, skip boundary_length - chunk_size bytes.

### Progressive Chunk Verification

- If the first chunk matches, verify the next chunk sequentially.
- Continue matching chunks until the full boundary is confirmed.
- Perform final character-by-character validation to rule out hash collisions.
