Skip to content

Instantly share code, notes, and snippets.

@DougGregor
DougGregor / parallel_map.swift
Created December 24, 2020 01:10
Swift async/await implementation of a parallel map
extension Collection {
func parallelMap<T>(
parallelism requestedParallelism: Int? = nil,
_ transform: @escaping (Element) async throws -> T
) async throws -> [T] {
let defaultParallelism = 2
let parallelism = requestedParallelism ?? defaultParallelism
let n = self.count
if n == 0 {
import Foundation
// Foundation.CharacterSet should be called "UnicodeScalarSet"
// this operates on actual Characters
// TODO: Equatable doesn't work right: for instance defining a range vs defining a set with the same values will not be equal
indirect enum CharacterSet: Sendable, Hashable {
case closedRange(ClosedRange<Character>)
case set(Set<Character>)
import Combine
import SwiftUI
import WebKit
@Observable final class WebViewContent: NSObject {
let id = UUID()
var url: URL?
var title: String?