mirror of
https://github.com/HaishinKit/HaishinKit.swift.git
synced 2026-05-07 20:12:28 +00:00
41 lines
974 B
Swift
41 lines
974 B
Swift
import Foundation
|
|
|
|
@dynamicMemberLookup
|
|
struct RTPFormatParameter: Sendable {
|
|
static let empty = RTPFormatParameter()
|
|
|
|
private let data: [String: String]
|
|
|
|
subscript(dynamicMember key: String) -> Int? {
|
|
guard let value = data[key] else {
|
|
return nil
|
|
}
|
|
return Int(value)
|
|
}
|
|
|
|
subscript(dynamicMember key: String) -> Bool {
|
|
guard let value = data[key] else {
|
|
return false
|
|
}
|
|
return value == "1" || value == "true"
|
|
}
|
|
}
|
|
|
|
extension RTPFormatParameter {
|
|
init() {
|
|
self.data = [:]
|
|
}
|
|
|
|
init(_ value: String) {
|
|
var data: [String: String] = [:]
|
|
let pairs = value.split(separator: ";")
|
|
for pair in pairs {
|
|
let parts = pair.split(separator: "=", maxSplits: 1).map { $0.trimmingCharacters(in: .whitespaces) }
|
|
if parts.count == 2 {
|
|
data[parts[0]] = parts[1]
|
|
}
|
|
}
|
|
self.data = data
|
|
}
|
|
}
|