native macOS codings agent orchestrator prowl.onev.cat
Something went wrong. Try again.
Swift
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152nonisolated struct SettingsFile: Codable, Equatable, Sendable { var global: GlobalSettings var repositories: [String: RepositorySettings] var repositoryRoots: [String] var pinnedWorktreeIDs: [Worktree.ID]
enum CodingKeys: String, CodingKey { case global case repositories case repositoryRoots case pinnedWorktreeIDs }
static let `default` = SettingsFile( global: .default, repositories: [:], repositoryRoots: [], pinnedWorktreeIDs: [] )
init( global: GlobalSettings = .default, repositories: [String: RepositorySettings] = [:], repositoryRoots: [String] = [], pinnedWorktreeIDs: [Worktree.ID] = [] ) { self.global = global self.repositories = repositories self.repositoryRoots = repositoryRoots self.pinnedWorktreeIDs = pinnedWorktreeIDs }
init(from decoder: any Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) global = try container.decodeIfPresent(GlobalSettings.self, forKey: .global) ?? .default repositories = try container.decodeIfPresent([String: RepositorySettings].self, forKey: .repositories) ?? [:] repositoryRoots = try container.decodeIfPresent([String].self, forKey: .repositoryRoots) ?? [] pinnedWorktreeIDs = try container.decodeIfPresent([Worktree.ID].self, forKey: .pinnedWorktreeIDs) ?? [] }
func encode(to encoder: any Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(global, forKey: .global) try container.encode(repositories, forKey: .repositories) try container.encode(repositoryRoots, forKey: .repositoryRoots) try container.encode(pinnedWorktreeIDs, forKey: .pinnedWorktreeIDs) }}