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

dev.chopsticks.metric.MetricCounter.scala Maven / Gradle / Ivy

package dev.chopsticks.metric

import zio.ZIO
import zio.clock.Clock

trait MetricCounter {
  def inc(value: Double): Unit
  def get: Double
  def inc(): Unit = inc(1.0d)
  def inc(value: Long): Unit = inc(value.toDouble)
  def inc(value: Int): Unit = inc(value.toDouble)
  def timeM[R, E, A](f: ZIO[R, E, A]): ZIO[R with Clock, E, A] = {
    f.timed.map {
      case (d, v) =>
        inc(d.toNanos)
        v
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy