v0.2.0 — OrNull constructors
OrNull — zero value → null mapping
New constructors that treat zero values as "not set" → null. Eliminates boilerplate helpers in DB/API projects.
Added
- Generic
OrNull[T]—opt.OrNull(0)→ null,opt.OrNull(42)→ valid - Typed constructors —
StringOrNull,IntOrNull,Int32OrNull,Int16OrNull,FloatOrNull,BoolOrNull,ByteOrNull,TimeOrNull
Usage
// Before (boilerplate in every project)
func optStr(s string) opt.String {
return opt.NewString(s, s != "")
}
row.City = optStr(c.City())
// After (library API)
row.City = opt.StringOrNull(c.City())Constructor Guide
| Constructor | Semantics |
|---|---|
From(v) |
Always valid — zero IS a value |
OrNull(v) |
Zero → null — zero means "not set" |
FromPtr(p) |
nil → null |
New(v, valid) |
Manual control |
Install
go get github.com/coregx/opt@v0.2.0Full docs: README | pkg.go.dev