09ce3af11e
This commit adds some documentation to miscellaneous functions and classes. Signed-off-by: Daniel D’Aquino <daniel@daquino.me>
33 lines
1.0 KiB
Swift
33 lines
1.0 KiB
Swift
//
|
|
// RelayModels.swift
|
|
// damus
|
|
//
|
|
// Created by Bryan Montz on 6/10/23.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
/// Stores information, metadata, and logs about different relays. Generally used as a singleton.
|
|
///
|
|
/// # Discussion
|
|
///
|
|
/// This class is primarily used as a shared singleton in `DamusState`, to allow other parts of the app to access information, metadata, and logs about relays without having to fetch it themselves.
|
|
///
|
|
/// For example, it is used by `RelayView` to supplement information about the relay without having to fetch those again from the network, as well as to display logs collected throughout the use of the app.
|
|
final class RelayModelCache: ObservableObject {
|
|
private var models = [RelayURL: RelayModel]()
|
|
|
|
func model(withURL url: RelayURL) -> RelayModel? {
|
|
models[url]
|
|
}
|
|
|
|
func model(with_relay_id url_string: RelayURL) -> RelayModel? {
|
|
return model(withURL: url_string)
|
|
}
|
|
|
|
func insert(model: RelayModel) {
|
|
models[model.url] = model
|
|
objectWillChange.send()
|
|
}
|
|
}
|