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  }