mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
45 lines
971 B
Swift
45 lines
971 B
Swift
import Foundation
|
|
|
|
/// A representation of the source from which a ``DivView`` can load content.
|
|
public struct DivViewSource {
|
|
/// Specifies the type of the source for the `DivView`.
|
|
public enum Kind {
|
|
case json([String: Any])
|
|
case data(Data)
|
|
case divData(DivData)
|
|
}
|
|
|
|
let id: DivViewId
|
|
let kind: Kind
|
|
|
|
/// Initializes a new ``DivViewSource``.
|
|
///
|
|
/// - Parameters:
|
|
/// - kind: The kind of data source, represented by the ``Kind`` enum.
|
|
/// - cardId: A unique identifier for the associated `DivKit` card.
|
|
public init(
|
|
kind: Kind,
|
|
cardId: DivCardID
|
|
) {
|
|
self.init(kind: kind, cardId: cardId, additionalId: nil)
|
|
}
|
|
|
|
init(
|
|
kind: Kind,
|
|
cardId: DivCardID,
|
|
additionalId: String?
|
|
) {
|
|
id = DivViewId(cardId: cardId, additionalId: additionalId)
|
|
self.kind = kind
|
|
}
|
|
}
|
|
|
|
struct DivViewId: Hashable {
|
|
let cardId: DivCardID
|
|
let additionalId: String?
|
|
|
|
var isTooltip: Bool {
|
|
additionalId != nil
|
|
}
|
|
}
|