| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- <?php
 
- declare(strict_types = 1);
 
- namespace BaconQrCode\Common;
 
- use DASPRiD\Enum\AbstractEnum;
 
- /**
 
-  * Enum representing various modes in which data can be encoded to bits.
 
-  *
 
-  * @method static self TERMINATOR()
 
-  * @method static self NUMERIC()
 
-  * @method static self ALPHANUMERIC()
 
-  * @method static self STRUCTURED_APPEND()
 
-  * @method static self BYTE()
 
-  * @method static self ECI()
 
-  * @method static self KANJI()
 
-  * @method static self FNC1_FIRST_POSITION()
 
-  * @method static self FNC1_SECOND_POSITION()
 
-  * @method static self HANZI()
 
-  */
 
- final class Mode extends AbstractEnum
 
- {
 
-     protected const TERMINATOR = [[0, 0, 0], 0x00];
 
-     protected const NUMERIC = [[10, 12, 14], 0x01];
 
-     protected const ALPHANUMERIC = [[9, 11, 13], 0x02];
 
-     protected const STRUCTURED_APPEND = [[0, 0, 0], 0x03];
 
-     protected const BYTE = [[8, 16, 16], 0x04];
 
-     protected const ECI = [[0, 0, 0], 0x07];
 
-     protected const KANJI = [[8, 10, 12], 0x08];
 
-     protected const FNC1_FIRST_POSITION = [[0, 0, 0], 0x05];
 
-     protected const FNC1_SECOND_POSITION = [[0, 0, 0], 0x09];
 
-     protected const HANZI = [[8, 10, 12], 0x0d];
 
-     /**
 
-      * @var int[]
 
-      */
 
-     private $characterCountBitsForVersions;
 
-     /**
 
-      * @var int
 
-      */
 
-     private $bits;
 
-     protected function __construct(array $characterCountBitsForVersions, int $bits)
 
-     {
 
-         $this->characterCountBitsForVersions = $characterCountBitsForVersions;
 
-         $this->bits = $bits;
 
-     }
 
-     /**
 
-      * Returns the number of bits used in a specific QR code version.
 
-      */
 
-     public function getCharacterCountBits(Version $version) : int
 
-     {
 
-         $number = $version->getVersionNumber();
 
-         if ($number <= 9) {
 
-             $offset = 0;
 
-         } elseif ($number <= 26) {
 
-             $offset = 1;
 
-         } else {
 
-             $offset = 2;
 
-         }
 
-         return $this->characterCountBitsForVersions[$offset];
 
-     }
 
-     /**
 
-      * Returns the four bits used to encode this mode.
 
-      */
 
-     public function getBits() : int
 
-     {
 
-         return $this->bits;
 
-     }
 
- }
 
 
  |