mirror of
https://github.com/LukeHagar/log10go.git
synced 2025-12-06 04:20:12 +00:00
73 lines
3.4 KiB
Go
73 lines
3.4 KiB
Go
// 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")
|
|
}
|