git.iko.soy/rowtype-yoga/purescript-protobuf
on master help sign in
Default value write
commit4745bfd21e3a2e657a0a27024f90a9ae1c8974bc authorJames Brock <jamesbrock@gmail.com> dateMon 22 Mar 2021, 10:22 (6 years ago) parentaec8bcf
4 files changed+141−120
src/Protobuf/Runtime.purs+16−4 src/ProtocPlugin/Main.purs+21−18 src/ProtocPlugin/descriptor.Google.Protobuf.purs+91−88 src/ProtocPlugin/plugin.Google.Protobuf.Compiler.purs+13−10
src/Protobuf/Runtime.purs+16−4
@@ -38,6 +38,7 @@ import Data.Foldable (foldl, traverse_)
3838import Data.Generic.Rep (class Generic)
3939import Data.Generic.Rep.Show (genericShow)
4040import Data.Long.Unsigned (Long, toInt)
41+import Data.Long.Unsigned as Long
4142import Data.Maybe (Maybe(..))
4243import Data.Symbol (SProxy(..))
4344import Data.Tuple (Tuple(..))
@@ -201,15 +202,26 @@ putLenDel p fieldNumber x = do
201202 b <- subBuilder $ p x
202203 Encode.builder fieldNumber b
203204
205+-- putOptional
206+-- :: forall m a
207+-- . MonadEffect m
208+-- => FieldNumberInt
209+-- -> Maybe a
210+-- -> (FieldNumber -> a -> PutM m Unit)
211+-- -> PutM m Unit
212+-- putOptional _ Nothing _ = pure unit
213+-- putOptional fieldNumber (Just x) encoder = encoder (UInt.fromInt fieldNumber) x
204214putOptional
205215 :: forall m a
206216 . MonadEffect m
207217 => FieldNumberInt
208218 -> Maybe a
219+ -> (a -> Boolean) -- isDefault predicate
209220 -> (FieldNumber -> a -> PutM m Unit)
210221 -> PutM m Unit
211−putOptional _ Nothing _ = pure unit
212−putOptional fieldNumber (Just x) encoder = encoder (UInt.fromInt fieldNumber) x
222+putOptional _ Nothing _ _ = pure unit
223+putOptional fieldNumber (Just x) isDefault encoder = do
224+ when (not $ isDefault x) $ encoder (UInt.fromInt fieldNumber) x
213225
214226putRepeated
215227 :: forall m a
@@ -246,8 +258,8 @@ putEnum' x = Encode.varint32 $ UInt.fromInt $ fromEnum x
246258
247259parseEnum :: forall m a. MonadEffect m => BoundedEnum a => ParserT DataView m a
248260parseEnum = do
249− x <- Decode.varint32
250− case toEnum $ UInt.toInt x of
261+ x <- Decode.varint64
262+ case toEnum =<< Long.toInt x of
251263 Nothing -> fail $ "Enum " <> show x <> " out of bounds."
252264 Just e -> pure e
253265
src/ProtocPlugin/Main.purs+21−18
@@ -19,7 +19,7 @@ module ProtocPlugin.Main (main) where
1919
2020import Prelude
2121
22−import Data.Array (catMaybes, concatMap, mapMaybe)
22+import Data.Array (catMaybes, concatMap)
2323import Data.Array as Array
2424import Data.ArrayBuffer.Builder (execPut)
2525import Data.ArrayBuffer.DataView as DV
@@ -317,75 +317,75 @@ genFile proto_file (FileDescriptorProto
317317 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_DOUBLE _ =
318318 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.double'"
319319 go _ FieldDescriptorProto_Type_TYPE_DOUBLE _ =
320− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.double"
320+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.double"
321321 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_FLOAT _ =
322322 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.float'"
323323 go _ FieldDescriptorProto_Type_TYPE_FLOAT _ =
324− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.float"
324+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.float"
325325 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_INT64 _ =
326326 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.int64'"
327327 go _ FieldDescriptorProto_Type_TYPE_INT64 _ =
328− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.int64"
328+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.int64"
329329 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_UINT64 _ =
330330 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.uint64'"
331331 go _ FieldDescriptorProto_Type_TYPE_UINT64 _ =
332− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.uint64"
332+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.uint64"
333333 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_INT32 _ =
334334 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.int32'"
335335 go _ FieldDescriptorProto_Type_TYPE_INT32 _ =
336− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.int32"
336+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.int32"
337337 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_FIXED64 _ =
338338 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.fixed64'"
339339 go _ FieldDescriptorProto_Type_TYPE_FIXED64 _ =
340− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.fixed64"
340+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.fixed64"
341341 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_FIXED32 _ =
342342 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.fixed32'"
343343 go _ FieldDescriptorProto_Type_TYPE_FIXED32 _ =
344− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.fixed32"
344+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.fixed32"
345345 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_BOOL _ =
346346 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.bool'"
347347 go _ FieldDescriptorProto_Type_TYPE_BOOL _ =
348− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.bool"
348+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " not Encode.bool"
349349 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_STRING _ =
350350 Right $ Just $ " Runtime.putRepeated " <> show fnumber <> " r." <> fname <> " Encode.string"
351351 go _ FieldDescriptorProto_Type_TYPE_STRING _ =
352− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.string"
352+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " String.null Encode.string"
353353 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_MESSAGE (Just tname) =
354354 Right $ Just $ " Runtime.putRepeated " <> show fnumber <> " r." <> fname <> " $ Runtime.putLenDel " <> mkFieldType "put" tname
355355 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_MESSAGE _ =
356356 Left "Failed genFieldPut missing FieldDescriptorProto type_name"
357357 go _ FieldDescriptorProto_Type_TYPE_MESSAGE (Just tname) =
358− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " $ Runtime.putLenDel " <> mkFieldType "put" tname
358+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (const false) $ Runtime.putLenDel " <> mkFieldType "put" tname
359359 go _ FieldDescriptorProto_Type_TYPE_MESSAGE _ =
360360 Left "Failed genFieldPut missing FieldDescriptorProto type_name"
361361 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_BYTES _ =
362362 Right $ Just $ " Runtime.putRepeated " <> show fnumber <> " r." <> fname <> " $ Encode.bytes"
363363 go _ FieldDescriptorProto_Type_TYPE_BYTES _ =
364− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.bytes"
364+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (Newtype.unwrap >>> ArrayBuffer.byteLength >>> (_==0)) Encode.bytes"
365365 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_UINT32 _ =
366366 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.uint32'"
367367 go _ FieldDescriptorProto_Type_TYPE_UINT32 _ =
368− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.uint32"
368+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.uint32"
369369 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_ENUM _ =
370370 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Runtime.putEnum'"
371371 go _ FieldDescriptorProto_Type_TYPE_ENUM _ =
372− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Runtime.putEnum"
372+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (Enum.fromEnum >>> (_==0)) Runtime.putEnum"
373373 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_SFIXED32 _ =
374374 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.sfixed32'"
375375 go _ FieldDescriptorProto_Type_TYPE_SFIXED32 _ =
376− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.sfixed32"
376+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.sfixed32"
377377 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_SFIXED64 _ =
378378 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.sfixed64'"
379379 go _ FieldDescriptorProto_Type_TYPE_SFIXED64 _ =
380− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.sfixed64"
380+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.sfixed64"
381381 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_SINT32 _ =
382382 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.sint32'"
383383 go _ FieldDescriptorProto_Type_TYPE_SINT32 _ =
384− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.sint32"
384+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.sint32"
385385 go FieldDescriptorProto_Label_LABEL_REPEATED FieldDescriptorProto_Type_TYPE_SINT64 _ =
386386 Right $ Just $ " Runtime.putPacked " <> show fnumber <> " r." <> fname <> " Encode.sint64'"
387387 go _ FieldDescriptorProto_Type_TYPE_SINT64 _ =
388− Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " Encode.sint64"
388+ Right $ Just $ " Runtime.putOptional " <> show fnumber <> " r." <> fname <> " (_==Semiring.zero) Encode.sint64"
389389 go _ FieldDescriptorProto_Type_TYPE_GROUP _ = Left "Failed genFieldPut GROUP not supported"
390390 genFieldPut _ (FieldDescriptorProto { oneof_index: Just _ }) = Right Nothing -- It's a Oneof, this case is handled separately
391391 genFieldPut _ arg = Left $ "Failed genFieldPut missing FieldDescriptorProto name or number or label or type\n" <> show arg
@@ -862,6 +862,8 @@ import Data.Generic.Rep.Bounded as Generic.Rep.Bounded
862862import Data.Generic.Rep.Enum as Generic.Rep.Enum
863863import Data.Generic.Rep.Ord as Generic.Rep.Ord
864864import Data.Semigroup as Semigroup
865+import Data.Semiring as Semiring
866+import Data.String as String
865867import Data.Symbol as Symbol
866868import Record as Record
867869import Data.Traversable as Traversable
@@ -872,6 +874,7 @@ import Data.Long.Internal as Long
872874import Text.Parsing.Parser as Parser
873875import Data.ArrayBuffer.Builder as ArrayBuffer.Builder
874876import Data.ArrayBuffer.Types as ArrayBuffer.Types
877+import Data.ArrayBuffer.ArrayBuffer as ArrayBuffer
875878import Protobuf.Common as Common
876879import Protobuf.Decode as Decode
877880import Protobuf.Encode as Encode
src/ProtocPlugin/descriptor.Google.Protobuf.purs+91−88
@@ -56,6 +56,8 @@ import Data.Generic.Rep.Bounded as Generic.Rep.Bounded
5656import Data.Generic.Rep.Enum as Generic.Rep.Enum
5757import Data.Generic.Rep.Ord as Generic.Rep.Ord
5858import Data.Semigroup as Semigroup
59+import Data.Semiring as Semiring
60+import Data.String as String
5961import Data.Symbol as Symbol
6062import Record as Record
6163import Data.Traversable as Traversable
@@ -66,6 +68,7 @@ import Data.Long.Internal as Long
6668import Text.Parsing.Parser as Parser
6769import Data.ArrayBuffer.Builder as ArrayBuffer.Builder
6870import Data.ArrayBuffer.Types as ArrayBuffer.Types
71+import Data.ArrayBuffer.ArrayBuffer as ArrayBuffer
6972import Protobuf.Common as Common
7073import Protobuf.Decode as Decode
7174import Protobuf.Encode as Encode
@@ -137,8 +140,8 @@ instance showFileDescriptorProto :: Show.Show FileDescriptorProto where show x =
137140
138141putFileDescriptorProto :: forall m. MonadEffect m => FileDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
139142putFileDescriptorProto (FileDescriptorProto r) = do
140− Runtime.putOptional 1 r.name Encode.string
141− Runtime.putOptional 2 r.package Encode.string
143+ Runtime.putOptional 1 r.name String.null Encode.string
144+ Runtime.putOptional 2 r.package String.null Encode.string
142145 Runtime.putRepeated 3 r.dependency Encode.string
143146 Runtime.putPacked 10 r.public_dependency Encode.int32'
144147 Runtime.putPacked 11 r.weak_dependency Encode.int32'
@@ -146,9 +149,9 @@ putFileDescriptorProto (FileDescriptorProto r) = do
146149 Runtime.putRepeated 5 r.enum_type $ Runtime.putLenDel putEnumDescriptorProto
147150 Runtime.putRepeated 6 r.service $ Runtime.putLenDel putServiceDescriptorProto
148151 Runtime.putRepeated 7 r.extension $ Runtime.putLenDel putFieldDescriptorProto
149− Runtime.putOptional 8 r.options $ Runtime.putLenDel putFileOptions
150− Runtime.putOptional 9 r.source_code_info $ Runtime.putLenDel putSourceCodeInfo
151− Runtime.putOptional 12 r.syntax Encode.string
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
152155 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
153156
154157parseFileDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m FileDescriptorProto
@@ -246,14 +249,14 @@ instance showDescriptorProto :: Show.Show DescriptorProto where show x = Generic
246249
247250putDescriptorProto :: forall m. MonadEffect m => DescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
248251putDescriptorProto (DescriptorProto r) = do
249− Runtime.putOptional 1 r.name Encode.string
252+ Runtime.putOptional 1 r.name String.null Encode.string
250253 Runtime.putRepeated 2 r.field $ Runtime.putLenDel putFieldDescriptorProto
251254 Runtime.putRepeated 6 r.extension $ Runtime.putLenDel putFieldDescriptorProto
252255 Runtime.putRepeated 3 r.nested_type $ Runtime.putLenDel putDescriptorProto
253256 Runtime.putRepeated 4 r.enum_type $ Runtime.putLenDel putEnumDescriptorProto
254257 Runtime.putRepeated 5 r.extension_range $ Runtime.putLenDel putDescriptorProto_ExtensionRange
255258 Runtime.putRepeated 8 r.oneof_decl $ Runtime.putLenDel putOneofDescriptorProto
256− Runtime.putOptional 7 r.options $ Runtime.putLenDel putMessageOptions
259+ Runtime.putOptional 7 r.options (const false) $ Runtime.putLenDel putMessageOptions
257260 Runtime.putRepeated 9 r.reserved_range $ Runtime.putLenDel putDescriptorProto_ReservedRange
258261 Runtime.putRepeated 10 r.reserved_name Encode.string
259262 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
@@ -332,9 +335,9 @@ instance showDescriptorProto_ExtensionRange :: Show.Show DescriptorProto_Extensi
332335
333336putDescriptorProto_ExtensionRange :: forall m. MonadEffect m => DescriptorProto_ExtensionRange -> ArrayBuffer.Builder.PutM m Unit.Unit
334337putDescriptorProto_ExtensionRange (DescriptorProto_ExtensionRange r) = do
335− Runtime.putOptional 1 r.start Encode.int32
336− Runtime.putOptional 2 r.end Encode.int32
337− Runtime.putOptional 3 r.options $ Runtime.putLenDel putExtensionRangeOptions
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
338341 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
339342
340343parseDescriptorProto_ExtensionRange :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m DescriptorProto_ExtensionRange
@@ -382,8 +385,8 @@ instance showDescriptorProto_ReservedRange :: Show.Show DescriptorProto_Reserved
382385
383386putDescriptorProto_ReservedRange :: forall m. MonadEffect m => DescriptorProto_ReservedRange -> ArrayBuffer.Builder.PutM m Unit.Unit
384387putDescriptorProto_ReservedRange (DescriptorProto_ReservedRange r) = do
385− Runtime.putOptional 1 r.start Encode.int32
386− Runtime.putOptional 2 r.end Encode.int32
388+ Runtime.putOptional 1 r.start (_==Semiring.zero) Encode.int32
389+ Runtime.putOptional 2 r.end (_==Semiring.zero) Encode.int32
387390 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
388391
389392parseDescriptorProto_ReservedRange :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m DescriptorProto_ReservedRange
@@ -474,16 +477,16 @@ instance showFieldDescriptorProto :: Show.Show FieldDescriptorProto where show x
474477
475478putFieldDescriptorProto :: forall m. MonadEffect m => FieldDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
476479putFieldDescriptorProto (FieldDescriptorProto r) = do
477− Runtime.putOptional 1 r.name Encode.string
478− Runtime.putOptional 3 r.number Encode.int32
479− Runtime.putOptional 4 r.label Runtime.putEnum
480− Runtime.putOptional 5 r.type Runtime.putEnum
481− Runtime.putOptional 6 r.type_name Encode.string
482− Runtime.putOptional 2 r.extendee Encode.string
483− Runtime.putOptional 7 r.default_value Encode.string
484− Runtime.putOptional 9 r.oneof_index Encode.int32
485− Runtime.putOptional 10 r.json_name Encode.string
486− Runtime.putOptional 8 r.options $ Runtime.putLenDel putFieldOptions
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
487490 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
488491
489492parseFieldDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m FieldDescriptorProto
@@ -559,8 +562,8 @@ instance showOneofDescriptorProto :: Show.Show OneofDescriptorProto where show x
559562
560563putOneofDescriptorProto :: forall m. MonadEffect m => OneofDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
561564putOneofDescriptorProto (OneofDescriptorProto r) = do
562− Runtime.putOptional 1 r.name Encode.string
563− Runtime.putOptional 2 r.options $ Runtime.putLenDel putOneofOptions
565+ Runtime.putOptional 1 r.name String.null Encode.string
566+ Runtime.putOptional 2 r.options (const false) $ Runtime.putLenDel putOneofOptions
564567 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
565568
566569parseOneofDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m OneofDescriptorProto
@@ -607,9 +610,9 @@ instance showEnumDescriptorProto :: Show.Show EnumDescriptorProto where show x =
607610
608611putEnumDescriptorProto :: forall m. MonadEffect m => EnumDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
609612putEnumDescriptorProto (EnumDescriptorProto r) = do
610− Runtime.putOptional 1 r.name Encode.string
613+ Runtime.putOptional 1 r.name String.null Encode.string
611614 Runtime.putRepeated 2 r.value $ Runtime.putLenDel putEnumValueDescriptorProto
612− Runtime.putOptional 3 r.options $ Runtime.putLenDel putEnumOptions
615+ Runtime.putOptional 3 r.options (const false) $ Runtime.putLenDel putEnumOptions
613616 Runtime.putRepeated 4 r.reserved_range $ Runtime.putLenDel putEnumDescriptorProto_EnumReservedRange
614617 Runtime.putRepeated 5 r.reserved_name Encode.string
615618 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
@@ -667,8 +670,8 @@ instance showEnumDescriptorProto_EnumReservedRange :: Show.Show EnumDescriptorPr
667670
668671putEnumDescriptorProto_EnumReservedRange :: forall m. MonadEffect m => EnumDescriptorProto_EnumReservedRange -> ArrayBuffer.Builder.PutM m Unit.Unit
669672putEnumDescriptorProto_EnumReservedRange (EnumDescriptorProto_EnumReservedRange r) = do
670− Runtime.putOptional 1 r.start Encode.int32
671− Runtime.putOptional 2 r.end Encode.int32
673+ Runtime.putOptional 1 r.start (_==Semiring.zero) Encode.int32
674+ Runtime.putOptional 2 r.end (_==Semiring.zero) Encode.int32
672675 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
673676
674677parseEnumDescriptorProto_EnumReservedRange :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m EnumDescriptorProto_EnumReservedRange
@@ -713,9 +716,9 @@ instance showEnumValueDescriptorProto :: Show.Show EnumValueDescriptorProto wher
713716
714717putEnumValueDescriptorProto :: forall m. MonadEffect m => EnumValueDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
715718putEnumValueDescriptorProto (EnumValueDescriptorProto r) = do
716− Runtime.putOptional 1 r.name Encode.string
717− Runtime.putOptional 2 r.number Encode.int32
718− Runtime.putOptional 3 r.options $ Runtime.putLenDel putEnumValueOptions
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
719722 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
720723
721724parseEnumValueDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m EnumValueDescriptorProto
@@ -764,9 +767,9 @@ instance showServiceDescriptorProto :: Show.Show ServiceDescriptorProto where sh
764767
765768putServiceDescriptorProto :: forall m. MonadEffect m => ServiceDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
766769putServiceDescriptorProto (ServiceDescriptorProto r) = do
767− Runtime.putOptional 1 r.name Encode.string
770+ Runtime.putOptional 1 r.name String.null Encode.string
768771 Runtime.putRepeated 2 r.method $ Runtime.putLenDel putMethodDescriptorProto
769− Runtime.putOptional 3 r.options $ Runtime.putLenDel putServiceOptions
772+ Runtime.putOptional 3 r.options (const false) $ Runtime.putLenDel putServiceOptions
770773 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
771774
772775parseServiceDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m ServiceDescriptorProto
@@ -818,12 +821,12 @@ instance showMethodDescriptorProto :: Show.Show MethodDescriptorProto where show
818821
819822putMethodDescriptorProto :: forall m. MonadEffect m => MethodDescriptorProto -> ArrayBuffer.Builder.PutM m Unit.Unit
820823putMethodDescriptorProto (MethodDescriptorProto r) = do
821− Runtime.putOptional 1 r.name Encode.string
822− Runtime.putOptional 2 r.input_type Encode.string
823− Runtime.putOptional 3 r.output_type Encode.string
824− Runtime.putOptional 4 r.options $ Runtime.putLenDel putMethodOptions
825− Runtime.putOptional 5 r.client_streaming Encode.bool
826− Runtime.putOptional 6 r.server_streaming Encode.bool
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
827830 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
828831
829832parseMethodDescriptorProto :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m MethodDescriptorProto
@@ -902,26 +905,26 @@ instance showFileOptions :: Show.Show FileOptions where show x = Generic.Rep.Sho
902905
903906putFileOptions :: forall m. MonadEffect m => FileOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
904907putFileOptions (FileOptions r) = do
905− Runtime.putOptional 1 r.java_package Encode.string
906− Runtime.putOptional 8 r.java_outer_classname Encode.string
907− Runtime.putOptional 10 r.java_multiple_files Encode.bool
908− Runtime.putOptional 20 r.java_generate_equals_and_hash Encode.bool
909− Runtime.putOptional 27 r.java_string_check_utf8 Encode.bool
910− Runtime.putOptional 9 r.optimize_for Runtime.putEnum
911− Runtime.putOptional 11 r.go_package Encode.string
912− Runtime.putOptional 16 r.cc_generic_services Encode.bool
913− Runtime.putOptional 17 r.java_generic_services Encode.bool
914− Runtime.putOptional 18 r.py_generic_services Encode.bool
915− Runtime.putOptional 42 r.php_generic_services Encode.bool
916− Runtime.putOptional 23 r.deprecated Encode.bool
917− Runtime.putOptional 31 r.cc_enable_arenas Encode.bool
918− Runtime.putOptional 36 r.objc_class_prefix Encode.string
919− Runtime.putOptional 37 r.csharp_namespace Encode.string
920− Runtime.putOptional 39 r.swift_prefix Encode.string
921− Runtime.putOptional 40 r.php_class_prefix Encode.string
922− Runtime.putOptional 41 r.php_namespace Encode.string
923− Runtime.putOptional 44 r.php_metadata_namespace Encode.string
924− Runtime.putOptional 45 r.ruby_package Encode.string
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
925928 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
926929 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
927930
@@ -1045,10 +1048,10 @@ instance showMessageOptions :: Show.Show MessageOptions where show x = Generic.R
10451048
10461049putMessageOptions :: forall m. MonadEffect m => MessageOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
10471050putMessageOptions (MessageOptions r) = do
1048− Runtime.putOptional 1 r.message_set_wire_format Encode.bool
1049− Runtime.putOptional 2 r.no_standard_descriptor_accessor Encode.bool
1050− Runtime.putOptional 3 r.deprecated Encode.bool
1051− Runtime.putOptional 7 r.map_entry Encode.bool
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
10521055 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
10531056 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
10541057
@@ -1110,12 +1113,12 @@ instance showFieldOptions :: Show.Show FieldOptions where show x = Generic.Rep.S
11101113
11111114putFieldOptions :: forall m. MonadEffect m => FieldOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
11121115putFieldOptions (FieldOptions r) = do
1113− Runtime.putOptional 1 r.ctype Runtime.putEnum
1114− Runtime.putOptional 2 r.packed Encode.bool
1115− Runtime.putOptional 6 r.jstype Runtime.putEnum
1116− Runtime.putOptional 5 r.lazy Encode.bool
1117− Runtime.putOptional 3 r.deprecated Encode.bool
1118− Runtime.putOptional 10 r.weak Encode.bool
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
11191122 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
11201123 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
11211124
@@ -1220,8 +1223,8 @@ instance showEnumOptions :: Show.Show EnumOptions where show x = Generic.Rep.Sho
12201223
12211224putEnumOptions :: forall m. MonadEffect m => EnumOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
12221225putEnumOptions (EnumOptions r) = do
1223− Runtime.putOptional 2 r.allow_alias Encode.bool
1224− Runtime.putOptional 3 r.deprecated Encode.bool
1226+ Runtime.putOptional 2 r.allow_alias not Encode.bool
1227+ Runtime.putOptional 3 r.deprecated not Encode.bool
12251228 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
12261229 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
12271230
@@ -1270,7 +1273,7 @@ instance showEnumValueOptions :: Show.Show EnumValueOptions where show x = Gener
12701273
12711274putEnumValueOptions :: forall m. MonadEffect m => EnumValueOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
12721275putEnumValueOptions (EnumValueOptions r) = do
1273− Runtime.putOptional 1 r.deprecated Encode.bool
1276+ Runtime.putOptional 1 r.deprecated not Encode.bool
12741277 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
12751278 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
12761279
@@ -1315,7 +1318,7 @@ instance showServiceOptions :: Show.Show ServiceOptions where show x = Generic.R
13151318
13161319putServiceOptions :: forall m. MonadEffect m => ServiceOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
13171320putServiceOptions (ServiceOptions r) = do
1318− Runtime.putOptional 33 r.deprecated Encode.bool
1321+ Runtime.putOptional 33 r.deprecated not Encode.bool
13191322 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
13201323 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
13211324
@@ -1361,8 +1364,8 @@ instance showMethodOptions :: Show.Show MethodOptions where show x = Generic.Rep
13611364
13621365putMethodOptions :: forall m. MonadEffect m => MethodOptions -> ArrayBuffer.Builder.PutM m Unit.Unit
13631366putMethodOptions (MethodOptions r) = do
1364− Runtime.putOptional 33 r.deprecated Encode.bool
1365− Runtime.putOptional 34 r.idempotency_level Runtime.putEnum
1367+ Runtime.putOptional 33 r.deprecated not Encode.bool
1368+ Runtime.putOptional 34 r.idempotency_level (Enum.fromEnum >>> (_==0)) Runtime.putEnum
13661369 Runtime.putRepeated 999 r.uninterpreted_option $ Runtime.putLenDel putUninterpretedOption
13671370 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
13681371
@@ -1417,12 +1420,12 @@ instance showUninterpretedOption :: Show.Show UninterpretedOption where show x =
14171420putUninterpretedOption :: forall m. MonadEffect m => UninterpretedOption -> ArrayBuffer.Builder.PutM m Unit.Unit
14181421putUninterpretedOption (UninterpretedOption r) = do
14191422 Runtime.putRepeated 2 r.name $ Runtime.putLenDel putUninterpretedOption_NamePart
1420− Runtime.putOptional 3 r.identifier_value Encode.string
1421− Runtime.putOptional 4 r.positive_int_value Encode.uint64
1422− Runtime.putOptional 5 r.negative_int_value Encode.int64
1423− Runtime.putOptional 6 r.double_value Encode.double
1424− Runtime.putOptional 7 r.string_value Encode.bytes
1425− Runtime.putOptional 8 r.aggregate_value Encode.string
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
14261429 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
14271430
14281431parseUninterpretedOption :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m UninterpretedOption
@@ -1486,8 +1489,8 @@ instance showUninterpretedOption_NamePart :: Show.Show UninterpretedOption_NameP
14861489
14871490putUninterpretedOption_NamePart :: forall m. MonadEffect m => UninterpretedOption_NamePart -> ArrayBuffer.Builder.PutM m Unit.Unit
14881491putUninterpretedOption_NamePart (UninterpretedOption_NamePart r) = do
1489− Runtime.putOptional 1 r.name_part Encode.string
1490− Runtime.putOptional 2 r.is_extension Encode.bool
1492+ Runtime.putOptional 1 r.name_part String.null Encode.string
1493+ Runtime.putOptional 2 r.is_extension not Encode.bool
14911494 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
14921495
14931496parseUninterpretedOption_NamePart :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m UninterpretedOption_NamePart
@@ -1575,8 +1578,8 @@ putSourceCodeInfo_Location :: forall m. MonadEffect m => SourceCodeInfo_Location
15751578putSourceCodeInfo_Location (SourceCodeInfo_Location r) = do
15761579 Runtime.putPacked 1 r.path Encode.int32'
15771580 Runtime.putPacked 2 r.span Encode.int32'
1578− Runtime.putOptional 3 r.leading_comments Encode.string
1579− Runtime.putOptional 4 r.trailing_comments Encode.string
1581+ Runtime.putOptional 3 r.leading_comments String.null Encode.string
1582+ Runtime.putOptional 4 r.trailing_comments String.null Encode.string
15801583 Runtime.putRepeated 6 r.leading_detached_comments Encode.string
15811584 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
15821585
@@ -1681,9 +1684,9 @@ instance showGeneratedCodeInfo_Annotation :: Show.Show GeneratedCodeInfo_Annotat
16811684putGeneratedCodeInfo_Annotation :: forall m. MonadEffect m => GeneratedCodeInfo_Annotation -> ArrayBuffer.Builder.PutM m Unit.Unit
16821685putGeneratedCodeInfo_Annotation (GeneratedCodeInfo_Annotation r) = do
16831686 Runtime.putPacked 1 r.path Encode.int32'
1684− Runtime.putOptional 2 r.source_file Encode.string
1685− Runtime.putOptional 3 r.begin Encode.int32
1686− Runtime.putOptional 4 r.end 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
16871690 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
16881691
16891692parseGeneratedCodeInfo_Annotation :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m GeneratedCodeInfo_Annotation
src/ProtocPlugin/plugin.Google.Protobuf.Compiler.purs+13−10
@@ -27,6 +27,8 @@ import Data.Generic.Rep.Bounded as Generic.Rep.Bounded
2727import Data.Generic.Rep.Enum as Generic.Rep.Enum
2828import Data.Generic.Rep.Ord as Generic.Rep.Ord
2929import Data.Semigroup as Semigroup
30+import Data.Semiring as Semiring
31+import Data.String as String
3032import Data.Symbol as Symbol
3133import Record as Record
3234import Data.Traversable as Traversable
@@ -37,6 +39,7 @@ import Data.Long.Internal as Long
3739import Text.Parsing.Parser as Parser
3840import Data.ArrayBuffer.Builder as ArrayBuffer.Builder
3941import Data.ArrayBuffer.Types as ArrayBuffer.Types
42+import Data.ArrayBuffer.ArrayBuffer as ArrayBuffer
4043import Protobuf.Common as Common
4144import Protobuf.Decode as Decode
4245import Protobuf.Encode as Encode
@@ -62,10 +65,10 @@ instance showVersion :: Show.Show Version where show x = Generic.Rep.Show.generi
6265
6366putVersion :: forall m. MonadEffect m => Version -> ArrayBuffer.Builder.PutM m Unit.Unit
6467putVersion (Version r) = do
65− Runtime.putOptional 1 r.major Encode.int32
66− Runtime.putOptional 2 r.minor Encode.int32
67− Runtime.putOptional 3 r.patch Encode.int32
68− Runtime.putOptional 4 r.suffix Encode.string
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
6972 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
7073
7174parseVersion :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m Version
@@ -120,9 +123,9 @@ instance showCodeGeneratorRequest :: Show.Show CodeGeneratorRequest where show x
120123putCodeGeneratorRequest :: forall m. MonadEffect m => CodeGeneratorRequest -> ArrayBuffer.Builder.PutM m Unit.Unit
121124putCodeGeneratorRequest (CodeGeneratorRequest r) = do
122125 Runtime.putRepeated 1 r.file_to_generate Encode.string
123− Runtime.putOptional 2 r.parameter Encode.string
126+ Runtime.putOptional 2 r.parameter String.null Encode.string
124127 Runtime.putRepeated 15 r.proto_file $ Runtime.putLenDel Google.Protobuf.putFileDescriptorProto
125− Runtime.putOptional 3 r.compiler_version $ Runtime.putLenDel putVersion
128+ Runtime.putOptional 3 r.compiler_version (const false) $ Runtime.putLenDel putVersion
126129 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
127130
128131parseCodeGeneratorRequest :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m CodeGeneratorRequest
@@ -174,7 +177,7 @@ instance showCodeGeneratorResponse :: Show.Show CodeGeneratorResponse where show
174177
175178putCodeGeneratorResponse :: forall m. MonadEffect m => CodeGeneratorResponse -> ArrayBuffer.Builder.PutM m Unit.Unit
176179putCodeGeneratorResponse (CodeGeneratorResponse r) = do
177− Runtime.putOptional 1 r.error Encode.string
180+ Runtime.putOptional 1 r.error String.null Encode.string
178181 Runtime.putRepeated 15 r.file $ Runtime.putLenDel putCodeGeneratorResponse_File
179182 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
180183
@@ -220,9 +223,9 @@ instance showCodeGeneratorResponse_File :: Show.Show CodeGeneratorResponse_File
220223
221224putCodeGeneratorResponse_File :: forall m. MonadEffect m => CodeGeneratorResponse_File -> ArrayBuffer.Builder.PutM m Unit.Unit
222225putCodeGeneratorResponse_File (CodeGeneratorResponse_File r) = do
223− Runtime.putOptional 1 r.name Encode.string
224− Runtime.putOptional 2 r.insertion_point Encode.string
225− Runtime.putOptional 15 r.content Encode.string
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
226229 Traversable.traverse_ Runtime.putFieldUnknown r.__unknown_fields
227230
228231parseCodeGeneratorResponse_File :: forall m. MonadEffect m => MonadRec m => Int -> Parser.ParserT ArrayBuffer.Types.DataView m CodeGeneratorResponse_File