Packages

trait Lens[Container, A] extends Serializable

Self Type
Lens[Container, A]
Linear Supertypes
Serializable, Serializable, AnyRef, Any
Known Subclasses
AnyLens, ApiLens, MethodLens, MixinLens, CodeGeneratorRequestLens, CodeGeneratorResponseLens, FileLens, VersionLens, DescriptorProtoLens, ExtensionRangeLens, ReservedRangeLens, EnumDescriptorProtoLens, EnumReservedRangeLens, EnumOptionsLens, EnumValueDescriptorProtoLens, EnumValueOptionsLens, DeclarationLens, ExtensionRangeOptionsLens, FeatureSetLens, FeatureSetDefaultsLens, FeatureSetEditionDefaultLens, FieldDescriptorProtoLens, EditionDefaultLens, FeatureSupportLens, FieldOptionsLens, FileDescriptorProtoLens, FileDescriptorSetLens, FileOptionsLens, AnnotationLens, GeneratedCodeInfoLens, MessageOptionsLens, MethodDescriptorProtoLens, MethodOptionsLens, OneofDescriptorProtoLens, OneofOptionsLens, ServiceDescriptorProtoLens, ServiceOptionsLens, LocationLens, SourceCodeInfoLens, NamePartLens, UninterpretedOptionLens, DurationLens, EmptyLens, FieldMaskLens, SourceContextLens, ListValueLens, FieldsEntryLens, StructLens, ValueLens, TimestampLens, EnumLens, EnumValueLens, FieldLens, OptionProtoLens, TypeLens, BoolValueLens, BytesValueLens, DoubleValueLens, FloatValueLens, Int32ValueLens, Int64ValueLens, StringValueLens, UInt32ValueLens, UInt64ValueLens, GeneratedExtension, MessageLens, ObjectLens, CollectionLens, EnumOptionsLens, EnumValueOptionsLens, FieldOptionsLens, FieldTransformationLens, MessageOptionsLens, OneofOptionsLens, OptionsByFileEntryLens, PreprocessorOutputLens, AuxEnumOptionsLens, AuxEnumValueOptionsLens, AuxFieldOptionsLens, AuxMessageOptionsLens, ScalaPbOptionsLens
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Lens
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def get(c: Container): A

    get knows how to extract some field of type A from a container

  2. abstract def set(a: A): Mutation[Container]

    Represents an assignment operator.

    Represents an assignment operator.

    Given a value of type A, sets knows how to transform a container such that a is assigned to the field.

    We must have get(set(a)(c)) == a

Concrete Value Members

  1. def :=(a: A): Mutation[Container]

    alias to set

  2. def compose[B](other: Lens[A, B]): Lens[Container, B]

    Composes two lenses, this enables nesting.

    Composes two lenses, this enables nesting.

    If our field of type A has a sub-field of type B, then given a lens for it (other: Lens[A, B]) we can create a single lens from Container to B.

  3. def modify(f: (A) ⇒ A): Mutation[Container]

    Represent an update operator (like x.y += 1 )

  4. def setIfDefined(aOpt: Option[A]): Mutation[Container]

    Optional assignment.

    Optional assignment.

    Given a Some[A], assign the Some's value to the field. Given None, the container is unchanged.

  5. def zip[B](other: Lens[Container, B]): Lens[Container, (A, B)]

    Given two lenses with the same origin, returns a new lens that can mutate both values represented by both lenses through a tuple.