diff --git a/internal/paramutil/field.go b/internal/paramutil/field.go index 7bc23f5..48f4e60 100644 --- a/internal/paramutil/field.go +++ b/internal/paramutil/field.go @@ -1,6 +1,9 @@ package paramutil -import "github.com/openai/openai-go/packages/param" +import ( + "github.com/openai/openai-go/packages/param" + "github.com/openai/openai-go/packages/resp" +) func AddrIfPresent[T comparable](v param.Opt[T]) *T { if v.IsPresent() { @@ -8,3 +11,12 @@ func AddrIfPresent[T comparable](v param.Opt[T]) *T { } return nil } + +func ToOpt[T comparable](v T, meta resp.Field) param.Opt[T] { + if meta.IsPresent() { + return param.NewOpt(v) + } else if meta.IsExplicitNull() { + return param.NullOpt[T]() + } + return param.Opt[T]{} +}