Skip to content

Latest commit

 

History

History
34 lines (28 loc) · 1.27 KB

ENUMERATOR.md

File metadata and controls

34 lines (28 loc) · 1.27 KB

The Enumerator is another handy tool provided in this library. It allows you to use an enumerated value for instances of a scala type. The default enumerator works with String types, but the TypedEnumerator can work with any result type.

scala> import json._
import json._

scala> import json.tools.Enumerator
import json.tools.Enumerator

scala> object Example {
     |     object TestEnumerator extends Enumerator[TestEnumerator] {
     |         case object ThisValue extends TestEnumerator
     |         case object ThatValue extends TestEnumerator
     |         val values = Set(ThisValue, ThatValue) //all values needed here for the reverse mapping
     |     }
     |     sealed trait TestEnumerator extends TestEnumerator.Value {
     |         //define the key used for each value.
     |         //this takes the lower case of the case object name.
     |         def key = toString.toLowerCase
     |     }
     | }
defined object Example

scala> Example.TestEnumerator.ThisValue.js
res0: json.JString = "thisvalue"

scala> "thatvalue".js.toObject[Example.TestEnumerator]
res1: Example.TestEnumerator = ThatValue