Package

spray.json

lenses

Permalink

package lenses

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. lenses
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. trait BasicRules extends AnyRef

    Permalink
  2. trait ExtraImplicits extends AnyRef

    Permalink
  3. case class GetOrThrow[B](e: Either[Throwable, B]) extends Product with Serializable

    Permalink
  4. type Id[T] = T

    Permalink
  5. trait Join[M1[_], M2[_], R[_]] extends AnyRef

    Permalink

    This typeclass with its implicit instances decides how two containers should be joined.

    This typeclass with its implicit instances decides how two containers should be joined.

    Supported containers are

    • Id for scalar values
    • Option for optional values
    • Seq for a vector of values

    Those container types form an ordering from most specific to most abstract:

    • Id contains always one value
    • Option contains always zero or one value
    • Seq can contain any number of values

    The rule to determine what the result type of joining two container types is that the result is as generic as the more generic of both of the input types.

    The implicit definitions in the companion object of join form evidence for this ordering.

  6. type JsPred = (JsValue) ⇒ Boolean

    Permalink
  7. trait JsonPathIntegration extends AnyRef

    Permalink
  8. trait Lens[M[_]] extends UpdateLens with ReadLens[M]

    Permalink

    A Lens combines read and update functions of UpdateLens and ReadLens into combinable chunks.

    A Lens combines read and update functions of UpdateLens and ReadLens into combinable chunks.

    A lens can either operate on a scalar value, or on an optional value, or on a sequence value. This is denoted by the M[_] type constructor.

  9. abstract class LensImpl[M[_]] extends Lens[M]

    Permalink

    This implements most of the methods of Lens.

    This implements most of the methods of Lens. Implementors of a new type of lens must implement retr for the read side of the lens and updated for the update side of the lens.

  10. type Operation = (SafeJsValue) ⇒ SafeJsValue

    Permalink
  11. trait Operations extends OptionalFieldOperations

    Permalink

    Defines a set of operations to update Json values.

  12. trait Ops[M[_]] extends AnyRef

    Permalink

    A trait to define common operations for different container types.

    A trait to define common operations for different container types. There's some bias towards Seq because container types have to support conversions towards and from Seq.

    This could probably made more general but the methods defined here comprise exactly the set of operations needed to allow combining different kinds of lenses.

  13. type OptLens = Lens[Option]

    Permalink
  14. trait OptionLenses extends AnyRef

    Permalink
  15. trait OptionalFieldOperations extends AnyRef

    Permalink
  16. trait ReadLens[M[_]] extends AnyRef

    Permalink

    The read lens can extract child values out of a JsValue hierarchy.

    The read lens can extract child values out of a JsValue hierarchy. A read lens is parameterized with a type constructor. This allows to extracts not only scalar values but also sequences or optional values.

  17. trait Reader[T] extends AnyRef

    Permalink
  18. type SafeJsValue = Either[Exception, JsValue]

    Permalink
  19. type ScalarLens = Lens[Id]

    Permalink
  20. trait ScalarLenses extends AnyRef

    Permalink
  21. type SeqLens = Lens[Seq]

    Permalink
  22. trait SeqLenses extends AnyRef

    Permalink
  23. trait Update extends (JsValue) ⇒ JsValue

    Permalink
  24. trait UpdateLens extends AnyRef

    Permalink

    The UpdateLens is the central interface for updating a child element somewhere deep down a hierarchy of a JsValue.

  25. case class ValidateOption[T](option: Option[T]) extends Product with Serializable

    Permalink
  26. type Validated[T] = Either[Exception, T]

    Permalink

Value Members

  1. def ???: Nothing

    Permalink
  2. object ExtraImplicits extends ExtraImplicits

    Permalink
  3. object Join

    Permalink
  4. object JsonLenses extends ScalarLenses with OptionLenses with SeqLenses with Operations with JsonPathIntegration with ExtraImplicits

    Permalink

    An aggregate option to import all of the functionality of JsonLenses with one import.

  5. object JsonPath

    Permalink

    The AST for a json-path.

    The AST for a json-path. Basically follows the specification at http://goessner.net/articles/JsonPath/

  6. object JsonPathParser extends Parser with BasicRules

    Permalink

    A parser for json-path expression as specified here: http://goessner.net/articles/JsonPath/

  7. object Operations extends Operations with ExtraImplicits

    Permalink
  8. object Ops

    Permalink
  9. object OptionLenses extends OptionLenses

    Permalink
  10. object Reader

    Permalink
  11. object ScalarLenses extends ScalarLenses

    Permalink
  12. object SeqLenses extends SeqLenses

    Permalink
  13. implicit def orThrow[B](e: Either[Throwable, B]): GetOrThrow[B]

    Permalink
  14. def outOfBounds(message: String): Left[IndexOutOfBoundsException, Nothing]

    Permalink
  15. implicit def rightBiasEither[A, B](e: Either[A, B]): RightProjection[A, B]

    Permalink
  16. def safe[T](body: ⇒ T): Validated[T]

    Permalink
  17. def unexpected(message: String): Left[RuntimeException, Nothing]

    Permalink
  18. implicit def validateOption[T](o: Option[T]): ValidateOption[T]

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped