From 26f49b7e27076e689541b9e13a1b54f60a4ee5c2 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Thu, 11 Jul 2024 02:57:23 +0900 Subject: feat: organize namespaces --- src/WebAssembly/Structure/Types/ExternType.php | 28 +++++++++++++++++++ .../Structure/Types/ExternTypes/Func.php | 16 +++++++++++ .../Structure/Types/ExternTypes/Global_.php | 16 +++++++++++ .../Structure/Types/ExternTypes/Mem.php | 16 +++++++++++ .../Structure/Types/ExternTypes/Table.php | 16 +++++++++++ src/WebAssembly/Structure/Types/FuncType.php | 20 ++++++++++++++ src/WebAssembly/Structure/Types/GlobalType.php | 14 ++++++++++ src/WebAssembly/Structure/Types/Limits.php | 24 +++++++++++++++++ src/WebAssembly/Structure/Types/MemType.php | 13 +++++++++ src/WebAssembly/Structure/Types/Mut.php | 11 ++++++++ src/WebAssembly/Structure/Types/NumType.php | 13 +++++++++ src/WebAssembly/Structure/Types/RefType.php | 11 ++++++++ src/WebAssembly/Structure/Types/ResultType.php | 31 ++++++++++++++++++++++ src/WebAssembly/Structure/Types/TableType.php | 14 ++++++++++ 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 +++++++ 19 files changed, 341 insertions(+) create mode 100644 src/WebAssembly/Structure/Types/ExternType.php create mode 100644 src/WebAssembly/Structure/Types/ExternTypes/Func.php create mode 100644 src/WebAssembly/Structure/Types/ExternTypes/Global_.php create mode 100644 src/WebAssembly/Structure/Types/ExternTypes/Mem.php create mode 100644 src/WebAssembly/Structure/Types/ExternTypes/Table.php create mode 100644 src/WebAssembly/Structure/Types/FuncType.php create mode 100644 src/WebAssembly/Structure/Types/GlobalType.php create mode 100644 src/WebAssembly/Structure/Types/Limits.php create mode 100644 src/WebAssembly/Structure/Types/MemType.php create mode 100644 src/WebAssembly/Structure/Types/Mut.php create mode 100644 src/WebAssembly/Structure/Types/NumType.php create mode 100644 src/WebAssembly/Structure/Types/RefType.php create mode 100644 src/WebAssembly/Structure/Types/ResultType.php create mode 100644 src/WebAssembly/Structure/Types/TableType.php create mode 100644 src/WebAssembly/Structure/Types/ValType.php create mode 100644 src/WebAssembly/Structure/Types/ValTypes/NumType.php create mode 100644 src/WebAssembly/Structure/Types/ValTypes/RefType.php create mode 100644 src/WebAssembly/Structure/Types/ValTypes/VecType.php create mode 100644 src/WebAssembly/Structure/Types/VecType.php (limited to 'src/WebAssembly/Structure/Types') diff --git a/src/WebAssembly/Structure/Types/ExternType.php b/src/WebAssembly/Structure/Types/ExternType.php new file mode 100644 index 0000000..bffeacf --- /dev/null +++ b/src/WebAssembly/Structure/Types/ExternType.php @@ -0,0 +1,28 @@ +params->equals($other->params) + && $this->results->equals($other->results); + } +} diff --git a/src/WebAssembly/Structure/Types/GlobalType.php b/src/WebAssembly/Structure/Types/GlobalType.php new file mode 100644 index 0000000..3e8ab6c --- /dev/null +++ b/src/WebAssembly/Structure/Types/GlobalType.php @@ -0,0 +1,14 @@ +min && + ($this->max === null || $this->min <= $this->max); + } +} diff --git a/src/WebAssembly/Structure/Types/MemType.php b/src/WebAssembly/Structure/Types/MemType.php new file mode 100644 index 0000000..8d01150 --- /dev/null +++ b/src/WebAssembly/Structure/Types/MemType.php @@ -0,0 +1,13 @@ + $types + */ + public function __construct( + public array $types, + ) { + } + + public function equals(ResultType $other): bool + { + if (count($this->types) !== count($other->types)) { + return false; + } + foreach ($this->types as $i => $type) { + if (!$type->equals($other->types[$i])) { + return false; + } + } + return true; + } +} diff --git a/src/WebAssembly/Structure/Types/TableType.php b/src/WebAssembly/Structure/Types/TableType.php new file mode 100644 index 0000000..7e4b957 --- /dev/null +++ b/src/WebAssembly/Structure/Types/TableType.php @@ -0,0 +1,14 @@ +inner === $other->inner; + } +} diff --git a/src/WebAssembly/Structure/Types/ValTypes/RefType.php b/src/WebAssembly/Structure/Types/ValTypes/RefType.php new file mode 100644 index 0000000..a31b7c3 --- /dev/null +++ b/src/WebAssembly/Structure/Types/ValTypes/RefType.php @@ -0,0 +1,21 @@ +inner === $other->inner; + } +} diff --git a/src/WebAssembly/Structure/Types/ValTypes/VecType.php b/src/WebAssembly/Structure/Types/ValTypes/VecType.php new file mode 100644 index 0000000..03cc95e --- /dev/null +++ b/src/WebAssembly/Structure/Types/ValTypes/VecType.php @@ -0,0 +1,21 @@ +inner === $other->inner; // @phpstan-ignore-line + } +} diff --git a/src/WebAssembly/Structure/Types/VecType.php b/src/WebAssembly/Structure/Types/VecType.php new file mode 100644 index 0000000..dcf7d68 --- /dev/null +++ b/src/WebAssembly/Structure/Types/VecType.php @@ -0,0 +1,10 @@ +