scalacache.memoization

Type members

Classlikes

object Macros
case class MemoizationConfig(toStringConverter: MethodCallToStringConverter)

Configuration related to the behaviour of the scalacache.memoization.memoize{Sync} methods.

Configuration related to the behaviour of the scalacache.memoization.memoize{Sync} methods.

Value Params
toStringConverter

converter for generating a String cache key from information about a method call

Converts information about a method call to a String for use in a cache key

Converts information about a method call to a String for use in a cache key

Companion
object
final class cacheKeyExclude extends StaticAnnotation

Add this annotation to method or class constructor parameters in order to exclude them from auto-generated cache keys.

Add this annotation to method or class constructor parameters in order to exclude them from auto-generated cache keys.

e.g.

def foo(a: Int, @cacheKeyExclude b: String, c: String): Int = memoize { ... }

will not include the value of the b parameter in its cache keys.

Value members

Concrete methods

inline def memoize[F[_], V](ttl: Option[Duration])(f: => V)(implicit cache: Cache[F, V], flags: Flags): F[V]

Perform the given operation and memoize its result to a cache before returning it. If the result is already in the cache, return it without performing the operation.

Perform the given operation and memoize its result to a cache before returning it. If the result is already in the cache, return it without performing the operation.

If a TTL is given, the result is stored in the cache with that TTL. It will be evicted when the TTL is up.

Note that if the result is currently in the cache, changing the TTL has no effect. TTL is only set once, when the result is added to the cache.

Type Params
F

The type of container in which the result will be wrapped. This is decided by the mode.

V

The type of the value to be cached

Value Params
cache

The cache

f

A function that computes some result. This result is the value that will be cached.

flags

Flags used to conditionally alter the behaviour of ScalaCache

mode

The operation mode, which decides the type of container in which to wrap the result

ttl

Time-To-Live

Returns

A result, either retrieved from the cache or calculated by executing the function f

inline def memoizeF[F[_], V](ttl: Option[Duration])(f: F[V])(implicit cache: Cache[F, V], flags: Flags): F[V]

Perform the given operation and memoize its result to a cache before returning it. If the result is already in the cache, return it without performing the operation.

Perform the given operation and memoize its result to a cache before returning it. If the result is already in the cache, return it without performing the operation.

If a TTL is given, the result is stored in the cache with that TTL. It will be evicted when the TTL is up.

Note that if the result is currently in the cache, changing the TTL has no effect. TTL is only set once, when the result is added to the cache.

Type Params
F

The type of container in which the result will be wrapped. This is decided by the mode.

V

The type of the value to be cached

Value Params
cache

The cache

f

A function that computes some result wrapped in an F. This result is the value that will be cached.

flags

Flags used to conditionally alter the behaviour of ScalaCache

mode

The operation mode, which decides the type of container in which to wrap the result

ttl

Time-To-Live

Returns

A result, either retrieved from the cache or calculated by executing the function f