com.dwolla.tagless.scalacache

Members list

Value members

Concrete methods

def weaveCache[F[_], Dom[_], Cod[_], K, V](af: Cache[F, K, V])(implicit DomK: Dom[K], DomV: Dom[V], CodV: Cod[V], DomF: Dom[Flags], COV: Cod[Option[V]], DOD: Dom[Option[Duration]], CodU: Cod[Unit], DomS: Dom[String]): Cache[[_] =>> Weave[F, Dom, Cod, _$8], K, V]

An implementation of Cache[Aspect.Weave[F, Cod, Dom, *], K, V] cannot be auto-derived via Derive.aspect because the cachingF method has an F[V] parameter.

An implementation of Cache[Aspect.Weave[F, Cod, Dom, *], K, V] cannot be auto-derived via Derive.aspect because the cachingF method has an F[V] parameter. We handle it here by kind of cheating, and essentially hard-coding a F ~> Aspect.Weave[F, Cod, Dom, *] for it.

See the comment in CacheWeaveFunctionK below.

Attributes

Source
package.scala

Givens

Givens

given given_Codec_Flags: Codec[Flags]

Attributes

Source
package.scala
given given_InvariantK_Cache[K, V]: InvariantK[[F[_]] =>> Cache[F, K, V]]

An InvariantK[Cache[*[_], K, V]] instance for arbitrary K and V types.

An InvariantK[Cache[*[_], K, V]] instance for arbitrary K and V types. This must be InvariantK and not e.g. FunctorK because of the F[V] parameter on the cachingF method.

Attributes

Source
package.scala

Extensions

Extensions

extension [F[_], K, V](cache: Cache[F, K, V])
def weave[Dom[_], Cod[_]](implicit DomK: Dom[K], DomV: Dom[V], CodV: Cod[V], DomF: Dom[Flags], COV: Cod[Option[V]], DOD: Dom[Option[Duration]], CodU: Cod[Unit], DomS: Dom[String]): Cache[[_] =>> Weave[F, Dom, Cod, _$13], K, V]

Attributes

Source
package.scala
def weaveTracing(implicit F: FlatMap[F], T: Trace[F], K: TraceableValue[K], V: TraceableValue[V]): Cache[F, K, V]

Attributes

Source
package.scala