diff options
Diffstat (limited to 'vendor/bakame/http-structured-fields/src/Validation/Result.php')
-rw-r--r-- | vendor/bakame/http-structured-fields/src/Validation/Result.php | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/vendor/bakame/http-structured-fields/src/Validation/Result.php b/vendor/bakame/http-structured-fields/src/Validation/Result.php new file mode 100644 index 000000000..f765efda0 --- /dev/null +++ b/vendor/bakame/http-structured-fields/src/Validation/Result.php @@ -0,0 +1,34 @@ +<?php + +declare(strict_types=1); + +namespace Bakame\Http\StructuredFields\Validation; + +final class Result +{ + private function __construct( + public readonly ValidatedParameters|ValidatedItem|null $data, + public readonly ViolationList $errors, + ) { + } + + public function isSuccess(): bool + { + return $this->errors->isEmpty(); + } + + public function isFailed(): bool + { + return $this->errors->isNotEmpty(); + } + + public static function success(ValidatedItem|ValidatedParameters $data): self + { + return new self($data, new ViolationList()); + } + + public static function failed(ViolationList $errors): self + { + return new self(null, $errors); + } +} |