Implemented the DocCMiddleware.Configuration type in the library target.

This commit is contained in:
2025-09-23 16:20:38 +02:00
parent 2f701ce95e
commit d87c828608
@@ -1,8 +1,52 @@
// ===----------------------------------------------------------------------===
//
// File.swift
// hummingbird-docc-middleware
// This source file is part of the Hummingbird DocC Middleware open source project
//
// Created by Javier Cicchelli on 23/09/2025.
// 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 Foundation
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
}
}
}