// swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.3.1 effective-5.10 (swiftlang-6.3.1.1.2 clang-2100.0.123.102) // swift-module-flags: -target x86_64-apple-macos14.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -O -package-description-version 999.0 -enable-experimental-feature MemberImportVisibility -enable-experimental-feature DebugDescriptionMacro -user-module-version 24777 -module-name PackagePlugin -package-name swiftpm // swift-module-flags-ignorable: -formal-cxx-interoperability-mode=off -interface-compiler-version 6.3.1 import Foundation import Swift import _Concurrency import _StringProcessing import _SwiftConcurrencyShims public struct ArgumentExtractor { public init(_ arguments: [Swift.String]) public mutating func extractOption(named name: Swift.String) -> [Swift.String] public mutating func extractFlag(named name: Swift.String) -> Swift.Int public var unextractedOptionsOrFlags: [Swift.String] { get } public var remainingArguments: [Swift.String] { get } } public enum Command { @available(_PackageDescription 6.0) case buildCommand(displayName: Swift.String?, executable: Foundation.URL, arguments: [Swift.String], environment: [Swift.String : Swift.String] = [:], inputFiles: [Foundation.URL] = [], outputFiles: [Foundation.URL] = []) @available(_PackageDescription 6.0) case prebuildCommand(displayName: Swift.String?, executable: Foundation.URL, arguments: [Swift.String], environment: [Swift.String : Swift.String] = [:], outputFilesDirectory: Foundation.URL) } extension PackagePlugin.Command { @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public static func buildCommand(displayName: Swift.String?, executable: PackagePlugin.Path, arguments: [any Swift.CustomStringConvertible], environment: [Swift.String : any Swift.CustomStringConvertible] = [:], inputFiles: [PackagePlugin.Path] = [], outputFiles: [PackagePlugin.Path] = []) -> PackagePlugin.Command @available(*, unavailable, message: "specifying the initial working directory for a command is not supported") public static func buildCommand(displayName: Swift.String?, executable: PackagePlugin.Path, arguments: [any Swift.CustomStringConvertible], environment: [Swift.String : any Swift.CustomStringConvertible] = [:], workingDirectory: PackagePlugin.Path? = .none, inputFiles: [PackagePlugin.Path] = [], outputFiles: [PackagePlugin.Path] = []) -> PackagePlugin.Command @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public static func prebuildCommand(displayName: Swift.String?, executable: PackagePlugin.Path, arguments: [any Swift.CustomStringConvertible], environment: [Swift.String : any Swift.CustomStringConvertible] = [:], outputFilesDirectory: PackagePlugin.Path) -> PackagePlugin.Command @available(*, unavailable, message: "specifying the initial working directory for a command is not supported") public static func prebuildCommand(displayName: Swift.String?, executable: PackagePlugin.Path, arguments: [any Swift.CustomStringConvertible], environment: [Swift.String : any Swift.CustomStringConvertible] = [:], workingDirectory: PackagePlugin.Path? = .none, outputFilesDirectory: PackagePlugin.Path) -> PackagePlugin.Command } public struct PluginContext { public let package: PackagePlugin.Package @available(_PackageDescription, deprecated: 6.0, renamed: "pluginWorkDirectoryURL") public let pluginWorkDirectory: PackagePlugin.Path @available(_PackageDescription 6.0) public let pluginWorkDirectoryURL: Foundation.URL public func tool(named name: Swift.String) throws -> PackagePlugin.PluginContext.Tool public struct Tool { public let name: Swift.String @available(_PackageDescription, deprecated: 6.0, renamed: "url") public var path: PackagePlugin.Path { get } @available(_PackageDescription 6.0) public let url: Foundation.URL } } public struct Diagnostics { public enum Severity : Swift.String, Swift.Encodable { case error, warning, remark public init?(rawValue: Swift.String) public typealias RawValue = Swift.String public var rawValue: Swift.String { get } } public static func emit(_ severity: PackagePlugin.Diagnostics.Severity, _ description: Swift.String, file: Swift.String? = #file, line: Swift.Int? = #line) public static func error(_ message: Swift.String, file: Swift.String? = #file, line: Swift.Int? = #line) public static func warning(_ message: Swift.String, file: Swift.String? = #file, line: Swift.Int? = #line) public static func remark(_ message: Swift.String, file: Swift.String? = #file, line: Swift.Int? = #line) public static func progress(_ message: Swift.String) } public enum PluginContextError : Swift.Error { case toolNotFound(name: Swift.String) case toolNotSupportedOnTargetPlatform(name: Swift.String) case targetNotFound(name: Swift.String, package: PackagePlugin.Package) case productNotFound(name: Swift.String, package: PackagePlugin.Package) } extension PackagePlugin.PluginContextError : Swift.CustomStringConvertible { public var description: Swift.String { get } } public enum PluginDeserializationError : Swift.Error { case malformedInputJSON(_: Swift.String) case missingXcodeProjectPluginSupport case missingBuildToolPluginProtocolConformance(protocolName: Swift.String) case missingCommandPluginProtocolConformance(protocolName: Swift.String) case internalError(_: Swift.String) } extension PackagePlugin.PluginDeserializationError : Swift.CustomStringConvertible { public var description: Swift.String { get } } public struct PackageManager { public func build(_ subset: PackagePlugin.PackageManager.BuildSubset, parameters: PackagePlugin.PackageManager.BuildParameters) throws -> PackagePlugin.PackageManager.BuildResult public enum BuildSubset { case all(includingTests: Swift.Bool) case product(Swift.String) case target(Swift.String) } public struct BuildParameters { public var configuration: PackagePlugin.PackageManager.BuildConfiguration public var logging: PackagePlugin.PackageManager.BuildLogVerbosity public var echoLogs: Swift.Bool public var otherCFlags: [Swift.String] public var otherCxxFlags: [Swift.String] public var otherSwiftcFlags: [Swift.String] public var otherLinkerFlags: [Swift.String] public init(configuration: PackagePlugin.PackageManager.BuildConfiguration = .debug, logging: PackagePlugin.PackageManager.BuildLogVerbosity = .concise, echoLogs: Swift.Bool = false) } public enum BuildConfiguration : Swift.String { case debug, release, inherit public init?(rawValue: Swift.String) public typealias RawValue = Swift.String public var rawValue: Swift.String { get } } public enum BuildLogVerbosity : Swift.String { case concise, verbose, debug public init?(rawValue: Swift.String) public typealias RawValue = Swift.String public var rawValue: Swift.String { get } } public struct BuildResult { public var succeeded: Swift.Bool public var logText: Swift.String public var builtArtifacts: [PackagePlugin.PackageManager.BuildResult.BuiltArtifact] public struct BuiltArtifact { @available(_PackageDescription, deprecated: 6.0, renamed: "url") public var path: PackagePlugin.Path { get } @available(_PackageDescription 6.0) public var url: Foundation.URL public var kind: PackagePlugin.PackageManager.BuildResult.BuiltArtifact.Kind public enum Kind : Swift.String { case executable, dynamicLibrary, staticLibrary public init?(rawValue: Swift.String) public typealias RawValue = Swift.String public var rawValue: Swift.String { get } } } } public func test(_ subset: PackagePlugin.PackageManager.TestSubset, parameters: PackagePlugin.PackageManager.TestParameters) throws -> PackagePlugin.PackageManager.TestResult public enum TestSubset { case all case filtered([Swift.String]) } public struct TestParameters { public var enableCodeCoverage: Swift.Bool public init(enableCodeCoverage: Swift.Bool = false) } public struct TestResult { public var succeeded: Swift.Bool public var testTargets: [PackagePlugin.PackageManager.TestResult.TestTarget] @available(_PackageDescription, deprecated: 6.0, renamed: "codeCoverageDataFileURL") public var codeCoverageDataFile: PackagePlugin.Path? { get } @available(_PackageDescription 6.0) public var codeCoverageDataFileURL: Foundation.URL? public struct TestTarget { public var name: Swift.String public var testCases: [PackagePlugin.PackageManager.TestResult.TestTarget.TestCase] public struct TestCase { public var name: Swift.String public var tests: [PackagePlugin.PackageManager.TestResult.TestTarget.TestCase.Test] public struct Test { public var name: Swift.String public var result: PackagePlugin.PackageManager.TestResult.TestTarget.TestCase.Test.Result public var duration: Swift.Double public enum Result : Swift.String { case succeeded, skipped, failed public init?(rawValue: Swift.String) public typealias RawValue = Swift.String public var rawValue: Swift.String { get } } } } } } public func getSymbolGraph(for target: any PackagePlugin.Target, options: PackagePlugin.PackageManager.SymbolGraphOptions) throws -> PackagePlugin.PackageManager.SymbolGraphResult public struct SymbolGraphOptions { public var minimumAccessLevel: PackagePlugin.PackageManager.SymbolGraphOptions.AccessLevel public enum AccessLevel : Swift.String, Swift.CaseIterable { case `private`, `fileprivate`, `internal`, package, `public`, open public init?(rawValue: Swift.String) public typealias AllCases = [PackagePlugin.PackageManager.SymbolGraphOptions.AccessLevel] public typealias RawValue = Swift.String nonisolated public static var allCases: [PackagePlugin.PackageManager.SymbolGraphOptions.AccessLevel] { get } public var rawValue: Swift.String { get } } public var includeInheritedDocs: Swift.Bool public var includeSynthesized: Swift.Bool public var includeSPI: Swift.Bool public var emitExtensionBlocks: Swift.Bool public init(minimumAccessLevel: PackagePlugin.PackageManager.SymbolGraphOptions.AccessLevel = .public, includeInheritedDocs: Swift.Bool = true, includeSynthesized: Swift.Bool = false, includeSPI: Swift.Bool = false, emitExtensionBlocks: Swift.Bool = false) } public struct SymbolGraphResult { @available(_PackageDescription, deprecated: 6.0, renamed: "directoryURL") public var directoryPath: PackagePlugin.Path { get } @available(_PackageDescription 6.0) public var directoryURL: Foundation.URL } } public enum PackageManagerProxyError : Swift.Error { case unimplemented(_: Swift.String) case unspecified(_: Swift.String) } public struct Package { public let id: PackagePlugin.Package.ID public typealias ID = Swift.String public let displayName: Swift.String @available(_PackageDescription, deprecated: 6.0, renamed: "directoryURL") public let directory: PackagePlugin.Path @available(_PackageDescription 6.0) public let directoryURL: Foundation.URL public let origin: PackagePlugin.PackageOrigin public let toolsVersion: PackagePlugin.ToolsVersion public let dependencies: [PackagePlugin.PackageDependency] public let products: [any PackagePlugin.Product] public let targets: [any PackagePlugin.Target] } public enum PackageOrigin { case root case local(path: Swift.String) case repository(url: Swift.String, displayVersion: Swift.String, scmRevision: Swift.String) case registry(identity: Swift.String, displayVersion: Swift.String) } public struct ToolsVersion { public let major: Swift.Int public let minor: Swift.Int public let patch: Swift.Int } public struct PackageDependency { public let package: PackagePlugin.Package } public protocol Product { var id: Self.ID { get } typealias ID = Swift.String var name: Swift.String { get } var targets: [any PackagePlugin.Target] { get } } public struct ExecutableProduct : PackagePlugin.Product { public let id: PackagePlugin.ExecutableProduct.ID public let name: Swift.String public let targets: [any PackagePlugin.Target] public let mainTarget: any PackagePlugin.Target } public struct LibraryProduct : PackagePlugin.Product { public let id: PackagePlugin.LibraryProduct.ID public let name: Swift.String public let targets: [any PackagePlugin.Target] public let kind: PackagePlugin.LibraryProduct.Kind public enum Kind { case `static` case dynamic case automatic public static func == (a: PackagePlugin.LibraryProduct.Kind, b: PackagePlugin.LibraryProduct.Kind) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } } public protocol Target { var id: Self.ID { get } typealias ID = Swift.String var name: Swift.String { get } @available(_PackageDescription, deprecated: 6.1, renamed: "directoryURL") var directory: PackagePlugin.Path { get } @available(_PackageDescription 6.1) var directoryURL: Foundation.URL { get } var dependencies: [PackagePlugin.TargetDependency] { get } } public enum TargetDependency { case target(any PackagePlugin.Target) case product(any PackagePlugin.Product) } public protocol SourceModuleTarget : PackagePlugin.Target { var moduleName: Swift.String { get } var kind: PackagePlugin.ModuleKind { get } var sourceFiles: PackagePlugin.FileList { get } var linkedLibraries: [Swift.String] { get } var linkedFrameworks: [Swift.String] { get } @available(_PackageDescription 6.0) var pluginGeneratedSources: [Foundation.URL] { get } @available(_PackageDescription 6.0) var pluginGeneratedResources: [Foundation.URL] { get } } public enum ModuleKind { case generic case executable @available(_PackageDescription 5.8) case snippet case test @available(_PackageDescription 5.9) case macro public static func == (a: PackagePlugin.ModuleKind, b: PackagePlugin.ModuleKind) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } public struct SwiftSourceModuleTarget : PackagePlugin.SourceModuleTarget { public let id: PackagePlugin.SwiftSourceModuleTarget.ID public let name: Swift.String public let kind: PackagePlugin.ModuleKind @available(_PackageDescription, deprecated: 6.0, renamed: "directoryURL") public let directory: PackagePlugin.Path @available(_PackageDescription 6.0) public let directoryURL: Foundation.URL public let dependencies: [PackagePlugin.TargetDependency] public let moduleName: Swift.String public let sourceFiles: PackagePlugin.FileList public let compilationConditions: [Swift.String] public let linkedLibraries: [Swift.String] public let linkedFrameworks: [Swift.String] @available(_PackageDescription 6.0) public let pluginGeneratedSources: [Foundation.URL] @available(_PackageDescription 6.0) public let pluginGeneratedResources: [Foundation.URL] } public struct ClangSourceModuleTarget : PackagePlugin.SourceModuleTarget { public let id: PackagePlugin.ClangSourceModuleTarget.ID public let name: Swift.String public let kind: PackagePlugin.ModuleKind @available(_PackageDescription, deprecated: 6.0, renamed: "directoryURL") public let directory: PackagePlugin.Path @available(_PackageDescription 6.0) public let directoryURL: Foundation.URL public let dependencies: [PackagePlugin.TargetDependency] public let moduleName: Swift.String public let sourceFiles: PackagePlugin.FileList public let preprocessorDefinitions: [Swift.String] public let headerSearchPaths: [Swift.String] @available(_PackageDescription, deprecated: 6.0, renamed: "publicHeadersDirectoryURL") public let publicHeadersDirectory: PackagePlugin.Path? @available(_PackageDescription 6.0) public let publicHeadersDirectoryURL: Foundation.URL? public let linkedLibraries: [Swift.String] public let linkedFrameworks: [Swift.String] @available(_PackageDescription 6.0) public let pluginGeneratedSources: [Foundation.URL] @available(_PackageDescription 6.0) public let pluginGeneratedResources: [Foundation.URL] } public struct BinaryArtifactTarget : PackagePlugin.Target { public let id: PackagePlugin.BinaryArtifactTarget.ID public let name: Swift.String @available(_PackageDescription, deprecated: 6.0, renamed: "directoryURL") public let directory: PackagePlugin.Path @available(_PackageDescription 6.0) public let directoryURL: Foundation.URL public let dependencies: [PackagePlugin.TargetDependency] public let kind: PackagePlugin.BinaryArtifactTarget.Kind public let origin: PackagePlugin.BinaryArtifactTarget.Origin @available(_PackageDescription, deprecated: 6.0, renamed: "artifactURL") public let artifact: PackagePlugin.Path @available(_PackageDescription 6.0) public let artifactURL: Foundation.URL public enum Kind { case xcframework case artifactsArchive public static func == (a: PackagePlugin.BinaryArtifactTarget.Kind, b: PackagePlugin.BinaryArtifactTarget.Kind) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } public enum Origin : Swift.Equatable { case local case remote(url: Swift.String) public static func == (a: PackagePlugin.BinaryArtifactTarget.Origin, b: PackagePlugin.BinaryArtifactTarget.Origin) -> Swift.Bool } } public struct SystemLibraryTarget : PackagePlugin.Target { public let id: PackagePlugin.SystemLibraryTarget.ID public var name: Swift.String @available(_PackageDescription, deprecated: 6.0, renamed: "directoryURL") public var directory: PackagePlugin.Path @available(_PackageDescription 6.0) public var directoryURL: Foundation.URL public var dependencies: [PackagePlugin.TargetDependency] public let pkgConfig: Swift.String? public let compilerFlags: [Swift.String] public let linkerFlags: [Swift.String] } public struct FileList { } extension PackagePlugin.FileList : Swift.Sequence { public struct Iterator : Swift.IteratorProtocol { public mutating func next() -> PackagePlugin.File? public typealias Element = PackagePlugin.File } public func makeIterator() -> PackagePlugin.FileList.Iterator public typealias Element = PackagePlugin.File } @available(_PackageDescription 5.10) extension PackagePlugin.FileList : Swift.RandomAccessCollection { public var startIndex: Swift.Int { get } public var endIndex: Swift.Int { get } public subscript(i: Swift.Int) -> PackagePlugin.File { get } @available(_PackageDescription 5.10) public typealias Index = Swift.Int @available(_PackageDescription 5.10) public typealias Indices = Swift.Range @available(_PackageDescription 5.10) public typealias SubSequence = Swift.Slice } public struct File { @available(_PackageDescription, deprecated: 6.0, renamed: "url") public var path: PackagePlugin.Path { get } @available(_PackageDescription 6.0) public let url: Foundation.URL public let type: PackagePlugin.FileType } public enum FileType { case source case header case resource case unknown public static func == (a: PackagePlugin.FileType, b: PackagePlugin.FileType) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } public struct PathList { } extension PackagePlugin.PathList : Swift.Sequence { public struct Iterator : Swift.IteratorProtocol { public mutating func next() -> PackagePlugin.Path? public typealias Element = PackagePlugin.Path } public func makeIterator() -> PackagePlugin.PathList.Iterator public typealias Element = PackagePlugin.Path } public struct Path : Swift.Hashable { @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public init(_ string: Swift.String) @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public var string: Swift.String { get } @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public var lastComponent: Swift.String { get } @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public var stem: Swift.String { get } @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public var `extension`: Swift.String? { get } @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public func removingLastComponent() -> PackagePlugin.Path @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public func appending(subpath: Swift.String) -> PackagePlugin.Path @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public func appending(_ components: [Swift.String]) -> PackagePlugin.Path @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public func appending(_ components: Swift.String...) -> PackagePlugin.Path public static func == (a: PackagePlugin.Path, b: PackagePlugin.Path) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } extension PackagePlugin.Path : Swift.CustomStringConvertible { @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public var description: Swift.String { get } } extension PackagePlugin.Path : Swift.Codable { @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public func encode(to encoder: any Swift.Encoder) throws @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public init(from decoder: any Swift.Decoder) throws } extension Swift.DefaultStringInterpolation { @available(_PackageDescription, deprecated: 6.0, message: "Use `URL` type instead of `Path`.") public mutating func appendInterpolation(_ path: PackagePlugin.Path) } extension PackagePlugin.Plugin { public static func main() async throws } public protocol Plugin { init() } public protocol BuildToolPlugin : PackagePlugin.Plugin { func createBuildCommands(context: PackagePlugin.PluginContext, target: any PackagePlugin.Target) async throws -> [PackagePlugin.Command] } public protocol CommandPlugin : PackagePlugin.Plugin { func performCommand(context: PackagePlugin.PluginContext, arguments: [Swift.String]) async throws var packageManager: PackagePlugin.PackageManager { get } } extension PackagePlugin.CommandPlugin { public var packageManager: PackagePlugin.PackageManager { get } } extension PackagePlugin.Package { public func targets(named targetNames: [Swift.String]) throws -> [any PackagePlugin.Target] public func products(named productNames: [Swift.String]) throws -> [any PackagePlugin.Product] @available(_PackageDescription 5.9) public var sourceModules: [any PackagePlugin.SourceModuleTarget] { get } } extension PackagePlugin.Product { @available(_PackageDescription 5.9) public var sourceModules: [any PackagePlugin.SourceModuleTarget] { get } } extension PackagePlugin.Target { public var recursiveTargetDependencies: [any PackagePlugin.Target] { get } @available(_PackageDescription 5.9) public var sourceModule: (any PackagePlugin.SourceModuleTarget)? { get } } extension PackagePlugin.Package { public func products(ofType: T.Type) -> [T] where T : PackagePlugin.Product public func targets(ofType: T.Type) -> [T] where T : PackagePlugin.Target } extension PackagePlugin.SourceModuleTarget { public func sourceFiles(withSuffix suffix: Swift.String) -> PackagePlugin.FileList } extension PackagePlugin.Diagnostics.Severity : Swift.Equatable {} extension PackagePlugin.Diagnostics.Severity : Swift.Hashable {} extension PackagePlugin.Diagnostics.Severity : Swift.RawRepresentable {} extension PackagePlugin.PackageManager.BuildConfiguration : Swift.Equatable {} extension PackagePlugin.PackageManager.BuildConfiguration : Swift.Hashable {} extension PackagePlugin.PackageManager.BuildConfiguration : Swift.RawRepresentable {} extension PackagePlugin.PackageManager.BuildLogVerbosity : Swift.Equatable {} extension PackagePlugin.PackageManager.BuildLogVerbosity : Swift.Hashable {} extension PackagePlugin.PackageManager.BuildLogVerbosity : Swift.RawRepresentable {} extension PackagePlugin.PackageManager.BuildResult.BuiltArtifact.Kind : Swift.Equatable {} extension PackagePlugin.PackageManager.BuildResult.BuiltArtifact.Kind : Swift.Hashable {} extension PackagePlugin.PackageManager.BuildResult.BuiltArtifact.Kind : Swift.RawRepresentable {} extension PackagePlugin.PackageManager.TestResult.TestTarget.TestCase.Test.Result : Swift.Equatable {} extension PackagePlugin.PackageManager.TestResult.TestTarget.TestCase.Test.Result : Swift.Hashable {} extension PackagePlugin.PackageManager.TestResult.TestTarget.TestCase.Test.Result : Swift.RawRepresentable {} extension PackagePlugin.PackageManager.SymbolGraphOptions.AccessLevel : Swift.Equatable {} extension PackagePlugin.PackageManager.SymbolGraphOptions.AccessLevel : Swift.Hashable {} extension PackagePlugin.PackageManager.SymbolGraphOptions.AccessLevel : Swift.RawRepresentable {} extension PackagePlugin.LibraryProduct.Kind : Swift.Equatable {} extension PackagePlugin.LibraryProduct.Kind : Swift.Hashable {} extension PackagePlugin.ModuleKind : Swift.Equatable {} extension PackagePlugin.ModuleKind : Swift.Hashable {} extension PackagePlugin.BinaryArtifactTarget.Kind : Swift.Equatable {} extension PackagePlugin.BinaryArtifactTarget.Kind : Swift.Hashable {} extension PackagePlugin.FileType : Swift.Equatable {} extension PackagePlugin.FileType : Swift.Hashable {}