aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/league/uri-interfaces/IPv4/NativeCalculator.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/league/uri-interfaces/IPv4/NativeCalculator.php')
-rw-r--r--vendor/league/uri-interfaces/IPv4/NativeCalculator.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/vendor/league/uri-interfaces/IPv4/NativeCalculator.php b/vendor/league/uri-interfaces/IPv4/NativeCalculator.php
new file mode 100644
index 000000000..7ac2c7671
--- /dev/null
+++ b/vendor/league/uri-interfaces/IPv4/NativeCalculator.php
@@ -0,0 +1,60 @@
+<?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\IPv4;
+
+use function floor;
+use function intval;
+
+final class NativeCalculator implements Calculator
+{
+ public function baseConvert(mixed $value, int $base): int
+ {
+ return intval((string) $value, $base);
+ }
+
+ public function pow(mixed $value, int $exponent)
+ {
+ return $value ** $exponent;
+ }
+
+ public function compare(mixed $value1, mixed $value2): int
+ {
+ return $value1 <=> $value2;
+ }
+
+ public function multiply(mixed $value1, mixed $value2): int
+ {
+ return $value1 * $value2;
+ }
+
+ public function div(mixed $value, mixed $base): int
+ {
+ return (int) floor($value / $base);
+ }
+
+ public function mod(mixed $value, mixed $base): int
+ {
+ return $value % $base;
+ }
+
+ public function add(mixed $value1, mixed $value2): int
+ {
+ return $value1 + $value2;
+ }
+
+ public function sub(mixed $value1, mixed $value2): int
+ {
+ return $value1 - $value2;
+ }
+}