Skip to content

FSKit macOS xcode26.2 b1

Alex Soto edited this page Nov 5, 2025 · 1 revision

#FSKit.framework

diff -ruN /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSContainer.h /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSContainer.h
--- /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSContainer.h	2025-10-20 22:37:33
+++ /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSContainer.h	2025-10-25 02:02:06
@@ -45,7 +45,7 @@
 /// * The ``status`` is an error (optional in Swift, nullable in Objective-C) that provides further information about the state, such as why the container is blocked.
 ///
 /// Examples of statuses that require intervention include errors that indicate the container isn't ready (POSIX `EAGAIN` or `ENOTCONN`), the container needs authentication (`ENEEDAUTH`), or that authentication failed (`EAUTH`).
-/// The status can also be an informative error, such as the FSKit error ``FSError/Code/statusOperationInProgress``.
+/// The status can also be an informative error, such as the FSKit error ``FSErrorStatusOperationInProgress``, possibly with the variant information of ``FSKitErrorVariantCheckStatus`` or ``FSKitErrorVariantFormatStatus``.
 ///
 @interface FSContainerStatus : NSObject <NSCopying>
 
diff -ruN /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSItem.h /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSItem.h
--- /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSItem.h	2025-10-20 22:37:33
+++ /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSItem.h	2025-10-25 02:02:06
@@ -57,35 +57,20 @@
 /// An enumeration of item types, such as file, directory, or symbolic link.
 FSKIT_API_AVAILABILITY_V1
 typedef NS_ENUM(NSInteger, FSItemType) {
-    /// The item type of an unknown item.
     FSItemTypeUnknown = 0,
-    /// The item type of a regular file.
     FSItemTypeFile,
-    /// The item type of a directory.
     FSItemTypeDirectory,
-    /// The item type of a symbolic link.
     FSItemTypeSymlink,
-    /// The item type of a first-in/first-out named pipe.
     FSItemTypeFIFO NS_SWIFT_NAME(fifo),
-    /// The item type of a character device.
     FSItemTypeCharDevice,
-    /// The item type of a block device.
     FSItemTypeBlockDevice,
-    /// The item type of a socket.
     FSItemTypeSocket
 }NS_SWIFT_NAME(FSItem.ItemType);
 
-/// The unique identifier for an item.
-///
-/// Use this type when packing items for an enumeration in ``FSDirectoryEntryPacker/packEntry(name:itemType:itemID:nextCookie:attributes:)``.
-/// Either provide a unique identifier like an inode number, or one of the special enumeration cases this type defines, like ``FSItem/Identifier/rootDirectory``.
 FSKIT_API_AVAILABILITY_V1
 typedef NS_ENUM(UInt64, FSItemID) {
-    /// The identifier for an invalid item.
     FSItemIDInvalid = 0,
-    /// The identifier for an item that serves as the parent of the root directory.
     FSItemIDParentOfRoot = 1,
-    /// The item identifier for the root directory.
     FSItemIDRootDirectory = 2,
 } NS_SWIFT_NAME(FSItem.Identifier);
 
diff -ruN /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSResource.h /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSResource.h
--- /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSResource.h	2025-10-20 22:37:34
+++ /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSResource.h	2025-10-25 02:02:07
@@ -370,56 +370,33 @@
 
 @end
 
-/// A resource that represents an abstract URL.
+/// A resource representing an abstract URL
 ///
-/// An `FSGenericURLResource` is a completely abstract resource.
-/// The only reference to its contents is a single URL, the contents of which are arbitrary.
-/// This URL might represent a PCI locator string like `/pci@f0000000/usb@5`, or some sort of network address for a remote file system.
-/// FSKit leaves interpretation of the URL and its contents entirely up to your implementation.
-///
-/// Use the `Info.plist` key `FSSupportedSchemes` to provide an array of case-insensitive URL schemes that your implementation supports.
-/// The following example shows how a hypothetical `FSGenericURLResource` implementation declares support for the `rsh` and `ssh` URL schemes:
-/// ```
-/// <key>FSSupportedSchemes</key>
-/// <array>
-///     <string>rsh</string>
-///     <string>ssh</string>
-/// </array>
-/// ```
 FSKIT_API_AVAILABILITY_V2
 @interface FSGenericURLResource : FSResource
 
-/// The URL represented by the resource.
 @property (readonly, copy)              NSURL *    url;
 
-/// Creates a generic URL resource with the given URL.
-/// - Parameter url: A URL that provides the content of the file system. The format of this URL is completely arbitrary. It's up to your extension to access the contents represented by the URL and make them available as an ``FSVolume`` that FSKit can load.
 - (instancetype)initWithURL:(NSURL *)url;
 
 - (instancetype)init NS_UNAVAILABLE;
 
 @end
 
-/// A resource that represents a path in the system file space.
+/// A resource representing a path
 ///
