Certain constructs are available only for seekable or tellable streams (in-memory and files). Sockets and pipes do not support neither, so you’ll have to first read the data from the stream and parse it in-memory, or use experimental Rebuffered wrapper.

Pointer allows for non-sequential construction. The pointer first moves the stream into new position, does the construction, and then restores the stream back to original position. This allows for random-access within the stream.