internal/apiquery/richparam.go (17 lines of code) (raw):

package apiquery import ( "github.com/anthropics/anthropic-sdk-go/packages/param" "reflect" ) func (e *encoder) newRichFieldTypeEncoder(t reflect.Type, underlyingValueIdx []int) encoderFunc { underlying := t.FieldByIndex(underlyingValueIdx) primitiveEncoder := e.newPrimitiveTypeEncoder(underlying.Type) return func(key string, value reflect.Value) []Pair { if fielder, ok := value.Interface().(param.Optional); ok && fielder.IsPresent() { return primitiveEncoder(key, value.FieldByIndex(underlyingValueIdx)) } else if ok && fielder.IsNull() { return []Pair{{key, "null"}} } return nil } }