enumeratum

Enum

trait Enum[A <: EnumEntry] extends AnyRef

All the cool kids have their own Enumeration implementation, most of which try to do so in the name of implementing exhaustive pattern matching.

This is yet another one.

How to use:

sealed trait DummyEnum extends EnumEntry

object DummyEnum extends Enum[DummyEnum] {

val values = findValues

case object Hello extends DummyEnum
case object GoodBye extends DummyEnum
case object Hi extends DummyEnum

}


DummyEnum.values should be(Set(Hello, GoodBye, Hi))

DummyEnum.withName("Hello") should be(Hello)
A

The sealed trait

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Enum
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def values: IndexedSeq[A]

    The sequence of values for your Enum.

    The sequence of values for your Enum. You will typically want to implement this in your extending class as a val so that withName and friends are as efficient as possible.

    Feel free to implement this however you'd like (including messing around with ordering, etc) if that fits your needs better.

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. def findValues: IndexedSeq[A]

    Method that returns a Seq of A objects that the macro was able to find.

    Method that returns a Seq of A objects that the macro was able to find.

    You will want to use this in some way to implement your values method. In fact, if you aren't using this method...why are you even bothering with this lib?

    Attributes
    protected
    Annotations
    @macroImpl( ... )
  12. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  14. def indexOf(member: A): Int

    Returns the index number of the member passed in the values picked up by this enum

    Returns the index number of the member passed in the values picked up by this enum

    member

    the member you want to check the index of

    returns

    the index of the first element of values that is equal (as determined by ==) to member, or -1, if none exists.

  15. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  16. final lazy val lowerCaseNamesToValuesMap: Map[String, A]

    Map of A object names in lower case to As for case-insensitive comparison

  17. final lazy val namesToValuesMap: Map[String, A]

    Map of A object names to As

  18. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  19. final def notify(): Unit

    Definition Classes
    AnyRef
  20. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  21. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  22. def toString(): String

    Definition Classes
    AnyRef → Any
  23. final lazy val upperCaseNameValuesToMap: Map[String, A]

    Map of A object names in upper case to As for case-insensitive comparison

  24. final lazy val valuesToIndex: Map[A, Int]

    Map of A to their index in the values sequence.

    Map of A to their index in the values sequence.

    A performance optimisation so that indexOf can be found in constant time.

  25. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. def withName(name: String): A

    Tries to get an A by the supplied name.

    Tries to get an A by the supplied name. The name corresponds to the .name of the case objects implementing A

    Like Enumeration's withName, this method will throw if the name does not match any of the values' .entryName values.

  29. def withNameInsensitive(name: String): A

    Tries to get an A by the supplied name.

    Tries to get an A by the supplied name. The name corresponds to the .name of the case objects implementing A, disregarding case

    Like Enumeration's withName, this method will throw if the name does not match any of the values' .entryName values.

  30. def withNameInsensitiveOption(name: String): Option[A]

    Optionally returns an A for a given name, disregarding case

  31. def withNameLowercaseOnly(name: String): A

    Tries to get an A by the supplied name.

    Tries to get an A by the supplied name. The name corresponds to the .name of the case objects implementing A transformed to lower case

    Like Enumeration's withName, this method will throw if the name does not match any of the values' .entryName values.

  32. def withNameLowercaseOnlyOption(name: String): Option[A]

    Optionally returns an A for a given name assuming the value is lower case

  33. def withNameOption(name: String): Option[A]

    Optionally returns an A for a given name.

  34. def withNameUppercaseOnly(name: String): A

    Tries to get an A by the supplied name.

    Tries to get an A by the supplied name. The name corresponds to the .name of the case objects implementing A transformed to upper case

    Like Enumeration's withName, this method will throw if the name does not match any of the values' .entryName values.

  35. def withNameUppercaseOnlyOption(name: String): Option[A]

    Optionally returns an A for a given name assuming the value is upper case

Inherited from AnyRef

Inherited from Any

Ungrouped