diff options
Diffstat (limited to 'vendor/league/uri-interfaces/Idna/Result.php')
-rw-r--r-- | vendor/league/uri-interfaces/Idna/Result.php | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/league/uri-interfaces/Idna/Result.php b/vendor/league/uri-interfaces/Idna/Result.php new file mode 100644 index 000000000..02d713f5c --- /dev/null +++ b/vendor/league/uri-interfaces/Idna/Result.php @@ -0,0 +1,64 @@ +<?php + +/** + * League.Uri (https://uri.thephpleague.com) + * + * (c) Ignace Nyamagana Butera <nyamsprod@gmail.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace League\Uri\Idna; + +/** + * @see https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/uidna_8h.html + */ +final class Result +{ + private function __construct( + private readonly string $domain, + private readonly bool $isTransitionalDifferent, + /** @var array<Error> */ + private readonly array $errors + ) { + } + + /** + * @param array{result:string, isTransitionalDifferent:bool, errors:int} $infos + */ + public static function fromIntl(array $infos): self + { + return new self($infos['result'], $infos['isTransitionalDifferent'], Error::filterByErrorBytes($infos['errors'])); + } + + public function domain(): string + { + return $this->domain; + } + + public function isTransitionalDifferent(): bool + { + return $this->isTransitionalDifferent; + } + + /** + * @return array<Error> + */ + public function errors(): array + { + return $this->errors; + } + + public function hasErrors(): bool + { + return [] !== $this->errors; + } + + public function hasError(Error $error): bool + { + return in_array($error, $this->errors, true); + } +} |