34 lines
731 B
Swift
34 lines
731 B
Swift
//
|
|
// Loader.swift
|
|
// Clemens Playground
|
|
//
|
|
// Created by Maximilian Roider on 14.11.25.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
var games: [Game] = load("games.json")
|
|
|
|
func load<T: Decodable>(_ filename: String) -> T {
|
|
|
|
let data: Data
|
|
|
|
guard let file = Bundle.main.url(forResource: filename, withExtension: nil)
|
|
else {
|
|
fatalError("Couldn't find \(filename) in main bundle.")
|
|
}
|
|
|
|
do {
|
|
data = try Data(contentsOf: file)
|
|
} catch {
|
|
fatalError("Couldn't load \(filename) from main bundle:\n\(error)")
|
|
}
|
|
|
|
do {
|
|
let decoder = JSONDecoder()
|
|
return try decoder.decode(T.self, from: data)
|
|
} catch {
|
|
fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)")
|
|
}
|
|
}
|