20 lines
440 B
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
|