Useful for diagnostic messages where you want to say "must be one of ...." and list the possibilities.
Useful for diagnostic messages where you want to say "must be one of ...." and list the possibilities.
Override this if there is just one conversion used for both constants and for runtime expressions.
Override these runtime and constant-specific variants if you need different conversions done if an expression is evaluated at runtime.
Override these runtime and constant-specific variants if you need different conversions done if an expression is evaluated at runtime.
This is for things like delimiters or escapeCharacter where it can be "" if it is a constant, but it cannot be "" if it is a runtime expression value.
The forUnparse flag is for distinctions needed between parse time and unparse time which is very common thing to have.
This is not the same concept as Compile time vs. Runtime.
Scala delays construction of case objects (presumably because many programs don't use them at all) We need to force creation of our inner property case objects because constructing them also has the side-effect of registering them in the _values list.
Scala delays construction of case objects (presumably because many programs don't use them at all) We need to force creation of our inner property case objects because constructing them also has the side-effect of registering them in the _values list.
This is invoked at runtime to compare expression results to see if they match the strings for the enum values.
This is invoked at runtime to compare expression results to see if they match the strings for the enum values. So this has to be fast.