github.com/anthropics/anthropic-sdk-go@v1.70.1/internal/paramutil/field.go (about) 1 package paramutil 2 3 import ( 4 "github.com/anthropics/anthropic-sdk-go/packages/param" 5 "github.com/anthropics/anthropic-sdk-go/packages/respjson" 6 ) 7 8 func AddrIfPresent[T comparable](v param.Opt[T]) *T { 9 if v.Valid() { 10 return &v.Value 11 } 12 return nil 13 } 14 15 func 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 25 func 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 }