Skip to content

Instantly share code, notes, and snippets.

@Combidi
Combidi / decoratorExample.swift
Created July 22, 2022 08:38
Add logging using the decorator pattern
import UIKit
struct Item {
let name: String
let description: String
}
public protocol HTTPClient {
func get(from url: URL, completion: @escaping (Result<(Data, HTTPURLResponse), Error>) -> Void)
}
JVBERi0xLjMKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZwovT3V0bGluZXMgMiAwIFIKL1BhZ2VzIDMgMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8IC9UeXBlIC9PdXRsaW5lcyAvQ291bnQgMCA+PgplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZXMKL0tpZHMgWzYgMCBSCl0KL0NvdW50IDEKL1Jlc291cmNlcyA8PAovUHJvY1NldCA0IDAgUgovRm9udCA8PCAKL0YxIDggMCBSCi9GMiA5IDAgUgo+PgovWE9iamVjdCA8PCAKL0kxIDEwIDAgUgo+Pgo+PgovTWVkaWFCb3ggWzAuMDAwIDAuMDAwIDU5NS4yODAgODQxLjg5MF0KID4+CmVuZG9iago0IDAgb2JqClsvUERGIC9UZXh0IC9JbWFnZUMgXQplbmRvYmoKNSAwIG9iago8PAovQ3JlYXRvciAoRE9NUERGKQovQ3JlYXRpb25EYXRlIChEOjIwMTYwNzEyMTIyMTQxKzAyJzAwJykKL01vZERhdGUgKEQ6MjAxNjA3MTIxMjIxNDErMDInMDAnKQo+PgplbmRvYmoKNiAwIG9iago8PCAvVHlwZSAvUGFnZQovUGFyZW50IDMgMCBSCi9Db250ZW50cyA3IDAgUgo+PgplbmRvYmoKNyAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDc4OSA+PgpzdHJlYW0KeJydlt1u2kAQhe95ir1sVWXY/59LUJI2SdOkrdVcVL0wsCFEsLSOiao+TR+1Q4pdHO8Su0ICJObz7pwze9gBBUop2X8v5oNxRpQGrjUxhoLVgmQzMjzlhHGgJLsl5OurY//ol+vvKx/K199Idk5Osn1OaJCc1RwFteOuQvmYh7kv9imm5QvYaT4tN5sGxA1/ARr7h9Ivw2a1ai4nLH2BPM7LzSrWF5NA7U4PRizwHbDKi3JxH8h0vZp4HyMp