diff options
author | Mario <mario@mariovavti.com> | 2024-11-09 10:24:26 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2024-11-09 10:24:26 +0000 |
commit | 0ed08274f16d65b427bd4a5bbd8bd5bd6b2a65c2 (patch) | |
tree | 25b05973f824b95fc5705cf8aa79b86a44cfde00 /vendor/maennchen/zipstream-php/test/EndlessCycleStream.php | |
parent | 2a152e0803309eb3646316bbe0d2a47353bad2b9 (diff) | |
parent | 0534fe68869aae231259ee48a38b4533f3f1ff99 (diff) | |
download | volse-hubzilla-0ed08274f16d65b427bd4a5bbd8bd5bd6b2a65c2.tar.gz volse-hubzilla-0ed08274f16d65b427bd4a5bbd8bd5bd6b2a65c2.tar.bz2 volse-hubzilla-0ed08274f16d65b427bd4a5bbd8bd5bd6b2a65c2.zip |
Merge branch 'clean-up-some-dependencies' into 'dev'
Clean up deps and upgrade EpubMeta
See merge request hubzilla/core!2162
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 : []; + } +} |