All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.tinkoff.phobos.derivation.CallByNeed.scala Maven / Gradle / Ivy

The newest version!
package ru.tinkoff.phobos.derivation

/*
 * Copy-pasted from https://github.com/propensive/magnolia
 */

object CallByNeed { def apply[A](a: => A): CallByNeed[A] = new CallByNeed(() => a) }

final class CallByNeed[+A](private[this] var eval: () => A) extends Serializable {
  lazy val value: A = {
    val result = eval()
    eval = null
    result
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy