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 }