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.
Example:
scala> import enumeratum._
scala> sealed trait DummyEnum extends EnumEntry
scala> object DummyEnum extends Enum[DummyEnum] {
| val values = findValues
| case object Hello extends DummyEnum
| case object GoodBye extends DummyEnum
| case object Hi extends DummyEnum
| }
scala> DummyEnum.withNameOption("Hello")
res0: Option[DummyEnum] = Some(Hello)
scala> DummyEnum.withNameOption("Nope")
res1: Option[DummyEnum] = None
Type parameters
- A
-
The sealed trait
Attributes
- Companion
- object
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
Members list
Value members
Concrete methods
Additional list of names which can be mapped to values, for example to allow mapping of legacy values.
Additional list of names which can be mapped to values, for example to allow mapping of legacy values.
Attributes
- Returns
-
a Map of names to Values
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
Value parameters
- member
-
the member you want to check the index of
Attributes
- Returns
-
the index of the first element of values that is equal (as determined by ==) to member, or -1, if none exists.
Tries to get an A by the supplied name. The name corresponds to the .name of the case objects implementing A
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.
Attributes
Returns an [[Right[A]] ] for a given name, or a [[Left[NoSuchMember]] ] if the name does not match any of the values' .entryName values.
Returns an [[Right[A]] ] for a given name, or a [[Left[NoSuchMember]] ] if the name does not match any of the values' .entryName values.
Attributes
Tries to get an A by the supplied name. The name corresponds to the .name of the case objects implementing A, disregarding case
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.
Attributes
Returns an [[Right[A]] ] for a given name, or a [[Left[NoSuchMember]] ] if the name does not match any of the values' .entryName values, disregarding case.
Returns an [[Right[A]] ] for a given name, or a [[Left[NoSuchMember]] ] if the name does not match any of the values' .entryName values, disregarding case.
Attributes
Optionally returns an A for a given name, disregarding case
Optionally returns an A for a given name, disregarding case
Attributes
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
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.
Attributes
Returns an [[Right[A]] ] for a given name, or a [[Left[NoSuchMember]] ] if the name does not match any of the values' .entryName values, disregarding case.
Returns an [[Right[A]] ] for a given name, or a [[Left[NoSuchMember]] ] if the name does not match any of the values' .entryName values, disregarding case.
Attributes
Optionally returns an A for a given name assuming the value is lower case
Optionally returns an A for a given name assuming the value is lower case
Attributes
Optionally returns an A for a given name.
Optionally returns an A for a given name.
Attributes
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
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.
Attributes
Returns an [[Right[A]] ] for a given name, or a [[Left[NoSuchMember]] ] if the name does not match any of the values' .entryName values, disregarding case.
Returns an [[Right[A]] ] for a given name, or a [[Left[NoSuchMember]] ] if the name does not match any of the values' .entryName values, disregarding case.
Attributes
Optionally returns an A for a given name assuming the value is upper case
Optionally returns an A for a given name assuming the value is upper case
Attributes
Inherited methods
Returns a Seq of A objects that the macro was able to find.
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
- Inherited from:
- EnumCompat (hidden)
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.
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.
Attributes
- Inherited from:
- EnumCompat (hidden)
Concrete fields
Map of A object names in lower case to A s for case-insensitive comparison
Map of A object names in lower case to A s for case-insensitive comparison
Attributes
Map of A object names to A s
Map of A object names to A s
Attributes
Map of A object names in upper case to A s for case-insensitive comparison
Map of A object names in upper case to A s for case-insensitive comparison
Attributes
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.