-/// The URL passed to `FSPathURLResource` may be a security-scoped URL.
-/// If the URL is a security-scoped URL, FSKit transports it intact from a client application to your extension.
+/// Represents a file path (possibly security scoped URL).
+///
 FSKIT_API_AVAILABILITY_V2
 @interface FSPathURLResource : FSResource
 
-/// The URL represented by the resource.
 @property (readonly, copy)              NSURL *    url;
 
-/// Creates a path URL resource.
-/// - Parameters:
-///   - URL: A URL in the system file space that represents the contents of a file system. This parameter uses the `file:` scheme.
-///   - writable: A Boolean value that indicates whether the file system supports writing to the contents of the URL.
 - (instancetype)initWithURL:(NSURL *)URL
                    writable:(BOOL)writable;
 
 - (instancetype)init NS_UNAVAILABLE;
 
-/// A Boolean value that indicates whether the file system supports writing to the contents of the path URL.
 @property (readonly, getter=isWritable)
                                 BOOL            writable;
 
@@ -483,7 +460,7 @@
 
 /// The container identifier, as found during the probe operation.
 ///
-/// This value is non-`nil` unless the ``FSProbeResult/result`` is ``FSMatchResult/notRecognized``.
+/// This value is non-`nil` unless the ``FSProbeResult/result`` is ``FSMatchResult/notRecognized`.
 /// For formats that lack a durable UUID on which to base a container identifier --- which is only legal for a ``FSUnaryFileSystem`` --- this value may be a random UUID.
 @property (readonly, nullable)          FSContainerIdentifier  *containerID;
 
diff -ruN /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSTask.h /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSTask.h
--- /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSTask.h	2025-10-20 22:37:33
+++ /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSTask.h	2025-10-25 02:02:06
@@ -25,102 +25,48 @@
 /// - Parameter error: `nil` if the task completed successfully; otherwise, an error that caused the task to fail.
 - (void)didCompleteWithError:(NSError * _Nullable)error FSKIT_API_AVAILABILITY_V1 NS_SWIFT_NAME(didComplete(error:));
 
-/// A handler called by FSKit upon canceling the task.
+/// The cancellation handler will be called when the given task has been canceled.
 ///
-/// FSKit calls the cancellation handler within an independent execution context.
+/// The cancellation handler will be called wtihin an independent execution context. The cancellationHandler property is cleared after a task is canceled or completed. This is to accelerate the cleanup of retained state.
 ///
-/// If the handler can't complete its work successfully, it can return an error from the block or closure.
-/// FSKit logs any returned error and then terminates all activity in the container.
-///
-/// The task object clears its `cancellationHandler` property after the task's cancellation or completion.
-/// This helps accelerate the cleanup of retained state.
-///
 /// The exact structuring of the completion handler depends on the structuring of the code imlementing the task.
 /// As a concrete example, consider a check operation with the following class:
 ///
-/// @TabNavigator {
-///   @Tab("Objective-C") {
-///     ```obj-c
-///     @‎‌interface YourFileSystem : NSObject
-///     @property (retain) dispatch_group_t work_group;
-///     @property (nonatomic,getter=interrupted) BOOL interrupted;
-///     @end
-///     ```
-///   }
-///   @Tab("Swift") {
-///     ```swift
-///     class YourFileSystem {
-///         let work_group: dispatch_group_t = DispatchGroup()
-///         var interrupted: Bool = false
-///         private lazy var leaveWorkGroupOnce = leaveWorkGroup()
-///     }
-///     ```
-///   }
-/// }
+/// ```obj-c
+/// @ interface yourFileSystemChecker : NSObject
+/// @property (retain) dispatch_group_t work_group;
+/// @property (nonatomic,getter=interrupted) BOOL interrupted;
+/// - (void)performCheck:(FSTask *)task
+///             progress:(NSProgress *)progress;
+/// @ end
+/// ```
 ///
