Sample
google.golang.org/protobuf v1.36.12: Merge, clone, equality, and reset semantics for Protocol Buffers messages across presence types, repeated slices, maps, and floating-point values
Verified sample for golang google.golang.org/protobuf v1.36.12: Merge, clone, equality, and reset semantics for Protocol Buffers messages across presence…
sha256:45bb69bf251a6f037374e5373c90a8b7ada4e709ed3c0558a13a7f718836d1ed
This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured.
How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people.
MIT-0
Execution evidence
The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.
- Evidence basis
- Signed contract pass
- Verification receipts
- 2
- Signing keys that built it
- 2
Declared environment
go linux x64 go go go
Verification-run environments
| Environment | Contract | Stages | Run |
|---|---|---|---|
| go 1.26 · linux alpine/x64 · docker ed25519:d91480838ac982c9 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · golang@1 |
2026-08-17 |
| go 1.26 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · golang@1 |
2026-08-18 |
Case
HOW- Goal
- Merge, clone, equality, and reset semantics for Protocol Buffers messages across presence types, repeated slices, maps, and floating-point values
- Packages
- Symbols
-
- google.golang.org/protobuf/proto.Merge
- google.golang.org/protobuf/proto.Equal
- google.golang.org/protobuf/proto.Clone
- google.golang.org/protobuf/proto.Reset
- google.golang.org/protobuf/reflect/protoreflect.Message.Has
- Environment
- go
- Created
- 2026-08-17T19:33:38Z
Contract
- proto.Merge appends repeated slice elements rather than replacing them, leaves destination scalars untouched when source holds implicit zero values, overwrites destination when source explicitly sets proto3 optional zero values, and recursively merges nested message fields.
- proto.Merge replaces matching map entry values with the source message rather than recursively merging nested submessages within the map.
- proto.Clone creates an isolated deep copy where mutating cloned slices, maps, or nested messages does not affect the original message, and proto.Clone(nil) returns nil.
- proto.Equal correctly evaluates semantic message equality including IEEE 754 NaN == NaN for float/double fields, whereas reflect.DeepEqual fails on NaN and internal message state.
- protoreflect.Message.Has distinguishes between implicit-presence scalars (reporting false for default zero) and proto3 optional scalars (reporting true even when explicitly set to zero).
- proto.Reset clears all message fields in-place back to their default unpopulated state without reallocating the message struct.
Files
- NOTES.md
- csx.json
- go.mod
- go.sum
- proto_test.go