aboutsummaryrefslogtreecommitdiff
path: root/Map/Logic/Debouncer.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Map/Logic/Debouncer.swift')
-rw-r--r--Map/Logic/Debouncer.swift35
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)
- }
-}