Represents a stream of items that can be read from.

Any class that implements this interface can be used by a Pump to pump data from it to a WriteStream.

no type hierarchy

- `ReadStream`
  - `StreamBase`

- `ReadStream`
  - `AsyncFile`
  - `DatagramSocket`
  - `HttpClientRequest`
  - `HttpClientResponse`
  - `HttpServerFileUpload`
  - `HttpServerRequest`
  - `JsonParser`
  - `MessageConsumer`
  - `NetSocket`
  - `RecordParser`
  - `TimeoutStream`
  - `WebSocketBase`
    - `ServerWebSocket`
    - `WebSocket`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`

Methods
`endHandler` | `shared ReadStream<T> endHandler(Anything()? endHandler)` Set an end handler. Once the stream has ended, and there is no more data to be read, this handler will be called.
`exceptionHandler` | `shared ReadStream<T> exceptionHandler(Anything(Throwable)? handler)` Set an exception handler on the read stream. Parameters: `handler` the exception handler
`handler` | `shared ReadStream<T> handler(Anything(T)? handler)` Set a data handler. As data is read, the handler will be called with the data.
`pause` | `shared ReadStream<T> pause()` Pause the `ReadSupport`. While it's paused, no data will be sent to the `dataHandler`
`resume` | `shared ReadStream<T> resume()` Resume reading. If the `ReadSupport` has been paused, reading will recommence on it.

Inherited Methods
Methods inherited from: `Object` `equals`
Methods inherited from: `StreamBase` `exceptionHandler()`