Somewhat working file tray

This commit is contained in:
Hariharan Mudaliar 2025-12-08 13:29:25 +05:30
commit 30422c3d95
29 changed files with 4032 additions and 65 deletions

View file

@ -0,0 +1,28 @@
//
// AssociatedObject.swift
// DynamicIsland
//
// Helper for retaining objects via Objective-C associated storage.
//
import Foundation
import ObjectiveC
public struct AssociatedObject<Value: AnyObject> {
private let key: UnsafeRawPointer
private let policy: objc_AssociationPolicy
public init(_ policy: objc_AssociationPolicy = .OBJC_ASSOCIATION_RETAIN_NONATOMIC) {
self.key = UnsafeRawPointer(Unmanaged.passUnretained(UniqueKey()).toOpaque())
self.policy = policy
}
private final class UniqueKey {}
public subscript<Owner: AnyObject>(_ owner: Owner) -> Value? {
get { objc_getAssociatedObject(owner, key) as? Value }
nonmutating set { objc_setAssociatedObject(owner, key, newValue, policy) }
}
}
extension AssociatedObject: @unchecked Sendable where Value: Sendable {}