Files
GLEGram-iOS/third-party/XcodeGen/Sources/ProjectSpec/Config.swift
T
Leeksov 4647310322 GLEGram 12.5 — Initial public release
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.
2026-04-06 09:48:12 +03:00

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) }
}
}