@@ -14,54 +14,6 @@ struct Message: Codable, Sendable, Identifiable, Equatable {
1414 case assistant
1515 }
1616
17- enum ContentType : String , Codable {
18- case text
19- case image
20- }
21-
22- struct Content : Codable , Equatable {
23- let type : ContentType
24- let content : ContentData
25-
26- enum ContentData : Codable , Equatable {
27- case text( String )
28- case image( ImageContent )
29-
30- func encode( to encoder: Encoder ) throws {
31- var container = encoder. singleValueContainer ( )
32- switch self {
33- case . text( let text) :
34- try container. encode ( text)
35- case . image( let imageContent) :
36- try container. encode ( imageContent)
37- }
38- }
39-
40- init ( from decoder: Decoder ) throws {
41- let container = try decoder. singleValueContainer ( )
42- if let text = try ? container. decode ( String . self) {
43- self = . text( text)
44- } else if let imageContent = try ? container. decode ( ImageContent . self) {
45- self = . image( imageContent)
46- } else {
47- throw DecodingError . dataCorruptedError ( in: container, debugDescription: " Unable to decode ContentData " )
48- }
49- }
50- }
51- }
52-
53- struct ImageContent : Codable , Equatable {
54- let base64Data : String
55- let mimeType : MimeType
56-
57- enum MimeType : String , Codable {
58- case jpeg = " image/jpeg "
59- case png = " image/png "
60- case gif = " image/gif "
61- case webp = " image/webp "
62- }
63- }
64-
6517 enum MessageState : Codable , Sendable , Equatable {
6618 case complete
6719 case streaming( String )
@@ -105,16 +57,3 @@ struct Message: Codable, Sendable, Identifiable, Equatable {
10557 try container. encode ( content, forKey: . content)
10658 }
10759}
108-
109- // Convenience extensions for creating messages
110- extension Message . Content {
111- static func text( _ text: String ) -> Self {
112- Message . Content ( type: . text, content: . text( text) )
113- }
114-
115- static func image( base64: String , mimeType: Message . ImageContent . MimeType ) -> Self {
116- let imageContent = Message . ImageContent ( base64Data: base64, mimeType: mimeType)
117- return Message . Content ( type: . image, content: . image( imageContent) )
118- }
119- }
120-
0 commit comments