trait Local[F[_]] extends Context[F]

Allows to run some computation with notion of altered context consider using WithLocal for better type inference

Self Type
Local[F]
Annotations
@deprecated
Deprecated

(Since version 0.10.3) Migrate to With* typeclasses

Linear Supertypes
Context[F], ContextBase, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Local
  2. Context
  3. ContextBase
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract type Ctx
    Definition Classes
    Context

Abstract Value Members

  1. abstract def context: F[Ctx]
    Definition Classes
    Context
  2. abstract def functor: Functor[F]
    Definition Classes
    Context
  3. abstract def local[A](fa: F[A])(project: (Ctx) => Ctx): F[A]

    Alters context for computation

    Alters context for computation

    fa

    computation that is going to run with different context

    project

    pure function

    returns

    result of ran computation fa

    Example:
    1. Example of usage is to hide sensitive information

       case class UserContext( id: String, phoneNumber: String
        //very sensitive )
      
      def hidePartOfPhoneNumber: String => String = ???
      
      def contextualLogInfo[F[_]](message: String)(implicit hasUserContext: UserContext In F): F[Unit] = ??? //logs both
      message AND UserContext
      
      def program[F[_]: Monad] = for { user <- obtainUserSomehow[F] implicit0(hasUserContext: In[User, F]) <-
      Context.const[F, User](user.toContext) logUser = contextualLogInfo[F](s"Successfully obtained user") _ <-
      logUser.local(hidePartOfPhoneNumber) //logs only part of phone number } yield ()

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def ask[A](f: (Ctx) => A): F[A]

    Returns context modified by pure function f.

    Returns context modified by pure function f.

    For example one can use it like that:

    Context[F].ask(myCtx => myCtx.toString)

    Also there is more convenient syntax:

    import tofu.syntax.context._
    
    ask[F](myCtx => myCtx.toString)
    Definition Classes
    Context
    Note

    It does not affect context itself.

  6. def askF[A](f: (Ctx) => F[A])(implicit F: FlatMap[F]): F[A]

    Same as ask but f is effectual

    Same as ask but f is effectual

    Definition Classes
    Context
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. def extract[A](extract: Extract[Ctx, A]): WithContext[F, A]

    Allows to focus context on its inside with lens.

    Allows to focus context on its inside with lens.

    extract

    lens that can extract value of type A from Ctx

    Definition Classes
    Context
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  17. def subcontext[A](contains: Contains[Ctx, A]): WithLocal[F, A]

    Allows to focus Local on inner parts of its context with lens.

    Allows to focus Local on inner parts of its context with lens.

    contains

    lens that can extract from Ctx or set some value of type A

  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Context[F]

Inherited from ContextBase

Inherited from AnyRef

Inherited from Any

Ungrouped