ΛВ
Size: a a a
ΛВ
LB
Get[A]
для рефайнмент типов ,чтобы читать объекты у которых поля рефайнедLB
ΛВ
ΛВ
LB
case class CumulativeCoefficient(value: ValidatedCumulativeCoefficient) {
def bigDecimalValue = value.value
}
object CumulativeCoefficient {
def fromServiceModel(
cumulativeCoefficient: services.model.CumulativeCoefficient
) = fromBigDecimal(cumulativeCoefficient.value)
def fromBigDecimal(value: BigDecimal): Either[String, CumulativeCoefficient] =
refineV[ValidatedCumulativeCoefficientPredicate](value)
.map(apply)
val maxCumulativeCoefficient: BigDecimal = BigDecimal(2)
implicit val maxCumulativeCoefficientWitness = Witness(maxCumulativeCoefficient)
type MaxCumulativeCoefficient = maxCumulativeCoefficientWitness.T
type ValidatedCumulativeCoefficient = BigDecimal Refined ValidatedCumulativeCoefficientPredicate
type ValidatedCumulativeCoefficientPredicate = Positive And LessEqual[MaxCumulativeCoefficient]
implicit val eq: Eq[CumulativeCoefficient] = Eq.fromUniversalEquals
}
ΛВ
case class CumulativeCoefficient(value: ValidatedCumulativeCoefficient) {
def bigDecimalValue = value.value
}
object CumulativeCoefficient {
def fromServiceModel(
cumulativeCoefficient: services.model.CumulativeCoefficient
) = fromBigDecimal(cumulativeCoefficient.value)
def fromBigDecimal(value: BigDecimal): Either[String, CumulativeCoefficient] =
refineV[ValidatedCumulativeCoefficientPredicate](value)
.map(apply)
val maxCumulativeCoefficient: BigDecimal = BigDecimal(2)
implicit val maxCumulativeCoefficientWitness = Witness(maxCumulativeCoefficient)
type MaxCumulativeCoefficient = maxCumulativeCoefficientWitness.T
type ValidatedCumulativeCoefficient = BigDecimal Refined ValidatedCumulativeCoefficientPredicate
type ValidatedCumulativeCoefficientPredicate = Positive And LessEqual[MaxCumulativeCoefficient]
implicit val eq: Eq[CumulativeCoefficient] = Eq.fromUniversalEquals
}
LB
DZ
ΛВ
case class CumulativeCoefficient(value: ValidatedCumulativeCoefficient) {
def bigDecimalValue = value.value
}
object CumulativeCoefficient {
def fromServiceModel(
cumulativeCoefficient: services.model.CumulativeCoefficient
) = fromBigDecimal(cumulativeCoefficient.value)
def fromBigDecimal(value: BigDecimal): Either[String, CumulativeCoefficient] =
refineV[ValidatedCumulativeCoefficientPredicate](value)
.map(apply)
val maxCumulativeCoefficient: BigDecimal = BigDecimal(2)
implicit val maxCumulativeCoefficientWitness = Witness(maxCumulativeCoefficient)
type MaxCumulativeCoefficient = maxCumulativeCoefficientWitness.T
type ValidatedCumulativeCoefficient = BigDecimal Refined ValidatedCumulativeCoefficientPredicate
type ValidatedCumulativeCoefficientPredicate = Positive And LessEqual[MaxCumulativeCoefficient]
implicit val eq: Eq[CumulativeCoefficient] = Eq.fromUniversalEquals
}
ΛВ
LB
M
case class CumulativeCoefficient(value: ValidatedCumulativeCoefficient) {
def bigDecimalValue = value.value
}
object CumulativeCoefficient {
def fromServiceModel(
cumulativeCoefficient: services.model.CumulativeCoefficient
) = fromBigDecimal(cumulativeCoefficient.value)
def fromBigDecimal(value: BigDecimal): Either[String, CumulativeCoefficient] =
refineV[ValidatedCumulativeCoefficientPredicate](value)
.map(apply)
val maxCumulativeCoefficient: BigDecimal = BigDecimal(2)
implicit val maxCumulativeCoefficientWitness = Witness(maxCumulativeCoefficient)
type MaxCumulativeCoefficient = maxCumulativeCoefficientWitness.T
type ValidatedCumulativeCoefficient = BigDecimal Refined ValidatedCumulativeCoefficientPredicate
type ValidatedCumulativeCoefficientPredicate = Positive And LessEqual[MaxCumulativeCoefficient]
implicit val eq: Eq[CumulativeCoefficient] = Eq.fromUniversalEquals
}
object CumulativeCoefficient extends TaggedType0[BigDecimal]{
val max:Type = TaggedOps(this)(BigDecimal(2))
//... или любая другая логика вместо Either
def apply(value:Long):Either[String,Type] = ...validate > 0 and <= max..
}
type CumulativeCoefficient = CumulativeCoefficient.Type
M
def fromBigDecimal(value: BigDecimal)
- является тавтологией. будь проще - def from(v:BigDecimal)
- у тебя уже есть тип, незачем его еще в название метода пихать без лишней необходимостиLB
def fromBigDecimal(value: BigDecimal)
- является тавтологией. будь проще - def from(v:BigDecimal)
- у тебя уже есть тип, незачем его еще в название метода пихать без лишней необходимости=> Unit
запустить в нескольких тредах :) за советы спасибо, но ничего с ними сделать не могуλ
def fromBigDecimal(value: BigDecimal)
- является тавтологией. будь проще - def from(v:BigDecimal)
- у тебя уже есть тип, незачем его еще в название метода пихать без лишней необходимостиM
ΛВ
object CumulativeCoefficient extends TaggedType0[BigDecimal]{
val max:Type = TaggedOps(this)(BigDecimal(2))
//... или любая другая логика вместо Either
def apply(value:Long):Either[String,Type] = ...validate > 0 and <= max..
}
type CumulativeCoefficient = CumulativeCoefficient.Type
M
M