// ===----------------------------------------------------------------------=== // // This source file is part of the Hummingbird DocC Middleware open source project // // Copyright (c) 2025 Röck+Cöde VoF. and the Hummingbird DocC Middleware project authors // Licensed under the EUPL 1.2 or later. // // See LICENSE for license information // See CONTRIBUTORS for the list of Hummingbird DocC Middleware project authors // // ===----------------------------------------------------------------------=== import class NIOPosix.NIOThreadPool extension DocCMiddleware { /// A type that contains all the parameters to configure the ``DocCMiddleware`` middleware. public struct Configuration: Sendable { // MARK: Properties /// A path to the physical location where the `DocC` documentation containers are stored. let folderRoot: String /// A URI path that prefixes the `DocC` documentation resources. let uriRoot: String /// A type that define a mechanism to use in case some blocking work needs to be performed for which no non-blocking API exists. let threadPool: NIOThreadPool // MARK: Initializers /// Initializes this configuration type. /// /// > important: It is assumed that both the `uriRoot` and the `folderRoot` parameters should not be empty, and that they should be prefixed /// with the `/` forward slash character. /// /// - Parameters: /// - uriRoot: A URI path that prefixes the `DocC` documentation resources. /// - folderRoot: A path to the physical location where the `DocC` documentation containers are stored. /// - threadPool: A type that define a mechanism to use in case some blocking work needs to be performed for which no non-blocking API exists. public init( uriRoot: String, folderRoot: String, threadPool: NIOThreadPool = .singleton ) { self.folderRoot = folderRoot self.uriRoot = uriRoot self.threadPool = threadPool } } }