/// The type must be `Send`, as it is possible for the operation instance to be moved between threads between sequential runs.
/// The state is only reused for input streams from the same input. As processing unrelated streams (different inputs) can happen concurrently, each new input has a new state object created for it (see `create_state_for()`.)
//TODO: Turn this into an iterator type that takes a stream, reads into a growing buffer until `P` is found, then returns the buffer up to, but not including, `P`, removes that part from the buffer, and continues.
todo!()
}
/// An iterator that grows an internal buffer from an input stream until a substring of bytes in that buffer is found.
/// The iterator then yeilds the part of the buffer containing the pre-substring section, removes that section and the subsrtring from itself, and continues.