Files
element-x-ios/ElementX/Sources/Other/CancellableTask.swift
T
2026-07-20 11:16:11 +02:00

28 lines
620 B
Swift

//
// Copyright 2025 Element Creations Ltd.
// Copyright 2023-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
@propertyWrapper
struct CancellableTask<S: Sendable, F: Error> {
private var storedValue: Task<S, F>?
init(_ value: Task<S, F>? = nil) {
storedValue = value
}
var wrappedValue: Task<S, F>? {
get {
storedValue
} set {
storedValue?.cancel()
storedValue = newValue
}
}
}