diff options
Diffstat (limited to 'Map/Logic/Debouncer.swift')
| -rw-r--r-- | Map/Logic/Debouncer.swift | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/Map/Logic/Debouncer.swift b/Map/Logic/Debouncer.swift deleted file mode 100644 index 8d40e99..0000000 --- a/Map/Logic/Debouncer.swift +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (C) 2024 Rubén Beltrán del Río - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see https://map.tranquil.systems. -import Foundation - -class Debouncer { - - // MARK: - Properties - private let queue = DispatchQueue.global(qos: .utility) - private var workItem = DispatchWorkItem(block: {}) - private var interval: TimeInterval - - // MARK: - Initializer - init(seconds: TimeInterval) { - self.interval = seconds - } - - // MARK: - Debouncing function - func debounce(action: @escaping (() -> Void)) { - workItem.cancel() - workItem = DispatchWorkItem(block: { action() }) - queue.asyncAfter(deadline: .now() + interval, execute: workItem) - } -} |