Beispiel
google.golang.org/genproto/googleapis/api v0.0.0-20260825221802-da73d73af1c5: annotations.E_FieldBehavior, annotations.FieldBehavior
Verifiziertes Beispiel für golang google.golang.org/genproto/googleapis/api v0.0.0-20260825221802-da73d73af1c5: annotations.E_FieldBehavior…
sha256:4b3de2f9f843113f46d5cb0996ff9c4bb909b68d29da34b3605530cef75b8312
Dieses Netzwerk bietet eine Sache: ein Sample, das baut. Es hat es in einer Sandbox ausgeführt und die signierte Quittung behalten. Es bewertet nichts und garantiert nichts — ob derselbe Code bei Ihnen baut, hat es nicht gemessen.
Wie viele verschiedene Signaturschlüssel eine bestandene Vertragsquittung eingereicht haben. Einer ist der Autor allein; mehr als einer heißt, jemand anderes hat es auch gebaut. Ein Schlüssel wird selbst erzeugt und hat keine registrierte Identität dahinter — gezählt werden Schlüssel, nicht Personen.
MIT-0
Ausführungsbelege
Die deklarierte Umgebung und die signierten Läufe stehen getrennt, damit Sie genau sehen, was dieses Sample ausgeführt hat und wo.
- Beleggrundlage
- Signierter Vertrag bestanden
- Verifizierungsbelege
- 1
- Signaturschlüssel, die es gebaut haben
- 1
Deklarierte Umgebung
linux 24 · ubuntu · glibc 2.39 x64 go
Umgebungen der Verifizierungsläufe
| Umgebung | Contract | Stufen | Lauf |
|---|---|---|---|
| go 1.26 · linux debian/x64 · docker ed25519:c1973797be207ac4 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · golang@1golang:1.26@sha256:e30143be198a… |
2026-09-05 |
Fall
HOW- Ziel
- verify google.golang.org/genproto/googleapis/api/annotations.FieldBehavior in pkg:golang/google.golang.org/genproto/googleapis/api@v0.0.0-20260825221802-da73d73af1c5
- Symbole
-
- google.golang.org/genproto/googleapis/api/annotations.E_FieldBehavior
- google.golang.org/genproto/googleapis/api/annotations.FieldBehavior
- Erstellt
- 2026-09-05T10:58:52Z
Contract
- FieldBehavior enum defines protobuf field lifecycle annotations including REQUIRED, OUTPUT_ONLY, and IMMUTABLE
- annotations.E_FieldBehavior extension descriptor attaches repeated FieldBehavior values to descriptorpb.FieldOptions
- proto.GetExtension retrieves the slice of FieldBehavior values configured on FieldOptions
- FieldOptions with annotations.E_FieldBehavior preserves field behavior designations across proto wire serialization and deserialization
- proto.ClearExtension removes annotations.E_FieldBehavior from FieldOptions
Dateien
- PROMPT.md
- csx.json
- go.mod
- go.sum
- main.go
- spec.json
- test/contract.go
Quelltext
Clean-room public code sample — generation instructions
Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.
A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.
Goal: verify google.golang.org/genproto/googleapis/api/annotations.FieldBehavior in pkg:golang/google.golang.org/genproto/googleapis/api@v0.0.0-20260825221802-da73d73af1c5
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:golang/google.golang.org/genproto/googleapis/api@v0.0.0-20260825221802-da73d73af1c5
Demonstrate these symbols/APIs:
- google.golang.org/genproto/googleapis/api/annotations.E_FieldBehavior
- google.golang.org/genproto/googleapis/api/annotations.FieldBehavior
Rules:
- One focused purpose; the smallest project that proves the goal.
- Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
- Pin every dependency with a lockfile so resolution is reproducible.
- No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
- No personal names, emails, company names, or project identifiers of any kind.
- No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
- Keep it under 200 files and 256KB packed.
{"case":{"caseId":"case:sha256:2f2c34bd206be1999d356bd1fa4bc2d83e7146124ef419dcad2a3a842578843a","contract":["FieldBehavior enum defines protobuf field lifecycle annotations including REQUIRED, OUTPUT_ONLY, and IMMUTABLE","annotations.E_FieldBehavior extension descriptor attaches repeated FieldBehavior values to descriptorpb.FieldOptions","proto.GetExtension retrieves the slice of FieldBehavior values configured on FieldOptions","FieldOptions with annotations.E_FieldBehavior preserves field behavior designations across proto wire serialization and deserialization","proto.ClearExtension removes annotations.E_FieldBehavior from FieldOptions"],"goal":"verify google.golang.org/genproto/googleapis/api/annotations.FieldBehavior in pkg:golang/google.golang.org/genproto/googleapis/api@v0.0.0-20260825221802-da73d73af1c5","kind":"HOW","packages":["pkg:golang/google.golang.org/genproto/googleapis/api@v0.0.0-20260825221802-da73d73af1c5"],"schemaVersion":1,"symbols":["google.golang.org/genproto/googleapis/api/annotations.E_FieldBehavior","google.golang.org/genproto/googleapis/api/annotations.FieldBehavior"]},"contractCommand":["go","run","./test"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"golang","libc":"glibc","libcVersion":"2.39","os":"linux","osVersionBucket":"24","packageManager":"go","schemaVersion":1},"license":"MIT-0","packages":["pkg:golang/google.golang.org/genproto/googleapis/api@v0.0.0-20260825221802-da73d73af1c5"],"schemaVersion":1,"subject":"pkg:golang/google.golang.org/genproto/googleapis/api@v0.0.0-20260825221802-da73d73af1c5","symbols":["google.golang.org/genproto/googleapis/api/annotations.E_FieldBehavior","google.golang.org/genproto/googleapis/api/annotations.FieldBehavior"],"verifierAdapter":"golang@1"}
module sample
go 1.25.0
require (
google.golang.org/genproto/googleapis/api v0.0.0-20260825221802-da73d73af1c5
google.golang.org/protobuf v1.36.12
)
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
google.golang.org/genproto/googleapis/api v0.0.0-20260825221802-da73d73af1c5 h1:izFU9hz7aeLI/Mi1J0991ae+xcwRLr7hTqWnB/9aIIU=
google.golang.org/genproto/googleapis/api v0.0.0-20260825221802-da73d73af1c5/go.mod h1:3LhxRw4YYkf+ylAfgaY9JlVLFKhokkCV8duhLLe7+t0=
google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc=
google.golang.org/protobuf v1.36.12/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
package main
import (
"fmt"
"log"
"google.golang.org/genproto/googleapis/api/annotations"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/descriptorpb"
)
func main() {
// 1. Define field behaviors for a resource ID field: REQUIRED and IMMUTABLE
behaviors := []annotations.FieldBehavior{
annotations.FieldBehavior_REQUIRED,
annotations.FieldBehavior_IMMUTABLE,
}
// 2. Attach field behavior extension to descriptorpb.FieldOptions
fieldOpts := &descriptorpb.FieldOptions{}
proto.SetExtension(fieldOpts, annotations.E_FieldBehavior, behaviors)
// 3. Serialize and deserialize FieldOptions with extension
data, err := proto.Marshal(fieldOpts)
if err != nil {
log.Fatalf("failed to marshal field options: %v", err)
}
var decoded descriptorpb.FieldOptions
if err := proto.Unmarshal(data, &decoded); err != nil {
log.Fatalf("failed to unmarshal field options: %v", err)
}
// 4. Retrieve field behaviors from unmarshaled options
if proto.HasExtension(&decoded, annotations.E_FieldBehavior) {
ext := proto.GetExtension(&decoded, annotations.E_FieldBehavior).([]annotations.FieldBehavior)
for _, b := range ext {
fmt.Printf("Field behavior: %s (number %d)\n", b.String(), b.Number())
}
}
}
{
"schemaVersion": 1,
"goal": "verify google.golang.org/genproto/googleapis/api/annotations.FieldBehavior in pkg:golang/google.golang.org/genproto/googleapis/api@v0.0.0-20260825221802-da73d73af1c5",
"kind": "HOW",
"packages": [
"pkg:golang/google.golang.org/genproto/googleapis/api@v0.0.0-20260825221802-da73d73af1c5"
],
"symbols": [
"google.golang.org/genproto/googleapis/api/annotations.E_FieldBehavior",
"google.golang.org/genproto/googleapis/api/annotations.FieldBehavior"
]
}
package main
import (
"fmt"
"os"
"google.golang.org/genproto/googleapis/api/annotations"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/descriptorpb"
)
func assert(condition bool, message string) {
if !condition {
fmt.Fprintf(os.Stderr, "Assertion failed: %s\n", message)
os.Exit(1)
}
}
func main() {
// 1. FieldBehavior enum defines protobuf field lifecycle annotations including REQUIRED, OUTPUT_ONLY, and IMMUTABLE
assert(annotations.FieldBehavior_FIELD_BEHAVIOR_UNSPECIFIED.String() == "FIELD_BEHAVIOR_UNSPECIFIED", "unspecified enum string")
assert(annotations.FieldBehavior_OPTIONAL.String() == "OPTIONAL", "optional enum string")
assert(annotations.FieldBehavior_REQUIRED.String() == "REQUIRED", "required enum string")
assert(annotations.FieldBehavior_OUTPUT_ONLY.String() == "OUTPUT_ONLY", "output_only enum string")
assert(annotations.FieldBehavior_INPUT_ONLY.String() == "INPUT_ONLY", "input_only enum string")
assert(annotations.FieldBehavior_IMMUTABLE.String() == "IMMUTABLE", "immutable enum string")
assert(annotations.FieldBehavior_UNORDERED_LIST.String() == "UNORDERED_LIST", "unordered_list enum string")
assert(annotations.FieldBehavior_NON_EMPTY_DEFAULT.String() == "NON_EMPTY_DEFAULT", "non_empty_default enum string")
assert(annotations.FieldBehavior_IDENTIFIER.String() == "IDENTIFIER", "identifier enum string")
assert(int32(annotations.FieldBehavior_REQUIRED.Number()) == 2, "required number should be 2")
assert(int32(annotations.FieldBehavior_OUTPUT_ONLY.Number()) == 3, "output_only number should be 3")
assert(int32(annotations.FieldBehavior_IMMUTABLE.Number()) == 5, "immutable number should be 5")
// 2. annotations.E_FieldBehavior extension descriptor attaches repeated FieldBehavior values to descriptorpb.FieldOptions
fieldOpts := &descriptorpb.FieldOptions{}
assert(!proto.HasExtension(fieldOpts, annotations.E_FieldBehavior), "initially HasExtension should be false")
behaviors := []annotations.FieldBehavior{
annotations.FieldBehavior_REQUIRED,
annotations.FieldBehavior_IMMUTABLE,
}
proto.SetExtension(fieldOpts, annotations.E_FieldBehavior, behaviors)
assert(proto.HasExtension(fieldOpts, annotations.E_FieldBehavior), "HasExtension should be true after SetExtension")
// 3. proto.GetExtension retrieves the slice of FieldBehavior values configured on FieldOptions
ext := proto.GetExtension(fieldOpts, annotations.E_FieldBehavior)
retrieved, ok := ext.([]annotations.FieldBehavior)
assert(ok && retrieved != nil, "retrieved extension must be []annotations.FieldBehavior")
assert(len(retrieved) == 2, "expected 2 field behaviors")
assert(retrieved[0] == annotations.FieldBehavior_REQUIRED, "first behavior must be REQUIRED")
assert(retrieved[1] == annotations.FieldBehavior_IMMUTABLE, "second behavior must be IMMUTABLE")
// 4. FieldOptions with annotations.E_FieldBehavior preserves field behavior designations across proto wire serialization and deserialization
data, err := proto.Marshal(fieldOpts)
assert(err == nil, "proto.Marshal of FieldOptions should succeed")
assert(len(data) > 0, "marshaled payload should not be empty")
var unmarshaled descriptorpb.FieldOptions
err = proto.Unmarshal(data, &unmarshaled)
assert(err == nil, "proto.Unmarshal of FieldOptions should succeed")
assert(proto.HasExtension(&unmarshaled, annotations.E_FieldBehavior), "unmarshaled should have annotations.E_FieldBehavior")
unmarshaledExt, ok := proto.GetExtension(&unmarshaled, annotations.E_FieldBehavior).([]annotations.FieldBehavior)
assert(ok && unmarshaledExt != nil, "unmarshaled extension must be []annotations.FieldBehavior")
assert(len(unmarshaledExt) == 2, "unmarshaled behaviors count should match")
assert(unmarshaledExt[0] == annotations.FieldBehavior_REQUIRED, "unmarshaled first behavior must be REQUIRED")
assert(unmarshaledExt[1] == annotations.FieldBehavior_IMMUTABLE, "unmarshaled second behavior must be IMMUTABLE")
assert(proto.Equal(fieldOpts, &unmarshaled), "unmarshaled FieldOptions should be proto.Equal")
// 5. proto.ClearExtension removes annotations.E_FieldBehavior from FieldOptions
proto.ClearExtension(fieldOpts, annotations.E_FieldBehavior)
assert(!proto.HasExtension(fieldOpts, annotations.E_FieldBehavior), "HasExtension must be false after ClearExtension")
fmt.Println("All contract assertions passed successfully.")
}
Ursprungs-Seeder
anonym