@@ -44,6 +44,7 @@ import Data.Int
44
44
import Data.SOP (All )
45
45
import qualified Data.Text as T
46
46
import qualified Data.Text.Lazy as LT
47
+ import Data.Word (Word64 , Word32 )
47
48
import GHC.TypeLits
48
49
import Proto3.Wire
49
50
import qualified Proto3.Wire.Decode as PBDec
@@ -420,6 +421,22 @@ instance ProtoBridgeOneFieldValue sch ('TPrimitive Int64) where
420
421
= PBEnc. packedVarints fid $ map (\ (FPrimitive i) -> fromIntegral i) vs
421
422
protoToPackedFieldValue = map FPrimitive <$> PBDec. packedVarints
422
423
424
+ instance ProtoBridgeOneFieldValue sch ('TPrimitive Word32 ) where
425
+ defaultOneFieldValue = Just $ FPrimitive 0
426
+ oneFieldValueToProto fid (FPrimitive n) = PBEnc. uint32 fid n
427
+ protoToOneFieldValue = FPrimitive <$> PBDec. uint32
428
+ supportsPacking _ = True
429
+ packedFieldValueToProto fid vs = PBEnc. packedVarints fid $ map (\ (FPrimitive i) -> fromIntegral i) vs
430
+ protoToPackedFieldValue = map FPrimitive <$> PBDec. packedVarints
431
+
432
+ instance ProtoBridgeOneFieldValue sch ('TPrimitive Word64 ) where
433
+ defaultOneFieldValue = Just $ FPrimitive 0
434
+ oneFieldValueToProto fid (FPrimitive n) = PBEnc. uint64 fid n
435
+ protoToOneFieldValue = FPrimitive <$> PBDec. uint64
436
+ supportsPacking _ = True
437
+ packedFieldValueToProto fid vs = PBEnc. packedVarints fid $ map (\ (FPrimitive i) -> i) vs
438
+ protoToPackedFieldValue = map FPrimitive <$> PBDec. packedVarints
439
+
423
440
-- WARNING! These instances may go out of bounds
424
441
instance ProtoBridgeOneFieldValue sch ('TPrimitive Integer ) where
425
442
defaultOneFieldValue = Just $ FPrimitive 0
0 commit comments