I'm using Marc Gravell's Pipelines.Sockets.Unofficial library to get an IDuplexPipe over a socket, but I'm finding a case where I need to modify a message header before flushing. If I call Advance, am I guaranteed it will never flush until I call FlushAsync? It's implied by the types (Advance is synchronous and Flush isn't) but I was hoping someone had a definite answer.
Also, can I sensibly write to a point in the buffer after I've advanced past it?