Package

scalacache

memoization

Permalink

package memoization

Utilities for memoizing the results of method calls in a cache. The cache key is generated from the method arguments using a macro, so that you don't have to bother passing them manually.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. memoization
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class Macros extends AnyRef

    Permalink
  2. case class MemoizationConfig(toStringConverter: MethodCallToStringConverter = ...) extends Product with Serializable

    Permalink

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

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

    toStringConverter

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

  3. trait MethodCallToStringConverter extends AnyRef

    Permalink

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

  4. final class cacheKeyExclude extends Annotation with StaticAnnotation

    Permalink

    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

  1. object MethodCallToStringConverter

    Permalink
  2. macro def memoize[F[_], V](ttl: Option[Duration])(f: ⇒ V)(implicit cache: Cache[V], mode: Mode[F], flags: Flags): F[V]

    Permalink

    Perform the given operation and memoize its result to a cache before returning it.

    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.

    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

    ttl

    Time-To-Live

    f

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

    cache

    The cache

    mode

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

    flags

    Flags used to conditionally alter the behaviour of ScalaCache

    returns

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

  3. macro def memoizeF[F[_], V](ttl: Option[Duration])(f: ⇒ F[V])(implicit cache: Cache[V], mode: Mode[F], flags: Flags): F[V]

    Permalink

    Perform the given operation and memoize its result to a cache before returning it.

    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.

    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

    ttl

    Time-To-Live

    f

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

    cache

    The cache

    mode

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

    flags

    Flags used to conditionally alter the behaviour of ScalaCache

    returns

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

  4. macro def memoizeSync[V](ttl: Option[Duration])(f: ⇒ V)(implicit cache: Cache[V], mode: Mode[Id], flags: Flags): V

    Permalink

    A version of memoize that is specialised to Id.

    A version of memoize that is specialised to Id. This is provided for convenience because type inference doesn't work properly for Id, and writing memoize[Id, Foo] is a bit rubbish.

    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.

    V

    The type of the value to be cached

    ttl

    Time-To-Live

    f

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

    cache

    The cache

    flags

    Flags used to conditionally alter the behaviour of ScalaCache

    returns

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

Inherited from AnyRef

Inherited from Any

Ungrouped