Files
element-x-ios/ElementX/Sources/Other/HTMLParsing/AttributedStringBuilderProtocol.swift
T
2026-09-03 11:47:12 +03:00

32 lines
987 B
Swift

//
// Copyright 2025 Element Creations Ltd.
// Copyright 2022-2025 New Vector Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
// Please see LICENSE files in the repository root for full details.
//
import Foundation
nonisolated struct AttributedStringBuilderComponent: Hashable, Identifiable {
enum ComponentType: Hashable {
case plainText
case blockquote
case codeBlock
case details(summary: String)
}
/// Identifier for the `Identifiable` conformance, allows edits to the `FormattedBodyText` to animate seamlessly
let id: String
let attributedString: AttributedString
let type: ComponentType
}
nonisolated protocol AttributedStringBuilderProtocol: Sendable {
func fromPlain(_ string: String?) -> AttributedString?
func fromHTML(_ htmlString: String?) -> AttributedString?
func addMatrixEntityPermalinkAttributesTo(_ attributedString: NSMutableAttributedString)
}