diff sema/DType.d @ 55:79cb0afafabe new_gen

Now structs are somewhat useable to use.
author Anders Johnsen <skabet@gmail.com>
date Sat, 26 Apr 2008 23:11:13 +0200
parents c7cde6af0095
children fc62c5296a1c
line wrap: on
line diff
--- a/sema/DType.d	Sat Apr 26 19:13:10 2008 +0200
+++ b/sema/DType.d	Sat Apr 26 23:11:13 2008 +0200
@@ -105,16 +105,35 @@
 
     int byteSize() { return bytes_total; }
 
-    void setMembers(DType[char[]] members)
+    void addMember(DType type, char[] name)
     {
-        this.members = members;
+        auto s = DStructMember(type, members.length);
+        members[name] = s;
 
-        foreach (type; members)
-            bytes_total += type.byteSize();
+        bytes_total += type.byteSize();
     }
 
-    DType[char[]] members;
+    int indexOf(char[] name)
+    {
+        if(name in members)
+            return members[name].index;
+
+        return -1;
+    }
+
+    DType typeOf(char[] name)
+    {
+        return members[name].type;
+    }
+
+    DStructMember[char[]] members;
     private int bytes_total;
+
+    struct DStructMember
+    {
+        DType type;
+        int index;
+    }
 }
 
 class DFunction : DType