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

migrate.utils.Timer.scala Maven / Gradle / Ivy

There is a newer version: 0.7.2
Show newest version
package migrate.utils

import java.time.Instant

import scala.concurrent.duration.FiniteDuration
import scala.concurrent.duration.MILLISECONDS

private[migrate] object Timer {
  def timeAndLog[A](task: => A)(log: (FiniteDuration, A) => Unit): A = {
    val start  = Instant.now()
    val result = task

    val duration = toFiniteDuration(start, Instant.now())
    log(duration, result)
    result
  }

  def toFiniteDuration(start: Instant, end: Instant): FiniteDuration =
    FiniteDuration(end.toEpochMilli - start.toEpochMilli, MILLISECONDS).toCoarsest

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy