gs-predicate/src/main/scala/gs/predicate/v0/json/MemoryMapJsonProvider.scala

20 lines
440 B
Scala

package gs.predicate.v0.json
import cats.effect.std.MapRef
import io.circe.Json
/** Provides keys and JSON values, given some in-memory map.
*
* @param map
* The underlying map.
*/
final class MemoryMapJsonProvider[F[_]](
private val map: MapRef[F, String, Option[Json]]
) extends JsonProvider[F]:
/** @inheritDocs
*/
override def get(key: String): F[Option[Json]] =
map.apply(key).get
end MemoryMapJsonProvider