• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pureconfig / pureconfig / 17584197229

09 Sep 2025 01:27PM UTC coverage: 94.027% (-0.7%) from 94.686%
17584197229

Pull #1839

web-flow
Merge f6adfff74 into ae9e60568
Pull Request #1839: Additional mode for semiauto derivation

6 of 6 new or added lines in 2 files covered. (100.0%)

4 existing lines in 3 files now uncovered.

2377 of 2528 relevant lines covered (94.03%)

2.6 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/modules/enumeratum/src/main/scala/pureconfig/module/enumeratum/package.scala
1
package pureconfig.module
2

3
import scala.reflect.ClassTag
4

5
import _root_.enumeratum._
6
import _root_.enumeratum.values._
7

8
import pureconfig.ConfigConvert
9
import pureconfig.ConfigConvert.{viaNonEmptyString, viaNonEmptyStringOpt, viaStringOpt}
10
import pureconfig.error.CannotConvert
11

12
package object enumeratum {
13

14
  implicit def enumeratumConfigConvert[A <: EnumEntry](implicit e: Enum[A], ct: ClassTag[A]): ConfigConvert[A] =
15
    viaNonEmptyStringOpt[A](e.withNameOption, _.entryName)
1✔
16

17
  implicit def enumeratumIntConfigConvert[A <: IntEnumEntry](implicit
1✔
18
      e: IntEnum[A],
19
      ct: ClassTag[A]
20
  ): ConfigConvert[A] =
UNCOV
21
    viaNonEmptyStringOpt[A](v => e.withValueOpt(v.toInt), _.value.toString)
1✔
22

23
  implicit def enumeratumLongConfigConvert[A <: LongEnumEntry](implicit
1✔
24
      e: LongEnum[A],
25
      ct: ClassTag[A]
26
  ): ConfigConvert[A] =
27
    viaNonEmptyStringOpt[A](v => e.withValueOpt(v.toLong), _.value.toString)
2✔
28

29
  implicit def enumeratumShortConfigConvert[A <: ShortEnumEntry](implicit
1✔
30
      e: ShortEnum[A],
31
      ct: ClassTag[A]
32
  ): ConfigConvert[A] =
UNCOV
33
    viaNonEmptyStringOpt[A](v => e.withValueOpt(v.toShort), _.value.toString)
1✔
34

35
  implicit def enumeratumStringConfigConvert[A <: StringEnumEntry](implicit
1✔
36
      e: StringEnum[A],
37
      ct: ClassTag[A]
38
  ): ConfigConvert[A] =
39
    viaStringOpt[A](v => e.withValueOpt(v), _.value.toString)
2✔
40

41
  implicit def enumeratumByteConfigConvert[A <: ByteEnumEntry](implicit
1✔
42
      e: ByteEnum[A],
43
      ct: ClassTag[A]
44
  ): ConfigConvert[A] =
45
    viaNonEmptyStringOpt[A](v => e.withValueOpt(v.toByte), _.value.toString)
2✔
46

47
  implicit def enumeratumCharConfigConvert[A <: CharEnumEntry](implicit
1✔
48
      e: CharEnum[A],
49
      ct: ClassTag[A]
50
  ): ConfigConvert[A] =
51
    viaNonEmptyString[A](
2✔
52
      s =>
53
        ensureOneChar(s) match {
1✔
54
          case Right(v) => Right(e.withValue(v))
1✔
55
          case Left(msg) => Left(CannotConvert(s, ct.runtimeClass.getSimpleName, msg))
1✔
56
        },
57
      _.value.toString
58
    )
59

60
  private val ensureOneChar: Seq[Char] => Either[String, Char] = {
61
    case Seq(c) => Right(c)
2✔
62
    case s => Left(s"""Cannot read a character value from "$s"""")
2✔
63
  }
64
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc