File tree 1 file changed +13
-0
lines changed
1 file changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -94,6 +94,8 @@ module Proto3.Wire.Encode
94
94
, shortByteString
95
95
-- * Embedded Messages
96
96
, embedded
97
+ -- * Folds
98
+ , repeatedMessageBuilder
97
99
-- * Packed repeated fields
98
100
, packedVarints
99
101
, packedVarintsR
@@ -578,6 +580,17 @@ shortByteString :: FieldNumber -> BS.ShortByteString -> MessageBuilder
578
580
shortByteString num = embedded num . MessageBuilder . RB. shortByteString
579
581
{-# INLINE shortByteString #-}
580
582
583
+ -- | Concatenates the given builders, which typically build fields within the same message.
584
+ --
585
+ -- For example:
586
+ --
587
+ -- >>> repeatedMessageBuilder @[MessageBuilder] [1 `bool` True, 2 `int32` 42]
588
+ -- Proto3.Wire.Encode.unsafeFromLazyByteString "\b\SOH\DLE*"
589
+ repeatedMessageBuilder :: ToRepeated c MessageBuilder => c -> MessageBuilder
590
+ repeatedMessageBuilder =
591
+ etaMessageBuilder (MessageBuilder . RB. repeatedBuildR . mapRepeated reverseMessageBuilder)
592
+ {-# INLINE repeatedMessageBuilder #-}
593
+
581
594
-- | Encodes a packed repeated field whose elements may vary in width.
582
595
packedVariableWidthFieldR ::
583
596
ToRepeated c a => (a -> RB. BuildR ) -> FieldNumber -> c -> MessageBuilder
You can’t perform that action at this time.
0 commit comments