// // Copyright 2023 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only // import Foundation import LibSignalClient /** * Writes and reads ``BackupProto.Recipient`` frames to/from the backup proto. * * Different types of recipient objects are fanned out to the different concrete implementations of this protocol. */ internal protocol MessageBackupRecipientDestinationArchiver: MessageBackupRecipientArchiver { /// This method will be called to determine which archiver to use to restore a particular ``BackupProto.Recipient`` frame. /// These should be mutually exclusive among all concrete subclasses; typically just presence of a oneOf field. static func canRestore(_ recipient: BackupProto.Recipient) -> Bool }