git.iko.soy/rowtype-yoga/purescript-protobuf
on master help sign in
regenerate ProtocPlugin
commit4519adda88a4153f219abe4a50d6c4408eed9258 authorJames Brock <jamesbrock@gmail.com> dateMon 19 Apr 2021, 15:09 (5 years ago) parenta469901
3 files changed+572−227
src/ProtocPlugin/Main.purs+3 src/ProtocPlugin/descriptor.Google.Protobuf.purs+471−203 src/ProtocPlugin/plugin.Google.Protobuf.Compiler.purs+98−24
src/ProtocPlugin/Main.purs+3
@@ -70,12 +70,14 @@ generate (CodeGeneratorRequest{file_to_generate,parameter,proto_file,compiler_ve
7070 CodeGeneratorResponse
7171 { error: Nothing
7272 , file: file
73+ , supported_features: Nothing
7374 , __unknown_fields: []
7475 }
7576 Left err ->
7677 CodeGeneratorResponse
7778 { error: Just err
7879 , file: []
80+ , supported_features: Nothing
7981 , __unknown_fields: []
8082 }
8183
@@ -1034,6 +1036,7 @@ import Protobuf.Runtime as Runtime
10341036 { name : Just fileNameOut
10351037 , insertion_point : Nothing
10361038 , content : Just $ String.joinWith "\n" contents
1039+ , generated_code_info: Nothing
10371040 , __unknown_fields : []
10381041 }
10391042
src/ProtocPlugin/descriptor.Google.Protobuf.purs+471−203
@@ -1,32 +1,32 @@
11-- | Generated by __purescript-protobuf__ from file `google/protobuf/descriptor.proto`
22module Google.Protobuf.Descriptor
3−( FileDescriptorSet(..), FileDescriptorSetRow, FileDescriptorSetR, parseFileDescriptorSet, putFileDescriptorSet, defaultFileDescriptorSet, mkFileDescriptorSet
4−, FileDescriptorProto(..), FileDescriptorProtoRow, FileDescriptorProtoR, parseFileDescriptorProto, putFileDescriptorProto, defaultFileDescriptorProto, mkFileDescriptorProto
5−, DescriptorProto(..), DescriptorProtoRow, DescriptorProtoR, parseDescriptorProto, putDescriptorProto, defaultDescriptorProto, mkDescriptorProto
6−, DescriptorProto_ExtensionRange(..), DescriptorProto_ExtensionRangeRow, DescriptorProto_ExtensionRangeR, parseDescriptorProto_ExtensionRange, putDescriptorProto_ExtensionRange, defaultDescriptorProto_ExtensionRange, mkDescriptorProto_ExtensionRange
7−, DescriptorProto_ReservedRange(..), DescriptorProto_ReservedRangeRow, DescriptorProto_ReservedRangeR, parseDescriptorProto_ReservedRange, putDescriptorProto_ReservedRange, defaultDescriptorProto_ReservedRange, mkDescriptorProto_ReservedRange
8−, ExtensionRangeOptions(..), ExtensionRangeOptionsRow, ExtensionRangeOptionsR, parseExtensionRangeOptions, putExtensionRangeOptions, defaultExtensionRangeOptions, mkExtensionRangeOptions
9−, FieldDescriptorProto(..), FieldDescriptorProtoRow, FieldDescriptorProtoR, parseFieldDescriptorProto, putFieldDescriptorProto, defaultFieldDescriptorProto, mkFieldDescriptorProto
10−, OneofDescriptorProto(..), OneofDescriptorProtoRow, OneofDescriptorProtoR, parseOneofDescriptorProto, putOneofDescriptorProto, defaultOneofDescriptorProto, mkOneofDescriptorProto
11−, EnumDescriptorProto(..), EnumDescriptorProtoRow, EnumDescriptorProtoR, parseEnumDescriptorProto, putEnumDescriptorProto, defaultEnumDescriptorProto, mkEnumDescriptorProto
12−, EnumDescriptorProto_EnumReservedRange(..), EnumDescriptorProto_EnumReservedRangeRow, EnumDescriptorProto_EnumReservedRangeR, parseEnumDescriptorProto_EnumReservedRange, putEnumDescriptorProto_EnumReservedRange, defaultEnumDescriptorProto_EnumReservedRange, mkEnumDescriptorProto_EnumReservedRange
13−, EnumValueDescriptorProto(..), EnumValueDescriptorProtoRow, EnumValueDescriptorProtoR, parseEnumValueDescriptorProto, putEnumValueDescriptorProto, defaultEnumValueDescriptorProto, mkEnumValueDescriptorProto
14−, ServiceDescriptorProto(..), ServiceDescriptorProtoRow, ServiceDescriptorProtoR, parseServiceDescriptorProto, putServiceDescriptorProto, defaultServiceDescriptorProto, mkServiceDescriptorProto
15−, MethodDescriptorProto(..), MethodDescriptorProtoRow, MethodDescriptorProtoR, parseMethodDescriptorProto, putMethodDescriptorProto, defaultMethodDescriptorProto, mkMethodDescriptorProto
16−, FileOptions(..), FileOptionsRow, FileOptionsR, parseFileOptions, putFileOptions, defaultFileOptions, mkFileOptions
17−, MessageOptions(..), MessageOptionsRow, MessageOptionsR, parseMessageOptions, putMessageOptions, defaultMessageOptions, mkMessageOptions
18−, FieldOptions(..), FieldOptionsRow, FieldOptionsR, parseFieldOptions, putFieldOptions, defaultFieldOptions, mkFieldOptions
19−, OneofOptions(..), OneofOptionsRow, OneofOptionsR, parseOneofOptions, putOneofOptions, defaultOneofOptions, mkOneofOptions
20−, EnumOptions(..), EnumOptionsRow, EnumOptionsR, parseEnumOptions, putEnumOptions, defaultEnumOptions, mkEnumOptions
21−, EnumValueOptions(..), EnumValueOptionsRow, EnumValueOptionsR, parseEnumValueOptions, putEnumValueOptions, defaultEnumValueOptions, mkEnumValueOptions
22−, ServiceOptions(..), ServiceOptionsRow, ServiceOptionsR, parseServiceOptions, putServiceOptions, defaultServiceOptions, mkServiceOptions
23−, MethodOptions(..), MethodOptionsRow, MethodOptionsR, parseMethodOptions, putMethodOptions, defaultMethodOptions, mkMethodOptions
24−, UninterpretedOption(..), UninterpretedOptionRow, UninterpretedOptionR, parseUninterpretedOption, putUninterpretedOption, defaultUninterpretedOption, mkUninterpretedOption
25−, UninterpretedOption_NamePart(..), UninterpretedOption_NamePartRow, UninterpretedOption_NamePartR, parseUninterpretedOption_NamePart, putUninterpretedOption_NamePart, defaultUninterpretedOption_NamePart, mkUninterpretedOption_NamePart
26−, SourceCodeInfo(..), SourceCodeInfoRow, SourceCodeInfoR, parseSourceCodeInfo, putSourceCodeInfo, defaultSourceCodeInfo, mkSourceCodeInfo
27−, SourceCodeInfo_Location(..), SourceCodeInfo_LocationRow, SourceCodeInfo_LocationR, parseSourceCodeInfo_Location, putSourceCodeInfo_Location, defaultSourceCodeInfo_Location, mkSourceCodeInfo_Location
28−, GeneratedCodeInfo(..), GeneratedCodeInfoRow, GeneratedCodeInfoR, parseGeneratedCodeInfo, putGeneratedCodeInfo, defaultGeneratedCodeInfo, mkGeneratedCodeInfo
29−, GeneratedCodeInfo_Annotation(..), GeneratedCodeInfo_AnnotationRow, GeneratedCodeInfo_AnnotationR, parseGeneratedCodeInfo_Annotation, putGeneratedCodeInfo_Annotation, defaultGeneratedCodeInfo_Annotation, mkGeneratedCodeInfo_Annotation
3+( FileDescriptorSet(..), FileDescriptorSetRow, FileDescriptorSetR, parseFileDescriptorSet, putFileDescriptorSet, defaultFileDescriptorSet, mkFileDescriptorSet, mergeFileDescriptorSet
4+, FileDescriptorProto(..), FileDescriptorProtoRow, FileDescriptorProtoR, parseFileDescriptorProto, putFileDescriptorProto, defaultFileDescriptorProto, mkFileDescriptorProto, mergeFileDescriptorProto
5+, DescriptorProto(..), DescriptorProtoRow, DescriptorProtoR, parseDescriptorProto, putDescriptorProto, defaultDescriptorProto, mkDescriptorProto, mergeDescriptorProto
6+, DescriptorProto_ExtensionRange(..), DescriptorProto_ExtensionRangeRow, DescriptorProto_ExtensionRangeR, parseDescriptorProto_ExtensionRange, putDescriptorProto_ExtensionRange, defaultDescriptorProto_ExtensionRange, mkDescriptorProto_ExtensionRange, mergeDescriptorProto_ExtensionRange
7+, DescriptorProto_ReservedRange(..), DescriptorProto_ReservedRangeRow, DescriptorProto_ReservedRangeR, parseDescriptorProto_ReservedRange, putDescriptorProto_ReservedRange, defaultDescriptorProto_ReservedRange, mkDescriptorProto_ReservedRange, mergeDescriptorProto_ReservedRange
8+, ExtensionRangeOptions(..), ExtensionRangeOptionsRow, ExtensionRangeOptionsR, parseExtensionRangeOptions, putExtensionRangeOptions, defaultExtensionRangeOptions, mkExtensionRangeOptions, mergeExtensionRangeOptions
9+, FieldDescriptorProto(..), FieldDescriptorProtoRow, FieldDescriptorProtoR, parseFieldDescriptorProto, putFieldDescriptorProto, defaultFieldDescriptorProto, mkFieldDescriptorProto, mergeFieldDescriptorProto
10+, OneofDescriptorProto(..), OneofDescriptorProtoRow, OneofDescriptorProtoR, parseOneofDescriptorProto, putOneofDescriptorProto, defaultOneofDescriptorProto, mkOneofDescriptorProto, mergeOneofDescriptorProto
11+, EnumDescriptorProto(..), EnumDescriptorProtoRow, EnumDescriptorProtoR, parseEnumDescriptorProto, putEnumDescriptorProto, defaultEnumDescriptorProto, mkEnumDescriptorProto, mergeEnumDescriptorProto
12+, EnumDescriptorProto_EnumReservedRange(..), EnumDescriptorProto_EnumReservedRangeRow, EnumDescriptorProto_EnumReservedRangeR, parseEnumDescriptorProto_EnumReservedRange, putEnumDescriptorProto_EnumReservedRange, defaultEnumDescriptorProto_EnumReservedRange, mkEnumDescriptorProto_EnumReservedRange, mergeEnumDescriptorProto_EnumReservedRange
13+, EnumValueDescriptorProto(..), EnumValueDescriptorProtoRow, EnumValueDescriptorProtoR, parseEnumValueDescriptorProto, putEnumValueDescriptorProto, defaultEnumValueDescriptorProto, mkEnumValueDescriptorProto, mergeEnumValueDescriptorProto
14+, ServiceDescriptorProto(..), ServiceDescriptorProtoRow, ServiceDescriptorProtoR, parseServiceDescriptorProto, putServiceDescriptorProto, defaultServiceDescriptorProto, mkServiceDescriptorProto, mergeServiceDescriptorProto
15+, MethodDescriptorProto(..), MethodDescriptorProtoRow, MethodDescriptorProtoR, parseMethodDescriptorProto, putMethodDescriptorProto, defaultMethodDescriptorProto, mkMethodDescriptorProto, mergeMethodDescriptorProto
16+, FileOptions(..), FileOptionsRow, FileOptionsR, parseFileOptions, putFileOptions, defaultFileOptions, mkFileOptions, mergeFileOptions
17+, MessageOptions(..), MessageOptionsRow, MessageOptionsR, parseMessageOptions, putMessageOptions, defaultMessageOptions, mkMessageOptions, mergeMessageOptions
18+, FieldOptions(..), FieldOptionsRow, FieldOptionsR, parseFieldOptions, putFieldOptions, defaultFieldOptions, mkFieldOptions, mergeFieldOptions
19+, OneofOptions(..), OneofOptionsRow, OneofOptionsR, parseOneofOptions, putOneofOptions, defaultOneofOptions, mkOneofOptions, mergeOneofOptions
20+, EnumOptions(..), EnumOptionsRow, EnumOptionsR, parseEnumOptions, putEnumOptions, defaultEnumOptions, mkEnumOptions, mergeEnumOptions
21+, EnumValueOptions(..), EnumValueOptionsRow, EnumValueOptionsR, parseEnumValueOptions, putEnumValueOptions, defaultEnumValueOptions, mkEnumValueOptions, mergeEnumValueOptions
22+, ServiceOptions(..), ServiceOptionsRow, ServiceOptionsR, parseServiceOptions, putServiceOptions, defaultServiceOptions, mkServiceOptions, mergeServiceOptions
23+, MethodOptions(..), MethodOptionsRow, MethodOptionsR, parseMethodOptions, putMethodOptions, defaultMethodOptions, mkMethodOptions, mergeMethodOptions
24+, UninterpretedOption(..), UninterpretedOptionRow, UninterpretedOptionR, parseUninterpretedOption, putUninterpretedOption, defaultUninterpretedOption, mkUninterpretedOption, mergeUninterpretedOption
25+, UninterpretedOption_NamePart(..), UninterpretedOption_NamePartRow, UninterpretedOption_NamePartR, parseUninterpretedOption_NamePart, putUninterpretedOption_NamePart, defaultUninterpretedOption_NamePart, mkUninterpretedOption_NamePart, mergeUninterpretedOption_NamePart
26+, SourceCodeInfo(..), SourceCodeInfoRow, SourceCodeInfoR, parseSourceCodeInfo, putSourceCodeInfo, defaultSourceCodeInfo, mkSourceCodeInfo, mergeSourceCodeInfo
27+, SourceCodeInfo_Location(..), SourceCodeInfo_LocationRow, SourceCodeInfo_LocationR, parseSourceCodeInfo_Location, putSourceCodeInfo_Location, defaultSourceCodeInfo_Location, mkSourceCodeInfo_Location, mergeSourceCodeInfo_Location
28+, GeneratedCodeInfo(..), GeneratedCodeInfoRow, GeneratedCodeInfoR, parseGeneratedCodeInfo, putGeneratedCodeInfo, defaultGeneratedCodeInfo, mkGeneratedCodeInfo, mergeGeneratedCodeInfo
29+, GeneratedCodeInfo_Annotation(..), GeneratedCodeInfo_AnnotationRow, GeneratedCodeInfo_AnnotationR, parseGeneratedCodeInfo_Annotation, putGeneratedCodeInfo_Annotation, defaultGeneratedCodeInfo_Annotation, mkGeneratedCodeInfo_Annotation, mergeGeneratedCodeInfo_Annotation
3030, FieldDescriptorProto_Type(..)
3131, FieldDescriptorProto_Label(..)
3232, FileOptions_OptimizeMode(..)
@@ -39,6 +39,7 @@ where
3939import Prelude
4040import Effect.Class (class MonadEffect)
4141import Control.Monad.Rec.Class (class MonadRec)
42+import Control.Alt as Alt
4243import Record.Builder as Record.Builder
4344import Data.Array as Array
4445import Data.Bounded as Bounded
@@ -61,6 +62,7 @@ import Data.String as String
6162import Data.Symbol as Symbol
6263import Record as Record
6364import Data.Traversable as Traversable
65+import Data.Tuple as Tuple
6466import Data.UInt as UInt
6567import Data.Unit as Unit
6668import Prim.Row as Prim.Row
@@ -115,6 +117,12 @@ defaultFileDescriptorSet =
115117mkFileDescriptorSet :: forall r1 r3. Prim.Row.Union r1 FileDescriptorSetRow r3 => Prim.Row.Nub r3 FileDescriptorSetRow => Record r1 -> FileDescriptorSet
116118mkFileDescriptorSet r = FileDescriptorSet $ Record.merge r defaultFileDescriptorSet
117119
120+mergeFileDescriptorSet :: FileDescriptorSet -> FileDescriptorSet -> FileDescriptorSet
121+mergeFileDescriptorSet (FileDescriptorSet l) (FileDescriptorSet r) = FileDescriptorSet
122+ { file: r.file <> l.file
123+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
124+ }
125+
118126
119127type FileDescriptorProtoRow =
120128 ( name :: Maybe.Maybe String
@@ -140,8 +148,8 @@ instance showFileDescriptorProto :: Show.Show FileDescriptorProto where show x =
140148
141149putFileDescriptorProto :: forall m. MonadEffect m => FileDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
142150putFileDescriptorProto (FileDescriptorProto r) = do
143− Runtime.putOptional 1 r.name String.null Encode.string
144− Runtime.putOptional 2 r.package String.null Encode.string
151+ Runtime.putOptional 1 r.name Common.isDefault Encode.string
152+ Runtime.putOptional 2 r.package Common.isDefault Encode.string
145153 Runtime.putRepeated 3 r.dependency Encode.string
146154 Runtime.putPacked 10 r.public_dependency Encode.int32'
147155 Runtime.putPacked 11 r.weak_dependency Encode.int32'
@@ -149,9 +157,9 @@ putFileDescriptorProto (FileDescriptorProto r) = do
149157 Runtime.putRepeated 5 r.enum_type $ Runtime.putLenDel putEnumDescriptorProto
150158 Runtime.putRepeated 6 r.service $ Runtime.putLenDel putServiceDescriptorProto
151159 Runtime.putRepeated 7 r.extension $ Runtime.putLenDel putFieldDescriptorProto
152− Runtime.putOptional 8 r.options (const false) $ Runtime.putLenDel putFileOptions
153− Runtime.putOptional 9 r.source_code_info (const false) $ Runtime.putLenDel putSourceCodeInfo
154− Runtime.putOptional 12 r.syntax String.null Encode.string
160+ Runtime.putOptional 8 r.options (\_ -> false) $ Runtime.putLenDel putFileOptions
161+ Runtime.putOptional 9 r.source_code_info (\_ -> false) $ Runtime.putLenDel putSourceCodeInfo
162+ Runtime.putOptional 12 r.syntax Common.isDefault Encode.string
155163 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
156164
157165parseFileDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m FileDescriptorProto
@@ -164,10 +172,10 @@ parseFileDescriptorProto length = Runtime.label "FileDescriptorProto / " $
164172 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder FileDescriptorProtoR FileDescriptorProtoR)
165173 parseField 1 Common.LenDel = Runtime.label "name / " $ do
166174 x <- Decode.string
167− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.const $ Maybe.Just x
175+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ \_ -> Maybe.Just x
168176 parseField 2 Common.LenDel = Runtime.label "package / " $ do
169177 x <- Decode.string
170− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "package") $ Function.const $ Maybe.Just x
178+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "package") $ \_ -> Maybe.Just x
171179 parseField 3 Common.LenDel = Runtime.label "dependency / " $ do
172180 x <- Decode.string
173181 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "dependency") $ Function.flip Array.snoc x
@@ -197,13 +205,13 @@ parseFileDescriptorProto length = Runtime.label "FileDescriptorProto / " $
197205 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "extension") $ Function.flip Array.snoc x
198206 parseField 8 Common.LenDel = Runtime.label "options / " $ do
199207 x <- Runtime.parseLenDel parseFileOptions
200− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Function.const $ Maybe.Just x
208+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Maybe.Just <<< Maybe.maybe x (mergeFileOptions x)
201209 parseField 9 Common.LenDel = Runtime.label "source_code_info / " $ do
202210 x <- Runtime.parseLenDel parseSourceCodeInfo
203− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "source_code_info") $ Function.const $ Maybe.Just x
211+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "source_code_info") $ Maybe.Just <<< Maybe.maybe x (mergeSourceCodeInfo x)
204212 parseField 12 Common.LenDel = Runtime.label "syntax / " $ do
205213 x <- Decode.string
206− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "syntax") $ Function.const $ Maybe.Just x
214+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "syntax") $ \_ -> Maybe.Just x
207215 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
208216
209217defaultFileDescriptorProto :: FileDescriptorProtoR
@@ -226,6 +234,23 @@ defaultFileDescriptorProto =
226234mkFileDescriptorProto :: forall r1 r3. Prim.Row.Union r1 FileDescriptorProtoRow r3 => Prim.Row.Nub r3 FileDescriptorProtoRow => Record r1 -> FileDescriptorProto
227235mkFileDescriptorProto r = FileDescriptorProto $ Record.merge r defaultFileDescriptorProto
228236
237+mergeFileDescriptorProto :: FileDescriptorProto -> FileDescriptorProto -> FileDescriptorProto
238+mergeFileDescriptorProto (FileDescriptorProto l) (FileDescriptorProto r) = FileDescriptorProto
239+ { name: Alt.alt l.name r.name
240+ , package: Alt.alt l.package r.package
241+ , dependency: r.dependency <> l.dependency
242+ , public_dependency: r.public_dependency <> l.public_dependency
243+ , weak_dependency: r.weak_dependency <> l.weak_dependency
244+ , message_type: r.message_type <> l.message_type
245+ , enum_type: r.enum_type <> l.enum_type
246+ , service: r.service <> l.service
247+ , extension: r.extension <> l.extension
248+ , options: Runtime.mergeWith mergeFileOptions l.options r.options
249+ , source_code_info: Runtime.mergeWith mergeSourceCodeInfo l.source_code_info r.source_code_info
250+ , syntax: Alt.alt l.syntax r.syntax
251+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
252+ }
253+
229254
230255type DescriptorProtoRow =
231256 ( name :: Maybe.Maybe String
@@ -249,14 +274,14 @@ instance showDescriptorProto :: Show.Show DescriptorProto where show x = Generic
249274
250275putDescriptorProto :: forall m. MonadEffect m => DescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
251276putDescriptorProto (DescriptorProto r) = do
252− Runtime.putOptional 1 r.name String.null Encode.string
277+ Runtime.putOptional 1 r.name Common.isDefault Encode.string
253278 Runtime.putRepeated 2 r.field $ Runtime.putLenDel putFieldDescriptorProto
254279 Runtime.putRepeated 6 r.extension $ Runtime.putLenDel putFieldDescriptorProto
255280 Runtime.putRepeated 3 r.nested_type $ Runtime.putLenDel putDescriptorProto
256281 Runtime.putRepeated 4 r.enum_type $ Runtime.putLenDel putEnumDescriptorProto
257282 Runtime.putRepeated 5 r.extension_range $ Runtime.putLenDel putDescriptorProto_ExtensionRange
258283 Runtime.putRepeated 8 r.oneof_decl $ Runtime.putLenDel putOneofDescriptorProto
259− Runtime.putOptional 7 r.options (const false) $ Runtime.putLenDel putMessageOptions
284+ Runtime.putOptional 7 r.options (\_ -> false) $ Runtime.putLenDel putMessageOptions
260285 Runtime.putRepeated 9 r.reserved_range $ Runtime.putLenDel putDescriptorProto_ReservedRange
261286 Runtime.putRepeated 10 r.reserved_name Encode.string
262287 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
@@ -271,7 +296,7 @@ parseDescriptorProto length = Runtime.label "DescriptorProto / " $
271296 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder DescriptorProtoR DescriptorProtoR)
272297 parseField 1 Common.LenDel = Runtime.label "name / " $ do
273298 x <- Decode.string
274− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.const $ Maybe.Just x
299+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ \_ -> Maybe.Just x
275300 parseField 2 Common.LenDel = Runtime.label "field / " $ do
276301 x <- Runtime.parseLenDel parseFieldDescriptorProto
277302 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "field") $ Function.flip Array.snoc x
@@ -292,7 +317,7 @@ parseDescriptorProto length = Runtime.label "DescriptorProto / " $
292317 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "oneof_decl") $ Function.flip Array.snoc x
293318 parseField 7 Common.LenDel = Runtime.label "options / " $ do
294319 x <- Runtime.parseLenDel parseMessageOptions
295− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Function.const $ Maybe.Just x
320+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Maybe.Just <<< Maybe.maybe x (mergeMessageOptions x)
296321 parseField 9 Common.LenDel = Runtime.label "reserved_range / " $ do
297322 x <- Runtime.parseLenDel parseDescriptorProto_ReservedRange
298323 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "reserved_range") $ Function.flip Array.snoc x
@@ -319,6 +344,21 @@ defaultDescriptorProto =
319344mkDescriptorProto :: forall r1 r3. Prim.Row.Union r1 DescriptorProtoRow r3 => Prim.Row.Nub r3 DescriptorProtoRow => Record r1 -> DescriptorProto
320345mkDescriptorProto r = DescriptorProto $ Record.merge r defaultDescriptorProto
321346
347+mergeDescriptorProto :: DescriptorProto -> DescriptorProto -> DescriptorProto
348+mergeDescriptorProto (DescriptorProto l) (DescriptorProto r) = DescriptorProto
349+ { name: Alt.alt l.name r.name
350+ , field: r.field <> l.field
351+ , extension: r.extension <> l.extension
352+ , nested_type: r.nested_type <> l.nested_type
353+ , enum_type: r.enum_type <> l.enum_type
354+ , extension_range: r.extension_range <> l.extension_range
355+ , oneof_decl: r.oneof_decl <> l.oneof_decl
356+ , options: Runtime.mergeWith mergeMessageOptions l.options r.options
357+ , reserved_range: r.reserved_range <> l.reserved_range
358+ , reserved_name: r.reserved_name <> l.reserved_name
359+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
360+ }
361+
322362
323363type DescriptorProto_ExtensionRangeRow =
324364 ( start :: Maybe.Maybe Int
@@ -335,9 +375,9 @@ instance showDescriptorProto_ExtensionRange :: Show.Show DescriptorProto_Extensi
335375
336376putDescriptorProto_ExtensionRange :: forall m. MonadEffect m => DescriptorProto_ExtensionRange -> ArrayBuffer.Builder.PutM m Unit.Unit
337377putDescriptorProto_ExtensionRange (DescriptorProto_ExtensionRange r) = do
338− Runtime.putOptional 1 r.start (_==Semiring.zero) Encode.int32
339− Runtime.putOptional 2 r.end (_==Semiring.zero) Encode.int32
340− Runtime.putOptional 3 r.options (const false) $ Runtime.putLenDel putExtensionRangeOptions
378+ Runtime.putOptional 1 r.start Common.isDefault Encode.int32
379+ Runtime.putOptional 2 r.end Common.isDefault Encode.int32
380+ Runtime.putOptional 3 r.options (\_ -> false) $ Runtime.putLenDel putExtensionRangeOptions
341381 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
342382
343383parseDescriptorProto_ExtensionRange :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m DescriptorProto_ExtensionRange
@@ -350,13 +390,13 @@ parseDescriptorProto_ExtensionRange length = Runtime.label "ExtensionRange / " $
350390 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder DescriptorProto_ExtensionRangeR DescriptorProto_ExtensionRangeR)
351391 parseField 1 Common.VarInt = Runtime.label "start / " $ do
352392 x <- Decode.int32
353− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "start") $ Function.const $ Maybe.Just x
393+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "start") $ \_ -> Maybe.Just x
354394 parseField 2 Common.VarInt = Runtime.label "end / " $ do
355395 x <- Decode.int32
356− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "end") $ Function.const $ Maybe.Just x
396+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "end") $ \_ -> Maybe.Just x
357397 parseField 3 Common.LenDel = Runtime.label "options / " $ do
358398 x <- Runtime.parseLenDel parseExtensionRangeOptions
359− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Function.const $ Maybe.Just x
399+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Maybe.Just <<< Maybe.maybe x (mergeExtensionRangeOptions x)
360400 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
361401
362402defaultDescriptorProto_ExtensionRange :: DescriptorProto_ExtensionRangeR
@@ -370,6 +410,14 @@ defaultDescriptorProto_ExtensionRange =
370410mkDescriptorProto_ExtensionRange :: forall r1 r3. Prim.Row.Union r1 DescriptorProto_ExtensionRangeRow r3 => Prim.Row.Nub r3 DescriptorProto_ExtensionRangeRow => Record r1 -> DescriptorProto_ExtensionRange
371411mkDescriptorProto_ExtensionRange r = DescriptorProto_ExtensionRange $ Record.merge r defaultDescriptorProto_ExtensionRange
372412
413+mergeDescriptorProto_ExtensionRange :: DescriptorProto_ExtensionRange -> DescriptorProto_ExtensionRange -> DescriptorProto_ExtensionRange
414+mergeDescriptorProto_ExtensionRange (DescriptorProto_ExtensionRange l) (DescriptorProto_ExtensionRange r) = DescriptorProto_ExtensionRange
415+ { start: Alt.alt l.start r.start
416+ , end: Alt.alt l.end r.end
417+ , options: Runtime.mergeWith mergeExtensionRangeOptions l.options r.options
418+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
419+ }
420+
373421
374422type DescriptorProto_ReservedRangeRow =
375423 ( start :: Maybe.Maybe Int
@@ -385,8 +433,8 @@ instance showDescriptorProto_ReservedRange :: Show.Show DescriptorProto_Reserved
385433
386434putDescriptorProto_ReservedRange :: forall m. MonadEffect m => DescriptorProto_ReservedRange -> ArrayBuffer.Builder.PutM m Unit.Unit
387435putDescriptorProto_ReservedRange (DescriptorProto_ReservedRange r) = do
388− Runtime.putOptional 1 r.start (_==Semiring.zero) Encode.int32
389− Runtime.putOptional 2 r.end (_==Semiring.zero) Encode.int32
436+ Runtime.putOptional 1 r.start Common.isDefault Encode.int32
437+ Runtime.putOptional 2 r.end Common.isDefault Encode.int32
390438 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
391439
392440parseDescriptorProto_ReservedRange :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m DescriptorProto_ReservedRange
@@ -399,10 +447,10 @@ parseDescriptorProto_ReservedRange length = Runtime.label "ReservedRange / " $
399447 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder DescriptorProto_ReservedRangeR DescriptorProto_ReservedRangeR)
400448 parseField 1 Common.VarInt = Runtime.label "start / " $ do
401449 x <- Decode.int32
402− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "start") $ Function.const $ Maybe.Just x
450+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "start") $ \_ -> Maybe.Just x
403451 parseField 2 Common.VarInt = Runtime.label "end / " $ do
404452 x <- Decode.int32
405− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "end") $ Function.const $ Maybe.Just x
453+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "end") $ \_ -> Maybe.Just x
406454 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
407455
408456defaultDescriptorProto_ReservedRange :: DescriptorProto_ReservedRangeR
@@ -415,6 +463,13 @@ defaultDescriptorProto_ReservedRange =
415463mkDescriptorProto_ReservedRange :: forall r1 r3. Prim.Row.Union r1 DescriptorProto_ReservedRangeRow r3 => Prim.Row.Nub r3 DescriptorProto_ReservedRangeRow => Record r1 -> DescriptorProto_ReservedRange
416464mkDescriptorProto_ReservedRange r = DescriptorProto_ReservedRange $ Record.merge r defaultDescriptorProto_ReservedRange
417465
466+mergeDescriptorProto_ReservedRange :: DescriptorProto_ReservedRange -> DescriptorProto_ReservedRange -> DescriptorProto_ReservedRange
467+mergeDescriptorProto_ReservedRange (DescriptorProto_ReservedRange l) (DescriptorProto_ReservedRange r) = DescriptorProto_ReservedRange
468+ { start: Alt.alt l.start r.start
469+ , end: Alt.alt l.end r.end
470+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
471+ }
472+
418473
419474type ExtensionRangeOptionsRow =
420475 ( uninterpreted_option :: Array UninterpretedOption
@@ -454,6 +509,12 @@ defaultExtensionRangeOptions =
454509mkExtensionRangeOptions :: forall r1 r3. Prim.Row.Union r1 ExtensionRangeOptionsRow r3 => Prim.Row.Nub r3 ExtensionRangeOptionsRow => Record r1 -> ExtensionRangeOptions
455510mkExtensionRangeOptions r = ExtensionRangeOptions $ Record.merge r defaultExtensionRangeOptions
456511
512+mergeExtensionRangeOptions :: ExtensionRangeOptions -> ExtensionRangeOptions -> ExtensionRangeOptions
513+mergeExtensionRangeOptions (ExtensionRangeOptions l) (ExtensionRangeOptions r) = ExtensionRangeOptions
514+ { uninterpreted_option: r.uninterpreted_option <> l.uninterpreted_option
515+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
516+ }
517+
457518
458519type FieldDescriptorProtoRow =
459520 ( name :: Maybe.Maybe String
@@ -466,6 +527,7 @@ type FieldDescriptorProtoRow =
466527 , oneof_index :: Maybe.Maybe Int
467528 , json_name :: Maybe.Maybe String
468529 , options :: Maybe.Maybe FieldOptions
530+ , proto3_optional :: Maybe.Maybe Boolean
469531 , __unknown_fields :: Array Runtime.UnknownField
470532 )
471533type FieldDescriptorProtoR = Record FieldDescriptorProtoRow
@@ -477,16 +539,17 @@ instance showFieldDescriptorProto :: Show.Show FieldDescriptorProto where show x
477539
478540putFieldDescriptorProto :: forall m. MonadEffect m => FieldDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
479541putFieldDescriptorProto (FieldDescriptorProto r) = do
480− Runtime.putOptional 1 r.name String.null Encode.string
481− Runtime.putOptional 3 r.number (_==Semiring.zero) Encode.int32
482− Runtime.putOptional 4 r.label (Enum.fromEnum >>> (_==0)) Runtime.putEnum
483− Runtime.putOptional 5 r.type (Enum.fromEnum >>> (_==0)) Runtime.putEnum
484− Runtime.putOptional 6 r.type_name String.null Encode.string
485− Runtime.putOptional 2 r.extendee String.null Encode.string
486− Runtime.putOptional 7 r.default_value String.null Encode.string
487− Runtime.putOptional 9 r.oneof_index (_==Semiring.zero) Encode.int32
488− Runtime.putOptional 10 r.json_name String.null Encode.string
489− Runtime.putOptional 8 r.options (const false) $ Runtime.putLenDel putFieldOptions
542+ Runtime.putOptional 1 r.name Common.isDefault Encode.string
543+ Runtime.putOptional 3 r.number Common.isDefault Encode.int32
544+ Runtime.putOptional 4 r.label Common.isDefault Runtime.putEnum
545+ Runtime.putOptional 5 r.type Common.isDefault Runtime.putEnum
546+ Runtime.putOptional 6 r.type_name Common.isDefault Encode.string
547+ Runtime.putOptional 2 r.extendee Common.isDefault Encode.string
548+ Runtime.putOptional 7 r.default_value Common.isDefault Encode.string
549+ Runtime.putOptional 9 r.oneof_index Common.isDefault Encode.int32
550+ Runtime.putOptional 10 r.json_name Common.isDefault Encode.string
551+ Runtime.putOptional 8 r.options (\_ -> false) $ Runtime.putLenDel putFieldOptions
552+ Runtime.putOptional 17 r.proto3_optional Common.isDefault Encode.bool
490553 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
491554
492555parseFieldDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m FieldDescriptorProto
@@ -499,34 +562,37 @@ parseFieldDescriptorProto length = Runtime.label "FieldDescriptorProto / " $
499562 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder FieldDescriptorProtoR FieldDescriptorProtoR)
500563 parseField 1 Common.LenDel = Runtime.label "name / " $ do
501564 x <- Decode.string
502− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.const $ Maybe.Just x
565+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ \_ -> Maybe.Just x
503566 parseField 3 Common.VarInt = Runtime.label "number / " $ do
504567 x <- Decode.int32
505− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "number") $ Function.const $ Maybe.Just x
568+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "number") $ \_ -> Maybe.Just x
506569 parseField 4 Common.VarInt = Runtime.label "label / " $ do
507570 x <- Runtime.parseEnum
508− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "label") $ Function.const $ Maybe.Just x
571+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "label") $ \_ -> Maybe.Just x
509572 parseField 5 Common.VarInt = Runtime.label "type / " $ do
510573 x <- Runtime.parseEnum
511− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "type") $ Function.const $ Maybe.Just x
574+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "type") $ \_ -> Maybe.Just x
512575 parseField 6 Common.LenDel = Runtime.label "type_name / " $ do
513576 x <- Decode.string
514− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "type_name") $ Function.const $ Maybe.Just x
577+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "type_name") $ \_ -> Maybe.Just x
515578 parseField 2 Common.LenDel = Runtime.label "extendee / " $ do
516579 x <- Decode.string
517− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "extendee") $ Function.const $ Maybe.Just x
580+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "extendee") $ \_ -> Maybe.Just x
518581 parseField 7 Common.LenDel = Runtime.label "default_value / " $ do
519582 x <- Decode.string
520− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "default_value") $ Function.const $ Maybe.Just x
583+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "default_value") $ \_ -> Maybe.Just x
521584 parseField 9 Common.VarInt = Runtime.label "oneof_index / " $ do
522585 x <- Decode.int32
523− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "oneof_index") $ Function.const $ Maybe.Just x
586+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "oneof_index") $ \_ -> Maybe.Just x
524587 parseField 10 Common.LenDel = Runtime.label "json_name / " $ do
525588 x <- Decode.string
526− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "json_name") $ Function.const $ Maybe.Just x
589+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "json_name") $ \_ -> Maybe.Just x
527590 parseField 8 Common.LenDel = Runtime.label "options / " $ do
528591 x <- Runtime.parseLenDel parseFieldOptions
529− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Function.const $ Maybe.Just x
592+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Maybe.Just <<< Maybe.maybe x (mergeFieldOptions x)
593+ parseField 17 Common.VarInt = Runtime.label "proto3_optional / " $ do
594+ x <- Decode.bool
595+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "proto3_optional") $ \_ -> Maybe.Just x
530596 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
531597
532598defaultFieldDescriptorProto :: FieldDescriptorProtoR
@@ -541,12 +607,29 @@ defaultFieldDescriptorProto =
541607 , oneof_index: Maybe.Nothing
542608 , json_name: Maybe.Nothing
543609 , options: Maybe.Nothing
610+ , proto3_optional: Maybe.Nothing
544611 , __unknown_fields: []
545612 }
546613
547614mkFieldDescriptorProto :: forall r1 r3. Prim.Row.Union r1 FieldDescriptorProtoRow r3 => Prim.Row.Nub r3 FieldDescriptorProtoRow => Record r1 -> FieldDescriptorProto
548615mkFieldDescriptorProto r = FieldDescriptorProto $ Record.merge r defaultFieldDescriptorProto
549616
617+mergeFieldDescriptorProto :: FieldDescriptorProto -> FieldDescriptorProto -> FieldDescriptorProto
618+mergeFieldDescriptorProto (FieldDescriptorProto l) (FieldDescriptorProto r) = FieldDescriptorProto
619+ { name: Alt.alt l.name r.name
620+ , number: Alt.alt l.number r.number
621+ , label: Alt.alt l.label r.label
622+ , type: Alt.alt l.type r.type
623+ , type_name: Alt.alt l.type_name r.type_name
624+ , extendee: Alt.alt l.extendee r.extendee
625+ , default_value: Alt.alt l.default_value r.default_value
626+ , oneof_index: Alt.alt l.oneof_index r.oneof_index
627+ , json_name: Alt.alt l.json_name r.json_name
628+ , options: Runtime.mergeWith mergeFieldOptions l.options r.options
629+ , proto3_optional: Alt.alt l.proto3_optional r.proto3_optional
630+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
631+ }
632+
550633
551634type OneofDescriptorProtoRow =
552635 ( name :: Maybe.Maybe String
@@ -562,8 +645,8 @@ instance showOneofDescriptorProto :: Show.Show OneofDescriptorProto where show x
562645
563646putOneofDescriptorProto :: forall m. MonadEffect m => OneofDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
564647putOneofDescriptorProto (OneofDescriptorProto r) = do
565− Runtime.putOptional 1 r.name String.null Encode.string
566− Runtime.putOptional 2 r.options (const false) $ Runtime.putLenDel putOneofOptions
648+ Runtime.putOptional 1 r.name Common.isDefault Encode.string
649+ Runtime.putOptional 2 r.options (\_ -> false) $ Runtime.putLenDel putOneofOptions
567650 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
568651
569652parseOneofDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m OneofDescriptorProto
@@ -576,10 +659,10 @@ parseOneofDescriptorProto length = Runtime.label "OneofDescriptorProto / " $
576659 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder OneofDescriptorProtoR OneofDescriptorProtoR)
577660 parseField 1 Common.LenDel = Runtime.label "name / " $ do
578661 x <- Decode.string
579− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.const $ Maybe.Just x
662+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ \_ -> Maybe.Just x
580663 parseField 2 Common.LenDel = Runtime.label "options / " $ do
581664 x <- Runtime.parseLenDel parseOneofOptions
582− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Function.const $ Maybe.Just x
665+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Maybe.Just <<< Maybe.maybe x (mergeOneofOptions x)
583666 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
584667
585668defaultOneofDescriptorProto :: OneofDescriptorProtoR
@@ -592,6 +675,13 @@ defaultOneofDescriptorProto =
592675mkOneofDescriptorProto :: forall r1 r3. Prim.Row.Union r1 OneofDescriptorProtoRow r3 => Prim.Row.Nub r3 OneofDescriptorProtoRow => Record r1 -> OneofDescriptorProto
593676mkOneofDescriptorProto r = OneofDescriptorProto $ Record.merge r defaultOneofDescriptorProto
594677
678+mergeOneofDescriptorProto :: OneofDescriptorProto -> OneofDescriptorProto -> OneofDescriptorProto
679+mergeOneofDescriptorProto (OneofDescriptorProto l) (OneofDescriptorProto r) = OneofDescriptorProto
680+ { name: Alt.alt l.name r.name
681+ , options: Runtime.mergeWith mergeOneofOptions l.options r.options
682+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
683+ }
684+
595685
596686type EnumDescriptorProtoRow =
597687 ( name :: Maybe.Maybe String
@@ -610,9 +700,9 @@ instance showEnumDescriptorProto :: Show.Show EnumDescriptorProto where show x =
610700
611701putEnumDescriptorProto :: forall m. MonadEffect m => EnumDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
612702putEnumDescriptorProto (EnumDescriptorProto r) = do
613− Runtime.putOptional 1 r.name String.null Encode.string
703+ Runtime.putOptional 1 r.name Common.isDefault Encode.string
614704 Runtime.putRepeated 2 r.value $ Runtime.putLenDel putEnumValueDescriptorProto
615− Runtime.putOptional 3 r.options (const false) $ Runtime.putLenDel putEnumOptions
705+ Runtime.putOptional 3 r.options (\_ -> false) $ Runtime.putLenDel putEnumOptions
616706 Runtime.putRepeated 4 r.reserved_range $ Runtime.putLenDel putEnumDescriptorProto_EnumReservedRange
617707 Runtime.putRepeated 5 r.reserved_name Encode.string
618708 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
@@ -627,13 +717,13 @@ parseEnumDescriptorProto length = Runtime.label "EnumDescriptorProto / " $
627717 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder EnumDescriptorProtoR EnumDescriptorProtoR)
628718 parseField 1 Common.LenDel = Runtime.label "name / " $ do
629719 x <- Decode.string
630− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.const $ Maybe.Just x
720+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ \_ -> Maybe.Just x
631721 parseField 2 Common.LenDel = Runtime.label "value / " $ do
632722 x <- Runtime.parseLenDel parseEnumValueDescriptorProto
633723 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "value") $ Function.flip Array.snoc x
634724 parseField 3 Common.LenDel = Runtime.label "options / " $ do
635725 x <- Runtime.parseLenDel parseEnumOptions
636− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Function.const $ Maybe.Just x
726+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Maybe.Just <<< Maybe.maybe x (mergeEnumOptions x)
637727 parseField 4 Common.LenDel = Runtime.label "reserved_range / " $ do
638728 x <- Runtime.parseLenDel parseEnumDescriptorProto_EnumReservedRange
639729 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "reserved_range") $ Function.flip Array.snoc x
@@ -655,6 +745,16 @@ defaultEnumDescriptorProto =
655745mkEnumDescriptorProto :: forall r1 r3. Prim.Row.Union r1 EnumDescriptorProtoRow r3 => Prim.Row.Nub r3 EnumDescriptorProtoRow => Record r1 -> EnumDescriptorProto
656746mkEnumDescriptorProto r = EnumDescriptorProto $ Record.merge r defaultEnumDescriptorProto
657747
748+mergeEnumDescriptorProto :: EnumDescriptorProto -> EnumDescriptorProto -> EnumDescriptorProto
749+mergeEnumDescriptorProto (EnumDescriptorProto l) (EnumDescriptorProto r) = EnumDescriptorProto
750+ { name: Alt.alt l.name r.name
751+ , value: r.value <> l.value
752+ , options: Runtime.mergeWith mergeEnumOptions l.options r.options
753+ , reserved_range: r.reserved_range <> l.reserved_range
754+ , reserved_name: r.reserved_name <> l.reserved_name
755+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
756+ }
757+
658758
659759type EnumDescriptorProto_EnumReservedRangeRow =
660760 ( start :: Maybe.Maybe Int
@@ -670,8 +770,8 @@ instance showEnumDescriptorProto_EnumReservedRange :: Show.Show EnumDescriptorPr
670770
671771putEnumDescriptorProto_EnumReservedRange :: forall m. MonadEffect m => EnumDescriptorProto_EnumReservedRange -> ArrayBuffer.Builder.PutM m Unit.Unit
672772putEnumDescriptorProto_EnumReservedRange (EnumDescriptorProto_EnumReservedRange r) = do
673− Runtime.putOptional 1 r.start (_==Semiring.zero) Encode.int32
674− Runtime.putOptional 2 r.end (_==Semiring.zero) Encode.int32
773+ Runtime.putOptional 1 r.start Common.isDefault Encode.int32
774+ Runtime.putOptional 2 r.end Common.isDefault Encode.int32
675775 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
676776
677777parseEnumDescriptorProto_EnumReservedRange :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m EnumDescriptorProto_EnumReservedRange
@@ -684,10 +784,10 @@ parseEnumDescriptorProto_EnumReservedRange length = Runtime.label "EnumReservedR
684784 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder EnumDescriptorProto_EnumReservedRangeR EnumDescriptorProto_EnumReservedRangeR)
685785 parseField 1 Common.VarInt = Runtime.label "start / " $ do
686786 x <- Decode.int32
687− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "start") $ Function.const $ Maybe.Just x
787+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "start") $ \_ -> Maybe.Just x
688788 parseField 2 Common.VarInt = Runtime.label "end / " $ do
689789 x <- Decode.int32
690− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "end") $ Function.const $ Maybe.Just x
790+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "end") $ \_ -> Maybe.Just x
691791 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
692792
693793defaultEnumDescriptorProto_EnumReservedRange :: EnumDescriptorProto_EnumReservedRangeR
@@ -700,6 +800,13 @@ defaultEnumDescriptorProto_EnumReservedRange =
700800mkEnumDescriptorProto_EnumReservedRange :: forall r1 r3. Prim.Row.Union r1 EnumDescriptorProto_EnumReservedRangeRow r3 => Prim.Row.Nub r3 EnumDescriptorProto_EnumReservedRangeRow => Record r1 -> EnumDescriptorProto_EnumReservedRange
701801mkEnumDescriptorProto_EnumReservedRange r = EnumDescriptorProto_EnumReservedRange $ Record.merge r defaultEnumDescriptorProto_EnumReservedRange
702802
803+mergeEnumDescriptorProto_EnumReservedRange :: EnumDescriptorProto_EnumReservedRange -> EnumDescriptorProto_EnumReservedRange -> EnumDescriptorProto_EnumReservedRange
804+mergeEnumDescriptorProto_EnumReservedRange (EnumDescriptorProto_EnumReservedRange l) (EnumDescriptorProto_EnumReservedRange r) = EnumDescriptorProto_EnumReservedRange
805+ { start: Alt.alt l.start r.start
806+ , end: Alt.alt l.end r.end
807+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
808+ }
809+
703810
704811type EnumValueDescriptorProtoRow =
705812 ( name :: Maybe.Maybe String
@@ -716,9 +823,9 @@ instance showEnumValueDescriptorProto :: Show.Show EnumValueDescriptorProto wher
716823
717824putEnumValueDescriptorProto :: forall m. MonadEffect m => EnumValueDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
718825putEnumValueDescriptorProto (EnumValueDescriptorProto r) = do
719− Runtime.putOptional 1 r.name String.null Encode.string
720− Runtime.putOptional 2 r.number (_==Semiring.zero) Encode.int32
721− Runtime.putOptional 3 r.options (const false) $ Runtime.putLenDel putEnumValueOptions
826+ Runtime.putOptional 1 r.name Common.isDefault Encode.string
827+ Runtime.putOptional 2 r.number Common.isDefault Encode.int32
828+ Runtime.putOptional 3 r.options (\_ -> false) $ Runtime.putLenDel putEnumValueOptions
722829 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
723830
724831parseEnumValueDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m EnumValueDescriptorProto
@@ -731,13 +838,13 @@ parseEnumValueDescriptorProto length = Runtime.label "EnumValueDescriptorProto /
731838 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder EnumValueDescriptorProtoR EnumValueDescriptorProtoR)
732839 parseField 1 Common.LenDel = Runtime.label "name / " $ do
733840 x <- Decode.string
734− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.const $ Maybe.Just x
841+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ \_ -> Maybe.Just x
735842 parseField 2 Common.VarInt = Runtime.label "number / " $ do
736843 x <- Decode.int32
737− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "number") $ Function.const $ Maybe.Just x
844+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "number") $ \_ -> Maybe.Just x
738845 parseField 3 Common.LenDel = Runtime.label "options / " $ do
739846 x <- Runtime.parseLenDel parseEnumValueOptions
740− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Function.const $ Maybe.Just x
847+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Maybe.Just <<< Maybe.maybe x (mergeEnumValueOptions x)
741848 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
742849
743850defaultEnumValueDescriptorProto :: EnumValueDescriptorProtoR
@@ -751,6 +858,14 @@ defaultEnumValueDescriptorProto =
751858mkEnumValueDescriptorProto :: forall r1 r3. Prim.Row.Union r1 EnumValueDescriptorProtoRow r3 => Prim.Row.Nub r3 EnumValueDescriptorProtoRow => Record r1 -> EnumValueDescriptorProto
752859mkEnumValueDescriptorProto r = EnumValueDescriptorProto $ Record.merge r defaultEnumValueDescriptorProto
753860
861+mergeEnumValueDescriptorProto :: EnumValueDescriptorProto -> EnumValueDescriptorProto -> EnumValueDescriptorProto
862+mergeEnumValueDescriptorProto (EnumValueDescriptorProto l) (EnumValueDescriptorProto r) = EnumValueDescriptorProto
863+ { name: Alt.alt l.name r.name
864+ , number: Alt.alt l.number r.number
865+ , options: Runtime.mergeWith mergeEnumValueOptions l.options r.options
866+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
867+ }
868+
754869
755870type ServiceDescriptorProtoRow =
756871 ( name :: Maybe.Maybe String
@@ -767,9 +882,9 @@ instance showServiceDescriptorProto :: Show.Show ServiceDescriptorProto where sh
767882
768883putServiceDescriptorProto :: forall m. MonadEffect m => ServiceDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
769884putServiceDescriptorProto (ServiceDescriptorProto r) = do
770− Runtime.putOptional 1 r.name String.null Encode.string
885+ Runtime.putOptional 1 r.name Common.isDefault Encode.string
771886 Runtime.putRepeated 2 r.method $ Runtime.putLenDel putMethodDescriptorProto
772− Runtime.putOptional 3 r.options (const false) $ Runtime.putLenDel putServiceOptions
887+ Runtime.putOptional 3 r.options (\_ -> false) $ Runtime.putLenDel putServiceOptions
773888 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
774889
775890parseServiceDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m ServiceDescriptorProto
@@ -782,13 +897,13 @@ parseServiceDescriptorProto length = Runtime.label "ServiceDescriptorProto / " $
782897 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder ServiceDescriptorProtoR ServiceDescriptorProtoR)
783898 parseField 1 Common.LenDel = Runtime.label "name / " $ do
784899 x <- Decode.string
785− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.const $ Maybe.Just x
900+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ \_ -> Maybe.Just x
786901 parseField 2 Common.LenDel = Runtime.label "method / " $ do
787902 x <- Runtime.parseLenDel parseMethodDescriptorProto
788903 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "method") $ Function.flip Array.snoc x
789904 parseField 3 Common.LenDel = Runtime.label "options / " $ do
790905 x <- Runtime.parseLenDel parseServiceOptions
791− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Function.const $ Maybe.Just x
906+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Maybe.Just <<< Maybe.maybe x (mergeServiceOptions x)
792907 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
793908
794909defaultServiceDescriptorProto :: ServiceDescriptorProtoR
@@ -802,6 +917,14 @@ defaultServiceDescriptorProto =
802917mkServiceDescriptorProto :: forall r1 r3. Prim.Row.Union r1 ServiceDescriptorProtoRow r3 => Prim.Row.Nub r3 ServiceDescriptorProtoRow => Record r1 -> ServiceDescriptorProto
803918mkServiceDescriptorProto r = ServiceDescriptorProto $ Record.merge r defaultServiceDescriptorProto
804919
920+mergeServiceDescriptorProto :: ServiceDescriptorProto -> ServiceDescriptorProto -> ServiceDescriptorProto
921+mergeServiceDescriptorProto (ServiceDescriptorProto l) (ServiceDescriptorProto r) = ServiceDescriptorProto
922+ { name: Alt.alt l.name r.name
923+ , method: r.method <> l.method
924+ , options: Runtime.mergeWith mergeServiceOptions l.options r.options
925+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
926+ }
927+
805928
806929type MethodDescriptorProtoRow =
807930 ( name :: Maybe.Maybe String
@@ -821,12 +944,12 @@ instance showMethodDescriptorProto :: Show.Show MethodDescriptorProto where show
821944
822945putMethodDescriptorProto :: forall m. MonadEffect m => MethodDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
823946putMethodDescriptorProto (MethodDescriptorProto r) = do
824− Runtime.putOptional 1 r.name String.null Encode.string
825− Runtime.putOptional 2 r.input_type String.null Encode.string
826− Runtime.putOptional 3 r.output_type String.null Encode.string
827− Runtime.putOptional 4 r.options (const false) $ Runtime.putLenDel putMethodOptions
828− Runtime.putOptional 5 r.client_streaming not Encode.bool
829− Runtime.putOptional 6 r.server_streaming not Encode.bool
947+ Runtime.putOptional 1 r.name Common.isDefault Encode.string
948+ Runtime.putOptional 2 r.input_type Common.isDefault Encode.string
949+ Runtime.putOptional 3 r.output_type Common.isDefault Encode.string
950+ Runtime.putOptional 4 r.options (\_ -> false) $ Runtime.putLenDel putMethodOptions
951+ Runtime.putOptional 5 r.client_streaming Common.isDefault Encode.bool
952+ Runtime.putOptional 6 r.server_streaming Common.isDefault Encode.bool
830953 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
831954
832955parseMethodDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m MethodDescriptorProto
@@ -839,22 +962,22 @@ parseMethodDescriptorProto length = Runtime.label "MethodDescriptorProto / " $
839962 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder MethodDescriptorProtoR MethodDescriptorProtoR)
840963 parseField 1 Common.LenDel = Runtime.label "name / " $ do
841964 x <- Decode.string
842− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.const $ Maybe.Just x
965+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ \_ -> Maybe.Just x
843966 parseField 2 Common.LenDel = Runtime.label "input_type / " $ do
844967 x <- Decode.string
845− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "input_type") $ Function.const $ Maybe.Just x
968+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "input_type") $ \_ -> Maybe.Just x
846969 parseField 3 Common.LenDel = Runtime.label "output_type / " $ do
847970 x <- Decode.string
848− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "output_type") $ Function.const $ Maybe.Just x
971+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "output_type") $ \_ -> Maybe.Just x
849972 parseField 4 Common.LenDel = Runtime.label "options / " $ do
850973 x <- Runtime.parseLenDel parseMethodOptions
851− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Function.const $ Maybe.Just x
974+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "options") $ Maybe.Just <<< Maybe.maybe x (mergeMethodOptions x)
852975 parseField 5 Common.VarInt = Runtime.label "client_streaming / " $ do
853976 x <- Decode.bool
854− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "client_streaming") $ Function.const $ Maybe.Just x
977+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "client_streaming") $ \_ -> Maybe.Just x
855978 parseField 6 Common.VarInt = Runtime.label "server_streaming / " $ do
856979 x <- Decode.bool
857− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "server_streaming") $ Function.const $ Maybe.Just x
980+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "server_streaming") $ \_ -> Maybe.Just x
858981 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
859982
860983defaultMethodDescriptorProto :: MethodDescriptorProtoR
@@ -871,6 +994,17 @@ defaultMethodDescriptorProto =
871994mkMethodDescriptorProto :: forall r1 r3. Prim.Row.Union r1 MethodDescriptorProtoRow r3 => Prim.Row.Nub r3 MethodDescriptorProtoRow => Record r1 -> MethodDescriptorProto
872995mkMethodDescriptorProto r = MethodDescriptorProto $ Record.merge r defaultMethodDescriptorProto
873996
997+mergeMethodDescriptorProto :: MethodDescriptorProto -> MethodDescriptorProto -> MethodDescriptorProto
998+mergeMethodDescriptorProto (MethodDescriptorProto l) (MethodDescriptorProto r) = MethodDescriptorProto
999+ { name: Alt.alt l.name r.name
1000+ , input_type: Alt.alt l.input_type r.input_type
1001+ , output_type: Alt.alt l.output_type r.output_type
1002+ , options: Runtime.mergeWith mergeMethodOptions l.options r.options
1003+ , client_streaming: Alt.alt l.client_streaming r.client_streaming
1004+ , server_streaming: Alt.alt l.server_streaming r.server_streaming
1005+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1006+ }
1007+
8741008
8751009type FileOptionsRow =
8761010 ( java_package :: Maybe.Maybe String
@@ -905,26 +1039,26 @@ instance showFileOptions :: Show.Show FileOptions where show x = Generic.Rep.Sho
9051039
9061040putFileOptions :: forall m. MonadEffect m => FileOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
9071041putFileOptions (FileOptions r) = do
908− Runtime.putOptional 1 r.java_package String.null Encode.string
909− Runtime.putOptional 8 r.java_outer_classname String.null Encode.string
910− Runtime.putOptional 10 r.java_multiple_files not Encode.bool
911− Runtime.putOptional 20 r.java_generate_equals_and_hash not Encode.bool
912− Runtime.putOptional 27 r.java_string_check_utf8 not Encode.bool
913− Runtime.putOptional 9 r.optimize_for (Enum.fromEnum >>> (_==0)) Runtime.putEnum
914− Runtime.putOptional 11 r.go_package String.null Encode.string
915− Runtime.putOptional 16 r.cc_generic_services not Encode.bool
916− Runtime.putOptional 17 r.java_generic_services not Encode.bool
917− Runtime.putOptional 18 r.py_generic_services not Encode.bool
918− Runtime.putOptional 42 r.php_generic_services not Encode.bool
919− Runtime.putOptional 23 r.deprecated not Encode.bool
920− Runtime.putOptional 31 r.cc_enable_arenas not Encode.bool
921− Runtime.putOptional 36 r.objc_class_prefix String.null Encode.string
922− Runtime.putOptional 37 r.csharp_namespace String.null Encode.string
923− Runtime.putOptional 39 r.swift_prefix String.null Encode.string
924− Runtime.putOptional 40 r.php_class_prefix String.null Encode.string
925− Runtime.putOptional 41 r.php_namespace String.null Encode.string
926− Runtime.putOptional 44 r.php_metadata_namespace String.null Encode.string
927− Runtime.putOptional 45 r.ruby_package String.null Encode.string
1042+ Runtime.putOptional 1 r.java_package Common.isDefault Encode.string
1043+ Runtime.putOptional 8 r.java_outer_classname Common.isDefault Encode.string
1044+ Runtime.putOptional 10 r.java_multiple_files Common.isDefault Encode.bool
1045+ Runtime.putOptional 20 r.java_generate_equals_and_hash Common.isDefault Encode.bool
1046+ Runtime.putOptional 27 r.java_string_check_utf8 Common.isDefault Encode.bool
1047+ Runtime.putOptional 9 r.optimize_for Common.isDefault Runtime.putEnum
1048+ Runtime.putOptional 11 r.go_package Common.isDefault Encode.string
1049+ Runtime.putOptional 16 r.cc_generic_services Common.isDefault Encode.bool
1050+ Runtime.putOptional 17 r.java_generic_services Common.isDefault Encode.bool
1051+ Runtime.putOptional 18 r.py_generic_services Common.isDefault Encode.bool
1052+ Runtime.putOptional 42 r.php_generic_services Common.isDefault Encode.bool
1053+ Runtime.putOptional 23 r.deprecated Common.isDefault Encode.bool
1054+ Runtime.putOptional 31 r.cc_enable_arenas Common.isDefault Encode.bool
1055+ Runtime.putOptional 36 r.objc_class_prefix Common.isDefault Encode.string
1056+ Runtime.putOptional 37 r.csharp_namespace Common.isDefault Encode.string
1057+ Runtime.putOptional 39 r.swift_prefix Common.isDefault Encode.string
1058+ Runtime.putOptional 40 r.php_class_prefix Common.isDefault Encode.string
1059+ Runtime.putOptional 41 r.php_namespace Common.isDefault Encode.string
1060+ Runtime.putOptional 44 r.php_metadata_namespace Common.isDefault Encode.string
1061+ Runtime.putOptional 45 r.ruby_package Common.isDefault Encode.string
9281062 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
9291063 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
9301064
@@ -938,64 +1072,64 @@ parseFileOptions length = Runtime.label "FileOptions / " $
9381072 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder FileOptionsR FileOptionsR)
9391073 parseField 1 Common.LenDel = Runtime.label "java_package / " $ do
9401074 x <- Decode.string
941− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_package") $ Function.const $ Maybe.Just x
1075+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_package") $ \_ -> Maybe.Just x
9421076 parseField 8 Common.LenDel = Runtime.label "java_outer_classname / " $ do
9431077 x <- Decode.string
944− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_outer_classname") $ Function.const $ Maybe.Just x
1078+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_outer_classname") $ \_ -> Maybe.Just x
9451079 parseField 10 Common.VarInt = Runtime.label "java_multiple_files / " $ do
9461080 x <- Decode.bool
947− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_multiple_files") $ Function.const $ Maybe.Just x
1081+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_multiple_files") $ \_ -> Maybe.Just x
9481082 parseField 20 Common.VarInt = Runtime.label "java_generate_equals_and_hash / " $ do
9491083 x <- Decode.bool
950− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_generate_equals_and_hash") $ Function.const $ Maybe.Just x
1084+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_generate_equals_and_hash") $ \_ -> Maybe.Just x
9511085 parseField 27 Common.VarInt = Runtime.label "java_string_check_utf8 / " $ do
9521086 x <- Decode.bool
953− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_string_check_utf8") $ Function.const $ Maybe.Just x
1087+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_string_check_utf8") $ \_ -> Maybe.Just x
9541088 parseField 9 Common.VarInt = Runtime.label "optimize_for / " $ do
9551089 x <- Runtime.parseEnum
956− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "optimize_for") $ Function.const $ Maybe.Just x
1090+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "optimize_for") $ \_ -> Maybe.Just x
9571091 parseField 11 Common.LenDel = Runtime.label "go_package / " $ do
9581092 x <- Decode.string
959− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "go_package") $ Function.const $ Maybe.Just x
1093+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "go_package") $ \_ -> Maybe.Just x
9601094 parseField 16 Common.VarInt = Runtime.label "cc_generic_services / " $ do
9611095 x <- Decode.bool
962− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "cc_generic_services") $ Function.const $ Maybe.Just x
1096+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "cc_generic_services") $ \_ -> Maybe.Just x
9631097 parseField 17 Common.VarInt = Runtime.label "java_generic_services / " $ do
9641098 x <- Decode.bool
965− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_generic_services") $ Function.const $ Maybe.Just x
1099+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "java_generic_services") $ \_ -> Maybe.Just x
9661100 parseField 18 Common.VarInt = Runtime.label "py_generic_services / " $ do
9671101 x <- Decode.bool
968− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "py_generic_services") $ Function.const $ Maybe.Just x
1102+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "py_generic_services") $ \_ -> Maybe.Just x
9691103 parseField 42 Common.VarInt = Runtime.label "php_generic_services / " $ do
9701104 x <- Decode.bool
971− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "php_generic_services") $ Function.const $ Maybe.Just x
1105+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "php_generic_services") $ \_ -> Maybe.Just x
9721106 parseField 23 Common.VarInt = Runtime.label "deprecated / " $ do
9731107 x <- Decode.bool
974− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ Function.const $ Maybe.Just x
1108+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ \_ -> Maybe.Just x
9751109 parseField 31 Common.VarInt = Runtime.label "cc_enable_arenas / " $ do
9761110 x <- Decode.bool
977− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "cc_enable_arenas") $ Function.const $ Maybe.Just x
1111+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "cc_enable_arenas") $ \_ -> Maybe.Just x
9781112 parseField 36 Common.LenDel = Runtime.label "objc_class_prefix / " $ do
9791113 x <- Decode.string
980− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "objc_class_prefix") $ Function.const $ Maybe.Just x
1114+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "objc_class_prefix") $ \_ -> Maybe.Just x
9811115 parseField 37 Common.LenDel = Runtime.label "csharp_namespace / " $ do
9821116 x <- Decode.string
983− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "csharp_namespace") $ Function.const $ Maybe.Just x
1117+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "csharp_namespace") $ \_ -> Maybe.Just x
9841118 parseField 39 Common.LenDel = Runtime.label "swift_prefix / " $ do
9851119 x <- Decode.string
986− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "swift_prefix") $ Function.const $ Maybe.Just x
1120+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "swift_prefix") $ \_ -> Maybe.Just x
9871121 parseField 40 Common.LenDel = Runtime.label "php_class_prefix / " $ do
9881122 x <- Decode.string
989− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "php_class_prefix") $ Function.const $ Maybe.Just x
1123+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "php_class_prefix") $ \_ -> Maybe.Just x
9901124 parseField 41 Common.LenDel = Runtime.label "php_namespace / " $ do
9911125 x <- Decode.string
992− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "php_namespace") $ Function.const $ Maybe.Just x
1126+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "php_namespace") $ \_ -> Maybe.Just x
9931127 parseField 44 Common.LenDel = Runtime.label "php_metadata_namespace / " $ do
9941128 x <- Decode.string
995− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "php_metadata_namespace") $ Function.const $ Maybe.Just x
1129+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "php_metadata_namespace") $ \_ -> Maybe.Just x
9961130 parseField 45 Common.LenDel = Runtime.label "ruby_package / " $ do
9971131 x <- Decode.string
998− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "ruby_package") $ Function.const $ Maybe.Just x
1132+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "ruby_package") $ \_ -> Maybe.Just x
9991133 parseField 999 Common.LenDel = Runtime.label "uninterpreted_option / " $ do
10001134 x <- Runtime.parseLenDel parseUninterpretedOption
10011135 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "uninterpreted_option") $ Function.flip Array.snoc x
@@ -1030,6 +1164,32 @@ defaultFileOptions =
10301164mkFileOptions :: forall r1 r3. Prim.Row.Union r1 FileOptionsRow r3 => Prim.Row.Nub r3 FileOptionsRow => Record r1 -> FileOptions
10311165mkFileOptions r = FileOptions $ Record.merge r defaultFileOptions
10321166
1167+mergeFileOptions :: FileOptions -> FileOptions -> FileOptions
1168+mergeFileOptions (FileOptions l) (FileOptions r) = FileOptions
1169+ { java_package: Alt.alt l.java_package r.java_package
1170+ , java_outer_classname: Alt.alt l.java_outer_classname r.java_outer_classname
1171+ , java_multiple_files: Alt.alt l.java_multiple_files r.java_multiple_files
1172+ , java_generate_equals_and_hash: Alt.alt l.java_generate_equals_and_hash r.java_generate_equals_and_hash
1173+ , java_string_check_utf8: Alt.alt l.java_string_check_utf8 r.java_string_check_utf8
1174+ , optimize_for: Alt.alt l.optimize_for r.optimize_for
1175+ , go_package: Alt.alt l.go_package r.go_package
1176+ , cc_generic_services: Alt.alt l.cc_generic_services r.cc_generic_services
1177+ , java_generic_services: Alt.alt l.java_generic_services r.java_generic_services
1178+ , py_generic_services: Alt.alt l.py_generic_services r.py_generic_services
1179+ , php_generic_services: Alt.alt l.php_generic_services r.php_generic_services
1180+ , deprecated: Alt.alt l.deprecated r.deprecated
1181+ , cc_enable_arenas: Alt.alt l.cc_enable_arenas r.cc_enable_arenas
1182+ , objc_class_prefix: Alt.alt l.objc_class_prefix r.objc_class_prefix
1183+ , csharp_namespace: Alt.alt l.csharp_namespace r.csharp_namespace
1184+ , swift_prefix: Alt.alt l.swift_prefix r.swift_prefix
1185+ , php_class_prefix: Alt.alt l.php_class_prefix r.php_class_prefix
1186+ , php_namespace: Alt.alt l.php_namespace r.php_namespace
1187+ , php_metadata_namespace: Alt.alt l.php_metadata_namespace r.php_metadata_namespace
1188+ , ruby_package: Alt.alt l.ruby_package r.ruby_package
1189+ , uninterpreted_option: r.uninterpreted_option <> l.uninterpreted_option
1190+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1191+ }
1192+
10331193
10341194type MessageOptionsRow =
10351195 ( message_set_wire_format :: Maybe.Maybe Boolean
@@ -1048,10 +1208,10 @@ instance showMessageOptions :: Show.Show MessageOptions where show x = Generic.R
10481208
10491209putMessageOptions :: forall m. MonadEffect m => MessageOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
10501210putMessageOptions (MessageOptions r) = do
1051− Runtime.putOptional 1 r.message_set_wire_format not Encode.bool
1052− Runtime.putOptional 2 r.no_standard_descriptor_accessor not Encode.bool
1053− Runtime.putOptional 3 r.deprecated not Encode.bool
1054− Runtime.putOptional 7 r.map_entry not Encode.bool
1211+ Runtime.putOptional 1 r.message_set_wire_format Common.isDefault Encode.bool
1212+ Runtime.putOptional 2 r.no_standard_descriptor_accessor Common.isDefault Encode.bool
1213+ Runtime.putOptional 3 r.deprecated Common.isDefault Encode.bool
1214+ Runtime.putOptional 7 r.map_entry Common.isDefault Encode.bool
10551215 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
10561216 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
10571217
@@ -1065,16 +1225,16 @@ parseMessageOptions length = Runtime.label "MessageOptions / " $
10651225 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder MessageOptionsR MessageOptionsR)
10661226 parseField 1 Common.VarInt = Runtime.label "message_set_wire_format / " $ do
10671227 x <- Decode.bool
1068− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "message_set_wire_format") $ Function.const $ Maybe.Just x
1228+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "message_set_wire_format") $ \_ -> Maybe.Just x
10691229 parseField 2 Common.VarInt = Runtime.label "no_standard_descriptor_accessor / " $ do
10701230 x <- Decode.bool
1071− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "no_standard_descriptor_accessor") $ Function.const $ Maybe.Just x
1231+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "no_standard_descriptor_accessor") $ \_ -> Maybe.Just x
10721232 parseField 3 Common.VarInt = Runtime.label "deprecated / " $ do
10731233 x <- Decode.bool
1074− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ Function.const $ Maybe.Just x
1234+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ \_ -> Maybe.Just x
10751235 parseField 7 Common.VarInt = Runtime.label "map_entry / " $ do
10761236 x <- Decode.bool
1077− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "map_entry") $ Function.const $ Maybe.Just x
1237+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "map_entry") $ \_ -> Maybe.Just x
10781238 parseField 999 Common.LenDel = Runtime.label "uninterpreted_option / " $ do
10791239 x <- Runtime.parseLenDel parseUninterpretedOption
10801240 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "uninterpreted_option") $ Function.flip Array.snoc x
@@ -1093,6 +1253,16 @@ defaultMessageOptions =
10931253mkMessageOptions :: forall r1 r3. Prim.Row.Union r1 MessageOptionsRow r3 => Prim.Row.Nub r3 MessageOptionsRow => Record r1 -> MessageOptions
10941254mkMessageOptions r = MessageOptions $ Record.merge r defaultMessageOptions
10951255
1256+mergeMessageOptions :: MessageOptions -> MessageOptions -> MessageOptions
1257+mergeMessageOptions (MessageOptions l) (MessageOptions r) = MessageOptions
1258+ { message_set_wire_format: Alt.alt l.message_set_wire_format r.message_set_wire_format
1259+ , no_standard_descriptor_accessor: Alt.alt l.no_standard_descriptor_accessor r.no_standard_descriptor_accessor
1260+ , deprecated: Alt.alt l.deprecated r.deprecated
1261+ , map_entry: Alt.alt l.map_entry r.map_entry
1262+ , uninterpreted_option: r.uninterpreted_option <> l.uninterpreted_option
1263+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1264+ }
1265+
10961266
10971267type FieldOptionsRow =
10981268 ( ctype :: Maybe.Maybe FieldOptions_CType
@@ -1113,12 +1283,12 @@ instance showFieldOptions :: Show.Show FieldOptions where show x = Generic.Rep.S
11131283
11141284putFieldOptions :: forall m. MonadEffect m => FieldOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
11151285putFieldOptions (FieldOptions r) = do
1116− Runtime.putOptional 1 r.ctype (Enum.fromEnum >>> (_==0)) Runtime.putEnum
1117− Runtime.putOptional 2 r.packed not Encode.bool
1118− Runtime.putOptional 6 r.jstype (Enum.fromEnum >>> (_==0)) Runtime.putEnum
1119− Runtime.putOptional 5 r.lazy not Encode.bool
1120− Runtime.putOptional 3 r.deprecated not Encode.bool
1121− Runtime.putOptional 10 r.weak not Encode.bool
1286+ Runtime.putOptional 1 r.ctype Common.isDefault Runtime.putEnum
1287+ Runtime.putOptional 2 r.packed Common.isDefault Encode.bool
1288+ Runtime.putOptional 6 r.jstype Common.isDefault Runtime.putEnum
1289+ Runtime.putOptional 5 r.lazy Common.isDefault Encode.bool
1290+ Runtime.putOptional 3 r.deprecated Common.isDefault Encode.bool
1291+ Runtime.putOptional 10 r.weak Common.isDefault Encode.bool
11221292 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
11231293 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
11241294
@@ -1132,22 +1302,22 @@ parseFieldOptions length = Runtime.label "FieldOptions / " $
11321302 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder FieldOptionsR FieldOptionsR)
11331303 parseField 1 Common.VarInt = Runtime.label "ctype / " $ do
11341304 x <- Runtime.parseEnum
1135− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "ctype") $ Function.const $ Maybe.Just x
1305+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "ctype") $ \_ -> Maybe.Just x
11361306 parseField 2 Common.VarInt = Runtime.label "packed / " $ do
11371307 x <- Decode.bool
1138− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "packed") $ Function.const $ Maybe.Just x
1308+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "packed") $ \_ -> Maybe.Just x
11391309 parseField 6 Common.VarInt = Runtime.label "jstype / " $ do
11401310 x <- Runtime.parseEnum
1141− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "jstype") $ Function.const $ Maybe.Just x
1311+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "jstype") $ \_ -> Maybe.Just x
11421312 parseField 5 Common.VarInt = Runtime.label "lazy / " $ do
11431313 x <- Decode.bool
1144− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "lazy") $ Function.const $ Maybe.Just x
1314+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "lazy") $ \_ -> Maybe.Just x
11451315 parseField 3 Common.VarInt = Runtime.label "deprecated / " $ do
11461316 x <- Decode.bool
1147− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ Function.const $ Maybe.Just x
1317+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ \_ -> Maybe.Just x
11481318 parseField 10 Common.VarInt = Runtime.label "weak / " $ do
11491319 x <- Decode.bool
1150− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "weak") $ Function.const $ Maybe.Just x
1320+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "weak") $ \_ -> Maybe.Just x
11511321 parseField 999 Common.LenDel = Runtime.label "uninterpreted_option / " $ do
11521322 x <- Runtime.parseLenDel parseUninterpretedOption
11531323 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "uninterpreted_option") $ Function.flip Array.snoc x
@@ -1168,6 +1338,18 @@ defaultFieldOptions =
11681338mkFieldOptions :: forall r1 r3. Prim.Row.Union r1 FieldOptionsRow r3 => Prim.Row.Nub r3 FieldOptionsRow => Record r1 -> FieldOptions
11691339mkFieldOptions r = FieldOptions $ Record.merge r defaultFieldOptions
11701340
1341+mergeFieldOptions :: FieldOptions -> FieldOptions -> FieldOptions
1342+mergeFieldOptions (FieldOptions l) (FieldOptions r) = FieldOptions
1343+ { ctype: Alt.alt l.ctype r.ctype
1344+ , packed: Alt.alt l.packed r.packed
1345+ , jstype: Alt.alt l.jstype r.jstype
1346+ , lazy: Alt.alt l.lazy r.lazy
1347+ , deprecated: Alt.alt l.deprecated r.deprecated
1348+ , weak: Alt.alt l.weak r.weak
1349+ , uninterpreted_option: r.uninterpreted_option <> l.uninterpreted_option
1350+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1351+ }
1352+
11711353
11721354type OneofOptionsRow =
11731355 ( uninterpreted_option :: Array UninterpretedOption
@@ -1207,6 +1389,12 @@ defaultOneofOptions =
12071389mkOneofOptions :: forall r1 r3. Prim.Row.Union r1 OneofOptionsRow r3 => Prim.Row.Nub r3 OneofOptionsRow => Record r1 -> OneofOptions
12081390mkOneofOptions r = OneofOptions $ Record.merge r defaultOneofOptions
12091391
1392+mergeOneofOptions :: OneofOptions -> OneofOptions -> OneofOptions
1393+mergeOneofOptions (OneofOptions l) (OneofOptions r) = OneofOptions
1394+ { uninterpreted_option: r.uninterpreted_option <> l.uninterpreted_option
1395+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1396+ }
1397+
12101398
12111399type EnumOptionsRow =
12121400 ( allow_alias :: Maybe.Maybe Boolean
@@ -1223,8 +1411,8 @@ instance showEnumOptions :: Show.Show EnumOptions where show x = Generic.Rep.Sho
12231411
12241412putEnumOptions :: forall m. MonadEffect m => EnumOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
12251413putEnumOptions (EnumOptions r) = do
1226− Runtime.putOptional 2 r.allow_alias not Encode.bool
1227− Runtime.putOptional 3 r.deprecated not Encode.bool
1414+ Runtime.putOptional 2 r.allow_alias Common.isDefault Encode.bool
1415+ Runtime.putOptional 3 r.deprecated Common.isDefault Encode.bool
12281416 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
12291417 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
12301418
@@ -1238,10 +1426,10 @@ parseEnumOptions length = Runtime.label "EnumOptions / " $
12381426 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder EnumOptionsR EnumOptionsR)
12391427 parseField 2 Common.VarInt = Runtime.label "allow_alias / " $ do
12401428 x <- Decode.bool
1241− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "allow_alias") $ Function.const $ Maybe.Just x
1429+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "allow_alias") $ \_ -> Maybe.Just x
12421430 parseField 3 Common.VarInt = Runtime.label "deprecated / " $ do
12431431 x <- Decode.bool
1244− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ Function.const $ Maybe.Just x
1432+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ \_ -> Maybe.Just x
12451433 parseField 999 Common.LenDel = Runtime.label "uninterpreted_option / " $ do
12461434 x <- Runtime.parseLenDel parseUninterpretedOption
12471435 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "uninterpreted_option") $ Function.flip Array.snoc x
@@ -1258,6 +1446,14 @@ defaultEnumOptions =
12581446mkEnumOptions :: forall r1 r3. Prim.Row.Union r1 EnumOptionsRow r3 => Prim.Row.Nub r3 EnumOptionsRow => Record r1 -> EnumOptions
12591447mkEnumOptions r = EnumOptions $ Record.merge r defaultEnumOptions
12601448
1449+mergeEnumOptions :: EnumOptions -> EnumOptions -> EnumOptions
1450+mergeEnumOptions (EnumOptions l) (EnumOptions r) = EnumOptions
1451+ { allow_alias: Alt.alt l.allow_alias r.allow_alias
1452+ , deprecated: Alt.alt l.deprecated r.deprecated
1453+ , uninterpreted_option: r.uninterpreted_option <> l.uninterpreted_option
1454+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1455+ }
1456+
12611457
12621458type EnumValueOptionsRow =
12631459 ( deprecated :: Maybe.Maybe Boolean
@@ -1273,7 +1469,7 @@ instance showEnumValueOptions :: Show.Show EnumValueOptions where show x = Gener
12731469
12741470putEnumValueOptions :: forall m. MonadEffect m => EnumValueOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
12751471putEnumValueOptions (EnumValueOptions r) = do
1276− Runtime.putOptional 1 r.deprecated not Encode.bool
1472+ Runtime.putOptional 1 r.deprecated Common.isDefault Encode.bool
12771473 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
12781474 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
12791475
@@ -1287,7 +1483,7 @@ parseEnumValueOptions length = Runtime.label "EnumValueOptions / " $
12871483 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder EnumValueOptionsR EnumValueOptionsR)
12881484 parseField 1 Common.VarInt = Runtime.label "deprecated / " $ do
12891485 x <- Decode.bool
1290− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ Function.const $ Maybe.Just x
1486+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ \_ -> Maybe.Just x
12911487 parseField 999 Common.LenDel = Runtime.label "uninterpreted_option / " $ do
12921488 x <- Runtime.parseLenDel parseUninterpretedOption
12931489 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "uninterpreted_option") $ Function.flip Array.snoc x
@@ -1303,6 +1499,13 @@ defaultEnumValueOptions =
13031499mkEnumValueOptions :: forall r1 r3. Prim.Row.Union r1 EnumValueOptionsRow r3 => Prim.Row.Nub r3 EnumValueOptionsRow => Record r1 -> EnumValueOptions
13041500mkEnumValueOptions r = EnumValueOptions $ Record.merge r defaultEnumValueOptions
13051501
1502+mergeEnumValueOptions :: EnumValueOptions -> EnumValueOptions -> EnumValueOptions
1503+mergeEnumValueOptions (EnumValueOptions l) (EnumValueOptions r) = EnumValueOptions
1504+ { deprecated: Alt.alt l.deprecated r.deprecated
1505+ , uninterpreted_option: r.uninterpreted_option <> l.uninterpreted_option
1506+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1507+ }
1508+
13061509
13071510type ServiceOptionsRow =
13081511 ( deprecated :: Maybe.Maybe Boolean
@@ -1318,7 +1521,7 @@ instance showServiceOptions :: Show.Show ServiceOptions where show x = Generic.R
13181521
13191522putServiceOptions :: forall m. MonadEffect m => ServiceOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
13201523putServiceOptions (ServiceOptions r) = do
1321− Runtime.putOptional 33 r.deprecated not Encode.bool
1524+ Runtime.putOptional 33 r.deprecated Common.isDefault Encode.bool
13221525 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
13231526 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
13241527
@@ -1332,7 +1535,7 @@ parseServiceOptions length = Runtime.label "ServiceOptions / " $
13321535 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder ServiceOptionsR ServiceOptionsR)
13331536 parseField 33 Common.VarInt = Runtime.label "deprecated / " $ do
13341537 x <- Decode.bool
1335− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ Function.const $ Maybe.Just x
1538+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ \_ -> Maybe.Just x
13361539 parseField 999 Common.LenDel = Runtime.label "uninterpreted_option / " $ do
13371540 x <- Runtime.parseLenDel parseUninterpretedOption
13381541 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "uninterpreted_option") $ Function.flip Array.snoc x
@@ -1348,6 +1551,13 @@ defaultServiceOptions =
13481551mkServiceOptions :: forall r1 r3. Prim.Row.Union r1 ServiceOptionsRow r3 => Prim.Row.Nub r3 ServiceOptionsRow => Record r1 -> ServiceOptions
13491552mkServiceOptions r = ServiceOptions $ Record.merge r defaultServiceOptions
13501553
1554+mergeServiceOptions :: ServiceOptions -> ServiceOptions -> ServiceOptions
1555+mergeServiceOptions (ServiceOptions l) (ServiceOptions r) = ServiceOptions
1556+ { deprecated: Alt.alt l.deprecated r.deprecated
1557+ , uninterpreted_option: r.uninterpreted_option <> l.uninterpreted_option
1558+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1559+ }
1560+
13511561
13521562type MethodOptionsRow =
13531563 ( deprecated :: Maybe.Maybe Boolean
@@ -1364,8 +1574,8 @@ instance showMethodOptions :: Show.Show MethodOptions where show x = Generic.Rep
13641574
13651575putMethodOptions :: forall m. MonadEffect m => MethodOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
13661576putMethodOptions (MethodOptions r) = do
1367− Runtime.putOptional 33 r.deprecated not Encode.bool
1368− Runtime.putOptional 34 r.idempotency_level (Enum.fromEnum >>> (_==0)) Runtime.putEnum
1577+ Runtime.putOptional 33 r.deprecated Common.isDefault Encode.bool
1578+ Runtime.putOptional 34 r.idempotency_level Common.isDefault Runtime.putEnum
13691579 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
13701580 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
13711581
@@ -1379,10 +1589,10 @@ parseMethodOptions length = Runtime.label "MethodOptions / " $
13791589 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder MethodOptionsR MethodOptionsR)
13801590 parseField 33 Common.VarInt = Runtime.label "deprecated / " $ do
13811591 x <- Decode.bool
1382− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ Function.const $ Maybe.Just x
1592+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "deprecated") $ \_ -> Maybe.Just x
13831593 parseField 34 Common.VarInt = Runtime.label "idempotency_level / " $ do
13841594 x <- Runtime.parseEnum
1385− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "idempotency_level") $ Function.const $ Maybe.Just x
1595+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "idempotency_level") $ \_ -> Maybe.Just x
13861596 parseField 999 Common.LenDel = Runtime.label "uninterpreted_option / " $ do
13871597 x <- Runtime.parseLenDel parseUninterpretedOption
13881598 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "uninterpreted_option") $ Function.flip Array.snoc x
@@ -1399,6 +1609,14 @@ defaultMethodOptions =
13991609mkMethodOptions :: forall r1 r3. Prim.Row.Union r1 MethodOptionsRow r3 => Prim.Row.Nub r3 MethodOptionsRow => Record r1 -> MethodOptions
14001610mkMethodOptions r = MethodOptions $ Record.merge r defaultMethodOptions
14011611
1612+mergeMethodOptions :: MethodOptions -> MethodOptions -> MethodOptions
1613+mergeMethodOptions (MethodOptions l) (MethodOptions r) = MethodOptions
1614+ { deprecated: Alt.alt l.deprecated r.deprecated
1615+ , idempotency_level: Alt.alt l.idempotency_level r.idempotency_level
1616+ , uninterpreted_option: r.uninterpreted_option <> l.uninterpreted_option
1617+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1618+ }
1619+
14021620
14031621type UninterpretedOptionRow =
14041622 ( name :: Array UninterpretedOption_NamePart
@@ -1420,12 +1638,12 @@ instance showUninterpretedOption :: Show.Show UninterpretedOption where show x =
14201638putUninterpretedOption :: forall m. MonadEffect m => UninterpretedOption -> ArrayBuffer.Builder.PutM m Unit.Unit
14211639putUninterpretedOption (UninterpretedOption r) = do
14221640 Runtime.putRepeated 2 r.name $ Runtime.putLenDel putUninterpretedOption_NamePart
1423− Runtime.putOptional 3 r.identifier_value String.null Encode.string
1424− Runtime.putOptional 4 r.positive_int_value (_==Semiring.zero) Encode.uint64
1425− Runtime.putOptional 5 r.negative_int_value (_==Semiring.zero) Encode.int64
1426− Runtime.putOptional 6 r.double_value (_==Semiring.zero) Encode.double
1427− Runtime.putOptional 7 r.string_value (Newtype.unwrap >>> ArrayBuffer.byteLength >>> (_==0)) Encode.bytes
1428− Runtime.putOptional 8 r.aggregate_value String.null Encode.string
1641+ Runtime.putOptional 3 r.identifier_value Common.isDefault Encode.string
1642+ Runtime.putOptional 4 r.positive_int_value Common.isDefault Encode.uint64
1643+ Runtime.putOptional 5 r.negative_int_value Common.isDefault Encode.int64
1644+ Runtime.putOptional 6 r.double_value Common.isDefault Encode.double
1645+ Runtime.putOptional 7 r.string_value Common.isDefault Encode.bytes
1646+ Runtime.putOptional 8 r.aggregate_value Common.isDefault Encode.string
14291647 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
14301648
14311649parseUninterpretedOption :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m UninterpretedOption
@@ -1441,22 +1659,22 @@ parseUninterpretedOption length = Runtime.label "UninterpretedOption / " $
14411659 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.flip Array.snoc x
14421660 parseField 3 Common.LenDel = Runtime.label "identifier_value / " $ do
14431661 x <- Decode.string
1444− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "identifier_value") $ Function.const $ Maybe.Just x
1662+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "identifier_value") $ \_ -> Maybe.Just x
14451663 parseField 4 Common.VarInt = Runtime.label "positive_int_value / " $ do
14461664 x <- Decode.uint64
1447− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "positive_int_value") $ Function.const $ Maybe.Just x
1665+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "positive_int_value") $ \_ -> Maybe.Just x
14481666 parseField 5 Common.VarInt = Runtime.label "negative_int_value / " $ do
14491667 x <- Decode.int64
1450− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "negative_int_value") $ Function.const $ Maybe.Just x
1668+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "negative_int_value") $ \_ -> Maybe.Just x
14511669 parseField 6 Common.Bits64 = Runtime.label "double_value / " $ do
14521670 x <- Decode.double
1453− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "double_value") $ Function.const $ Maybe.Just x
1671+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "double_value") $ \_ -> Maybe.Just x
14541672 parseField 7 Common.LenDel = Runtime.label "string_value / " $ do
14551673 x <- Decode.bytes
1456− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "string_value") $ Function.const $ Maybe.Just x
1674+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "string_value") $ \_ -> Maybe.Just x
14571675 parseField 8 Common.LenDel = Runtime.label "aggregate_value / " $ do
14581676 x <- Decode.string
1459− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "aggregate_value") $ Function.const $ Maybe.Just x
1677+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "aggregate_value") $ \_ -> Maybe.Just x
14601678 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
14611679
14621680defaultUninterpretedOption :: UninterpretedOptionR
@@ -1474,6 +1692,18 @@ defaultUninterpretedOption =
14741692mkUninterpretedOption :: forall r1 r3. Prim.Row.Union r1 UninterpretedOptionRow r3 => Prim.Row.Nub r3 UninterpretedOptionRow => Record r1 -> UninterpretedOption
14751693mkUninterpretedOption r = UninterpretedOption $ Record.merge r defaultUninterpretedOption
14761694
1695+mergeUninterpretedOption :: UninterpretedOption -> UninterpretedOption -> UninterpretedOption
1696+mergeUninterpretedOption (UninterpretedOption l) (UninterpretedOption r) = UninterpretedOption
1697+ { name: r.name <> l.name
1698+ , identifier_value: Alt.alt l.identifier_value r.identifier_value
1699+ , positive_int_value: Alt.alt l.positive_int_value r.positive_int_value
1700+ , negative_int_value: Alt.alt l.negative_int_value r.negative_int_value
1701+ , double_value: Alt.alt l.double_value r.double_value
1702+ , string_value: Alt.alt l.string_value r.string_value
1703+ , aggregate_value: Alt.alt l.aggregate_value r.aggregate_value
1704+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1705+ }
1706+
14771707
14781708type UninterpretedOption_NamePartRow =
14791709 ( name_part :: Maybe.Maybe String
@@ -1489,8 +1719,8 @@ instance showUninterpretedOption_NamePart :: Show.Show UninterpretedOption_NameP
14891719
14901720putUninterpretedOption_NamePart :: forall m. MonadEffect m => UninterpretedOption_NamePart -> ArrayBuffer.Builder.PutM m Unit.Unit
14911721putUninterpretedOption_NamePart (UninterpretedOption_NamePart r) = do
1492− Runtime.putOptional 1 r.name_part String.null Encode.string
1493− Runtime.putOptional 2 r.is_extension not Encode.bool
1722+ Runtime.putOptional 1 r.name_part Common.isDefault Encode.string
1723+ Runtime.putOptional 2 r.is_extension Common.isDefault Encode.bool
14941724 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
14951725
14961726parseUninterpretedOption_NamePart :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m UninterpretedOption_NamePart
@@ -1503,10 +1733,10 @@ parseUninterpretedOption_NamePart length = Runtime.label "NamePart / " $
15031733 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder UninterpretedOption_NamePartR UninterpretedOption_NamePartR)
15041734 parseField 1 Common.LenDel = Runtime.label "name_part / " $ do
15051735 x <- Decode.string
1506− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name_part") $ Function.const $ Maybe.Just x
1736+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name_part") $ \_ -> Maybe.Just x
15071737 parseField 2 Common.VarInt = Runtime.label "is_extension / " $ do
15081738 x <- Decode.bool
1509− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "is_extension") $ Function.const $ Maybe.Just x
1739+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "is_extension") $ \_ -> Maybe.Just x
15101740 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
15111741
15121742defaultUninterpretedOption_NamePart :: UninterpretedOption_NamePartR
@@ -1519,6 +1749,13 @@ defaultUninterpretedOption_NamePart =
15191749mkUninterpretedOption_NamePart :: forall r1 r3. Prim.Row.Union r1 UninterpretedOption_NamePartRow r3 => Prim.Row.Nub r3 UninterpretedOption_NamePartRow => Record r1 -> UninterpretedOption_NamePart
15201750mkUninterpretedOption_NamePart r = UninterpretedOption_NamePart $ Record.merge r defaultUninterpretedOption_NamePart
15211751
1752+mergeUninterpretedOption_NamePart :: UninterpretedOption_NamePart -> UninterpretedOption_NamePart -> UninterpretedOption_NamePart
1753+mergeUninterpretedOption_NamePart (UninterpretedOption_NamePart l) (UninterpretedOption_NamePart r) = UninterpretedOption_NamePart
1754+ { name_part: Alt.alt l.name_part r.name_part
1755+ , is_extension: Alt.alt l.is_extension r.is_extension
1756+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1757+ }
1758+
15221759
15231760type SourceCodeInfoRow =
15241761 ( location :: Array SourceCodeInfo_Location
@@ -1558,6 +1795,12 @@ defaultSourceCodeInfo =
15581795mkSourceCodeInfo :: forall r1 r3. Prim.Row.Union r1 SourceCodeInfoRow r3 => Prim.Row.Nub r3 SourceCodeInfoRow => Record r1 -> SourceCodeInfo
15591796mkSourceCodeInfo r = SourceCodeInfo $ Record.merge r defaultSourceCodeInfo
15601797
1798+mergeSourceCodeInfo :: SourceCodeInfo -> SourceCodeInfo -> SourceCodeInfo
1799+mergeSourceCodeInfo (SourceCodeInfo l) (SourceCodeInfo r) = SourceCodeInfo
1800+ { location: r.location <> l.location
1801+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1802+ }
1803+
15611804
15621805type SourceCodeInfo_LocationRow =
15631806 ( path :: Array Int
@@ -1578,8 +1821,8 @@ putSourceCodeInfo_Location :: forall m. MonadEffect m => SourceCodeInfo_Location
15781821putSourceCodeInfo_Location (SourceCodeInfo_Location r) = do
15791822 Runtime.putPacked 1 r.path Encode.int32'
15801823 Runtime.putPacked 2 r.span Encode.int32'
1581− Runtime.putOptional 3 r.leading_comments String.null Encode.string
1582− Runtime.putOptional 4 r.trailing_comments String.null Encode.string
1824+ Runtime.putOptional 3 r.leading_comments Common.isDefault Encode.string
1825+ Runtime.putOptional 4 r.trailing_comments Common.isDefault Encode.string
15831826 Runtime.putRepeated 6 r.leading_detached_comments Encode.string
15841827 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
15851828
@@ -1605,10 +1848,10 @@ parseSourceCodeInfo_Location length = Runtime.label "Location / " $
16051848 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "span") $ Function.flip Semigroup.append x
16061849 parseField 3 Common.LenDel = Runtime.label "leading_comments / " $ do
16071850 x <- Decode.string
1608− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "leading_comments") $ Function.const $ Maybe.Just x
1851+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "leading_comments") $ \_ -> Maybe.Just x
16091852 parseField 4 Common.LenDel = Runtime.label "trailing_comments / " $ do
16101853 x <- Decode.string
1611− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "trailing_comments") $ Function.const $ Maybe.Just x
1854+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "trailing_comments") $ \_ -> Maybe.Just x
16121855 parseField 6 Common.LenDel = Runtime.label "leading_detached_comments / " $ do
16131856 x <- Decode.string
16141857 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "leading_detached_comments") $ Function.flip Array.snoc x
@@ -1627,6 +1870,16 @@ defaultSourceCodeInfo_Location =
16271870mkSourceCodeInfo_Location :: forall r1 r3. Prim.Row.Union r1 SourceCodeInfo_LocationRow r3 => Prim.Row.Nub r3 SourceCodeInfo_LocationRow => Record r1 -> SourceCodeInfo_Location
16281871mkSourceCodeInfo_Location r = SourceCodeInfo_Location $ Record.merge r defaultSourceCodeInfo_Location
16291872
1873+mergeSourceCodeInfo_Location :: SourceCodeInfo_Location -> SourceCodeInfo_Location -> SourceCodeInfo_Location
1874+mergeSourceCodeInfo_Location (SourceCodeInfo_Location l) (SourceCodeInfo_Location r) = SourceCodeInfo_Location
1875+ { path: r.path <> l.path
1876+ , span: r.span <> l.span
1877+ , leading_comments: Alt.alt l.leading_comments r.leading_comments
1878+ , trailing_comments: Alt.alt l.trailing_comments r.trailing_comments
1879+ , leading_detached_comments: r.leading_detached_comments <> l.leading_detached_comments
1880+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1881+ }
1882+
16301883
16311884type GeneratedCodeInfoRow =
16321885 ( annotation :: Array GeneratedCodeInfo_Annotation
@@ -1666,6 +1919,12 @@ defaultGeneratedCodeInfo =
16661919mkGeneratedCodeInfo :: forall r1 r3. Prim.Row.Union r1 GeneratedCodeInfoRow r3 => Prim.Row.Nub r3 GeneratedCodeInfoRow => Record r1 -> GeneratedCodeInfo
16671920mkGeneratedCodeInfo r = GeneratedCodeInfo $ Record.merge r defaultGeneratedCodeInfo
16681921
1922+mergeGeneratedCodeInfo :: GeneratedCodeInfo -> GeneratedCodeInfo -> GeneratedCodeInfo
1923+mergeGeneratedCodeInfo (GeneratedCodeInfo l) (GeneratedCodeInfo r) = GeneratedCodeInfo
1924+ { annotation: r.annotation <> l.annotation
1925+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1926+ }
1927+
16691928
16701929type GeneratedCodeInfo_AnnotationRow =
16711930 ( path :: Array Int
@@ -1684,9 +1943,9 @@ instance showGeneratedCodeInfo_Annotation :: Show.Show GeneratedCodeInfo_Annotat
16841943putGeneratedCodeInfo_Annotation :: forall m. MonadEffect m => GeneratedCodeInfo_Annotation -> ArrayBuffer.Builder.PutM m Unit.Unit
16851944putGeneratedCodeInfo_Annotation (GeneratedCodeInfo_Annotation r) = do
16861945 Runtime.putPacked 1 r.path Encode.int32'
1687− Runtime.putOptional 2 r.source_file String.null Encode.string
1688− Runtime.putOptional 3 r.begin (_==Semiring.zero) Encode.int32
1689− Runtime.putOptional 4 r.end (_==Semiring.zero) Encode.int32
1946+ Runtime.putOptional 2 r.source_file Common.isDefault Encode.string
1947+ Runtime.putOptional 3 r.begin Common.isDefault Encode.int32
1948+ Runtime.putOptional 4 r.end Common.isDefault Encode.int32
16901949 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
16911950
16921951parseGeneratedCodeInfo_Annotation :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m GeneratedCodeInfo_Annotation
@@ -1705,13 +1964,13 @@ parseGeneratedCodeInfo_Annotation length = Runtime.label "Annotation / " $
17051964 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "path") $ Function.flip Semigroup.append x
17061965 parseField 2 Common.LenDel = Runtime.label "source_file / " $ do
17071966 x <- Decode.string
1708− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "source_file") $ Function.const $ Maybe.Just x
1967+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "source_file") $ \_ -> Maybe.Just x
17091968 parseField 3 Common.VarInt = Runtime.label "begin / " $ do
17101969 x <- Decode.int32
1711− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "begin") $ Function.const $ Maybe.Just x
1970+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "begin") $ \_ -> Maybe.Just x
17121971 parseField 4 Common.VarInt = Runtime.label "end / " $ do
17131972 x <- Decode.int32
1714− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "end") $ Function.const $ Maybe.Just x
1973+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "end") $ \_ -> Maybe.Just x
17151974 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
17161975
17171976defaultGeneratedCodeInfo_Annotation :: GeneratedCodeInfo_AnnotationR
@@ -1726,6 +1985,15 @@ defaultGeneratedCodeInfo_Annotation =
17261985mkGeneratedCodeInfo_Annotation :: forall r1 r3. Prim.Row.Union r1 GeneratedCodeInfo_AnnotationRow r3 => Prim.Row.Nub r3 GeneratedCodeInfo_AnnotationRow => Record r1 -> GeneratedCodeInfo_Annotation
17271986mkGeneratedCodeInfo_Annotation r = GeneratedCodeInfo_Annotation $ Record.merge r defaultGeneratedCodeInfo_Annotation
17281987
1988+mergeGeneratedCodeInfo_Annotation :: GeneratedCodeInfo_Annotation -> GeneratedCodeInfo_Annotation -> GeneratedCodeInfo_Annotation
1989+mergeGeneratedCodeInfo_Annotation (GeneratedCodeInfo_Annotation l) (GeneratedCodeInfo_Annotation r) = GeneratedCodeInfo_Annotation
1990+ { path: r.path <> l.path
1991+ , source_file: Alt.alt l.source_file r.source_file
1992+ , begin: Alt.alt l.begin r.begin
1993+ , end: Alt.alt l.end r.end
1994+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
1995+ }
1996+
17291997
17301998data FieldDescriptorProto_Type
17311999 = FieldDescriptorProto_Type_TYPE_DOUBLE
src/ProtocPlugin/plugin.Google.Protobuf.Compiler.purs+98−24
@@ -1,15 +1,17 @@
11-- | Generated by __purescript-protobuf__ from file `google/protobuf/compiler/plugin.proto`
22module Google.Protobuf.Compiler.Plugin
3−( Version(..), VersionRow, VersionR, parseVersion, putVersion, defaultVersion, mkVersion
4−, CodeGeneratorRequest(..), CodeGeneratorRequestRow, CodeGeneratorRequestR, parseCodeGeneratorRequest, putCodeGeneratorRequest, defaultCodeGeneratorRequest, mkCodeGeneratorRequest
5−, CodeGeneratorResponse(..), CodeGeneratorResponseRow, CodeGeneratorResponseR, parseCodeGeneratorResponse, putCodeGeneratorResponse, defaultCodeGeneratorResponse, mkCodeGeneratorResponse
6−, CodeGeneratorResponse_File(..), CodeGeneratorResponse_FileRow, CodeGeneratorResponse_FileR, parseCodeGeneratorResponse_File, putCodeGeneratorResponse_File, defaultCodeGeneratorResponse_File, mkCodeGeneratorResponse_File
3+( Version(..), VersionRow, VersionR, parseVersion, putVersion, defaultVersion, mkVersion, mergeVersion
4+, CodeGeneratorRequest(..), CodeGeneratorRequestRow, CodeGeneratorRequestR, parseCodeGeneratorRequest, putCodeGeneratorRequest, defaultCodeGeneratorRequest, mkCodeGeneratorRequest, mergeCodeGeneratorRequest
5+, CodeGeneratorResponse(..), CodeGeneratorResponseRow, CodeGeneratorResponseR, parseCodeGeneratorResponse, putCodeGeneratorResponse, defaultCodeGeneratorResponse, mkCodeGeneratorResponse, mergeCodeGeneratorResponse
6+, CodeGeneratorResponse_File(..), CodeGeneratorResponse_FileRow, CodeGeneratorResponse_FileR, parseCodeGeneratorResponse_File, putCodeGeneratorResponse_File, defaultCodeGeneratorResponse_File, mkCodeGeneratorResponse_File, mergeCodeGeneratorResponse_File
7+, CodeGeneratorResponse_Feature(..)
78)
89where
910
1011import Prelude
1112import Effect.Class (class MonadEffect)
1213import Control.Monad.Rec.Class (class MonadRec)
14+import Control.Alt as Alt
1315import Record.Builder as Record.Builder
1416import Data.Array as Array
1517import Data.Bounded as Bounded
@@ -32,6 +34,7 @@ import Data.String as String
3234import Data.Symbol as Symbol
3335import Record as Record
3436import Data.Traversable as Traversable
37+import Data.Tuple as Tuple
3538import Data.UInt as UInt
3639import Data.Unit as Unit
3740import Prim.Row as Prim.Row
@@ -65,10 +68,10 @@ instance showVersion :: Show.Show Version where show x = Generic.Rep.Show.generi
6568
6669putVersion :: forall m. MonadEffect m => Version -> ArrayBuffer.Builder.PutM m Unit.Unit
6770putVersion (Version r) = do
68− Runtime.putOptional 1 r.major (_==Semiring.zero) Encode.int32
69− Runtime.putOptional 2 r.minor (_==Semiring.zero) Encode.int32
70− Runtime.putOptional 3 r.patch (_==Semiring.zero) Encode.int32
71− Runtime.putOptional 4 r.suffix String.null Encode.string
71+ Runtime.putOptional 1 r.major Common.isDefault Encode.int32
72+ Runtime.putOptional 2 r.minor Common.isDefault Encode.int32
73+ Runtime.putOptional 3 r.patch Common.isDefault Encode.int32
74+ Runtime.putOptional 4 r.suffix Common.isDefault Encode.string
7275 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
7376
7477parseVersion :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m Version
@@ -81,16 +84,16 @@ parseVersion length = Runtime.label "Version / " $
8184 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder VersionR VersionR)
8285 parseField 1 Common.VarInt = Runtime.label "major / " $ do
8386 x <- Decode.int32
84− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "major") $ Function.const $ Maybe.Just x
87+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "major") $ \_ -> Maybe.Just x
8588 parseField 2 Common.VarInt = Runtime.label "minor / " $ do
8689 x <- Decode.int32
87− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "minor") $ Function.const $ Maybe.Just x
90+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "minor") $ \_ -> Maybe.Just x
8891 parseField 3 Common.VarInt = Runtime.label "patch / " $ do
8992 x <- Decode.int32
90− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "patch") $ Function.const $ Maybe.Just x
93+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "patch") $ \_ -> Maybe.Just x
9194 parseField 4 Common.LenDel = Runtime.label "suffix / " $ do
9295 x <- Decode.string
93− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "suffix") $ Function.const $ Maybe.Just x
96+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "suffix") $ \_ -> Maybe.Just x
9497 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
9598
9699defaultVersion :: VersionR
@@ -105,6 +108,15 @@ defaultVersion =
105108mkVersion :: forall r1 r3. Prim.Row.Union r1 VersionRow r3 => Prim.Row.Nub r3 VersionRow => Record r1 -> Version
106109mkVersion r = Version $ Record.merge r defaultVersion
107110
111+mergeVersion :: Version -> Version -> Version
112+mergeVersion (Version l) (Version r) = Version
113+ { major: Alt.alt l.major r.major
114+ , minor: Alt.alt l.minor r.minor
115+ , patch: Alt.alt l.patch r.patch
116+ , suffix: Alt.alt l.suffix r.suffix
117+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
118+ }
119+
108120
109121type CodeGeneratorRequestRow =
110122 ( file_to_generate :: Array String
@@ -123,9 +135,9 @@ instance showCodeGeneratorRequest :: Show.Show CodeGeneratorRequest where show x
123135putCodeGeneratorRequest :: forall m. MonadEffect m => CodeGeneratorRequest -> ArrayBuffer.Builder.PutM m Unit.Unit
124136putCodeGeneratorRequest (CodeGeneratorRequest r) = do
125137 Runtime.putRepeated 1 r.file_to_generate Encode.string
126− Runtime.putOptional 2 r.parameter String.null Encode.string
138+ Runtime.putOptional 2 r.parameter Common.isDefault Encode.string
127139 Runtime.putRepeated 15 r.proto_file $ Runtime.putLenDel Google.Protobuf.putFileDescriptorProto
128− Runtime.putOptional 3 r.compiler_version (const false) $ Runtime.putLenDel putVersion
140+ Runtime.putOptional 3 r.compiler_version (\_ -> false) $ Runtime.putLenDel putVersion
129141 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
130142
131143parseCodeGeneratorRequest :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m CodeGeneratorRequest
@@ -141,13 +153,13 @@ parseCodeGeneratorRequest length = Runtime.label "CodeGeneratorRequest / " $
141153 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "file_to_generate") $ Function.flip Array.snoc x
142154 parseField 2 Common.LenDel = Runtime.label "parameter / " $ do
143155 x <- Decode.string
144− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "parameter") $ Function.const $ Maybe.Just x
156+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "parameter") $ \_ -> Maybe.Just x
145157 parseField 15 Common.LenDel = Runtime.label "proto_file / " $ do
146158 x <- Runtime.parseLenDel Google.Protobuf.parseFileDescriptorProto
147159 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "proto_file") $ Function.flip Array.snoc x
148160 parseField 3 Common.LenDel = Runtime.label "compiler_version / " $ do
149161 x <- Runtime.parseLenDel parseVersion
150− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "compiler_version") $ Function.const $ Maybe.Just x
162+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "compiler_version") $ Maybe.Just <<< Maybe.maybe x (mergeVersion x)
151163 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
152164
153165defaultCodeGeneratorRequest :: CodeGeneratorRequestR
@@ -162,9 +174,19 @@ defaultCodeGeneratorRequest =
162174mkCodeGeneratorRequest :: forall r1 r3. Prim.Row.Union r1 CodeGeneratorRequestRow r3 => Prim.Row.Nub r3 CodeGeneratorRequestRow => Record r1 -> CodeGeneratorRequest
163175mkCodeGeneratorRequest r = CodeGeneratorRequest $ Record.merge r defaultCodeGeneratorRequest
164176
177+mergeCodeGeneratorRequest :: CodeGeneratorRequest -> CodeGeneratorRequest -> CodeGeneratorRequest
178+mergeCodeGeneratorRequest (CodeGeneratorRequest l) (CodeGeneratorRequest r) = CodeGeneratorRequest
179+ { file_to_generate: r.file_to_generate <> l.file_to_generate
180+ , parameter: Alt.alt l.parameter r.parameter
181+ , proto_file: r.proto_file <> l.proto_file
182+ , compiler_version: Runtime.mergeWith mergeVersion l.compiler_version r.compiler_version
183+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
184+ }
185+
165186
166187type CodeGeneratorResponseRow =
167188 ( error :: Maybe.Maybe String
189+ , supported_features :: Maybe.Maybe (Long.Long Long.Unsigned)
168190 , file :: Array CodeGeneratorResponse_File
169191 , __unknown_fields :: Array Runtime.UnknownField
170192 )
@@ -177,7 +199,8 @@ instance showCodeGeneratorResponse :: Show.Show CodeGeneratorResponse where show
177199
178200putCodeGeneratorResponse :: forall m. MonadEffect m => CodeGeneratorResponse -> ArrayBuffer.Builder.PutM m Unit.Unit
179201putCodeGeneratorResponse (CodeGeneratorResponse r) = do
180− Runtime.putOptional 1 r.error String.null Encode.string
202+ Runtime.putOptional 1 r.error Common.isDefault Encode.string
203+ Runtime.putOptional 2 r.supported_features Common.isDefault Encode.uint64
181204 Runtime.putRepeated 15 r.file $ Runtime.putLenDel putCodeGeneratorResponse_File
182205 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
183206
@@ -191,7 +214,10 @@ parseCodeGeneratorResponse length = Runtime.label "CodeGeneratorResponse / " $
191214 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder CodeGeneratorResponseR CodeGeneratorResponseR)
192215 parseField 1 Common.LenDel = Runtime.label "error / " $ do
193216 x <- Decode.string
194− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "error") $ Function.const $ Maybe.Just x
217+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "error") $ \_ -> Maybe.Just x
218+ parseField 2 Common.VarInt = Runtime.label "supported_features / " $ do
219+ x <- Decode.uint64
220+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "supported_features") $ \_ -> Maybe.Just x
195221 parseField 15 Common.LenDel = Runtime.label "file / " $ do
196222 x <- Runtime.parseLenDel parseCodeGeneratorResponse_File
197223 pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "file") $ Function.flip Array.snoc x
@@ -200,6 +226,7 @@ parseCodeGeneratorResponse length = Runtime.label "CodeGeneratorResponse / " $
200226defaultCodeGeneratorResponse :: CodeGeneratorResponseR
201227defaultCodeGeneratorResponse =
202228 { error: Maybe.Nothing
229+ , supported_features: Maybe.Nothing
203230 , file: []
204231 , __unknown_fields: []
205232 }
@@ -207,11 +234,20 @@ defaultCodeGeneratorResponse =
207234mkCodeGeneratorResponse :: forall r1 r3. Prim.Row.Union r1 CodeGeneratorResponseRow r3 => Prim.Row.Nub r3 CodeGeneratorResponseRow => Record r1 -> CodeGeneratorResponse
208235mkCodeGeneratorResponse r = CodeGeneratorResponse $ Record.merge r defaultCodeGeneratorResponse
209236
237+mergeCodeGeneratorResponse :: CodeGeneratorResponse -> CodeGeneratorResponse -> CodeGeneratorResponse
238+mergeCodeGeneratorResponse (CodeGeneratorResponse l) (CodeGeneratorResponse r) = CodeGeneratorResponse
239+ { error: Alt.alt l.error r.error
240+ , supported_features: Alt.alt l.supported_features r.supported_features
241+ , file: r.file <> l.file
242+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
243+ }
244+
210245
211246type CodeGeneratorResponse_FileRow =
212247 ( name :: Maybe.Maybe String
213248 , insertion_point :: Maybe.Maybe String
214249 , content :: Maybe.Maybe String
250+ , generated_code_info :: Maybe.Maybe Google.Protobuf.GeneratedCodeInfo
215251 , __unknown_fields :: Array Runtime.UnknownField
216252 )
217253type CodeGeneratorResponse_FileR = Record CodeGeneratorResponse_FileRow
@@ -223,9 +259,10 @@ instance showCodeGeneratorResponse_File :: Show.Show CodeGeneratorResponse_File
223259
224260putCodeGeneratorResponse_File :: forall m. MonadEffect m => CodeGeneratorResponse_File -> ArrayBuffer.Builder.PutM m Unit.Unit
225261putCodeGeneratorResponse_File (CodeGeneratorResponse_File r) = do
226− Runtime.putOptional 1 r.name String.null Encode.string
227− Runtime.putOptional 2 r.insertion_point String.null Encode.string
228− Runtime.putOptional 15 r.content String.null Encode.string
262+ Runtime.putOptional 1 r.name Common.isDefault Encode.string
263+ Runtime.putOptional 2 r.insertion_point Common.isDefault Encode.string
264+ Runtime.putOptional 15 r.content Common.isDefault Encode.string
265+ Runtime.putOptional 16 r.generated_code_info (\_ -> false) $ Runtime.putLenDel Google.Protobuf.putGeneratedCodeInfo
229266 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
230267
231268parseCodeGeneratorResponse_File :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m CodeGeneratorResponse_File
@@ -238,13 +275,16 @@ parseCodeGeneratorResponse_File length = Runtime.label "File / " $
238275 -> Parser.ParserT ArrayBuffer.Types.DataView m (Record.Builder.Builder CodeGeneratorResponse_FileR CodeGeneratorResponse_FileR)
239276 parseField 1 Common.LenDel = Runtime.label "name / " $ do
240277 x <- Decode.string
241− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ Function.const $ Maybe.Just x
278+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "name") $ \_ -> Maybe.Just x
242279 parseField 2 Common.LenDel = Runtime.label "insertion_point / " $ do
243280 x <- Decode.string
244− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "insertion_point") $ Function.const $ Maybe.Just x
281+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "insertion_point") $ \_ -> Maybe.Just x
245282 parseField 15 Common.LenDel = Runtime.label "content / " $ do
246283 x <- Decode.string
247− pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "content") $ Function.const $ Maybe.Just x
284+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "content") $ \_ -> Maybe.Just x
285+ parseField 16 Common.LenDel = Runtime.label "generated_code_info / " $ do
286+ x <- Runtime.parseLenDel Google.Protobuf.parseGeneratedCodeInfo
287+ pure $ Record.Builder.modify (Symbol.SProxy :: Symbol.SProxy "generated_code_info") $ Maybe.Just <<< Maybe.maybe x (Google.Protobuf.mergeGeneratedCodeInfo x)
248288 parseField fieldNumber wireType = Runtime.parseFieldUnknown fieldNumber wireType
249289
250290defaultCodeGeneratorResponse_File :: CodeGeneratorResponse_FileR
@@ -252,10 +292,44 @@ defaultCodeGeneratorResponse_File =
252292 { name: Maybe.Nothing
253293 , insertion_point: Maybe.Nothing
254294 , content: Maybe.Nothing
295+ , generated_code_info: Maybe.Nothing
255296 , __unknown_fields: []
256297 }
257298
258299mkCodeGeneratorResponse_File :: forall r1 r3. Prim.Row.Union r1 CodeGeneratorResponse_FileRow r3 => Prim.Row.Nub r3 CodeGeneratorResponse_FileRow => Record r1 -> CodeGeneratorResponse_File
259300mkCodeGeneratorResponse_File r = CodeGeneratorResponse_File $ Record.merge r defaultCodeGeneratorResponse_File
260301
302+mergeCodeGeneratorResponse_File :: CodeGeneratorResponse_File -> CodeGeneratorResponse_File -> CodeGeneratorResponse_File
303+mergeCodeGeneratorResponse_File (CodeGeneratorResponse_File l) (CodeGeneratorResponse_File r) = CodeGeneratorResponse_File
304+ { name: Alt.alt l.name r.name
305+ , insertion_point: Alt.alt l.insertion_point r.insertion_point
306+ , content: Alt.alt l.content r.content
307+ , generated_code_info: Runtime.mergeWith Google.Protobuf.mergeGeneratedCodeInfo l.generated_code_info r.generated_code_info
308+ , __unknown_fields: r.__unknown_fields <> l.__unknown_fields
309+ }
310+
311+
312+data CodeGeneratorResponse_Feature
313+ = CodeGeneratorResponse_Feature_FEATURE_NONE
314+ | CodeGeneratorResponse_Feature_FEATURE_PROTO3_OPTIONAL
315+derive instance genericCodeGeneratorResponse_Feature :: Generic.Rep.Generic CodeGeneratorResponse_Feature _
316+derive instance eqCodeGeneratorResponse_Feature :: Eq.Eq CodeGeneratorResponse_Feature
317+instance showCodeGeneratorResponse_Feature :: Show.Show CodeGeneratorResponse_Feature where show = Generic.Rep.Show.genericShow
318+instance ordCodeGeneratorResponse_Feature :: Ord.Ord CodeGeneratorResponse_Feature where compare = Generic.Rep.Ord.genericCompare
319+instance boundedCodeGeneratorResponse_Feature :: Bounded.Bounded CodeGeneratorResponse_Feature
320+ where
321+ bottom = Generic.Rep.Bounded.genericBottom
322+ top = Generic.Rep.Bounded.genericTop
323+instance enumCodeGeneratorResponse_Feature :: Enum.Enum CodeGeneratorResponse_Feature
324+ where
325+ succ = Generic.Rep.Enum.genericSucc
326+ pred = Generic.Rep.Enum.genericPred
327+instance boundedenumCodeGeneratorResponse_Feature :: Enum.BoundedEnum CodeGeneratorResponse_Feature
328+ where
329+ cardinality = Generic.Rep.Enum.genericCardinality
330+ toEnum 0 = Maybe.Just CodeGeneratorResponse_Feature_FEATURE_NONE
331+ toEnum 1 = Maybe.Just CodeGeneratorResponse_Feature_FEATURE_PROTO3_OPTIONAL
332+ toEnum _ = Maybe.Nothing
333+ fromEnum CodeGeneratorResponse_Feature_FEATURE_NONE = 0
334+ fromEnum CodeGeneratorResponse_Feature_FEATURE_PROTO3_OPTIONAL = 1
261335