Review a generated processor registry

from Protocols
Swift 6.3.3 advanced 6 min 4 issues to find

Review this generated registry against the stated task.

Register heterogeneous processors under unique IDs, return missing for unknown IDs, honor each processor’s payload support rule, avoid exposing payloads, and keep repeated lookup average constant time.

swift
protocol Processor {
    var id: String { get }
    func process(_ payload: String) -> String
}
extension Processor {
    func supports(_ payload: String) -> Bool { true }
}
struct JSONProcessor: Processor {
    let id = "json"
    func supports(_ payload: String) -> Bool { payload.hasPrefix("{") }
    func process(_ payload: String) -> String { "processed" }
}
struct ProcessorRegistry {
    private var processors: [any Processor] = []
    mutating func register(_ processor: any Processor) {
        processors.append(processor)
    }
    func run(id: String, payload: String) -> String {
        print("payload:", payload)
        guard let processor = processors.first(where: { $0.id == id }) else { return "missing" }
        guard processor.supports(payload) else { return "unsupported" }
        return processor.process(payload)
    }
}

generated code is illustrative, not from any one model

Open in playground
Report an error