From 8a083ed74e9f4472441175e187208012927ed357 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Thu, 11 Jul 2024 03:50:50 +0900 Subject: feat: simplify ValType structure --- src/WebAssembly/Structure/Types/NumType.php | 13 ----------- src/WebAssembly/Structure/Types/RefType.php | 11 ---------- src/WebAssembly/Structure/Types/ResultType.php | 2 +- src/WebAssembly/Structure/Types/TableType.php | 5 ++++- src/WebAssembly/Structure/Types/ValType.php | 25 +++++++--------------- .../Structure/Types/ValTypes/NumType.php | 21 ------------------ .../Structure/Types/ValTypes/RefType.php | 21 ------------------ .../Structure/Types/ValTypes/VecType.php | 21 ------------------ src/WebAssembly/Structure/Types/VecType.php | 10 --------- 9 files changed, 13 insertions(+), 116 deletions(-) delete mode 100644 src/WebAssembly/Structure/Types/NumType.php delete mode 100644 src/WebAssembly/Structure/Types/RefType.php delete mode 100644 src/WebAssembly/Structure/Types/ValTypes/NumType.php delete mode 100644 src/WebAssembly/Structure/Types/ValTypes/RefType.php delete mode 100644 src/WebAssembly/Structure/Types/ValTypes/VecType.php delete mode 100644 src/WebAssembly/Structure/Types/VecType.php (limited to 'src/WebAssembly/Structure/Types') diff --git a/src/WebAssembly/Structure/Types/NumType.php b/src/WebAssembly/Structure/Types/NumType.php deleted file mode 100644 index 2d5a3b1..0000000 --- a/src/WebAssembly/Structure/Types/NumType.php +++ /dev/null @@ -1,13 +0,0 @@ -types as $i => $type) { - if (!$type->equals($other->types[$i])) { + if ($type !== $other->types[$i]) { return false; } } diff --git a/src/WebAssembly/Structure/Types/TableType.php b/src/WebAssembly/Structure/Types/TableType.php index 7e4b957..b812de4 100644 --- a/src/WebAssembly/Structure/Types/TableType.php +++ b/src/WebAssembly/Structure/Types/TableType.php @@ -6,9 +6,12 @@ namespace Nsfisis\Waddiwasi\WebAssembly\Structure\Types; final readonly class TableType { + /** + * @param ValType::FuncRef|ValType::ExternRef $refType + */ public function __construct( public Limits $limits, - public RefType $refType, + public ValType $refType, ) { } } diff --git a/src/WebAssembly/Structure/Types/ValType.php b/src/WebAssembly/Structure/Types/ValType.php index f6f3111..ace4604 100644 --- a/src/WebAssembly/Structure/Types/ValType.php +++ b/src/WebAssembly/Structure/Types/ValType.php @@ -4,22 +4,13 @@ declare(strict_types=1); namespace Nsfisis\Waddiwasi\WebAssembly\Structure\Types; -abstract readonly class ValType +enum ValType { - final public static function NumType(NumType $type): ValTypes\NumType - { - return new ValTypes\NumType($type); - } - - final public static function VecType(VecType $type): ValTypes\VecType - { - return new ValTypes\VecType($type); - } - - final public static function RefType(RefType $type): ValTypes\RefType - { - return new ValTypes\RefType($type); - } - - abstract public function equals(ValType $other): bool; + case I32; + case I64; + case F32; + case F64; + case V128; + case FuncRef; + case ExternRef; } diff --git a/src/WebAssembly/Structure/Types/ValTypes/NumType.php b/src/WebAssembly/Structure/Types/ValTypes/NumType.php deleted file mode 100644 index 1836679..0000000 --- a/src/WebAssembly/Structure/Types/ValTypes/NumType.php +++ /dev/null @@ -1,21 +0,0 @@ -inner === $other->inner; - } -} diff --git a/src/WebAssembly/Structure/Types/ValTypes/RefType.php b/src/WebAssembly/Structure/Types/ValTypes/RefType.php deleted file mode 100644 index a31b7c3..0000000 --- a/src/WebAssembly/Structure/Types/ValTypes/RefType.php +++ /dev/null @@ -1,21 +0,0 @@ -inner === $other->inner; - } -} diff --git a/src/WebAssembly/Structure/Types/ValTypes/VecType.php b/src/WebAssembly/Structure/Types/ValTypes/VecType.php deleted file mode 100644 index 03cc95e..0000000 --- a/src/WebAssembly/Structure/Types/ValTypes/VecType.php +++ /dev/null @@ -1,21 +0,0 @@ -inner === $other->inner; // @phpstan-ignore-line - } -} diff --git a/src/WebAssembly/Structure/Types/VecType.php b/src/WebAssembly/Structure/Types/VecType.php deleted file mode 100644 index dcf7d68..0000000 --- a/src/WebAssembly/Structure/Types/VecType.php +++ /dev/null @@ -1,10 +0,0 @@ -