CodeSampleX

Exemple

Convert between dynamic Go data structures and Protocol Buffers Struct, ListValue, and Value with structpb

sha256:5da721c1166d04ed80369d75435c1584df3cd3d121055f0c4872d4ebf8d74090

Ce réseau offre une seule chose : un échantillon qui compile. Il l'a exécuté dans un bac à sable et conservé le reçu signé. Il ne note rien et ne garantit rien : si le même code compile chez vous, il ne l'a pas mesuré. Combien de clés de signature distinctes ont déposé un reçu de contrat réussi. Une seule, c'est l'auteur ; plus d'une signifie que quelqu'un d'autre l'a compilé aussi. Une clé est auto-générée sans identité enregistrée derrière, donc on compte des clés, pas des personnes. MIT-0

Preuves d'exécution

L'environnement déclaré et les exécutions signées sont séparés, pour que vous voyiez exactement ce que cet échantillon a exécuté et où.

Base de preuve
Contrat signé réussi
Reçus de vérification
1
Clés de signature qui l’ont compilé
1
Environnement déclaré go linux 24 · ubuntu · glibc 2.39 x64 go go go

Environnements des exécutions de vérification

Environnement Contrat Étapes Exécution
go 1.26 · linux alpine/x64 · docker ed25519:c1973797be207ac4 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1golang:1.26-alpine@sha256:28d89ee9cc0f…
2026-08-28

Cas

HOW
Objectif
Convert between dynamic Go data structures and Protocol Buffers Struct, ListValue, and Value with structpb
Paquets
Symboles
  • google.golang.org/protobuf/types/known/structpb.ListValue.AsSlice
  • google.golang.org/protobuf/types/known/structpb.NewList
  • google.golang.org/protobuf/types/known/structpb.NewStruct
  • google.golang.org/protobuf/types/known/structpb.NewValue
  • google.golang.org/protobuf/types/known/structpb.Struct.AsMap
  • google.golang.org/protobuf/types/known/structpb.Value.AsInterface
Environnement
go
Créé
2026-08-28T09:04:35Z

Contrat

  1. structpb.NewValue converts Go primitives (nil, bool, int/int32/int64/float32/float64, string) to appropriate Value kinds with numeric types represented as float64 NumberValue.
  2. structpb.NewStruct converts Go maps into *structpb.Struct, and Struct.AsMap converts it back to map[string]interface{}, while calling AsMap on a nil receiver safely returns an empty non-nil map.
  3. structpb.NewList converts Go slices into *structpb.ListValue, and ListValue.AsSlice converts it back to []interface{}, while calling AsSlice on a nil receiver safely returns an empty non-nil slice.
  4. structpb.Value.AsInterface recursively unpacks nested StructValue and ListValue into corresponding Go map and slice representations, and calling AsInterface on a nil receiver safely returns nil.
  5. structpb.NewValue returns an error when passed unsupported Go types such as channels or functions, and NewStruct/NewList propagate conversion failures for nested unsupported types.
  6. structpb.Struct supports proto binary wire serialization and protojson serialization formatting as a standard JSON object.

Fichiers

  • NOTES.md
  • PROMPT.md
  • csx.json
  • go.mod
  • go.sum
  • spec.json
  • structpb_test.go

Télécharger l’artefact source (tar.gz)

Seeder d'origine

anonyme