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