샘플
github.com/imdario/mergo v0.3.8: WithOverride
검증된 샘플 — golang github.com/imdario/mergo v0.3.8: WithOverride. go 1.26 · linux debian/x64 · docker에서 contract를 실행해 통과했습니다: mergo.Merge with WithOverride…
sha256:6375b6a3d8ded7f7bbd90dc38edd2327246a1f0995bf0dc840579bd771ce53be
이 네트워크가 제공하는 것은 하나입니다. 빌드되는 샘플. 샌드박스에서 돌리고 서명된 영수증을 보관합니다. 등급을 매기지 않고 무엇도 보증하지 않습니다 — 같은 코드가 당신 환경에서 빌드되는지는 측정한 적이 없습니다.
통과한 계약 영수증을 낸 서로 다른 서명 키의 수입니다. 하나면 작성자 혼자이고, 둘 이상이면 다른 사람도 빌드했다는 뜻입니다. 키는 스스로 만드는 것이고 뒤에 등록된 신원이 없으므로, 세는 것은 사람이 아니라 키입니다.
MIT-0
실행 증거
선언된 환경과 서명된 실행을 분리해 두었습니다. 이 샘플이 무엇을 어디서 실행했는지 그대로 볼 수 있습니다.
- 증거 기준
- 서명된 컨트랙트 통과
- 검증 영수증
- 1
- 빌드한 서명 키
- 1
선언된 환경
linux 24 · ubuntu · glibc 2.39 x64 go
검증 실행 환경
| 환경 | 컨트랙트 | 단계 | 실행일 |
|---|---|---|---|
| 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-06 |
케이스
HOW- 목표
- verify github.com/imdario/mergo.WithOverride in pkg:golang/github.com/imdario/mergo@v0.3.8
- 심벌
-
- github.com/imdario/mergo.WithOverride
- 생성일
- 2026-09-06T04:46:24Z
컨트랙트
- mergo.Merge with WithOverride overwrites non-empty destination struct fields with non-empty source values
- mergo.Merge without WithOverride preserves existing non-empty destination struct fields
- mergo.Merge with WithOverride does not overwrite non-empty destination fields with zero-value source fields
- mergo.Merge with WithOverride overrides matching keys in destination map with source map values
파일
- PROMPT.md
- csx.json
- go.mod
- go.sum
- main.go
- spec.json
- test/contract.go
소스
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 github.com/imdario/mergo.WithOverride in pkg:golang/github.com/imdario/mergo@v0.3.8
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:golang/github.com/imdario/mergo@v0.3.8
Demonstrate these symbols/APIs:
- github.com/imdario/mergo.WithOverride
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:79930199c1d807661ff9e4a0ce47b1bd3544a8482bab4337136055256d849ce6","contract":["mergo.Merge with WithOverride overwrites non-empty destination struct fields with non-empty source values","mergo.Merge without WithOverride preserves existing non-empty destination struct fields","mergo.Merge with WithOverride does not overwrite non-empty destination fields with zero-value source fields","mergo.Merge with WithOverride overrides matching keys in destination map with source map values"],"goal":"verify github.com/imdario/mergo.WithOverride in pkg:golang/github.com/imdario/mergo@v0.3.8","kind":"HOW","packages":["pkg:golang/github.com/imdario/mergo@v0.3.8"],"schemaVersion":1,"symbols":["github.com/imdario/mergo.WithOverride"]},"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/github.com/imdario/mergo@v0.3.8"],"schemaVersion":1,"subject":"pkg:golang/github.com/imdario/mergo@v0.3.8","symbols":["github.com/imdario/mergo.WithOverride"],"verifierAdapter":"golang@1"}
module example.com/sample
go 1.26.6
require github.com/imdario/mergo v0.3.8
github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ=
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
package main
import (
"fmt"
"log"
"github.com/imdario/mergo"
)
// ServerConfig holds configuration settings.
type ServerConfig struct {
Host string
Port int
Timeout int
Debug bool
}
// MergeConfig merges source configuration into destination.
// When override is true, WithOverride is used to overwrite non-empty destination fields.
func MergeConfig(dst *ServerConfig, src ServerConfig, override bool) error {
var opts []func(*mergo.Config)
if override {
opts = append(opts, mergo.WithOverride)
}
return mergo.Merge(dst, src, opts...)
}
func main() {
dst := ServerConfig{
Host: "localhost",
Port: 8080,
Timeout: 30,
Debug: false,
}
src := ServerConfig{
Port: 9090,
Timeout: 60,
}
if err := MergeConfig(&dst, src, true); err != nil {
log.Fatalf("failed to merge configuration: %v", err)
}
fmt.Printf("Merged Config: Host=%s Port=%d Timeout=%d Debug=%t\n",
dst.Host, dst.Port, dst.Timeout, dst.Debug)
}
{
"schemaVersion": 1,
"goal": "verify github.com/imdario/mergo.WithOverride in pkg:golang/github.com/imdario/mergo@v0.3.8",
"kind": "HOW",
"packages": [
"pkg:golang/github.com/imdario/mergo@v0.3.8"
],
"symbols": [
"github.com/imdario/mergo.WithOverride"
]
}
package main
import (
"fmt"
"os"
"github.com/imdario/mergo"
)
type Config struct {
Host string
Port int
Timeout int
}
func main() {
// Assertion 1: mergo.Merge with WithOverride overwrites non-empty destination struct fields with non-empty source values
dst1 := Config{Host: "localhost", Port: 8080, Timeout: 30}
src1 := Config{Port: 9090, Timeout: 60}
if err := mergo.Merge(&dst1, src1, mergo.WithOverride); err != nil {
fmt.Fprintf(os.Stderr, "FAIL: assertion 1 failed with error: %v\n", err)
os.Exit(1)
}
if dst1.Host != "localhost" || dst1.Port != 9090 || dst1.Timeout != 60 {
fmt.Fprintf(os.Stderr, "FAIL: assertion 1 expected Host=localhost, Port=9090, Timeout=60; got %+v\n", dst1)
os.Exit(1)
}
// Assertion 2: mergo.Merge without WithOverride preserves existing non-empty destination struct fields
dst2 := Config{Host: "localhost", Port: 8080}
src2 := Config{Port: 9090, Timeout: 60}
if err := mergo.Merge(&dst2, src2); err != nil {
fmt.Fprintf(os.Stderr, "FAIL: assertion 2 failed with error: %v\n", err)
os.Exit(1)
}
if dst2.Host != "localhost" || dst2.Port != 8080 || dst2.Timeout != 60 {
fmt.Fprintf(os.Stderr, "FAIL: assertion 2 expected Host=localhost, Port=8080, Timeout=60; got %+v\n", dst2)
os.Exit(1)
}
// Assertion 3: mergo.Merge with WithOverride does not overwrite non-empty destination fields with zero-value source fields
dst3 := Config{Host: "localhost", Port: 8080, Timeout: 30}
src3 := Config{Host: "", Port: 9090}
if err := mergo.Merge(&dst3, src3, mergo.WithOverride); err != nil {
fmt.Fprintf(os.Stderr, "FAIL: assertion 3 failed with error: %v\n", err)
os.Exit(1)
}
if dst3.Host != "localhost" || dst3.Port != 9090 || dst3.Timeout != 30 {
fmt.Fprintf(os.Stderr, "FAIL: assertion 3 expected Host=localhost, Port=9090, Timeout=30; got %+v\n", dst3)
os.Exit(1)
}
// Assertion 4: mergo.Merge with WithOverride overrides matching keys in destination map with source map values
dstMap := map[string]int{"a": 1, "b": 2}
srcMap := map[string]int{"b": 20, "c": 30}
if err := mergo.Merge(&dstMap, srcMap, mergo.WithOverride); err != nil {
fmt.Fprintf(os.Stderr, "FAIL: assertion 4 failed with error: %v\n", err)
os.Exit(1)
}
if dstMap["a"] != 1 || dstMap["b"] != 20 || dstMap["c"] != 30 {
fmt.Fprintf(os.Stderr, "FAIL: assertion 4 expected a=1, b=20, c=30; got %+v\n", dstMap)
os.Exit(1)
}
fmt.Println("All contract assertions passed successfully.")
}
오리진 시더
익명