Passed
Push — main ( dc8a0d...074ebe )
by Breno
01:58
created

UseRuleSet   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 10
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 10
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 2 1
A validate() 0 3 1
1
<?php
2
declare(strict_types=1);
3
4
namespace BrenoRoosevelt\Validation\Rules;
5
6
use Attribute;
7
use BrenoRoosevelt\Validation\Result;
8
use BrenoRoosevelt\Validation\Rule;
9
use BrenoRoosevelt\Validation\RuleSetFactory;
10
11
#[Attribute(Attribute::TARGET_PROPERTY)]
12
class UseRuleSet implements Rule
13
{
14
    public function __construct(private object|string $objectOrClass, private string $property)
15
    {
16
    }
17
18
    public function validate(mixed $input, array $context = []): Result
19
    {
20
        return RuleSetFactory::fromProperty($this->objectOrClass, $this->property)->validate($input, $context);
21
    }
22
}
23