package suwayomi.tachidesk.graphql.cache import org.dataloader.CacheMap import java.util.concurrent.CompletableFuture class CustomCacheMap : CacheMap { private val cache: MutableMap> init { cache = 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 set( key: K, value: CompletableFuture, ): CacheMap { cache[key] = value return this } override fun delete(key: K): CacheMap { cache.remove(key) return this } override fun clear(): CacheMap { cache.clear() return this } }