about summary refs log tree commit diff
path: root/pkg/lang/vm/mem/cell.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/lang/vm/mem/cell.go')
-rw-r--r--pkg/lang/vm/mem/cell.go25
1 files changed, 24 insertions, 1 deletions
diff --git a/pkg/lang/vm/mem/cell.go b/pkg/lang/vm/mem/cell.go
index 3f052d5..fcf9a50 100644
--- a/pkg/lang/vm/mem/cell.go
+++ b/pkg/lang/vm/mem/cell.go
@@ -13,8 +13,31 @@ const (
 	CellKindForbidden
 )
 
+func (c CellKind) String() string {
+	switch c {
+	case CellKindEmpty:
+		return "empty"
+	case CellKindString:
+		return "string"
+	case CellKindArray:
+		return "array"
+	case CellKindEnv:
+		return "env"
+	case CellKindOutlet:
+		return "outlet"
+	case CellKindForbidden:
+		return "forbidden"
+	default:
+		return "unknown"
+	}
+}
+
 type cell struct {
 	kind CellKind
 	refs int
-	data any
+	data CellData
+}
+
+type CellData interface {
+	DropCell(*Mem)
 }