aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/league/uri-interfaces/Idna/Result.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/league/uri-interfaces/Idna/Result.php')
-rw-r--r--vendor/league/uri-interfaces/Idna/Result.php64
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);
+ }
+}