mirror of
https://github.com/apple/swift-nio.git
synced 2026-05-20 20:30:36 +00:00
66a85ba0e2
Motivation: In #3363 we converted `_NIOFileSystem` to `NIOFileSystem` and removed the (unreleased) overloads for FilePath/NIOFilePath. This change adds back `_NIOFileSystem` such that it matches the API it had at 2.86.0. Modifications: - Add back `_NIOFileSystem` and `_NIOFileSystemFoundationCompat` such that their API is at 2.86.0 Result: - `NIOFileSystem` uses `NIOFilePath` - `_NIOFileSystem` uses `FilePath`
48 lines
1.5 KiB
Swift
48 lines
1.5 KiB
Swift
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This source file is part of the SwiftNIO open source project
|
|
//
|
|
// Copyright (c) 2025 Apple Inc. and the SwiftNIO project authors
|
|
// Licensed under Apache License v2.0
|
|
//
|
|
// See LICENSE.txt for license information
|
|
// See CONTRIBUTORS.txt for the list of SwiftNIO project authors
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
import SystemPackage
|
|
|
|
/// Information about an item within a directory.
|
|
public struct DirectoryEntry: Sendable, Hashable, Equatable {
|
|
/// The path of the directory entry.
|
|
///
|
|
/// - Precondition: The path must have at least one component.
|
|
public let path: FilePath
|
|
|
|
/// The name of the entry; the final component of the ``path``.
|
|
///
|
|
/// If `path` is "/Users/tim/path-to-4T.key" then `name` will be "path-to-4T.key".
|
|
public var name: FilePath.Component {
|
|
self.path.lastComponent!
|
|
}
|
|
|
|
/// The type of entry.
|
|
public var type: FileType
|
|
|
|
/// Creates a directory entry; returns `nil` if `path` has no components.
|
|
///
|
|
/// - Parameters:
|
|
/// - path: The path of the directory entry which must contain at least one component.
|
|
/// - type: The type of entry.
|
|
public init?(path: FilePath, type: FileType) {
|
|
if path.components.isEmpty {
|
|
return nil
|
|
}
|
|
|
|
self.path = path
|
|
self.type = type
|
|
}
|
|
}
|