Signal-iOS/SignalServiceKit/Messages/Attachments/V2/DataSource/TSResource/TSAttachmentDataSource.swift

39 lines
1.0 KiB
Swift

//
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
/// A DataSource for an attachment to be created locally, with
/// additional required metadata.
public struct TSAttachmentDataSource {
let mimeType: String
let caption: MessageBody?
let renderingFlag: AttachmentReference.RenderingFlag
let sourceFilename: String?
let dataSource: Source
public enum Source {
// If shouldCopy=true, the data source will be copied instead of moved.
case dataSource(DataSource, shouldCopy: Bool)
case data(Data)
case existingAttachment(uniqueId: String)
}
public init(
mimeType: String,
caption: MessageBody?,
renderingFlag: AttachmentReference.RenderingFlag,
sourceFilename: String?,
dataSource: Source
) {
self.mimeType = mimeType
self.caption = caption
self.renderingFlag = renderingFlag
self.sourceFilename = sourceFilename
self.dataSource = dataSource
}
}