// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. package components import ( "errors" "fmt" "github.com/log10-io/log10go/internal/utils" ) type ChatCompletionRequestMessageContentPartType string const ( ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartText ChatCompletionRequestMessageContentPartType = "ChatCompletionRequestMessageContentPartText" ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartImage ChatCompletionRequestMessageContentPartType = "ChatCompletionRequestMessageContentPartImage" ) type ChatCompletionRequestMessageContentPart struct { ChatCompletionRequestMessageContentPartText *ChatCompletionRequestMessageContentPartText ChatCompletionRequestMessageContentPartImage *ChatCompletionRequestMessageContentPartImage Type ChatCompletionRequestMessageContentPartType } func CreateChatCompletionRequestMessageContentPartChatCompletionRequestMessageContentPartText(chatCompletionRequestMessageContentPartText ChatCompletionRequestMessageContentPartText) ChatCompletionRequestMessageContentPart { typ := ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartText return ChatCompletionRequestMessageContentPart{ ChatCompletionRequestMessageContentPartText: &chatCompletionRequestMessageContentPartText, Type: typ, } } func CreateChatCompletionRequestMessageContentPartChatCompletionRequestMessageContentPartImage(chatCompletionRequestMessageContentPartImage ChatCompletionRequestMessageContentPartImage) ChatCompletionRequestMessageContentPart { typ := ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartImage return ChatCompletionRequestMessageContentPart{ ChatCompletionRequestMessageContentPartImage: &chatCompletionRequestMessageContentPartImage, Type: typ, } } func (u *ChatCompletionRequestMessageContentPart) UnmarshalJSON(data []byte) error { var chatCompletionRequestMessageContentPartText ChatCompletionRequestMessageContentPartText = ChatCompletionRequestMessageContentPartText{} if err := utils.UnmarshalJSON(data, &chatCompletionRequestMessageContentPartText, "", true, true); err == nil { u.ChatCompletionRequestMessageContentPartText = &chatCompletionRequestMessageContentPartText u.Type = ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartText return nil } var chatCompletionRequestMessageContentPartImage ChatCompletionRequestMessageContentPartImage = ChatCompletionRequestMessageContentPartImage{} if err := utils.UnmarshalJSON(data, &chatCompletionRequestMessageContentPartImage, "", true, true); err == nil { u.ChatCompletionRequestMessageContentPartImage = &chatCompletionRequestMessageContentPartImage u.Type = ChatCompletionRequestMessageContentPartTypeChatCompletionRequestMessageContentPartImage return nil } return fmt.Errorf("could not unmarshal `%s` into any supported union types for ChatCompletionRequestMessageContentPart", string(data)) } func (u ChatCompletionRequestMessageContentPart) MarshalJSON() ([]byte, error) { if u.ChatCompletionRequestMessageContentPartText != nil { return utils.MarshalJSON(u.ChatCompletionRequestMessageContentPartText, "", true) } if u.ChatCompletionRequestMessageContentPartImage != nil { return utils.MarshalJSON(u.ChatCompletionRequestMessageContentPartImage, "", true) } return nil, errors.New("could not marshal union type ChatCompletionRequestMessageContentPart: all fields are null") }