-/// and a `startCheckWithTask` method with a helper method `performCheck` like the following:
-///
-/// @TabNavigator {
-///   @Tab("Objective-C") {
-///     ```obj-c
-///     - (void)performCheck:(nonnull FSTask *)task
-///                 progress:(nonnull NSProgress *)progress
-///                  context:(YourFileSystemCancelationContext *)context {
-///                  // See discussion for notes on implementing this method.
-///       }
-///
-///     - (NSProgress * _Nullable)startCheckWithTask:(nonnull FSTask *)task
-///                                          options:(nonnull FSTaskOptions *)options
-///                                            error:(NSError *__autoreleasing  _Nullable * _Nullable)error {
-///         dispatch_queue_t someQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
-///         NSProgress *progress = [[NSProgress alloc] init];
-///         YourFileSystemCancelationContext *checker= [[YourFileSystemCancelationContext alloc] init];
-///         dispatch_group_enter(checker.work_group);
-///         [task setCancellationHandler:^NSError * _Nullable{
-///             checker.interrupted = YES;
-///             dispatch_group_wait(checker.work_group, DISPATCH_TIME_FOREVER);
-///             return nil;
-///         }];
-///         dispatch_async(someQueue, ^{[self performCheck:task progress:progress context:checker];});
-///         return progress;
-///     }
-///     ```
-///   }
-///   @Tab("Swift") {
-///     ```swift
-///     func performCheck(task: FSTask, progress: Progress,
-///                       context: YourFileSystemCancelationContext) {
-///        // See discussion for notes on implementing this method.
-///     }
-///
-///     func startCheck(task: FSTask, options: FSTaskOptions) throws -> Progress {
-///         let someQueue = DispatchQueue.global()
-///         let progress = Progress()
-///         let checkContext = YourFileSystemCancelationContext()
-///         checkContext.work_group.enter()
-///         task.cancellationHandler = {
-///             checkContext.interrupted = true
-///             checkContext.work_group.wait()
-///             return nil
-///         }
-///         someQueue.async {
-///             self.performCheck(task: task, progress: progress, context:checkContext)
-///         }
-///         return progress
-///     }
-///     ```
-///   }
+/// and a startCheckWithTask:(FSTask *)task like:
+
+/// ```obj-c
+/// {
+/// NSProgress *progress = [[NSProgress alloc] init];
+/// yourFileSystemChecker *checker= [[yourFileSystemChecker alloc] init];
+/// checker.work_group = dispatch_group_create();
+/// dispatch_group_enter(checker.work_group);
+/// [task setCancellationHandler:^NSError * _Nullable{
+///     checker.terminate = TRUE;
+///     dispatch_group_wait(checker.work_group);
+///     return nil;
+/// }];
+/// dispatch_async(someQueue, ^{[self performCheck:task progress:progress];});
+/// return progress;
 /// }
+/// ```
 ///
-/// When canceled, the handler block in this example sets the checker's `interrupted` property, and then calls the <doc://com.apple.documentation/documentation/dispatch/dispatchgroup> method <doc://com.apple.documentation/documentation/dispatch/dispatchgroup/wait()> (Swift) or the function <doc://com.apple.documentation/documentation/dispatch/1452794-dispatch_group_wait> (Objective-C) on the checker's work group.
-/// Because neither of these operations can fail, the handler returns `nil` to indicate it didn't encounter an error.
+/// > Note: this example did not account for errors while delivered code must. finally, the `performCheck`
+/// code should perform the check operation. It should periodically update the progress object and check
+/// its `interrupted` variable. The check can either complete successfully, complete with an error, or
+/// be interrupted. It should then call `[task didCompleteWithError:...]` wtih the appropriate
+/// error value or nil. Finally it should `dispatch_group_leave(self.work_group);`
 ///
-/// For simplicity, this example doesn't account for errors, whereas production code must do so.
-/// Furthermore, when fully implemented, the `performCheck` method should perform a check operation.
-/// Specifically, it should periodically update the progress object and check its `interrupted` variable.
-/// The check can either complete successfully, complete with an error, or enter the interrupted state.
-/// It should then call ``FSTask/didComplete(error:)`` wtih the appropriate error value or `nil`.
-/// Finally it should call `context.work_group.leave()` (Swift) or `dispatch_group_leave(context.work_group)` (Objective-C) to remove itself from its dispatch group.
+/// - Returns: An error if the cancellation did not complete successfully. Any returned error will be logged, and FSKit will then terminate all activity in the container.
+///
 @property (nullable, copy) NSError * _Nullable(^NS_SWIFT_SENDABLE  cancellationHandler)(void) FSKIT_API_AVAILABILITY_V2;
 
 @end
diff -ruN /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolume.h /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolume.h
--- /Applications/Xcode_26.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolume.h	2025-10-20 22:37:33
+++ /Applications/Xcode_26.2.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolume.h	2025-10-25 02:02:06
@@ -87,7 +87,7 @@
 /// - Parameters:
 ///   - name: The item's name.
 ///   - itemType: The type of the item.
-///   - itemID: The item's identifier. Typically this is an inode number, or one of the constants defined by ``FSItem/Identifier`` like ``FSItem/Identifier/rootDirectory``.
+///   - itemID: The item's identifier.
 ///   - nextCookie: A value to indicate the next entry in the directory to enumerate. FSKit passes this value as the `cookie` parameter on the next call to ``FSVolume/Operations/enumerateDirectory(_:startingAt:verifier:attributes:packer:replyHandler:)``. Use whatever value is appropriate for your implementation; the value is opaque to FSKit.
 ///   - attributes: The item's attributes. Pass `nil` if the enumeration call didn't request attributes.
 /// - Returns: `true` (Swift) or `YES` (Objective-C) if packing was successful and enumeration can continue with the next directory entry. If the value is `false` (Swift) or `NO` (Objective-C), stop enumerating. This result can happen when the entry is too big for the remaining space in the buffer.
Clone this wiki locally