diff options
Diffstat (limited to 'vendor/maennchen/zipstream-php/src/PackField.php')
-rw-r--r-- | vendor/maennchen/zipstream-php/src/PackField.php | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/vendor/maennchen/zipstream-php/src/PackField.php b/vendor/maennchen/zipstream-php/src/PackField.php deleted file mode 100644 index 892b4009a..000000000 --- a/vendor/maennchen/zipstream-php/src/PackField.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php - -declare(strict_types=1); - -namespace ZipStream; - -use RuntimeException; - -/** - * @internal - * TODO: Make class readonly when requiring PHP 8.2 exclusively - */ -class PackField -{ - public const MAX_V = 0xFFFFFFFF; - - public const MAX_v = 0xFFFF; - - public function __construct( - public readonly string $format, - public readonly int|string $value - ) {} - - /** - * Create a format string and argument list for pack(), then call - * pack() and return the result. - */ - public static function pack(self ...$fields): string - { - $fmt = array_reduce($fields, function (string $acc, self $field) { - return $acc . $field->format; - }, ''); - - $args = array_map(function (self $field) { - switch ($field->format) { - case 'V': - if ($field->value > self::MAX_V) { - throw new RuntimeException(print_r($field->value, true) . ' is larger than 32 bits'); - } - break; - case 'v': - if ($field->value > self::MAX_v) { - throw new RuntimeException(print_r($field->value, true) . ' is larger than 16 bits'); - } - break; - case 'P': break; - default: - break; - } - - return $field->value; - }, $fields); - - return pack($fmt, ...$args); - } -} |