Files
hummingbird-docc/Sources/HummingbirdDocC/Internal/Models/Resource.swift
T
javier 1382f33ae6 Added (first version of) sample Hummingbird app. (#4)
This PR contains the work done to:
* Implemented a basic `Hummingbird` application in which to integrate the `HummingbirdDocC` library.
* Added the *ArgumentParser* package dependency to the `Package.swift` file;
* Added a new *sample* target to the `Package.swift` file;
* Added library and documentation tasks to the `Makefile` file.

Reviewed-on: #4
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
2025-09-30 15:38:12 +00:00

51 lines
1.6 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
//
// ===----------------------------------------------------------------------===
/// A model that encapsulates the information related to a resource in a given `DocC` documentation archive.
struct Resource: Equatable {
// MARK: Properties
/// An archive name in which the resource belongs to.
let archiveName: String
/// A relative URI path to the resource.
let relativePath: String
// MARK: Initializers
/// Initializes this resource.
/// - Parameters:
/// - archiveName: An archive name in which the resource belongs to.
/// - relativePath: A relative URI path to the resource.
init(
archiveName: String,
relativePath: String
) {
self.archiveName = archiveName
self.relativePath = relativePath
}
// MARK: Computed
/// A relative URI path to a documentation archive the resource belongs to.
var archivePath: String {
.init(format: .Format.Path.archive, archiveName)
}
/// A reference name for the documentation archive the resource belongs to.
var archiveReference: String {
archiveName.lowercased()
}
}