FieldType = ({
DOUBLE: { kind: 'scalar', T: 1 },
FLOAT: { kind: 'scalar', T: 2 },
INT64: { kind: 'scalar', T: 3 },
UINT64: { kind: 'scalar', T: 4 },
INT32: { kind: 'scalar', T: 5 },
FIXED64: { kind: 'scalar', T: 6 },
FIXED32: { kind: 'scalar', T: 7 },
BOOL: { kind: 'scalar', T: 8, defaultValue: false },
STRING: { kind: 'scalar', T: 9, defaultValue: '' },
BYTES: { kind: 'scalar', T: 12 },
UINT32: { kind: 'scalar', T: 13 },
SFIXED32: { kind: 'scalar', T: 15 },
SFIXED64: { kind: 'scalar', T: 16 },
SINT32: { kind: 'scalar', T: 17 },
SINT64: { kind: 'scalar', T: 18 },
MAP: function(k, v) {
return { kind: 'map', K: k.T, V: v, defaultValue: {} };
},
ARRAY: function(type) {
return { repeated: true, ...type, defaultValue: [] };
},
MESSAGE: function(type) {
return { kind: 'message', T: type };
},
});