Some InputStream sources support lookahead without advancing the stream, like BufferReader and BufferedInputStream. This is used in Parquet's internal IO APIs, so it would be useful to be able to remove these after a deprecation cycle
If an InputStream does not support Peek, the returned string_view would have zero size.
Another option is to have Peek return Status, so that NotImplemented can be returned. I would prefer to return 0-length if the operation is not supported