Passed
Push — master ( c199ca...9d1d31 )
by Smoren
02:17
created

Value::and()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 2
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Smoren\Validator\Factories;
6
7
use Smoren\Validator\Interfaces\BaseRuleInterface;
8
use Smoren\Validator\Interfaces\CompositeRuleInterface;
9
use Smoren\Validator\Interfaces\ContainerRuleInterface;
10
use Smoren\Validator\Interfaces\FloatRuleInterface;
11
use Smoren\Validator\Interfaces\IntegerRuleInterface;
12
use Smoren\Validator\Rules\AndRule;
13
use Smoren\Validator\Rules\ContainerRule;
14
use Smoren\Validator\Rules\FloatRule;
15
use Smoren\Validator\Rules\IntegerRule;
16
use Smoren\Validator\Rules\NumericRule;
17
use Smoren\Validator\Rules\OrRule;
18
19
class Value
20
{
21
    /**
22
     * @return NumericRule
23
     */
24
    public static function numeric(): NumericRule
25
    {
26
        return new NumericRule();
27
    }
28
29
    /**
30
     * @return IntegerRuleInterface
31
     */
32
    public static function integer(): IntegerRuleInterface
33
    {
34
        return new IntegerRule();
35
    }
36
37
    /**
38
     * @return FloatRuleInterface
39
     */
40
    public static function float(): FloatRuleInterface
41
    {
42
        return new FloatRule();
43
    }
44
45
    /**
46
     * @return ContainerRuleInterface
47
     */
48
    public static function container(): ContainerRuleInterface
49
    {
50
        return new ContainerRule();
51
    }
52
53
    /**
54
     * @param array<BaseRuleInterface> $rules
55
     *
56
     * @return CompositeRuleInterface
57
     */
58
    public static function or(array $rules): CompositeRuleInterface
59
    {
60
        return new OrRule($rules);
61
    }
62
63
    /**
64
     * @param array<BaseRuleInterface> $rules
65
     *
66
     * @return CompositeRuleInterface
67
     */
68
    public static function and(array $rules): CompositeRuleInterface
69
    {
70
        return new AndRule($rules);
71
    }
72
}
73