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}