field.go

 1package paramutil
 2
 3import (
 4	"github.com/anthropics/anthropic-sdk-go/packages/param"
 5	"github.com/anthropics/anthropic-sdk-go/packages/respjson"
 6)
 7
 8func AddrIfPresent[T comparable](v param.Opt[T]) *T {
 9	if v.Valid() {
10		return &v.Value
11	}
12	return nil
13}
14
15func ToOpt[T comparable](v T, meta respjson.Field) param.Opt[T] {
16	if meta.Valid() {
17		return param.NewOpt(v)
18	} else if meta.Raw() == respjson.Null {
19		return param.Null[T]()
20	}
21	return param.Opt[T]{}
22}
23
24// Checks if the value is not omitted and not null
25func Valid(v param.ParamStruct) bool {
26	if ovr, ok := v.Overrides(); ok {
27		return ovr != nil
28	}
29	return !param.IsNull(v) && !param.IsOmitted(v)
30}