Wraps 2 sinks and will automatically begin reading from the second only when the first is empty.
A Pipe is a callback-based data transport abstraction meant for handling streams.
This is a special exception that Input/Output controllers look for when error handling pipes.
A Sink is the write side of a pipe.
A Source is the read side of a pipe.
When a user attempts to push a value into a pipe, and the pipe either fills or was already full, a Trigger is returned in the PushResult.
Multiplexing is the process of combining multiple independant streams into a single stream.