mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
37 lines
816 B
Swift
37 lines
816 B
Swift
/*
|
|
Abstract:
|
|
Storage for model data.
|
|
*/
|
|
|
|
import Foundation
|
|
import Combine
|
|
|
|
final class ModelData: ObservableObject {
|
|
@Published var devices: [Device] = load("deviceData.json")
|
|
|
|
var nearby: [Device] {
|
|
devices
|
|
}
|
|
}
|
|
|
|
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)")
|
|
}
|
|
}
|