github.com/anthropics/anthropic-sdk-go@v1.70.1/field.go (about)

     1  package anthropic
     2  
     3  import (
     4  	"github.com/anthropics/anthropic-sdk-go/packages/param"
     5  	"io"
     6  	"path"
     7  	"time"
     8  )
     9  
    10  func String(s string) param.Opt[string]     { return param.NewOpt(s) }
    11  func Int(i int64) param.Opt[int64]          { return param.NewOpt(i) }
    12  func Bool(b bool) param.Opt[bool]           { return param.NewOpt(b) }
    13  func Float(f float64) param.Opt[float64]    { return param.NewOpt(f) }
    14  func Time(t time.Time) param.Opt[time.Time] { return param.NewOpt(t) }
    15  
    16  func Opt[T comparable](v T) param.Opt[T] { return param.NewOpt(v) }
    17  func Ptr[T any](v T) *T                  { return &v }
    18  
    19  func IntPtr(v int64) *int64          { return &v }
    20  func BoolPtr(v bool) *bool           { return &v }
    21  func FloatPtr(v float64) *float64    { return &v }
    22  func StringPtr(v string) *string     { return &v }
    23  func TimePtr(v time.Time) *time.Time { return &v }
    24  
    25  func File(rdr io.Reader, filename string, contentType string) file {
    26  	return file{rdr, filename, contentType}
    27  }
    28  
    29  type file struct {
    30  	io.Reader
    31  	name        string
    32  	contentType string
    33  }
    34  
    35  func (f file) Filename() string {
    36  	if f.name != "" {
    37  		return f.name
    38  	} else if named, ok := f.Reader.(interface{ Name() string }); ok {
    39  		return path.Base(named.Name())
    40  	}
    41  	return ""
    42  }
    43  
    44  func (f file) ContentType() string {
    45  	return f.contentType
    46  }