summaryrefslogtreecommitdiff
path: root/Hutch/Models/RepositorySummary.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Hutch/Models/RepositorySummary.swift')
-rw-r--r--Hutch/Models/RepositorySummary.swift63
1 files changed, 34 insertions, 29 deletions
diff --git a/Hutch/Models/RepositorySummary.swift b/Hutch/Models/RepositorySummary.swift
index 3821aa2..b41589b 100644
--- a/Hutch/Models/RepositorySummary.swift
+++ b/Hutch/Models/RepositorySummary.swift
@@ -20,26 +20,29 @@ struct RepositorySummary: Codable, Sendable, Identifiable, Hashable {
case head = "HEAD"
}
- init(
- id: Int,
- rid: String,
- service: SRHTService,
- name: String,
- description: String?,
- visibility: Visibility,
- updated: Date,
- owner: Entity,
- head: Reference?
- ) {
- self.id = id
- self.rid = rid
- self.service = service
- self.name = name
- self.description = description
- self.visibility = visibility
- self.updated = updated
- self.owner = owner
- self.head = head
+ /// Grouped initializer fields (single parameter keeps APIs explicit without exceeding parameter-count limits).
+ struct Fields: Sendable, Hashable {
+ let id: Int
+ let rid: String
+ let service: SRHTService
+ let name: String
+ let description: String?
+ let visibility: Visibility
+ let updated: Date
+ let owner: Entity
+ let head: Reference?
+ }
+
+ init(fields: Fields) {
+ id = fields.id
+ rid = fields.rid
+ service = fields.service
+ name = fields.name
+ description = fields.description
+ visibility = fields.visibility
+ updated = fields.updated
+ owner = fields.owner
+ head = fields.head
}
init(from decoder: any Decoder) throws {
@@ -69,15 +72,17 @@ extension RepositorySummary {
head: Reference? = nil
) -> RepositorySummary {
RepositorySummary(
- id: id,
- rid: rid,
- service: service,
- name: name ?? self.name,
- description: description ?? self.description,
- visibility: visibility ?? self.visibility,
- updated: updated ?? self.updated,
- owner: owner,
- head: head ?? self.head
+ fields: .init(
+ id: id,
+ rid: rid,
+ service: service,
+ name: name ?? self.name,
+ description: description ?? self.description,
+ visibility: visibility ?? self.visibility,
+ updated: updated ?? self.updated,
+ owner: owner,
+ head: head ?? self.head
+ )
)
}