FieldDict: adding some convenience functions

Changed files
+15
Sources
PterodactylKernel
Core Types
+15
Sources/PterodactylKernel/Core Types/FieldDict.swift
···
subscript(key: String) -> Value? {
elements.first { $0.0 == key }?.1
}
}
extension FieldDict: Sendable where Value: Sendable {}
extension FieldDict {
func map<U>(_ f: (Value) -> U) -> FieldDict<U> {
let dict = elements.map { (k, v) in
(k, f(v))
···
subscript(key: String) -> Value? {
elements.first { $0.0 == key }?.1
}
+
+
func prefix(until: String) -> Self {
+
var prefix: [(String, Value)] = []
+
for (key, value) in elements {
+
if key == until { break }
+
prefix.append((key, value))
+
}
+
return Self(prefix)
+
}
}
extension FieldDict: Sendable where Value: Sendable {}
extension FieldDict {
+
func mapWithKeys<U>(_ f: (String, Value) -> U) -> FieldDict<U> {
+
let dict = elements.map { (k, v) in
+
(k, f(k, v))
+
}
+
return FieldDict<U>(dict)
+
}
func map<U>(_ f: (Value) -> U) -> FieldDict<U> {
let dict = elements.map { (k, v) in
(k, f(v))