summaryrefslogtreecommitdiff
path: root/tests/MyGame
diff options
context:
space:
mode:
authorMormegil <mormegil@centrum.cz>2015-08-11 18:01:43 +0200
committerMormegil <mormegil@centrum.cz>2015-08-11 18:07:38 +0200
commit25c99273d3f874622df1b1e798c10a7ac0ecc2af (patch)
tree004269b4d46cbf657e4f8a654f5bf2f30e68fa81 /tests/MyGame
parente1511605606347e8f024ffda94619a77dc5ff87b (diff)
downloadflatbuffers-25c99273d3f874622df1b1e798c10a7ac0ecc2af.tar.gz
flatbuffers-25c99273d3f874622df1b1e798c10a7ac0ecc2af.tar.bz2
flatbuffers-25c99273d3f874622df1b1e798c10a7ac0ecc2af.zip
[Issue 252] Add type cast for default enum values in C#
When creating a “CreateXxx(...)” method for a “simple table” type, enum-type fields with a non-zero default must have an explicit cast for the respective argument default value, because in C#, there is an implicit cast from int to an enum only for 0. Also, added an example of such type into the example monster_test type, so that we test this feature.
Diffstat (limited to 'tests/MyGame')
-rw-r--r--tests/MyGame/Example/Any.cs1
-rw-r--r--tests/MyGame/Example/Any.go1
-rw-r--r--tests/MyGame/Example/Any.java3
-rw-r--r--tests/MyGame/Example/TestSimpleTableWithEnum.cs31
-rw-r--r--tests/MyGame/Example/TestSimpleTableWithEnum.go27
-rw-r--r--tests/MyGame/Example/TestSimpleTableWithEnum.java31
6 files changed, 93 insertions, 1 deletions
diff --git a/tests/MyGame/Example/Any.cs b/tests/MyGame/Example/Any.cs
index b7a5b361..a05a9185 100644
--- a/tests/MyGame/Example/Any.cs
+++ b/tests/MyGame/Example/Any.cs
@@ -7,6 +7,7 @@ public enum Any : byte
{
NONE = 0,
Monster = 1,
+ TestSimpleTableWithEnum = 2,
};
diff --git a/tests/MyGame/Example/Any.go b/tests/MyGame/Example/Any.go
index 0039bb8c..a23de4cb 100644
--- a/tests/MyGame/Example/Any.go
+++ b/tests/MyGame/Example/Any.go
@@ -5,4 +5,5 @@ package Example
const (
AnyNONE = 0
AnyMonster = 1
+ AnyTestSimpleTableWithEnum = 2
)
diff --git a/tests/MyGame/Example/Any.java b/tests/MyGame/Example/Any.java
index f811f973..cdc3ec56 100644
--- a/tests/MyGame/Example/Any.java
+++ b/tests/MyGame/Example/Any.java
@@ -6,8 +6,9 @@ public final class Any {
private Any() { }
public static final byte NONE = 0;
public static final byte Monster = 1;
+ public static final byte TestSimpleTableWithEnum = 2;
- private static final String[] names = { "NONE", "Monster", };
+ private static final String[] names = { "NONE", "Monster", "TestSimpleTableWithEnum", };
public static String name(int e) { return names[e]; }
};
diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs
new file mode 100644
index 00000000..d2e75b52
--- /dev/null
+++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs
@@ -0,0 +1,31 @@
+// automatically generated, do not modify
+
+namespace MyGame.Example
+{
+
+using FlatBuffers;
+
+public sealed class TestSimpleTableWithEnum : Table {
+ public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); }
+ public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
+ public TestSimpleTableWithEnum __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
+
+ public Color Color { get { int o = __offset(4); return o != 0 ? (Color)bb.GetSbyte(o + bb_pos) : (Color)2; } }
+
+ public static Offset<TestSimpleTableWithEnum> CreateTestSimpleTableWithEnum(FlatBufferBuilder builder,
+ Color color = (Color)2) {
+ builder.StartObject(1);
+ TestSimpleTableWithEnum.AddColor(builder, color);
+ return TestSimpleTableWithEnum.EndTestSimpleTableWithEnum(builder);
+ }
+
+ public static void StartTestSimpleTableWithEnum(FlatBufferBuilder builder) { builder.StartObject(1); }
+ public static void AddColor(FlatBufferBuilder builder, Color color) { builder.AddSbyte(0, (sbyte)(color), 2); }
+ public static Offset<TestSimpleTableWithEnum> EndTestSimpleTableWithEnum(FlatBufferBuilder builder) {
+ int o = builder.EndObject();
+ return new Offset<TestSimpleTableWithEnum>(o);
+ }
+};
+
+
+}
diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.go b/tests/MyGame/Example/TestSimpleTableWithEnum.go
new file mode 100644
index 00000000..a26a53e4
--- /dev/null
+++ b/tests/MyGame/Example/TestSimpleTableWithEnum.go
@@ -0,0 +1,27 @@
+// automatically generated, do not modify
+
+package Example
+
+import (
+ flatbuffers "github.com/google/flatbuffers/go"
+)
+type TestSimpleTableWithEnum struct {
+ _tab flatbuffers.Table
+}
+
+func (rcv *TestSimpleTableWithEnum) Init(buf []byte, i flatbuffers.UOffsetT) {
+ rcv._tab.Bytes = buf
+ rcv._tab.Pos = i
+}
+
+func (rcv *TestSimpleTableWithEnum) Color() int8 {
+ o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
+ if o != 0 {
+ return rcv._tab.GetInt8(o + rcv._tab.Pos)
+ }
+ return 2
+}
+
+func TestSimpleTableWithEnumStart(builder *flatbuffers.Builder) { builder.StartObject(1) }
+func TestSimpleTableWithEnumAddColor(builder *flatbuffers.Builder, color int8) { builder.PrependInt8Slot(0, color, 2) }
+func TestSimpleTableWithEnumEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java
new file mode 100644
index 00000000..af9d7dbf
--- /dev/null
+++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java
@@ -0,0 +1,31 @@
+// automatically generated, do not modify
+
+package MyGame.Example;
+
+import java.nio.*;
+import java.lang.*;
+import java.util.*;
+import com.google.flatbuffers.*;
+
+public final class TestSimpleTableWithEnum extends Table {
+ public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); }
+ public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__init(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
+ public TestSimpleTableWithEnum __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
+
+ public byte color() { int o = __offset(4); return o != 0 ? bb.get(o + bb_pos) : 2; }
+
+ public static int createTestSimpleTableWithEnum(FlatBufferBuilder builder,
+ byte color) {
+ builder.startObject(1);
+ TestSimpleTableWithEnum.addColor(builder, color);
+ return TestSimpleTableWithEnum.endTestSimpleTableWithEnum(builder);
+ }
+
+ public static void startTestSimpleTableWithEnum(FlatBufferBuilder builder) { builder.startObject(1); }
+ public static void addColor(FlatBufferBuilder builder, byte color) { builder.addByte(0, color, 2); }
+ public static int endTestSimpleTableWithEnum(FlatBufferBuilder builder) {
+ int o = builder.endObject();
+ return o;
+ }
+};
+