26
payload Marshaler,
27
payloadVersion int32,
28
>
) (*persistencespb.Checksum, error) {
crc.go
29
>
30
>
payloadBytes, err := payload.Marshal()
31
>
if err != nil {
32
return nil, err
33
}
34
35
>
crc := crc32.ChecksumIEEE(payloadBytes)
crc.go
36
>
checksum := make([]byte, 4)
37
>
binary.BigEndian.PutUint32(checksum, crc)
38
>
return &persistencespb.Checksum{
39
>
Value: checksum,
40
>
Version: payloadVersion,
41
>
Flavor: enumsspb.CHECKSUM_FLAVOR_IEEE_CRC32_OVER_PROTO3_BINARY,
42
>
}, nil
43
}
44