Skip to content

Commit

Permalink
Merge pull request #27 from permutive-engineering/fix-initlast-implicit
Browse files Browse the repository at this point in the history
  • Loading branch information
janstenpickle authored Nov 2, 2022
2 parents 910da6c + b0d90f7 commit f9b9f77
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 14 deletions.
30 changes: 16 additions & 14 deletions core/src/main/scala/prometheus4cats/internal/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -385,13 +385,13 @@ class LabelledMetricDsl[F[_], A, T, N <: Nat, L[_[_], _, _]] private[internal] (
def label[B]: LabelApply[F, A, T, N, B, L] =
new LabelApply[F, A, T, N, B, L] {

override def apply[C: InitLast.Aux[T, B, *]](
override def apply[C](
name: Label.Name,
toString: B => String
): LabelledMetricDsl[F, A, C, Succ[N], L] = new LabelledMetricDsl(
)(implicit initLast: InitLast.Aux[T, B, C]): LabelledMetricDsl[F, A, C, Succ[N], L] = new LabelledMetricDsl(
makeLabelledMetric,
labelNames :+ name,
c => f(InitLast[T, B, C].init(c)) :+ toString(InitLast[T, B, C].last(c))
c => f(initLast.init(c)) :+ toString(initLast.last(c))
)

}
Expand Down Expand Up @@ -419,14 +419,14 @@ object LabelledMetricDsl {
override def label[B]: LabelApply.WithCallbacks[F, A, A0, T, N, B, L] =
new LabelApply.WithCallbacks[F, A, A0, T, N, B, L] {

override def apply[C: InitLast.Aux[T, B, *]](
override def apply[C](
name: Label.Name,
toString: B => String
): WithCallbacks[F, A, A0, C, Succ[N], L] = new WithCallbacks(
)(implicit initLast: InitLast.Aux[T, B, C]): WithCallbacks[F, A, A0, C, Succ[N], L] = new WithCallbacks(
makeLabelledMetric,
makeLabelledCallback,
labelNames :+ name,
c => f(InitLast[T, B, C].init(c)) :+ toString(InitLast[T, B, C].last(c))
c => f(initLast.init(c)) :+ toString(initLast.last(c))
)

}
Expand Down Expand Up @@ -476,28 +476,30 @@ class TypeStep[+D[_]] private[prometheus4cats] (long: D[Long], double: D[Double]

abstract class LabelApply[F[_], A, T, N <: Nat, B, L[_[_], _, _]] {

def apply[C: InitLast.Aux[T, B, *]](name: Label.Name)(implicit
show: Show[B]
def apply[C](name: Label.Name)(implicit
show: Show[B],
initLast: InitLast.Aux[T, B, C]
): LabelledMetricDsl[F, A, C, Succ[N], L] = apply(name, _.show)

def apply[C: InitLast.Aux[T, B, *]](
def apply[C](
name: Label.Name,
toString: B => String
): LabelledMetricDsl[F, A, C, Succ[N], L]
)(implicit initLast: InitLast.Aux[T, B, C]): LabelledMetricDsl[F, A, C, Succ[N], L]

}

object LabelApply {
abstract class WithCallbacks[F[_], A, A0, T, N <: Nat, B, L[_[_], _, _]] extends LabelApply[F, A, T, N, B, L] {

override def apply[C: InitLast.Aux[T, B, *]](name: Label.Name)(implicit
show: Show[B]
override def apply[C](name: Label.Name)(implicit
show: Show[B],
initLast: InitLast.Aux[T, B, C]
): LabelledMetricDsl.WithCallbacks[F, A, A0, C, Succ[N], L] = apply(name, _.show)

override def apply[C: InitLast.Aux[T, B, *]](
override def apply[C](
name: Label.Name,
toString: B => String
): LabelledMetricDsl.WithCallbacks[F, A, A0, C, Succ[N], L]
)(implicit initLast: InitLast.Aux[T, B, C]): LabelledMetricDsl.WithCallbacks[F, A, A0, C, Succ[N], L]

}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,5 @@ package object javasimpleclient {
case (prefix, name) =>
NameUtils.makeName(prefix, name)
}

}

0 comments on commit f9b9f77

Please # to comment.