package suwayomi.tachidesk.graphql.cache import org.dataloader.CacheMap import java.util.concurrent.CompletableFuture class CustomCacheMap : CacheMap { private val cache: MutableMap> = HashMap() override fun containsKey(key: K): Boolean = cache.containsKey(key) override fun get(key: K): CompletableFuture = cache[key]!! fun getKeys(): Collection = cache.keys.toSet() override fun getAll(): Collection> = cache.values override fun putIfAbsentAtomically( key: K, value: CompletableFuture, ): CompletableFuture { cache[key] = value return value } override fun delete(key: K): CacheMap { cache.remove(key) return this } override fun clear(): CacheMap { cache.clear() return this } override fun size(): Int = cache.size }