Commit eae355d771

Andrew Kelley <superjoe30@gmail.com>
2018-04-07 01:14:49
add docs for packed enum
1 parent fef06f2
Changed files (1)
doc/langref.html.in
@@ -1947,8 +1947,24 @@ const Foo = extern enum { A, B, C };
 export fn entry(foo: Foo) void { }
       {#code_end#}
       {#header_close#}
-      <p>TODO packed enum</p>
-      {#see_also|@memberName|@memberCount|@tagName#}
+      {#header_open|packed enum#}
+      <p>By default, the size of enums is not guaranteed.</p>
+      <p><code>packed enum</code> causes the size of the enum to be the same as the size of the integer tag type
+      of the enum:</p>
+      {#code_begin|test#}
+const std = @import("std");
+
+test "packed enum" {
+    const Number = packed enum(u8) {
+        One,
+        Two,
+        Three,
+    };
+    std.debug.assert(@sizeOf(Number) == @sizeOf(u8));
+}
+      {#code_end#}
+      {#header_close#}
+      {#see_also|@memberName|@memberCount|@tagName|@sizeOf#}
       {#header_close#}
       {#header_open|union#}
       {#code_begin|test|union#}