aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2018-04-04 20:12:28 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2018-04-04 20:12:28 +0300
commit2b479fa7824a5f7d883035e2899a56881c9ee0d5 (patch)
treecef2db07288bc1b2a8191c3c1ee2e9fbd50a371c
parentc398ed541fdc19872787937380a57bcd2c08e91d (diff)
downloadnimpb-2b479fa7824a5f7d883035e2899a56881c9ee0d5.tar.gz
nimpb-2b479fa7824a5f7d883035e2899a56881c9ee0d5.zip
Don't generate types for Maps
-rw-r--r--generator/protoc_gen_nim.nim37
-rw-r--r--src/nimpb/wkt/struct_pb.nim5
2 files changed, 19 insertions, 23 deletions
diff --git a/generator/protoc_gen_nim.nim b/generator/protoc_gen_nim.nim
index b7c7e49..d1f77c8 100644
--- a/generator/protoc_gen_nim.nim
+++ b/generator/protoc_gen_nim.nim
@@ -511,24 +511,25 @@ proc mapValueField(message: Message): Field =
return field
iterator genType(message: Message): string =
- yield &"{message.names}* = ref {message.names}Obj"
- yield &"{message.names}Obj* = object of RootObj"
- yield indent(&"hasField: IntSet", 4)
-
- for field in message.fields:
- if isMapEntry(field):
- yield indent(&"{field.name}: TableRef[{mapKeyType(field)}, {mapValueType(field)}]", 4)
- elif field.oneof == nil:
- yield indent(&"{quoteReserved(field.name)}: {field.fullType}", 4)
-
- for oneof in message.oneofs:
- yield indent(&"{oneof.name}: {message.names}_{oneof.name}_OneOf", 4)
-
- for oneof in message.oneofs:
- yield ""
- yield &"{message.names}_{oneof.name}_OneOf* {{.union.}} = object"
- for field in oneof.fields:
- yield indent(&"{quoteReserved(field.name)}: {field.fullType}", 4)
+ if not isMapEntry(message):
+ yield &"{message.names}* = ref {message.names}Obj"
+ yield &"{message.names}Obj* = object of RootObj"
+ yield indent(&"hasField: IntSet", 4)
+
+ for field in message.fields:
+ if isMapEntry(field):
+ yield indent(&"{field.name}: TableRef[{mapKeyType(field)}, {mapValueType(field)}]", 4)
+ elif field.oneof == nil:
+ yield indent(&"{quoteReserved(field.name)}: {field.fullType}", 4)
+
+ for oneof in message.oneofs:
+ yield indent(&"{oneof.name}: {message.names}_{oneof.name}_OneOf", 4)
+
+ for oneof in message.oneofs:
+ yield ""
+ yield &"{message.names}_{oneof.name}_OneOf* {{.union.}} = object"
+ for field in oneof.fields:
+ yield indent(&"{quoteReserved(field.name)}: {field.fullType}", 4)
iterator genNewMessageProc(msg: Message): string =
yield &"proc new{msg.names}*(): {msg.names} ="
diff --git a/src/nimpb/wkt/struct_pb.nim b/src/nimpb/wkt/struct_pb.nim
index 9b87501..b4c0c76 100644
--- a/src/nimpb/wkt/struct_pb.nim
+++ b/src/nimpb/wkt/struct_pb.nim
@@ -13,11 +13,6 @@ type
google_protobuf_StructObj* = object of RootObj
hasField: IntSet
fields: TableRef[string, google_protobuf_Value]
- google_protobuf_Struct_FieldsEntry* = ref google_protobuf_Struct_FieldsEntryObj
- google_protobuf_Struct_FieldsEntryObj* = object of RootObj
- hasField: IntSet
- key: string
- value: google_protobuf_Value
google_protobuf_Value* = ref google_protobuf_ValueObj
google_protobuf_ValueObj* = object of RootObj
hasField: IntSet