PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 6.3.0
Defender Security – Malware Scanner, Login Security & Firewall v6.3.0
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / lib / packages / Ramsey / Uuid / Math / BrickMathRoundingMode.php

BrickMathRoundingMode.php in Defender Security – Malware Scanner, Login Security & Firewall 6.3.0, at lib/packages/Ramsey/Uuid/Math/BrickMathRoundingMode.php

61 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 <[email protected]>
10 * @license http://opensource.org/licenses/MIT MIT
11 */
12
13 declare(strict_types=1);
14
15 namespace WP_DEFENDER_VENDOR\Ramsey\Uuid\Math;
16
17 use WP_DEFENDER_VENDOR\Brick\Math\RoundingMode as BrickMathRounding;
18
19 /**
20 * @internal Polyfill for WP_DEFENDER_VENDOR\Brick\Math\RoundingMode constant naming
21 * changes introduced in brick/math 0.15 (UPPER_SNAKE_CASE → PascalCase)
22 */
23 final class BrickMathRoundingMode
24 {
25 /**
26 * Maps ramsey/uuid rounding mode constants to their PascalCase (>= 0.15)
27 * and UPPER_SNAKE_CASE (< 0.15) equivalents in brick/math
28 */
29 private const ROUNDING_MODE_MAP = [
30 RoundingMode::UNNECESSARY => ['Unnecessary', 'UNNECESSARY'],
31 RoundingMode::UP => ['Up', 'UP'],
32 RoundingMode::DOWN => ['Down', 'DOWN'],
33 RoundingMode::CEILING => ['Ceiling', 'CEILING'],
34 RoundingMode::FLOOR => ['Floor', 'FLOOR'],
35 RoundingMode::HALF_UP => ['HalfUp', 'HALF_UP'],
36 RoundingMode::HALF_DOWN => ['HalfDown', 'HALF_DOWN'],
37 RoundingMode::HALF_CEILING => ['HalfCeiling', 'HALF_CEILING'],
38 RoundingMode::HALF_FLOOR => ['HalfFloor', 'HALF_FLOOR'],
39 RoundingMode::HALF_EVEN => ['HalfEven', 'HALF_EVEN'],
40 ];
41
42 /**
43 * Resolves a ramsey/uuid rounding mode to the correct
44 * WP_DEFENDER_VENDOR\Brick\Math\RoundingMode value for the installed version.
45 *
46 * @return BrickMathRounding::*
47 */
48 public static function resolve(int $roundingMode)
49 {
50 [$pascal, $snake] = self::ROUNDING_MODE_MAP[$roundingMode]
51 ?? self::ROUNDING_MODE_MAP[RoundingMode::UNNECESSARY];
52
53 $class = BrickMathRounding::class;
54
55 /** @var BrickMathRounding::* */
56 return defined("$class::$pascal")
57 ? constant("$class::$pascal")
58 : constant("$class::$snake");
59 }
60 }
61