diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2024-11-07 19:23:35 +0100 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2024-11-08 16:43:29 +0100 |
commit | fe30b5497593dcfb4445d72c99fa357011cebf46 (patch) | |
tree | 6d4d89fed5dcd52e26dd1e07e7cae04206c737d4 /vendor/maennchen/zipstream-php/test/EndlessCycleStream.php | |
parent | b00ae997a5dab923a99e1f1cccf35bb52eba9a62 (diff) | |
download | volse-hubzilla-fe30b5497593dcfb4445d72c99fa357011cebf46.tar.gz volse-hubzilla-fe30b5497593dcfb4445d72c99fa357011cebf46.tar.bz2 volse-hubzilla-fe30b5497593dcfb4445d72c99fa357011cebf46.zip |
Update php-epub-meta and use composer for dep handling.
Note that we upgrade to the 2.x branch of the dependency, as the 3.x
branch requires PHP version 8.2 or later. There's no reason for us to
move our minimum supported version of PHP just yet.
Diffstat (limited to 'vendor/maennchen/zipstream-php/test/EndlessCycleStream.php')
-rw-r--r-- | vendor/maennchen/zipstream-php/test/EndlessCycleStream.php | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/vendor/maennchen/zipstream-php/test/EndlessCycleStream.php b/vendor/maennchen/zipstream-php/test/EndlessCycleStream.php new file mode 100644 index 000000000..d9e7df1fb --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/EndlessCycleStream.php @@ -0,0 +1,104 @@ +<?php + +declare(strict_types=1); + +namespace ZipStream\Test; + +use Psr\Http\Message\StreamInterface; +use RuntimeException; + +class EndlessCycleStream implements StreamInterface +{ + private int $offset = 0; + + public function __construct(private readonly string $toRepeat = '0') {} + + public function __toString(): string + { + throw new RuntimeException('Infinite Stream!'); + } + + public function close(): void + { + $this->detach(); + } + + /** + * @return null + */ + public function detach() + { + return; + } + + public function getSize(): ?int + { + return null; + } + + public function tell(): int + { + return $this->offset; + } + + public function eof(): bool + { + return false; + } + + public function isSeekable(): bool + { + return true; + } + + public function seek(int $offset, int $whence = SEEK_SET): void + { + switch ($whence) { + case SEEK_SET: + $this->offset = $offset; + break; + case SEEK_CUR: + $this->offset += $offset; + break; + case SEEK_END: + throw new RuntimeException('Infinite Stream!'); + break; + } + } + + public function rewind(): void + { + $this->seek(0); + } + + public function isWritable(): bool + { + return false; + } + + public function write(string $string): int + { + throw new RuntimeException('Not writeable'); + } + + public function isReadable(): bool + { + return true; + } + + public function read(int $length): string + { + $this->offset += $length; + return substr(str_repeat($this->toRepeat, (int) ceil($length / strlen($this->toRepeat))), 0, $length); + } + + public function getContents(): string + { + throw new RuntimeException('Infinite Stream!'); + } + + public function getMetadata(?string $key = null): array|null + { + return $key !== null ? null : []; + } +} |