NullableTypeEnforcer::bool()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 2
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
nc 1
nop 2
1
<?php
2
3
/**
4
 * This file is part of the sj-i/typist package.
5
 *
6
 * (c) sji <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace Typist;
15
16
final class NullableTypeEnforcer
17
{
18
    private function __construct()
19
    {
20
    }
21
22
    /**
23
     * @param-out bool|null $value_holder
24
     */
25
    public static function bool(?bool &$value_holder, ?bool $value): NullableBoolEnforcer
26
    {
27
        $value_holder = $value;
28
        return new NullableBoolEnforcer($value_holder);
29
    }
30
31
    /**
32
     * @param-out int|null $value_holder
33
     */
34
    public static function int(?int &$value_holder, ?int $value): NullableIntEnforcer
35
    {
36
        $value_holder = $value;
37
        return new NullableIntEnforcer($value_holder);
38
    }
39
40
    /**
41
     * @param-out float|null $value_holder
42
     */
43
    public static function float(?float &$value_holder, ?float $value): NullableFloatEnforcer
44
    {
45
        $value_holder = $value;
46
        return new NullableFloatEnforcer($value_holder);
47
    }
48
49
    /**
50
     * @param-out string|null $value_holder
51
     */
52
    public static function string(?string &$value_holder, ?string $value): NullableStringEnforcer
53
    {
54
        $value_holder = $value;
55
        return new NullableStringEnforcer($value_holder);
56
    }
57
58
    /**
59
     * @template T
60
     * @param class-string<T> $class_name
61
     * @param T|null $value_holder
62
     * @param T|null $value
63
     * @param-out T|null $value_holder
64
     * @return NullableClassEnforcer
65
     */
66
    public static function class(string $class_name, &$value_holder, $value): NullableClassEnforcer
67
    {
68
        $value_holder = $value;
69
        return new NullableClassEnforcer($class_name, $value_holder);
70
    }
71
}
72