github.com/anthropics/anthropic-sdk-go@v1.70.1/internal/apiform/richparam.go (about) 1 package apiform 2 3 import ( 4 "github.com/anthropics/anthropic-sdk-go/packages/param" 5 "mime/multipart" 6 "reflect" 7 ) 8 9 func (e *encoder) newRichFieldTypeEncoder(t reflect.Type) encoderFunc { 10 f, _ := t.FieldByName("Value") 11 enc := e.newPrimitiveTypeEncoder(f.Type) 12 return func(key string, value reflect.Value, writer *multipart.Writer) error { 13 if opt, ok := value.Interface().(param.Optional); ok && opt.Valid() { 14 return enc(key, value.FieldByIndex(f.Index), writer) 15 } else if ok && param.IsNull(opt) { 16 return writer.WriteField(key, "null") 17 } 18 return nil 19 } 20 }