1 // automatically generated by the FlatBuffers compiler, do not modify
2 
3 module kissrpc.IDL.flatbuffer.kissidl;
4 
5 import std.typecons;
6 import flatbuffers;
7 
8 struct UserInfoFB {
9 	mixin Table!UserInfoFB;
10 
11   static UserInfoFB getRootAsUserInfoFB(ByteBuffer _bb) {  return UserInfoFB.init_(_bb.get!int(_bb.position()) + _bb.position(), _bb); }
12 	@property Nullable!string name() { uint o = __offset(4); return o != 0 ? Nullable!string(__string(o + _pos)) : Nullable!string.init; }
13 	@property int age() { uint o = __offset(6); return o != 0 ? _buffer.get!int(o + _pos) : 0; }
14 	@property double widget() { uint o = __offset(8); return o != 0 ? _buffer.get!double(o + _pos) : 0.0; }
15 
16 	static uint createUserInfoFB(FlatBufferBuilder builder,uint name,int age,double widget) {
17 		builder.startObject(3);
18 		UserInfoFB.addWidget(builder, widget);
19 		UserInfoFB.addAge(builder, age);
20 		UserInfoFB.addName(builder, name);
21 		return UserInfoFB.endUserInfoFB(builder);
22 	}
23 
24 	static void startUserInfoFB(FlatBufferBuilder builder) { builder.startObject(3); }
25 	static void addName(FlatBufferBuilder builder, uint nameOffset) { builder.addOffset(0, nameOffset, 0); }
26 	static void addAge(FlatBufferBuilder builder, int age) { builder.add!int(1, age, 0); }
27 	static void addWidget(FlatBufferBuilder builder, double widget) { builder.add!double(2, widget, 0.0); }
28 	static uint endUserInfoFB(FlatBufferBuilder builder) {
29 		uint o = builder.endObject();
30 		return o;
31 	}
32 }
33 
34 struct ContactsFB {
35 	mixin Table!ContactsFB;
36 
37   static ContactsFB getRootAsContactsFB(ByteBuffer _bb) {  return ContactsFB.init_(_bb.get!int(_bb.position()) + _bb.position(), _bb); }
38 	@property int number() { uint o = __offset(4); return o != 0 ? _buffer.get!int(o + _pos) : 0; }
39 	auto userInfoList() { return Iterator!(ContactsFB, UserInfoFB, "userInfoList")(this); }
40 	Nullable!UserInfoFB userInfoList(uint j) { uint o = __offset(6); return o != 0 ? Nullable!UserInfoFB(UserInfoFB.init_(__indirect(__dvector(o) + j * 4), _buffer)) : Nullable!UserInfoFB.init; }
41 	@property uint userInfoListLength() { uint o = __offset(6); return o != 0 ? __vector_len(o) : 0; }
42 
43 	static uint createContactsFB(FlatBufferBuilder builder,int number,uint userInfoList) {
44 		builder.startObject(2);
45 		ContactsFB.addUserInfoList(builder, userInfoList);
46 		ContactsFB.addNumber(builder, number);
47 		return ContactsFB.endContactsFB(builder);
48 	}
49 
50 	static void startContactsFB(FlatBufferBuilder builder) { builder.startObject(2); }
51 	static void addNumber(FlatBufferBuilder builder, int number) { builder.add!int(0, number, 0); }
52 	static void addUserInfoList(FlatBufferBuilder builder, uint userInfoListOffset) { builder.addOffset(1, userInfoListOffset, 0); }
53 	static uint createUserInfoListVector(FlatBufferBuilder builder, uint[] data) { builder.startVector(4, cast(uint)data.length, 4); for (size_t i = data.length; i > 0; i--) builder.addOffset(data[i - 1]); return builder.endVector(); }
54 	static void startUserInfoListVector(FlatBufferBuilder builder, uint numElems) { builder.startVector(4, numElems, 4); }
55 	static uint endContactsFB(FlatBufferBuilder builder) {
56 		uint o = builder.endObject();
57 		return o;
58 	}
59 }
60 
61 struct AccountNameFB {
62 	mixin Table!AccountNameFB;
63 
64   static AccountNameFB getRootAsAccountNameFB(ByteBuffer _bb) {  return AccountNameFB.init_(_bb.get!int(_bb.position()) + _bb.position(), _bb); }
65 	@property Nullable!string name() { uint o = __offset(4); return o != 0 ? Nullable!string(__string(o + _pos)) : Nullable!string.init; }
66 	@property int count() { uint o = __offset(6); return o != 0 ? _buffer.get!int(o + _pos) : 0; }
67 
68 	static uint createAccountNameFB(FlatBufferBuilder builder,uint name,int count) {
69 		builder.startObject(2);
70 		AccountNameFB.addCount(builder, count);
71 		AccountNameFB.addName(builder, name);
72 		return AccountNameFB.endAccountNameFB(builder);
73 	}
74 
75 	static void startAccountNameFB(FlatBufferBuilder builder) { builder.startObject(2); }
76 	static void addName(FlatBufferBuilder builder, uint nameOffset) { builder.addOffset(0, nameOffset, 0); }
77 	static void addCount(FlatBufferBuilder builder, int count) { builder.add!int(1, count, 0); }
78 	static uint endAccountNameFB(FlatBufferBuilder builder) {
79 		uint o = builder.endObject();
80 		return o;
81 	}
82 }
83