Files
swift-nio/Sources/_NIOFileSystem/DirectoryEntry.swift
George Barnett 66a85ba0e2 Add back _NIOFileSystem (#3367)
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`
2025-09-02 14:56:58 +01:00

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
}
}