Code Duplication    Length = 17-17 lines in 2 locations

src/IO/ResourceInputStream.php 1 location

@@ 20-36 (lines=17) @@
17
     */
18
    private $stream;
19
20
    public function __construct($stream = null)
21
    {
22
        if ($stream === null) {
23
            $stream = STDIN;
24
        }
25
26
        if (!is_resource($stream) || get_resource_type($stream) !== 'stream') {
27
            throw new \InvalidArgumentException('Expected a valid stream');
28
        }
29
30
        $meta = stream_get_meta_data($stream);
31
        if (strpos($meta['mode'], 'r') === false && strpos($meta['mode'], '+') === false) {
32
            throw new \InvalidArgumentException('Expected a readable stream');
33
        }
34
35
        $this->stream = $stream;
36
    }
37
38
    public function read(int $numBytes, callable $callback) : void
39
    {

src/IO/ResourceOutputStream.php 1 location

@@ 20-36 (lines=17) @@
17
     */
18
    private $stream;
19
20
    public function __construct($stream = null)
21
    {
22
        if ($stream === null) {
23
            $stream = STDOUT;
24
        }
25
26
        if (!is_resource($stream) || get_resource_type($stream) !== 'stream') {
27
            throw new \InvalidArgumentException('Expected a valid stream');
28
        }
29
30
        $meta = stream_get_meta_data($stream);
31
        if (strpos($meta['mode'], 'r') !== false && strpos($meta['mode'], '+') === false) {
32
            throw new \InvalidArgumentException('Expected a writable stream');
33
        }
34
35
        $this->stream = $stream;
36
    }
37
38
    public function write(string $buffer): void
39
    {