Bidirectional maps between values of two key types.
Bidirectional maps between values of two key types.
31/05/2013
Implements .equals using reference equality
Wraps a value such that reference equality holds.
Wraps a value such that reference equality holds.
Allows values to be used as map-keys, in sets, etc with uniqueness being by reference.
Boolean isomorphism.
Boolean isomorphism.
Mix into the base type and override this.companion there.
Examples:
sealed trait Enabled extends SafeBool[Enabled] { override final def companion = Enabled } case object Enabled extends Enabled with SafeBool.Object[Enabled] { override def positive = Enabled override def negative = Disabled } case object Disabled extends Enabled
sealed abstract class Permission extends SafeBool.WithBoolOps[Permission] { override final def companion = Permission } case object Allow extends Permission case object Deny extends Permission object Permission extends SafeBool.Object[Permission] { override def positive = Allow override def negative = Deny }
Taken from https://github.com/dsl-platform/101-dsl-examples/blob/master/001-periodic-table-of-elements/scala/src/main/scala/com/dslplatform/examples/AsciiTable.scala
Format a set of ints into a concise textual description.
Format a set of ints into a concise textual description.
Example: "2, 5, 7-14, 20"
Fast, efficient lookup functions for static data.
Fast, efficient lookup functions for static data.
Creation verifies key uniqueness and throws runtime exceptions on failure.