Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/**
4
 * This file is part of the ramsey/uuid library
5
 *
6
 * For the full copyright and license information, please view the LICENSE
7
 * file that was distributed with this source code.
8
 *
9
 * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
10
 * @license http://opensource.org/licenses/MIT MIT
11
 */
12
 
13
declare(strict_types=1);
14
 
15
namespace Ramsey\Uuid;
16
 
17
/**
18
 * Provides binary math utilities
19
 */
20
class BinaryUtils
21
{
22
    /**
23
     * Applies the RFC 4122 variant field to the 16-bit clock sequence
24
     *
25
     * @link http://tools.ietf.org/html/rfc4122#section-4.1.1 RFC 4122, § 4.1.1: Variant
26
     *
27
     * @param int $clockSeq The 16-bit clock sequence value before the RFC 4122
28
     *     variant is applied
29
     *
30
     * @return int The 16-bit clock sequence multiplexed with the UUID variant
31
     *
32
     * @psalm-pure
33
     */
34
    public static function applyVariant(int $clockSeq): int
35
    {
36
        $clockSeq = $clockSeq & 0x3fff;
37
        $clockSeq |= 0x8000;
38
 
39
        return $clockSeq;
40
    }
41
 
42
    /**
43
     * Applies the RFC 4122 version number to the 16-bit `time_hi_and_version` field
44
     *
45
     * @link http://tools.ietf.org/html/rfc4122#section-4.1.3 RFC 4122, § 4.1.3: Version
46
     *
47
     * @param int $timeHi The value of the 16-bit `time_hi_and_version` field
48
     *     before the RFC 4122 version is applied
49
     * @param int $version The RFC 4122 version to apply to the `time_hi` field
50
     *
51
     * @return int The 16-bit time_hi field of the timestamp multiplexed with
52
     *     the UUID version number
53
     *
54
     * @psalm-pure
55
     */
56
    public static function applyVersion(int $timeHi, int $version): int
57
    {
58
        $timeHi = $timeHi & 0x0fff;
59
        $timeHi |= $version << 12;
60
 
61
        return $timeHi;
62
    }
63
}