aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Structure/Modules/ElemMode.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Structure/Modules/ElemMode.php')
-rw-r--r--src/Structure/Modules/ElemMode.php28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/Structure/Modules/ElemMode.php b/src/Structure/Modules/ElemMode.php
new file mode 100644
index 0000000..d6496dd
--- /dev/null
+++ b/src/Structure/Modules/ElemMode.php
@@ -0,0 +1,28 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Modules;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Expr;
+use Nsfisis\Waddiwasi\Structure\Types\TableIdx;
+
+abstract readonly class ElemMode
+{
+ final public static function Passive(): ElemModes\Passive
+ {
+ return new ElemModes\Passive();
+ }
+
+ final public static function Active(
+ TableIdx $table,
+ Expr $offset,
+ ): ElemModes\Active {
+ return new ElemModes\Active($table, $offset);
+ }
+
+ final public static function Declarative(): ElemModes\Declarative
+ {
+ return new ElemModes\Declarative();
+ }
+}