From 6b7c9d2455be319321d237083cbe2648246ee572 Mon Sep 17 00:00:00 2001 From: Empa <42304516+ItsEmpa@users.noreply.github.com> Date: Sat, 22 Jun 2024 09:00:20 +0200 Subject: Fix Fishing Bait Warning (#2135) --- src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt | 4 ++-- src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/utils') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt b/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt index e17389c52..018c858fa 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt @@ -4,10 +4,10 @@ import com.google.common.cache.CacheBuilder import java.util.concurrent.TimeUnit import kotlin.time.Duration -class TimeLimitedCache( +class TimeLimitedCache( expireAfterWrite: Duration, private val removalListener: (K?, V?) -> Unit = { _, _ -> }, -): Iterable> { +) : Iterable> { private val cache = CacheBuilder.newBuilder() .expireAfterWrite(expireAfterWrite.inWholeMilliseconds, TimeUnit.MILLISECONDS) diff --git a/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt b/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt index c0626fccb..4c4a35151 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt @@ -5,7 +5,7 @@ import kotlin.time.Duration class TimeLimitedSet( expireAfterWrite: Duration, private val removalListener: (T) -> Unit = {}, -) { +) : Iterable { private val cache = TimeLimitedCache(expireAfterWrite) { key, _ -> key?.let { removalListener(it) } } @@ -13,12 +13,16 @@ class TimeLimitedSet( cache[element] = Unit } + operator fun plusAssign(element: T) = add(element) + fun addIfAbsent(element: T) { if (!contains(element)) add(element) } fun remove(element: T) = cache.remove(element) + operator fun minusAssign(element: T) = remove(element) + operator fun contains(element: T): Boolean = cache.containsKey(element) fun clear() = cache.clear() @@ -26,4 +30,6 @@ class TimeLimitedSet( fun toSet(): Set = cache.keys().let { keys -> if (keys.isEmpty()) emptySet() else keys.toSet() } + + override fun iterator(): Iterator = toSet().iterator() } -- cgit