mirror of
https://github.com/GLEGram/GLEGram-iOS.git
synced 2026-04-23 11:26:54 +02:00
4647310322
Based on Swiftgram 12.5 (Telegram iOS 12.5). All GLEGram features ported and organized in GLEGram/ folder. Features: Ghost Mode, Saved Deleted Messages, Content Protection Bypass, Font Replacement, Fake Profile, Chat Export, Plugin System, and more. See CHANGELOG_12.5.md for full details.
42 lines
1.2 KiB
Swift
42 lines
1.2 KiB
Swift
import Foundation
|
|
import JSONUtilities
|
|
|
|
public struct Config: Hashable {
|
|
public var name: String
|
|
public var type: ConfigType?
|
|
|
|
public init(name: String, type: ConfigType? = nil) {
|
|
self.name = name
|
|
self.type = type
|
|
}
|
|
|
|
public static var defaultConfigs: [Config] = [Config(name: ConfigType.debug.name, type: .debug), Config(name: ConfigType.release.name, type: .release)]
|
|
}
|
|
|
|
public enum ConfigType: String, Hashable {
|
|
case debug
|
|
case release
|
|
|
|
public var name: String {
|
|
rawValue.prefix(1).uppercased() + rawValue.dropFirst()
|
|
}
|
|
}
|
|
|
|
extension Config {
|
|
|
|
public func matchesVariant(_ variant: String, for type: ConfigType) -> Bool {
|
|
guard self.type == type else { return false }
|
|
let nameWithoutType = self.name.lowercased()
|
|
.replacingOccurrences(of: type.name.lowercased(), with: "")
|
|
.trimmingCharacters(in: CharacterSet(charactersIn: " -_()"))
|
|
return nameWithoutType == variant.lowercased()
|
|
}
|
|
}
|
|
|
|
public extension Collection where Element == Config {
|
|
func first(including configVariant: String, for type: ConfigType) -> Config? {
|
|
first { $0.matchesVariant(configVariant, for: type) }
|
|
}
|
|
}
|
|
|