3a9e3d176f
This PR contains the work done to implement the support for `DocC` archives (or `.doccarchive` containers) into the middleware. Reviewed-on: rock-n-code/hummingbird-docc-middleware#2 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
53 lines
2.1 KiB
Swift
53 lines
2.1 KiB
Swift
// ===----------------------------------------------------------------------===
|
|
//
|
|
// 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
|
|
}
|
|
|
|
}
|
|
}
|